[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/agenthold"] [project] name = "agenthold" version = "0.10.0" description = "Shared versioned state for multi-agent AI workflows" readme = "README.md" license = { text = "MIT" } requires-python = ">=3.11" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries", "Typing :: Typed", ] dependencies = [ "mcp[cli]>=1.26.0", "pydantic>=2.12.5", # starlette + uvicorn are already required transitively by mcp; declared # explicitly because the HTTP transport imports them directly. "starlette>=0.27", "uvicorn>=0.31.1", ] [project.urls] Homepage = "https://github.com/edobusy/agenthold" Repository = "https://github.com/edobusy/agenthold" Issues = "https://github.com/edobusy/agenthold/issues" Changelog = "https://github.com/edobusy/agenthold/blob/main/CHANGELOG.md" Documentation = "https://github.com/edobusy/agenthold#readme" [project.scripts] agenthold = "agenthold.server:main" [tool.ruff] line-length = 88 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "UP"] [tool.mypy] strict = true python_version = "3.11" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [dependency-groups] dev = [ "mypy>=1.19.1", "pytest>=9.0.2", "pytest-asyncio>=1.3.0", "pytest-cov>=7.0.0", "ruff>=0.15.6", ]