File size: 2,867 Bytes
3289c58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
[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"
]