[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", ]