[build-system]
requires = [ "setuptools>=61.0", "wheel",]
build-backend = "setuptools.build_meta"

[project]
name = "claude-mpm"
dynamic = [ "version",]
description = "Claude Multi-agent Project Manager - Clean orchestration with ticket management"
readme = "README.md"
requires-python = ">=3.8"
keywords = [ "claude", "orchestration", "multi-agent", "ticket-management",]
classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12",]
dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "tree-sitter-language-pack>=0.8.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0",]
[[project.authors]]
name = "Claude MPM Team"

[project.license]
text = "MIT"

[project.optional-dependencies]
dev = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]
monitor = []
agents = [ "allure-pytest>=2.13.0", "ansible>=9.0.0", "apache-airflow>=2.8.0", "bandit>=1.7.5", "black>=23.0.0", "checkov>=3.1.0", "commitizen>=3.13.0", "cryptography>=41.0.0", "dask>=2023.12.0", "detect-secrets>=1.4.0", "diagrams>=0.23.0", "docker>=7.0.0", "docstring-parser>=0.15.0", "faker>=20.0.0", "gitlint>=0.19.0", "gitpython>=3.1.40", "great-expectations>=0.18.0", "hypothesis>=6.92.0", "isort>=5.12.0", "kubernetes>=28.0.0", "lizard>=1.17.0", "mermaid-py>=0.2.0", "mkdocs>=1.5.0", "mutmut>=2.4.0", "mypy>=1.8.0", "pandas>=2.1.0", "pip-audit>=2.6.0", "pre-commit>=3.5.0", "prometheus-client>=0.19.0", "pydoc-markdown>=4.8.0", "pydriller>=2.5.0", "pygments>=2.17.0", "pyjwt>=2.8.0", "pytest>=7.4.0", "pytest-benchmark>=4.0.0", "pytest-cov>=4.1.0", "radon>=6.0.0", "rope>=1.11.0", "safety>=3.0.0", "semgrep>=1.45.0", "sphinx>=7.2.0", "sqlalchemy>=2.0.0", "sqlparse>=0.4.4", "terraform-compliance>=1.3.0", "tree-sitter>=0.21.0", "tree-sitter-language-pack>=0.8.0", "ydata-profiling>=4.6.0",]

[project.scripts]
claude-mpm = "claude_mpm.cli:main"
claude-mpm-ticket = "claude_mpm.cli.ticket_cli:main"
ticket = "claude_mpm.cli.ticket_cli:main"
claude-mpm-version = "claude_mpm.scripts.manage_version:main"
claude-mpm-monitor = "claude_mpm.scripts.launch_monitor:main"
claude-mpm-socketio = "claude_mpm.scripts.socketio_daemon:main"

[tool.uv]
dev-dependencies = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]

[tool.black]
line-length = 88
target-version = [ "py38",]

[tool.isort]
profile = "black"
line_length = 88

[tool.mypy]
python_version = "3.8"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true

[tool.setuptools.package-data]
claude_mpm = [ "VERSION", "scripts/*", "dashboard/*.html", "dashboard/templates/*.html", "dashboard/static/*.css", "dashboard/static/*.js", "dashboard/static/css/*.css", "dashboard/static/js/*.js", "dashboard/static/js/components/*.js",]

[tool.setuptools.packages.find]
where = [ "src",]
