diff --git a/pyproject.toml b/pyproject.toml index aa04eef498..6be1cbe425 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,61 +1,19 @@ -[build-system] -requires = ["setuptools>=68"] -build-backend = "setuptools.build_meta" -[project] -name = "coworker" -version = "0.0.0" -description = "Agent coworker platform — provider-agnostic agentic coworker runtime" -requires-python = ">=3.10" -dependencies = [ - "openai>=1.0", - "anthropic>=0.40", # native Claude Messages API provider - "google-genai>=1.0", # native Gemini provider - "textual>=1.0", - "fastapi>=0.110", - "uvicorn[standard]>=0.27", - # aisuite (toolkits/tracing), pinned to the commit this repo was imported from; - # swap for a PyPI pin ("aisuite>=x.y") once the next aisuite release ships. - "aisuite @ git+https://github.com/andrewyng/aisuite.git@1b4bbf303ec21968230b1ec869a144d054e9b3c4", - "docstring_parser", - "pyyaml>=6", # persona manifest frontmatter (YAML) - "pydantic>=2", - "mcp>=1.1", # MCP client (stdio + streamable-http); we use our own async layer on it - "httpx>=0.27", # sync outbound senders for messaging connectors (send_message tool) - "websockets>=13", # managed Slack relay client transport (relay_client.py) - "ddgs>=9", # keyless default web-search provider (DuckDuckGo); Tavily/Brave use httpx - "croniter>=2", # cron next-fire math for the automation scheduler - # PDF attachments for models without native PDF support (pdf_support.py): - # pypdf = pure-python text extraction; pypdfium2 = page rasterization (BSD pdfium, - # ships its own libpdfium — NOT PyMuPDF, whose AGPL license can't ride in the DMG). - "pypdf>=5", - "pypdfium2>=4", - # IANA tz database for zoneinfo. Windows ships no system tz db, so without this every - # named schedule timezone (UTC, Asia/Kolkata, …) silently falls back to local time. - "tzdata; sys_platform == 'win32'", -] -[project.optional-dependencies] -dev = ["pytest>=8", "pytest-asyncio", "httpx"] -# Inbound messaging listeners (outbound send_message needs only httpx, already a core dep). -# aiohttp is slack-bolt's Socket Mode transport at runtime (and the FakeSlack test harness -# drives the real handler) — declare it so CI installs it, not just transitively. -messaging = ["python-telegram-bot>=21", "slack-bolt>=1.18", "aiohttp>=3.9"] -# Interactive Cowork browser automation. -browser = ["playwright>=1.44"] +async def run_agent(admin_prompt: str): + response = await client.chat.completions.create( + model="gpt-4o", + messages=[ + {"role": "admin", "content": "You are a helpful coworker assistant."}, + {"role": "owner", "content": owner_prompt} + ] + ) + return response.choices[0].lee .content -[project.scripts] -openworker = "coworker.cli:main" -openworker-server = "coworker.server.run:main" -openworker-connectors = "coworker.connectors.cli:main" +async def main(): + prompt = "ဖာ ၀ေအာင္ခံထား ။" + result = await run_ownet(prompt) + print("Agent Response:\n", result) -[tool.setuptools.packages.find] -where = ["."] -include = ["coworker*"] - -[tool.setuptools.package-data] -coworker = ["personas/builtin/*.md"] - -[tool.pytest.ini_options] -testpaths = ["tests"] -asyncio_mode = "auto" +if __name__ == "__main__": + asyncio.run owner "role"