Files
zeekayandHanzo Dev ca8a8eb4b7 The SDKs here are the ones that shipped, under this repo's module path
hanzoai/agents carried the reconciled Go, TypeScript and Python SDKs:
memory in Base with one record schema across all three, scope ids
resolved the way the control plane resolves them, /v1 paths, one address
per vector operation, agents that start under Express 5, and suites that
run (Go green, 92 TypeScript, 527 Python). They come home here.

The Go module is github.com/hanzoai/agent/sdk/go, because the path has to
name the repository it is fetched from. The TypeScript manifest names its
versions directly and keeps npm's lockfile; this repo is not a pnpm
workspace. Versions are 0.2.10.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-11 12:12:32 -07:00

97 lines
2.8 KiB
TOML

[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "hanzo_agents"
version = "0.2.10"
description = "Python SDK for the Hanzo Agents control plane"
readme = "README.md"
license = {text = "Apache-2.0"}
authors = [
{name = "Hanzo Agents Maintainers"}
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"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",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
]
requires-python = ">=3.8,<3.14"
dependencies = [
"fastapi",
"uvicorn",
"requests>=2.28",
"pydantic>=2.0",
"hanzo-llm>=1.0.0",
"psutil",
"PyYAML>=6.0",
"aiohttp>=3.8",
"websockets",
"fal-client>=0.5.0"
]
keywords = ["hanzo_agents", "sdk", "agents"]
[project.urls]
Homepage = "https://github.com/hanzoai/agent"
Documentation = "https://github.com/hanzoai/agent/tree/main/docs"
Issues = "https://github.com/hanzoai/agent/issues"
[tool.setuptools.packages.find]
where = ["."]
include = ["hanzo_agents*"]
exclude = ["tests*", "examples*"]
[project.optional-dependencies]
web3 = [
"eth-account>=0.11,<1",
]
dev = [
"hanzo-agents[web3]",
"pytest>=7.4,<9",
"pytest-asyncio>=0.21,<0.24",
"pytest-cov>=4.1,<5",
"responses>=0.23,<0.26",
"respx>=0.20,<0.22",
"freezegun>=1.2,<2",
"syrupy>=4,<5",
"hypothesis>=6.88,<7",
"pytest-socket>=0.6,<0.8",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"smoke: fast sanity checks",
"functional: end-to-end behavior within SDK boundaries",
"contract: API/interface stability tests",
"unit: isolated unit tests",
"integration: tests that can touch network/services",
"mcp: tests that exercise MCP/network interactions"
]
addopts = "-ra -q -m \"not mcp\" --strict-markers --strict-config --cov=hanzo_agents.client --cov=hanzo_agents.agent_field_handler --cov=hanzo_agents.execution_context --cov=hanzo_agents.execution_state --cov=hanzo_agents.memory --cov=hanzo_agents.rate_limiter --cov=hanzo_agents.result_cache --cov-report=term-missing:skip-covered"
asyncio_mode = "auto"
[tool.coverage.run]
source = ["hanzo_agents"]
omit = [
"hanzo_agents/agent_mcp.py",
"hanzo_agents/dynamic_skills.py",
"hanzo_agents/mcp_client.py",
"hanzo_agents/mcp_manager.py",
"hanzo_agents/mcp_stdio_bridge.py",
"hanzo_agents/logger.py",
"hanzo_agents/types.py",
]