mirror of
https://github.com/hanzoai/python-sdk.git
synced 2026-10-23 20:23:00 +00:00
Three published packages declared a console script named `hanzo`, competing with the native CLI and with each other. Measured on a clean venv at hanzo==0.4.3: `hanzo --help` printed hanzo-cli's program, not the one pkg/hanzo/README.md documents. Renamed to `hanzo-py` and `hanzo-cli` — script named after its distribution. Nothing is yanked; both packages still install and run. - pkg/hanzo 0.4.4 — summary and README now say the CLI is a native binary (curl -fsSL https://hanzo.sh | sh). Dropped the invented command tour (`hanzo chat --model gpt-4`, `hanzo node start`, `hanzo router start` on localhost:4000): none of those verbs exist in the program this package installs. Kept the three library entry points, each import-checked. - pkg/hanzo-cli 0.2.4 — `hanzo login` replaced with the native `hanzo auth login` plus its own `hanzo-cli login`. Verified `hanzo iam users list` and `hanzo kms secrets list` against the shipped v1.9.18 binary. - pkg/hanzo-node 0.1.1 — states the two meanings of the name: the `hanzo-node` COMMAND is a symlink to the Hanzo CLI; this package fetches a different binary from hanzoai/node, which is private, so the download 404s for the public. Documentation URL moved off docs.hanzo.ai/node (404) to hanzo.sh. - root README (published as `hanzoai`) — `pip install hanzo` no longer advertised as the CLI; model ids zen-coder -> zen5-coder (zen-coder is not in the catalog); "2452 operations, 1798 schemas" dropped for the spec URL, since the live surface is 1058 paths / 1465 operations / 1139 schemas. Co-authored-by: Hanzo Dev <[email protected]>
119 lines
3.0 KiB
TOML
119 lines
3.0 KiB
TOML
[project]
|
|
name = "hanzo"
|
|
version = "0.4.4"
|
|
description = "Python orchestration tools for Hanzo AI. The `hanzo` command itself is now a native binary — https://hanzo.sh"
|
|
authors = [
|
|
{name = "Hanzo AI", email = "[email protected]"},
|
|
]
|
|
dependencies = [
|
|
"click>=8.1.0",
|
|
"rich>=13.0.0",
|
|
"httpx>=0.23.0",
|
|
"pydantic>=2.0.0",
|
|
"pyyaml>=6.0",
|
|
"hanzo-cli>=0.2.0",
|
|
"hanzo-kms>=1.1.0",
|
|
]
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
keywords = ["ai", "cli", "hanzo", "agents", "llm", "mcp", "local-ai", "private-ai"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
]
|
|
|
|
# The console script is `hanzo-py`, NOT `hanzo`. `hanzo` is the native Hanzo
|
|
# CLI (curl -fsSL https://hanzo.sh | sh). Two programs on PATH under one name
|
|
# is how `hanzo login` came to mean different things to different people.
|
|
[project.scripts]
|
|
hanzo-py = "hanzo.cli:main"
|
|
|
|
[project.optional-dependencies]
|
|
all = [
|
|
"hanzoai>=1.0.0",
|
|
"hanzo-mcp>=0.7.0",
|
|
"hanzo-agents>=0.1.0",
|
|
"hanzo-network>=0.1.3",
|
|
"hanzo-memory>=1.0.0",
|
|
# "hanzo-router>=1.74.3", # TODO: Publish hanzo-router to PyPI
|
|
"hanzo-aci>=0.2.8",
|
|
"prompt-toolkit>=3.0.0",
|
|
"openai>=1.0.0",
|
|
"anthropic>=0.25.0",
|
|
"qrcode>=7.4.2",
|
|
]
|
|
ai = [
|
|
"hanzoai>=1.0.0",
|
|
"openai>=1.0.0",
|
|
"anthropic>=0.25.0",
|
|
]
|
|
router = [
|
|
# "hanzo-router>=1.74.3", # TODO: Publish hanzo-router to PyPI
|
|
]
|
|
mcp = [
|
|
"hanzo-mcp>=0.7.0",
|
|
]
|
|
agents = [
|
|
"hanzo-agents>=0.1.0",
|
|
"hanzo-network>=0.1.3",
|
|
]
|
|
dev = [
|
|
"hanzo-aci>=0.2.8",
|
|
]
|
|
interactive = [
|
|
"prompt-toolkit>=3.0.0",
|
|
"qrcode>=7.4.2",
|
|
]
|
|
|
|
# Infrastructure extras - simple names
|
|
vector = ["qdrant-client>=1.7.0"]
|
|
kv = ["redis>=5.0.0"]
|
|
documentdb = ["motor>=3.3.0", "pymongo>=4.6.0"]
|
|
storage = ["aiobotocore>=2.9.0", "botocore>=1.34.0"]
|
|
search = ["meilisearch-python-sdk>=3.0.0"]
|
|
pubsub = ["nats-py>=2.6.0"]
|
|
tasks = ["temporalio>=1.4.0"]
|
|
queues = ["redis>=5.0.0"]
|
|
cron = ["redis>=5.0.0", "croniter>=2.0.0"]
|
|
functions = ["httpx>=0.23.0"]
|
|
# All infrastructure
|
|
infra = [
|
|
"qdrant-client>=1.7.0",
|
|
"redis>=5.0.0",
|
|
"motor>=3.3.0",
|
|
"pymongo>=4.6.0",
|
|
"aiobotocore>=2.9.0",
|
|
"botocore>=1.34.0",
|
|
"meilisearch-python-sdk>=3.0.0",
|
|
"nats-py>=2.6.0",
|
|
"temporalio>=1.4.0",
|
|
"croniter>=2.0.0",
|
|
"httpx>=0.23.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://hanzo.ai"
|
|
Repository = "https://github.com/hanzoai/python-sdk"
|
|
Documentation = "https://docs.hanzo.ai/cli"
|
|
"Bug Tracker" = "https://github.com/hanzoai/python-sdk/issues"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build]
|
|
include = [
|
|
"src/hanzo",
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/hanzo"]
|