[project] name = "cuga" version = "0.2.6" description = "CUGA is an open-source generalist agent for the enterprise, supporting complex task execution on web and APIs, OpenAPI/MCP integrations, composable architecture, reasoning modes, and policy-aware features." readme = "README.md" license = "Apache-2.0" requires-python = ">=3.10, <3.14" dependencies = [ "langchain", "langchain-ibm>=0.3.9,<1.0.0", "langchain-openai", "langchain-core", "aiohttp", "httpx", "docker", "langgraph", "html2text", "uvicorn", "fastapi[standard]", "langfuse", "dynaconf", "playwright==1.49.0", "browsergym-core==0.13.0", "python-dotenv", "loguru", "mcp[cli]>=1.23.0", "psutil>=7.0.0", "typer>=0.15.3", "fastmcp", "langchain-mcp-adapters>=0.1.9", "pyyaml>=6.0.3", "pymilvus>=2.6.4", "tavily-python", ] [project.optional-dependencies] evaluation = ["rapidfuzz"] [project.urls] Homepage = "https://cuga.dev" Repository = "https://github.com/cuga-project/cuga-agent" [tool.uv] package = true [tool.setuptools] package-dir = {"" = "src"} [tool.setuptools.packages.find] where = ["src"] exclude = [ "frontend_workspaces*" ] [tool.setuptools.package-data] cuga = [ "configurations/**/*.toml", "configurations/**/*.md", "settings.toml", "backend/**/*.jinja2", "backend/**/*.js", ] frontend_workspaces = [ "frontend/dist/**", "extension/releases/**" ] scripts = ["*.py"] system_tests = ["**/*.py", "**/*.yaml", "**/*.sh"] [project.scripts] load_specs = "scripts.api_utils.load_openapi_specs:main" petstore = "scripts.commands:run_petstore" demo = "scripts.commands:run_demo" registry = "scripts.commands:run_api_registry" registry_appworld = "scripts.commands:run_api_registry_appworld" graph = "scripts.draw_graph:main" eval_api = "scripts.commands:run_eval_api" appworld_eval = "evaluation.appworld_eval:run_main" appworld_setup = "scripts.commands:setup_appworld_environment" appworld_setup_docker = "scripts.commands:setup_appworld_environment_docker" cuga = "cuga.cli:app" code = "evaluation.code_generator:main" exp = "scripts.eval_gui:main" digital_sales_mcp = "scripts.commands:run_digital_sales_mcp" digital_sales_openapi = "scripts.commands:run_digital_sales_openapi" [dependency-groups] dev = [ "pytz>=2025.1", "ruff>=0.9.4", "tabulate", "beartype", "nltk", "termcolor", "rapidfuzz", "pytest>=8.3.5", "pytest-asyncio>=1.1.0", "cugaviz", "langchain-groq>=0.3.8", "pre-commit>=4.3.0", "questionary>=2.1.1", "rich>=14.2.0", ] groq = [ "langchain-groq>=0.3.8", ] google-genai = [ "langchain-google-genai>=2.0.11", ] sandbox = [ "llm-sandbox>=0.1.3", ] e2b = [ "e2b-code-interpreter>=2.4.1" ] memory = [ "pymilvus[milvus_lite]>=2.5.11", "mem0ai[extras]>=0.1.108" ]