fix: remove hanzo-router from workspace and fix hanzo-cli-wrapper pyproject.toml

This commit is contained in:
2025-08-05 23:29:35 -05:00
parent 7c9b7b4cc3
commit 8bc1501491
7 changed files with 1441 additions and 372 deletions
-3
View File
@@ -16,10 +16,7 @@ Homepage = "https://hanzo.ai"
Repository = "https://github.com/hanzoai/python-sdk"
Documentation = "https://docs.hanzo.ai/cli"
[project.keywords]
keywords = ["ai", "cli", "hanzo", "agents", "llm", "mcp"]
[project.classifiers]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
-234
View File
@@ -1,234 +0,0 @@
# Hanzo Router
<h1 align="center">
🚅 Hanzo Router
</h1>
<p align="center">
<p align="center">Unified LLM Gateway for the Hanzo AI Platform</p>
<p align="center">Call all LLM APIs using the OpenAI format [Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq etc.]
<br>
</p>
<h4 align="center"><a href="https://docs.hanzo.ai/router" target="_blank">Hanzo Router Docs</a> | <a href="https://hanzo.ai/enterprise"target="_blank">Enterprise Tier</a></h4>
Hanzo Router is a unified LLM gateway based on Router v1.74.3, providing:
- **Unified Interface**: Translate inputs to 100+ provider endpoints (completion, embedding, image generation)
- **Consistent Output**: Text responses always available at `['choices'][0]['message']['content']`
- **Intelligent Routing**: Retry/fallback logic across multiple deployments
- **Enterprise Features**: Set budgets & rate limits per project, API key, or model
- **MCP Integration**: Full Model Context Protocol support for enhanced AI capabilities
## Quick Start
### Using Docker (Recommended)
```bash
# Clone the repository
git clone https://github.com/hanzoai/router
cd router
# Set up environment
export ANTHROPIC_API_KEY=your-key-here
# Optional: export OPENAI_API_KEY=...
# Start Hanzo Router
docker compose up
```
### Local Development
```bash
# Install dependencies
pip install -e ".[proxy]"
# Start the router
router --config config.yaml --port 4000
```
## Configuration
Create a `config.yaml` file:
```yaml
model_list:
- model_name: gpt-4
router_params:
model: openai/gpt-4
api_key: os.environ/OPENAI_API_KEY
- model_name: claude-3-opus
router_params:
model: anthropic/claude-3-opus-20240229
api_key: os.environ/ANTHROPIC_API_KEY
general_settings:
master_key: ${ROUTER_MASTER_KEY:-sk-router-master-key}
database_url: ${DATABASE_URL}
```
## Usage Examples
### OpenAI SDK
```python
from openai import OpenAI
client = OpenAI(
api_key="sk-router-master-key",
base_url="http://localhost:4000/v1"
)
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello!"}]
)
```
### cURL
```bash
curl -X POST http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer sk-router-master-key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-opus",
"messages": [{"role": "user", "content": "Hello!"}]
}'
```
## Features
### 🔄 Load Balancing & Failover
- Automatic retry logic with exponential backoff
- Intelligent routing between providers
- Health checks for model availability
### 💰 Cost Management
- Track spending per API key, user, or team
- Set budgets with automatic cutoffs
- Detailed cost analytics and reporting
### 🔐 Security & Auth
- API key management with scopes
- JWT authentication support
- Team-based access control
### 📊 Observability
- OpenTelemetry integration
- Prometheus metrics
- Custom callbacks for logging
### 🛡️ Guardrails
- Content moderation (Azure, OpenAI)
- PII detection and redaction
- Custom guardrail support
### 🔧 MCP Support
- Full Model Context Protocol integration
- Tool calling across all providers
- Standardized tool response format
## Supported Providers
<details>
<summary>View all 100+ supported providers</summary>
- OpenAI
- Anthropic (Claude)
- Google (Gemini, Vertex AI)
- AWS Bedrock
- Azure OpenAI
- Cohere
- Hugging Face
- Together AI
- Replicate
- Groq
- Mistral AI
- Perplexity
- DeepInfra
- AI21
- NLP Cloud
- Voyage AI
- Xinference
- FriendliAI
- And many more...
</details>
## Deployment
### Production (Docker)
```bash
docker compose -f docker-compose.prod.yml up -d
```
### Kubernetes
```bash
kubectl apply -f deploy/kubernetes/
```
### Hanzo Platform
```bash
hanzo deploy router
```
## Development
### Setup
```bash
# Clone and install
git clone https://github.com/hanzoai/router
cd router
pip install -e ".[dev]"
# Run tests
pytest tests/
# Format code
black .
ruff check --fix .
```
### Architecture
```
router/
├── router/ # Core library
│ ├── llms/ # Provider implementations
│ ├── router.py # Load balancing logic
│ └── proxy/ # API gateway server
├── tests/ # Test suite
├── docs/ # Documentation
└── enterprise/ # Enterprise features
```
## Migration from Router
Hanzo Router is fully compatible with Router. To migrate:
1. Replace Router imports with Hanzo Router
2. Update configuration files to use Hanzo branding
3. Change environment variables (optional)
## Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md).
## License
Hanzo Router is based on Router and maintains the same MIT license. See [LICENSE](LICENSE) for details.
## Support
- Documentation: https://docs.hanzo.ai/router
- GitHub Issues: https://github.com/hanzoai/router/issues
- Enterprise Support: enterprise@hanzo.ai
---
<p align="center">Built with ❤️ by Hanzo AI</p>
-115
View File
@@ -1,115 +0,0 @@
[project]
name = "hanzo-router"
version = "1.74.3"
description = "Unified LLM Gateway for Hanzo AI Platform - Call 100+ LLM APIs using the OpenAI format"
authors = [
{name = "Hanzo AI", email = "[email protected]"}
]
license = "MIT"
readme = "README.md"
homepage = "https://hanzo.ai"
repository = "https://github.com/hanzoai/router"
documentation = "https://docs.hanzo.ai/router"
keywords = ["LLM", "AI", "API Gateway", "OpenAI", "Anthropic", "Router", "Hanzo"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"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",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
requires-python = ">=3.8.1,<4.0"
dependencies = [
"httpx>=0.23.0",
"openai>=1.68.2",
"python-dotenv>=0.2.0",
"tiktoken>=0.7.0",
"importlib-metadata>=6.8.0",
"tokenizers",
"click",
"jinja2>=3.1.2",
"aiohttp>=3.10",
"pydantic>=2.5.0",
"jsonschema>=4.22.0",
]
[project.scripts]
hanzo-router = "router:run_server"
router = "router:run_server"
[project.urls]
"Bug Tracker" = "https://github.com/hanzoai/router/issues"
"Changelog" = "https://github.com/hanzoai/router/releases"
[project.optional-dependencies]
proxy = [
"gunicorn>=23.0.0",
"uvicorn>=0.29.0",
"uvloop>=0.21.0;sys_platform != 'win32'",
"fastapi>=0.115.5",
"backoff",
"pyyaml>=6.0.1",
"rq",
"orjson>=3.9.7",
"apscheduler>=3.10.4",
"fastapi-sso>=0.16.0",
"PyJWT>=2.8.0",
"python-multipart>=0.0.18",
"cryptography>=43.0.1",
"prisma==0.11.0",
"prometheus-client>=0.20.0",
"boto3>=1.34.122",
"mcp>=1.10.0;python_version>='3.10'",
"router-proxy-extras>=0.2.10",
"router-enterprise>=0.1.13",
"rich>=13.7.1",
]
extra_proxy = [
"prisma==0.11.0",
"azure-identity>=1.15.0",
"azure-keyvault-secrets>=4.8.0",
"google-cloud-kms>=2.21.3",
"resend>=0.8.0",
"prometheus-client>=0.20.0",
"boto3>=1.34.122",
"diskcache>=5.6.1",
]
redis_cache = ["redisvl"]
otel = [
"opentelemetry-api==1.25.0",
"opentelemetry-sdk==1.25.0",
"opentelemetry-exporter-otlp==1.25.0",
]
otel_latest = [
"opentelemetry-api",
"opentelemetry-sdk",
"opentelemetry-exporter-otlp",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build]
include = [
"router",
"README.md",
]
[tool.hatch.build.targets.wheel]
packages = ["router"]
[tool.hatch.metadata]
# This will use the router package from the main router repository
allow-direct-references = true
-1
View File
@@ -1 +0,0 @@
/Users/z/work/hanzo/router/router
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env python
"""Setup script for hanzo-router package."""
import os
import sys
from setuptools import setup, find_packages
# Add the main router directory to the path to ensure imports work
router_path = "/Users/z/work/hanzo/router"
if os.path.exists(router_path):
sys.path.insert(0, router_path)
setup(
name="hanzo-router",
version="1.74.3",
packages=find_packages(where=router_path),
package_dir={"": router_path},
include_package_data=True,
)
+741
View File
@@ -0,0 +1,741 @@
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
# universal: false
-e file:.
# via hanzo
-e file:pkg/hanzo-aci
# via hanzo
-e file:pkg/hanzo-agents
# via hanzo
# via hanzo-network
-e file:pkg/hanzo-cli
# via hanzo
-e file:pkg/hanzo-cli-wrapper
-e file:pkg/hanzo-mcp
# via hanzo
# via hanzo-repl
-e file:pkg/hanzo-mcp-client
# via hanzo
-e file:pkg/hanzo-memory
# via hanzo
-e file:pkg/hanzo-network
# via hanzo
-e file:pkg/hanzo-repl
# via hanzo
-e file:pkg/hanzo-router.disabled
-e file:pkg/hanzo-wrapper
# via hanzo-cli
# via hanzo-cli-wrapper
aiocache==0.12.3
# via hanzo-memory
aiofiles==24.1.0
# via hanzo-agents
aiohappyeyeballs==2.6.1
# via aiohttp
aiohttp==3.12.15
# via hanzo-router
# via litellm
aiosignal==1.4.0
# via aiohttp
annotated-types==0.7.0
# via pydantic
anyio==4.10.0
# via hanzoai
# via httpx
# via mcp
# via openai
# via sse-starlette
# via starlette
# via watchfiles
argcomplete==3.6.2
# via nox
asttokens==3.0.0
# via stack-data
asyncio==4.0.0
# via hanzo-agents
# via hanzo-network
attrs==25.3.0
# via aiohttp
# via cyclopts
# via jsonschema
# via nox
# via referencing
authlib==1.6.1
# via fastmcp
backoff==2.2.1
# via posthog
bashlex==0.18
# via hanzo-mcp
bcrypt==4.3.0
# via chromadb
# via passlib
binaryornot==0.4.4
# via hanzo-aci
build==1.3.0
# via chromadb
cachetools==6.1.0
# via google-auth
# via hanzo-aci
certifi==2025.8.3
# via httpcore
# via httpx
# via kubernetes
# via requests
cffi==1.17.1
# via cryptography
chardet==5.2.0
# via binaryornot
charset-normalizer==3.4.2
# via hanzo-aci
# via requests
chromadb==1.0.15
# via hanzo-memory
click==8.2.1
# via hanzo
# via hanzo-agents
# via hanzo-cli
# via hanzo-repl
# via hanzo-router
# via litellm
# via typer
# via uvicorn
colorama==0.4.6
# via hanzo-repl
coloredlogs==15.0.1
# via onnxruntime
colorlog==6.9.0
# via nox
cryptography==45.0.6
# via authlib
# via python-jose
cyclopts==3.22.5
# via fastmcp
decorator==5.2.1
# via ipython
dependency-groups==1.3.1
# via nox
deprecation==2.1.0
# via lancedb
dirty-equals==0.9.0
distlib==0.4.0
# via virtualenv
distro==1.9.0
# via hanzoai
# via openai
# via posthog
dnspython==2.7.0
# via email-validator
docstring-parser==0.17.0
# via cyclopts
docutils==0.22
# via rich-rst
durationpy==0.10
# via kubernetes
ecdsa==0.19.1
# via python-jose
email-validator==2.2.0
# via pydantic
exceptiongroup==1.3.0
# via fastmcp
executing==2.2.0
# via stack-data
fastapi==0.116.1
# via hanzo-memory
fastembed==0.7.1
# via hanzo-memory
fastjsonschema==2.21.1
# via nbformat
fastmcp==2.11.1
# via hanzo-mcp
# via hanzo-mcp-client
ffind==1.6.1
# via hanzo-mcp
filelock==3.18.0
# via huggingface-hub
# via torch
# via transformers
# via virtualenv
flake8==7.3.0
# via hanzo-aci
flatbuffers==25.2.10
# via onnxruntime
frozenlist==1.7.0
# via aiohttp
# via aiosignal
fsspec==2025.7.0
# via huggingface-hub
# via torch
gitdb==4.0.12
# via gitpython
gitpython==3.1.45
# via hanzo-aci
google-auth==1.6.3
# via kubernetes
googleapis-common-protos==1.70.0
# via opentelemetry-exporter-otlp-proto-grpc
grep-ast==0.9.0
# via hanzo-aci
# via hanzo-mcp
grpcio==1.74.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
h11==0.16.0
# via httpcore
# via uvicorn
hf-xet==1.1.7
# via huggingface-hub
httpcore==1.0.9
# via httpx
httptools==0.6.4
# via uvicorn
httpx==0.28.1
# via chromadb
# via fastmcp
# via hanzo-cli
# via hanzo-mcp
# via hanzo-memory
# via hanzo-network
# via hanzo-router
# via hanzoai
# via litellm
# via mcp
# via openai
# via respx
httpx-sse==0.4.1
# via mcp
huggingface-hub==0.34.3
# via fastembed
# via sentence-transformers
# via tokenizers
# via transformers
humanfriendly==10.0
# via coloredlogs
idna==3.10
# via anyio
# via email-validator
# via httpx
# via requests
# via yarl
importlib-metadata==8.7.0
# via hanzo-router
# via litellm
# via opentelemetry-api
importlib-resources==6.5.2
# via chromadb
iniconfig==2.1.0
# via pytest
ipython==9.4.0
# via hanzo-repl
ipython-pygments-lexers==1.1.1
# via ipython
isodate==0.7.2
# via openapi-core
jaraco-classes==3.4.0
# via keyring
jaraco-context==6.0.1
# via keyring
jaraco-functools==4.2.1
# via keyring
jedi==0.19.2
# via ipython
jinja2==3.1.6
# via hanzo-router
# via litellm
# via torch
jiter==0.10.0
# via openai
joblib==1.5.1
# via scikit-learn
jsonschema==4.25.0
# via chromadb
# via hanzo-router
# via litellm
# via mcp
# via nbformat
# via openapi-core
# via openapi-schema-validator
# via openapi-spec-validator
jsonschema-path==0.3.4
# via openapi-core
# via openapi-spec-validator
jsonschema-specifications==2025.4.1
# via jsonschema
# via openapi-schema-validator
jupyter-core==5.8.1
# via nbformat
keyring==25.6.0
# via hanzo-mcp
kubernetes==33.1.0
# via chromadb
lancedb==0.24.2
# via hanzo-memory
lazy-object-proxy==1.11.0
# via openapi-spec-validator
libtmux==0.46.2
# via hanzo-mcp
linkify-it-py==2.0.3
# via markdown-it-py
litellm==1.75.0
# via hanzo-aci
# via hanzo-mcp
# via hanzo-memory
# via hanzo-repl
loguru==0.7.3
# via fastembed
markdown-it-py==3.0.0
# via mdit-py-plugins
# via rich
# via textual
markupsafe==3.0.2
# via jinja2
# via werkzeug
matplotlib-inline==0.1.7
# via ipython
mccabe==0.7.0
# via flake8
mcp==1.12.3
# via fastmcp
# via hanzo-mcp
# via hanzo-mcp-client
# via hanzo-memory
mdit-py-plugins==0.4.2
# via markdown-it-py
mdurl==0.1.2
# via markdown-it-py
mmh3==5.2.0
# via chromadb
# via fastembed
more-itertools==10.7.0
# via jaraco-classes
# via jaraco-functools
# via openapi-core
mpmath==1.3.0
# via sympy
multidict==6.6.3
# via aiohttp
# via yarl
mypy==1.17.1
mypy-extensions==1.1.0
# via mypy
nbformat==5.10.4
# via hanzo-mcp
nest-asyncio==1.6.0
networkx==3.5
# via hanzo-aci
# via torch
nodeenv==1.9.1
# via pyright
nox==2025.5.1
numpy==2.3.2
# via chromadb
# via fastembed
# via hanzo-aci
# via hanzo-memory
# via lancedb
# via onnxruntime
# via pandas
# via scikit-learn
# via scipy
# via transformers
oauthlib==3.3.1
# via kubernetes
# via requests-oauthlib
onnxruntime==1.22.1
# via chromadb
# via fastembed
openai==1.99.1
# via hanzo-mcp
# via hanzo-router
# via litellm
openapi-core==0.19.5
# via fastmcp
openapi-pydantic==0.5.1
# via fastmcp
openapi-schema-validator==0.6.3
# via openapi-core
# via openapi-spec-validator
openapi-spec-validator==0.7.2
# via openapi-core
opentelemetry-api==1.36.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
# via opentelemetry-sdk
# via opentelemetry-semantic-conventions
opentelemetry-exporter-otlp-proto-common==1.36.0
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-grpc==1.36.0
# via chromadb
opentelemetry-proto==1.36.0
# via opentelemetry-exporter-otlp-proto-common
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-sdk==1.36.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-semantic-conventions==0.57b0
# via opentelemetry-sdk
orjson==3.11.1
# via chromadb
# via hanzo-memory
overrides==7.7.0
# via chromadb
# via lancedb
packaging==25.0
# via build
# via dependency-groups
# via deprecation
# via huggingface-hub
# via lancedb
# via nox
# via onnxruntime
# via pytest
# via transformers
pandas==2.3.1
# via hanzo-aci
parse==1.20.2
# via openapi-core
parso==0.8.4
# via jedi
passlib==1.7.4
# via hanzo-memory
pathable==0.4.4
# via jsonschema-path
pathspec==0.12.1
# via grep-ast
# via mypy
pexpect==4.9.0
# via ipython
pillow==11.3.0
# via fastembed
# via sentence-transformers
platformdirs==4.3.8
# via jupyter-core
# via textual
# via virtualenv
pluggy==1.6.0
# via pytest
polars==1.32.0
# via hanzo-memory
posthog==5.4.0
# via chromadb
prometheus-client==0.22.1
# via hanzo-agents
prompt-toolkit==3.0.51
# via hanzo-cli
# via hanzo-repl
# via ipython
propcache==0.3.2
# via aiohttp
# via yarl
protobuf==6.31.1
# via googleapis-common-protos
# via onnxruntime
# via opentelemetry-proto
psutil==7.0.0
# via hanzo-mcp
ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.3
# via stack-data
py-rust-stemmers==0.1.5
# via fastembed
pyarrow==21.0.0
# via lancedb
pyasn1==0.6.1
# via pyasn1-modules
# via python-jose
# via rsa
pyasn1-modules==0.4.2
# via google-auth
pybase64==1.4.2
# via chromadb
pycodestyle==2.14.0
# via flake8
pycparser==2.22
# via cffi
pydantic==2.11.7
# via chromadb
# via fastapi
# via fastmcp
# via hanzo-agents
# via hanzo-cli
# via hanzo-mcp
# via hanzo-mcp-client
# via hanzo-memory
# via hanzo-network
# via hanzo-router
# via hanzoai
# via lancedb
# via litellm
# via mcp
# via openai
# via openapi-pydantic
# via pydantic-settings
pydantic-core==2.33.2
# via pydantic
pydantic-settings==2.10.1
# via hanzo-mcp
# via hanzo-memory
# via mcp
pyflakes==3.4.0
# via flake8
pygments==2.19.2
# via hanzo-repl
# via ipython
# via ipython-pygments-lexers
# via pytest
# via rich
# via textual
pyperclip==1.9.0
# via fastmcp
pypika==0.48.9
# via chromadb
pyproject-hooks==1.2.0
# via build
pyright==1.1.403
pytest==8.4.1
# via pytest-asyncio
pytest-asyncio==1.1.0
python-dateutil==2.9.0.post0
# via kubernetes
# via pandas
# via posthog
# via time-machine
python-dotenv==1.1.1
# via fastmcp
# via hanzo-mcp
# via hanzo-repl
# via hanzo-router
# via litellm
# via pydantic-settings
# via uvicorn
python-jose==3.5.0
# via hanzo-memory
python-multipart==0.0.20
# via hanzo-memory
# via mcp
pytz==2025.2
# via pandas
pyyaml==6.0.2
# via chromadb
# via hanzo-agents
# via hanzo-cli
# via huggingface-hub
# via jsonschema-path
# via kubernetes
# via transformers
# via uvicorn
redis==6.3.0
# via hanzo-memory
referencing==0.36.2
# via jsonschema
# via jsonschema-path
# via jsonschema-specifications
regex==2025.7.34
# via tiktoken
# via transformers
requests==2.32.4
# via fastembed
# via huggingface-hub
# via jsonschema-path
# via kubernetes
# via posthog
# via requests-oauthlib
# via tiktoken
# via transformers
requests-oauthlib==2.0.0
# via kubernetes
respx==0.22.0
rfc3339-validator==0.1.4
# via openapi-schema-validator
rich==14.1.0
# via chromadb
# via cyclopts
# via fastmcp
# via hanzo
# via hanzo-agents
# via hanzo-cli
# via hanzo-memory
# via hanzo-network
# via hanzo-repl
# via rich-rst
# via textual
# via typer
rich-rst==1.3.1
# via cyclopts
rpds-py==0.26.0
# via jsonschema
# via referencing
rsa==4.9.1
# via google-auth
# via python-jose
ruff==0.12.7
safetensors==0.5.3
# via transformers
scikit-learn==1.7.1
# via hanzo-memory
# via sentence-transformers
scipy==1.16.1
# via hanzo-aci
# via scikit-learn
# via sentence-transformers
sentence-transformers==5.0.0
# via hanzo-memory
setuptools==80.9.0
# via torch
shellingham==1.5.4
# via typer
six==1.17.0
# via ecdsa
# via google-auth
# via kubernetes
# via posthog
# via python-dateutil
# via rfc3339-validator
smmap==5.0.2
# via gitdb
sniffio==1.3.1
# via anyio
# via hanzoai
# via openai
sse-starlette==3.0.2
# via mcp
stack-data==0.6.3
# via ipython
starlette==0.47.2
# via fastapi
# via mcp
structlog==25.4.0
# via hanzo-agents
# via hanzo-memory
sympy==1.14.0
# via onnxruntime
# via torch
tenacity==9.1.2
# via chromadb
# via hanzo-memory
textual==5.2.0
# via hanzo-repl
threadpoolctl==3.6.0
# via scikit-learn
tiktoken==0.10.0
# via hanzo-memory
# via hanzo-router
# via litellm
time-machine==2.17.0
tokenizers==0.21.4
# via chromadb
# via fastembed
# via hanzo-router
# via litellm
# via transformers
torch==2.7.1
# via sentence-transformers
tqdm==4.67.1
# via chromadb
# via fastembed
# via huggingface-hub
# via lancedb
# via openai
# via sentence-transformers
# via transformers
traitlets==5.14.3
# via ipython
# via jupyter-core
# via matplotlib-inline
# via nbformat
transformers==4.55.0
# via sentence-transformers
tree-sitter==0.25.1
# via hanzo-aci
# via tree-sitter-language-pack
tree-sitter-c-sharp==0.23.1
# via tree-sitter-language-pack
tree-sitter-embedded-template==0.23.2
# via tree-sitter-language-pack
tree-sitter-javascript==0.23.1
# via hanzo-aci
tree-sitter-language-pack==0.9.0
# via grep-ast
tree-sitter-python==0.23.6
# via hanzo-aci
tree-sitter-ruby==0.23.1
# via hanzo-aci
tree-sitter-typescript==0.23.2
# via hanzo-aci
tree-sitter-yaml==0.7.1
# via tree-sitter-language-pack
typer==0.16.0
# via chromadb
# via hanzo-cli
typing-extensions==4.14.1
# via aiosignal
# via anyio
# via chromadb
# via exceptiongroup
# via fastapi
# via hanzo-agents
# via hanzo-mcp
# via hanzoai
# via huggingface-hub
# via mypy
# via openai
# via openapi-core
# via opentelemetry-api
# via opentelemetry-exporter-otlp-proto-grpc
# via opentelemetry-sdk
# via opentelemetry-semantic-conventions
# via pydantic
# via pydantic-core
# via pyright
# via referencing
# via sentence-transformers
# via starlette
# via textual
# via torch
# via typer
# via typing-inspection
typing-inspection==0.4.1
# via pydantic
# via pydantic-settings
tzdata==2025.2
# via pandas
uc-micro-py==1.0.3
# via linkify-it-py
urllib3==2.5.0
# via kubernetes
# via requests
uvicorn==0.35.0
# via chromadb
# via hanzo-mcp
# via hanzo-memory
# via mcp
uvloop==0.21.0
# via uvicorn
virtualenv==20.33.1
# via nox
watchdog==6.0.0
# via hanzo-mcp
watchfiles==1.1.0
# via uvicorn
wcwidth==0.2.13
# via prompt-toolkit
websocket-client==1.8.0
# via kubernetes
websockets==15.0.1
# via uvicorn
werkzeug==3.1.1
# via openapi-core
whatthepatch==1.0.7
# via hanzo-aci
yarl==1.20.1
# via aiohttp
zipp==3.23.0
# via importlib-metadata
+700
View File
@@ -0,0 +1,700 @@
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
# universal: false
-e file:.
# via hanzo
-e file:pkg/hanzo-aci
# via hanzo
-e file:pkg/hanzo-agents
# via hanzo
# via hanzo-network
-e file:pkg/hanzo-cli
# via hanzo
-e file:pkg/hanzo-cli-wrapper
-e file:pkg/hanzo-mcp
# via hanzo
# via hanzo-repl
-e file:pkg/hanzo-mcp-client
# via hanzo
-e file:pkg/hanzo-memory
# via hanzo
-e file:pkg/hanzo-network
# via hanzo
-e file:pkg/hanzo-repl
# via hanzo
-e file:pkg/hanzo-router.disabled
-e file:pkg/hanzo-wrapper
# via hanzo-cli
# via hanzo-cli-wrapper
aiocache==0.12.3
# via hanzo-memory
aiofiles==24.1.0
# via hanzo-agents
aiohappyeyeballs==2.6.1
# via aiohttp
aiohttp==3.12.15
# via hanzo-router
# via litellm
aiosignal==1.4.0
# via aiohttp
annotated-types==0.7.0
# via pydantic
anyio==4.10.0
# via hanzoai
# via httpx
# via mcp
# via openai
# via sse-starlette
# via starlette
# via watchfiles
asttokens==3.0.0
# via stack-data
asyncio==4.0.0
# via hanzo-agents
# via hanzo-network
attrs==25.3.0
# via aiohttp
# via cyclopts
# via jsonschema
# via referencing
authlib==1.6.1
# via fastmcp
backoff==2.2.1
# via posthog
bashlex==0.18
# via hanzo-mcp
bcrypt==4.3.0
# via chromadb
# via passlib
binaryornot==0.4.4
# via hanzo-aci
build==1.3.0
# via chromadb
cachetools==6.1.0
# via google-auth
# via hanzo-aci
certifi==2025.8.3
# via httpcore
# via httpx
# via kubernetes
# via requests
cffi==1.17.1
# via cryptography
chardet==5.2.0
# via binaryornot
charset-normalizer==3.4.2
# via hanzo-aci
# via requests
chromadb==1.0.15
# via hanzo-memory
click==8.2.1
# via hanzo
# via hanzo-agents
# via hanzo-cli
# via hanzo-repl
# via hanzo-router
# via litellm
# via typer
# via uvicorn
colorama==0.4.6
# via hanzo-repl
coloredlogs==15.0.1
# via onnxruntime
cryptography==45.0.6
# via authlib
# via python-jose
cyclopts==3.22.5
# via fastmcp
decorator==5.2.1
# via ipython
deprecation==2.1.0
# via lancedb
distro==1.9.0
# via hanzoai
# via openai
# via posthog
dnspython==2.7.0
# via email-validator
docstring-parser==0.17.0
# via cyclopts
docutils==0.22
# via rich-rst
durationpy==0.10
# via kubernetes
ecdsa==0.19.1
# via python-jose
email-validator==2.2.0
# via pydantic
exceptiongroup==1.3.0
# via fastmcp
executing==2.2.0
# via stack-data
fastapi==0.116.1
# via hanzo-memory
fastembed==0.7.1
# via hanzo-memory
fastjsonschema==2.21.1
# via nbformat
fastmcp==2.11.1
# via hanzo-mcp
# via hanzo-mcp-client
ffind==1.6.1
# via hanzo-mcp
filelock==3.18.0
# via huggingface-hub
# via torch
# via transformers
flake8==7.3.0
# via hanzo-aci
flatbuffers==25.2.10
# via onnxruntime
frozenlist==1.7.0
# via aiohttp
# via aiosignal
fsspec==2025.7.0
# via huggingface-hub
# via torch
gitdb==4.0.12
# via gitpython
gitpython==3.1.45
# via hanzo-aci
google-auth==1.6.3
# via kubernetes
googleapis-common-protos==1.70.0
# via opentelemetry-exporter-otlp-proto-grpc
grep-ast==0.9.0
# via hanzo-aci
# via hanzo-mcp
grpcio==1.74.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
h11==0.16.0
# via httpcore
# via uvicorn
hf-xet==1.1.7
# via huggingface-hub
httpcore==1.0.9
# via httpx
httptools==0.6.4
# via uvicorn
httpx==0.28.1
# via chromadb
# via fastmcp
# via hanzo-cli
# via hanzo-mcp
# via hanzo-memory
# via hanzo-network
# via hanzo-router
# via hanzoai
# via litellm
# via mcp
# via openai
httpx-sse==0.4.1
# via mcp
huggingface-hub==0.34.3
# via fastembed
# via sentence-transformers
# via tokenizers
# via transformers
humanfriendly==10.0
# via coloredlogs
idna==3.10
# via anyio
# via email-validator
# via httpx
# via requests
# via yarl
importlib-metadata==8.7.0
# via hanzo-router
# via litellm
# via opentelemetry-api
importlib-resources==6.5.2
# via chromadb
ipython==9.4.0
# via hanzo-repl
ipython-pygments-lexers==1.1.1
# via ipython
isodate==0.7.2
# via openapi-core
jaraco-classes==3.4.0
# via keyring
jaraco-context==6.0.1
# via keyring
jaraco-functools==4.2.1
# via keyring
jedi==0.19.2
# via ipython
jinja2==3.1.6
# via hanzo-router
# via litellm
# via torch
jiter==0.10.0
# via openai
joblib==1.5.1
# via scikit-learn
jsonschema==4.25.0
# via chromadb
# via hanzo-router
# via litellm
# via mcp
# via nbformat
# via openapi-core
# via openapi-schema-validator
# via openapi-spec-validator
jsonschema-path==0.3.4
# via openapi-core
# via openapi-spec-validator
jsonschema-specifications==2025.4.1
# via jsonschema
# via openapi-schema-validator
jupyter-core==5.8.1
# via nbformat
keyring==25.6.0
# via hanzo-mcp
kubernetes==33.1.0
# via chromadb
lancedb==0.24.2
# via hanzo-memory
lazy-object-proxy==1.11.0
# via openapi-spec-validator
libtmux==0.46.2
# via hanzo-mcp
linkify-it-py==2.0.3
# via markdown-it-py
litellm==1.75.0
# via hanzo-aci
# via hanzo-mcp
# via hanzo-memory
# via hanzo-repl
loguru==0.7.3
# via fastembed
markdown-it-py==3.0.0
# via mdit-py-plugins
# via rich
# via textual
markupsafe==3.0.2
# via jinja2
# via werkzeug
matplotlib-inline==0.1.7
# via ipython
mccabe==0.7.0
# via flake8
mcp==1.12.3
# via fastmcp
# via hanzo-mcp
# via hanzo-mcp-client
# via hanzo-memory
mdit-py-plugins==0.4.2
# via markdown-it-py
mdurl==0.1.2
# via markdown-it-py
mmh3==5.2.0
# via chromadb
# via fastembed
more-itertools==10.7.0
# via jaraco-classes
# via jaraco-functools
# via openapi-core
mpmath==1.3.0
# via sympy
multidict==6.6.3
# via aiohttp
# via yarl
nbformat==5.10.4
# via hanzo-mcp
networkx==3.5
# via hanzo-aci
# via torch
numpy==2.3.2
# via chromadb
# via fastembed
# via hanzo-aci
# via hanzo-memory
# via lancedb
# via onnxruntime
# via pandas
# via scikit-learn
# via scipy
# via transformers
oauthlib==3.3.1
# via kubernetes
# via requests-oauthlib
onnxruntime==1.22.1
# via chromadb
# via fastembed
openai==1.99.1
# via hanzo-mcp
# via hanzo-router
# via litellm
openapi-core==0.19.5
# via fastmcp
openapi-pydantic==0.5.1
# via fastmcp
openapi-schema-validator==0.6.3
# via openapi-core
# via openapi-spec-validator
openapi-spec-validator==0.7.2
# via openapi-core
opentelemetry-api==1.36.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
# via opentelemetry-sdk
# via opentelemetry-semantic-conventions
opentelemetry-exporter-otlp-proto-common==1.36.0
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-grpc==1.36.0
# via chromadb
opentelemetry-proto==1.36.0
# via opentelemetry-exporter-otlp-proto-common
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-sdk==1.36.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-semantic-conventions==0.57b0
# via opentelemetry-sdk
orjson==3.11.1
# via chromadb
# via hanzo-memory
overrides==7.7.0
# via chromadb
# via lancedb
packaging==25.0
# via build
# via deprecation
# via huggingface-hub
# via lancedb
# via onnxruntime
# via transformers
pandas==2.3.1
# via hanzo-aci
parse==1.20.2
# via openapi-core
parso==0.8.4
# via jedi
passlib==1.7.4
# via hanzo-memory
pathable==0.4.4
# via jsonschema-path
pathspec==0.12.1
# via grep-ast
pexpect==4.9.0
# via ipython
pillow==11.3.0
# via fastembed
# via sentence-transformers
platformdirs==4.3.8
# via jupyter-core
# via textual
polars==1.32.0
# via hanzo-memory
posthog==5.4.0
# via chromadb
prometheus-client==0.22.1
# via hanzo-agents
prompt-toolkit==3.0.51
# via hanzo-cli
# via hanzo-repl
# via ipython
propcache==0.3.2
# via aiohttp
# via yarl
protobuf==6.31.1
# via googleapis-common-protos
# via onnxruntime
# via opentelemetry-proto
psutil==7.0.0
# via hanzo-mcp
ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.3
# via stack-data
py-rust-stemmers==0.1.5
# via fastembed
pyarrow==21.0.0
# via lancedb
pyasn1==0.6.1
# via pyasn1-modules
# via python-jose
# via rsa
pyasn1-modules==0.4.2
# via google-auth
pybase64==1.4.2
# via chromadb
pycodestyle==2.14.0
# via flake8
pycparser==2.22
# via cffi
pydantic==2.11.7
# via chromadb
# via fastapi
# via fastmcp
# via hanzo-agents
# via hanzo-cli
# via hanzo-mcp
# via hanzo-mcp-client
# via hanzo-memory
# via hanzo-network
# via hanzo-router
# via hanzoai
# via lancedb
# via litellm
# via mcp
# via openai
# via openapi-pydantic
# via pydantic-settings
pydantic-core==2.33.2
# via pydantic
pydantic-settings==2.10.1
# via hanzo-mcp
# via hanzo-memory
# via mcp
pyflakes==3.4.0
# via flake8
pygments==2.19.2
# via hanzo-repl
# via ipython
# via ipython-pygments-lexers
# via rich
# via textual
pyperclip==1.9.0
# via fastmcp
pypika==0.48.9
# via chromadb
pyproject-hooks==1.2.0
# via build
python-dateutil==2.9.0.post0
# via kubernetes
# via pandas
# via posthog
python-dotenv==1.1.1
# via fastmcp
# via hanzo-mcp
# via hanzo-repl
# via hanzo-router
# via litellm
# via pydantic-settings
# via uvicorn
python-jose==3.5.0
# via hanzo-memory
python-multipart==0.0.20
# via hanzo-memory
# via mcp
pytz==2025.2
# via pandas
pyyaml==6.0.2
# via chromadb
# via hanzo-agents
# via hanzo-cli
# via huggingface-hub
# via jsonschema-path
# via kubernetes
# via transformers
# via uvicorn
redis==6.3.0
# via hanzo-memory
referencing==0.36.2
# via jsonschema
# via jsonschema-path
# via jsonschema-specifications
regex==2025.7.34
# via tiktoken
# via transformers
requests==2.32.4
# via fastembed
# via huggingface-hub
# via jsonschema-path
# via kubernetes
# via posthog
# via requests-oauthlib
# via tiktoken
# via transformers
requests-oauthlib==2.0.0
# via kubernetes
rfc3339-validator==0.1.4
# via openapi-schema-validator
rich==14.1.0
# via chromadb
# via cyclopts
# via fastmcp
# via hanzo
# via hanzo-agents
# via hanzo-cli
# via hanzo-memory
# via hanzo-network
# via hanzo-repl
# via rich-rst
# via textual
# via typer
rich-rst==1.3.1
# via cyclopts
rpds-py==0.26.0
# via jsonschema
# via referencing
rsa==4.9.1
# via google-auth
# via python-jose
safetensors==0.5.3
# via transformers
scikit-learn==1.7.1
# via hanzo-memory
# via sentence-transformers
scipy==1.16.1
# via hanzo-aci
# via scikit-learn
# via sentence-transformers
sentence-transformers==5.0.0
# via hanzo-memory
setuptools==80.9.0
# via torch
shellingham==1.5.4
# via typer
six==1.17.0
# via ecdsa
# via google-auth
# via kubernetes
# via posthog
# via python-dateutil
# via rfc3339-validator
smmap==5.0.2
# via gitdb
sniffio==1.3.1
# via anyio
# via hanzoai
# via openai
sse-starlette==3.0.2
# via mcp
stack-data==0.6.3
# via ipython
starlette==0.47.2
# via fastapi
# via mcp
structlog==25.4.0
# via hanzo-agents
# via hanzo-memory
sympy==1.14.0
# via onnxruntime
# via torch
tenacity==9.1.2
# via chromadb
# via hanzo-memory
textual==5.2.0
# via hanzo-repl
threadpoolctl==3.6.0
# via scikit-learn
tiktoken==0.10.0
# via hanzo-memory
# via hanzo-router
# via litellm
tokenizers==0.21.4
# via chromadb
# via fastembed
# via hanzo-router
# via litellm
# via transformers
torch==2.7.1
# via sentence-transformers
tqdm==4.67.1
# via chromadb
# via fastembed
# via huggingface-hub
# via lancedb
# via openai
# via sentence-transformers
# via transformers
traitlets==5.14.3
# via ipython
# via jupyter-core
# via matplotlib-inline
# via nbformat
transformers==4.55.0
# via sentence-transformers
tree-sitter==0.25.1
# via hanzo-aci
# via tree-sitter-language-pack
tree-sitter-c-sharp==0.23.1
# via tree-sitter-language-pack
tree-sitter-embedded-template==0.23.2
# via tree-sitter-language-pack
tree-sitter-javascript==0.23.1
# via hanzo-aci
tree-sitter-language-pack==0.9.0
# via grep-ast
tree-sitter-python==0.23.6
# via hanzo-aci
tree-sitter-ruby==0.23.1
# via hanzo-aci
tree-sitter-typescript==0.23.2
# via hanzo-aci
tree-sitter-yaml==0.7.1
# via tree-sitter-language-pack
typer==0.16.0
# via chromadb
# via hanzo-cli
typing-extensions==4.14.1
# via aiosignal
# via anyio
# via chromadb
# via exceptiongroup
# via fastapi
# via hanzo-agents
# via hanzo-mcp
# via hanzoai
# via huggingface-hub
# via openai
# via openapi-core
# via opentelemetry-api
# via opentelemetry-exporter-otlp-proto-grpc
# via opentelemetry-sdk
# via opentelemetry-semantic-conventions
# via pydantic
# via pydantic-core
# via referencing
# via sentence-transformers
# via starlette
# via textual
# via torch
# via typer
# via typing-inspection
typing-inspection==0.4.1
# via pydantic
# via pydantic-settings
tzdata==2025.2
# via pandas
uc-micro-py==1.0.3
# via linkify-it-py
urllib3==2.5.0
# via kubernetes
# via requests
uvicorn==0.35.0
# via chromadb
# via hanzo-mcp
# via hanzo-memory
# via mcp
uvloop==0.21.0
# via uvicorn
watchdog==6.0.0
# via hanzo-mcp
watchfiles==1.1.0
# via uvicorn
wcwidth==0.2.13
# via prompt-toolkit
websocket-client==1.8.0
# via kubernetes
websockets==15.0.1
# via uvicorn
werkzeug==3.1.1
# via openapi-core
whatthepatch==1.0.7
# via hanzo-aci
yarl==1.20.1
# via aiohttp
zipp==3.23.0
# via importlib-metadata