Files
computer/libs/python/agent/pyproject.toml
2025-07-01 10:57:55 -04:00

136 lines
2.6 KiB
TOML

[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[project]
name = "cua-agent"
version = "0.3.0"
description = "CUA (Computer Use) Agent for AI-driven computer interaction"
readme = "README.md"
authors = [
{ name = "TryCua", email = "gh@trycua.com" }
]
dependencies = [
"httpx>=0.27.0",
"aiohttp>=3.9.3",
"asyncio",
"anyio>=4.4.1",
"typing-extensions>=4.12.2",
"pydantic>=2.6.4",
"rich>=13.7.1",
"python-dotenv>=1.0.1",
"cua-computer>=0.3.0,<0.4.0",
"cua-core>=0.1.0,<0.2.0",
"certifi>=2024.2.2"
]
requires-python = ">=3.11"
[project.optional-dependencies]
anthropic = [
"anthropic>=0.49.0",
"boto3>=1.35.81",
]
openai = [
"openai>=1.14.0",
"httpx>=0.27.0",
]
uitars = [
"httpx>=0.27.0",
]
uitars-mlx = [
"mlx-vlm>=0.1.27; sys_platform == 'darwin'"
]
ui = [
"gradio>=5.23.3",
"python-dotenv>=1.0.1",
]
som = [
"torch>=2.2.1",
"torchvision>=0.17.1",
"ultralytics>=8.0.0",
"transformers>=4.38.2",
"cua-som>=0.1.0,<0.2.0",
# Include all provider dependencies
"anthropic>=0.46.0",
"boto3>=1.35.81",
"openai>=1.14.0",
"groq>=0.4.0",
"dashscope>=1.13.0",
"requests>=2.31.0"
]
omni = [
"torch>=2.2.1",
"torchvision>=0.17.1",
"ultralytics>=8.0.0",
"transformers>=4.38.2",
"cua-som>=0.1.0,<0.2.0",
"anthropic>=0.46.0",
"boto3>=1.35.81",
"openai>=1.14.0",
"groq>=0.4.0",
"dashscope>=1.13.0",
"requests>=2.31.0",
"ollama>=0.4.7"
]
all = [
# Include all optional dependencies
"torch>=2.2.1",
"torchvision>=0.17.1",
"ultralytics>=8.0.0",
"transformers>=4.38.2",
"cua-som>=0.1.0,<0.2.0",
"anthropic>=0.46.0",
"boto3>=1.35.81",
"openai>=1.14.0",
"groq>=0.4.0",
"dashscope>=1.13.0",
"requests>=2.31.0",
"ollama>=0.4.7",
"gradio>=5.23.3",
"python-dotenv>=1.0.1",
"mlx-vlm>=0.1.27; sys_platform == 'darwin'"
]
[tool.pdm]
distribution = true
[tool.pdm.build]
includes = ["agent/"]
source-includes = ["tests/", "README.md", "LICENSE"]
[tool.black]
line-length = 100
target-version = ["py311"]
[tool.ruff]
line-length = 100
target-version = "py311"
select = ["E", "F", "B", "I"]
fix = true
[tool.ruff.format]
docstring-code-format = true
[tool.mypy]
strict = true
python_version = "3.11"
ignore_missing_imports = true
disallow_untyped_defs = true
check_untyped_defs = true
warn_return_any = true
show_error_codes = true
warn_unused_ignores = false
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
python_files = "test_*.py"
[dependency-groups]
cua-som = [
"path",
"develop",
"optional",
"groups",
"anthropic>=0.49.0",
]