| [build-system] |
| requires = ["hatchling"] |
| build-backend = "hatchling.build" |
|
|
| [project] |
| name = "magentic_ui" |
| license = "MIT" |
| dynamic = ["version"] |
| description = "A research prototype of a human-centered interface powered by a multi-agent system" |
| readme = "README.md" |
| requires-python = ">=3.10" |
| keywords = ["agents", "browser-use", "multi-agent", "ai-assistant", "playwright", "web-automation"] |
| authors = [ |
| {name = "Microsoft Corporation", email = "magui@service.microsoft.com"} |
| ] |
| classifiers = [ |
| "Programming Language :: Python :: 3", |
| "License :: OSI Approved :: MIT License", |
| "Operating System :: OS Independent", |
| "Development Status :: 3 - Alpha", |
| "Intended Audience :: Developers", |
| "Intended Audience :: Science/Research", |
| "Topic :: Internet :: WWW/HTTP :: Browsers", |
| "Topic :: Software Development :: Libraries :: Python Modules", |
| "Topic :: Scientific/Engineering :: Artificial Intelligence", |
| ] |
| dependencies = [ |
| "autogen-agentchat==0.5.7", |
| "autogen-core==0.5.7", |
| "autogen-ext[openai,docker,file-surfer,web-surfer,magentic-one,task-centric-memory,mcp]==0.5.7", |
| "aioconsole", |
| "nest_asyncio", |
| "docker", |
| "aiohttp", |
| "playwright==1.51", |
| "tldextract", |
| "loguru", |
| "pydantic", |
| "pydantic-settings", |
| "fastapi[standard]", |
| "typer", |
| "aiofiles", |
| "python-dotenv", |
| "websockets", |
| "sqlmodel", |
| "psycopg", |
| "alembic", |
| "pyyaml", |
| "html2text", |
| "psutil", |
| ] |
|
|
| [project.urls] |
| Homepage = "https://github.com/microsoft/magentic-ui" |
| Repository = "https://github.com/microsoft/magentic-ui" |
| Issues = "https://github.com/microsoft/magentic-ui/issues" |
|
|
| [project.optional-dependencies] |
| eval = [ |
| "huggingface_hub", |
| "pandas", |
| "scipy", |
| ] |
|
|
| azure = [ |
| "autogen-ext[azure]==0.5.7" |
| ] |
|
|
| ollama = [ |
| "autogen-ext[ollama]==0.5.7" |
| ] |
|
|
| fara = [ |
| "pillow", |
| "tenacity", |
| "pyyaml", |
| "jsonschema", |
| "browserbase", |
| "vllm>=0.10.0", |
| ] |
|
|
| [project.scripts] |
| magentic = "magentic_ui.backend.cli:run" |
| magentic-ui = "magentic_ui.backend.cli:run" |
| magentic-cli = "magentic_ui._cli:main" |
|
|
| [tool.uv] |
| dev-dependencies = [ |
| "poethepoet", |
| "pyright==1.1.401", |
| "mypy==1.13.0", |
| "ruff==0.4.8", |
| "pytest_asyncio", |
| "pytest-cov", |
| "pytest", |
| "sphinx", |
| "sphinx-autodoc-typehints", |
| "sphinx_rtd_theme", |
| "types-aiofiles", |
| "types-docker", |
| "types-PyYaml", |
| ] |
|
|
| [tool.ruff] |
| exclude = ["src/benchmarks/assistantbench"] |
|
|
| [tool.hatch.metadata] |
| allow-direct-references = true |
|
|
| [tool.poe.tasks] |
| fmt = "ruff format src tests samples" |
| format.ref = "fmt src" |
| lint = "ruff check src" |
| mypy = "mypy src" |
| pyright = "pyright src" |
| test.env = { PYTHONPATH = "src" } |
| test.sequence = [ |
| "playwright install", |
| "pytest -m \"not npx\" tests --cov=src --cov-report=xml --cov-report=term-missing", |
| ] |
| test.default_item_type = "cmd" |
| check = ["fmt", "lint", "pyright", "test"] |
|
|
| [tool.mypy] |
| strict = true |
| python_version = "3.11" |
| ignore_missing_imports = true |
|
|
| |
| disallow_untyped_defs = true |
| no_implicit_optional = true |
| check_untyped_defs = true |
| warn_return_any = true |
| show_error_codes = true |
| warn_unused_ignores = false |
|
|
| disallow_incomplete_defs = true |
| disallow_untyped_decorators = true |
| disallow_any_unimported = true |
| exclude = ["src/magentic_ui/eval"] |
|
|
| [tool.pyright] |
| include = ["src", "tests", "samples"] |
| exclude = ["src/magentic_ui/eval/benchmarks/assistantbench/evaluate_utils", "src/magentic_ui/agents/web_surfer/_cua_web_surfer.py", "src/magentic_ui/backend/web/routes", "src/magentic_ui/agents/web_surfer/fara", "src/magentic_ui/tools/playwright/playwright_controller_fara.py"] |
| typeCheckingMode = "strict" |
| reportUnnecessaryIsInstance = false |
| reportMissingTypeStubs = false |
|
|
|
|
| [tool.hatch.build.targets.wheel] |
| include-package-data = true |
| packages = ["src/magentic_ui"] |
|
|
| [tool.hatch.version] |
| path = "src/magentic_ui/version.py" |
|
|
| [tool.hatch.build] |
| include = [ |
| "src/magentic_ui/**/*.py", |
| "src/magentic_ui/**/*.yaml", |
| "src/magentic_ui/**/*.json", |
| "src/magentic_ui/**/*.js", |
| "src/magentic_ui/backend/web/ui/**/*", |
| "src/magentic_ui/docker/**/*", |
| ] |
| exclude = [ |
| "src/magentic_ui/tests/**", |
| "**/__pycache__", |
| "**/.*.swp", |
| ] |
| ignore-vcs = true |
|
|