[project] name = "hanzo-dev" version = "0.1.0" description = "Interactive dev environment for Hanzo AI - Like Claude Code in your terminal" authors = [ {name = "Hanzo AI", email = "dev@hanzo.ai"}, ] readme = "README.md" license = {text = "Apache-2.0"} classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] keywords = ["dev", "mcp", "ai", "llm", "hanzo", "claude", "interactive"] requires-python = ">=3.12" dependencies = [ "hanzoai>=2.2.0", "hanzo-mcp>=0.1.0", "rich>=13.0.0", "prompt-toolkit>=3.0.0", "click>=8.0.0", "python-dotenv>=1.0.0", "hanzo-llm>=1.0.0", "colorama>=0.4.6", "pygments>=2.17.0", "ipython>=8.0.0", "textual>=0.41.0", ] [project.urls] Homepage = "https://hanzo.ai" Documentation = "https://docs.hanzo.ai/dev" Repository = "https://github.com/hanzoai/python-sdk" Issues = "https://github.com/hanzoai/python-sdk/issues" [project.optional-dependencies] lsp = ["hanzo-lsp>=0.1.0"] hooks = ["hanzo-hooks>=0.1.0"] sandbox = ["hanzo-sandbox>=0.1.0"] voice = [ "speechrecognition>=3.10.0", "pyttsx3>=2.90", "sounddevice>=0.4.6", "numpy>=1.24.0", # pyaudio is optional and requires system dependencies # Install with: pip install pyaudio (requires portaudio system library) ] dev = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "pytest-cov>=4.0.0", "black>=23.0.0", "ruff>=0.1.0", "mypy>=1.0.0", ] [project.scripts] hanzo-dev = "hanzo_dev.cli:main" hanzo-dev-ipython = "hanzo_dev.ipython_repl:main" hanzo-dev-tui = "hanzo_dev.textual_repl:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build] include = [ "src/hanzo_dev", "README.md", ] [tool.hatch.build.targets.wheel] packages = ["src/hanzo_dev"] [tool.ruff] line-length = 120 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "N", "S", "A", "C4", "T20", "RET", "SIM", "ARG"] ignore = ["E501", "S101"] [tool.mypy] python_version = "3.12" strict = true warn_return_any = true warn_unused_configs = true [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["src"] asyncio_mode = "auto"