mirror of
https://github.com/hanzoai/python-sdk.git
synced 2026-10-26 11:49:36 +00:00
HIP-0300 tools serialize results to JSON text, which flattened images into useless base64-in-text. Add a ToolImage value type + one converter in BaseTool.register: any ToolImage anywhere in a result becomes a real mcp.types.ImageContent block; text-only results stay byte-for-byte JSON. Emitters wired: fs read of image files, browser screenshots (bidi+playwright). This gives hanzo-mcp vision parity with zai-mcp — an agent with native vision (Claude) sees pixels directly, no per-task vision tool needed. Also decomplect the core-package collision that caused this class of bug: hanzo-tools-core shipped a DUPLICATE hanzo_tools/core/ that nondeterministically shadowed canonical hanzo-tools (dropping ToolImage, the sophisticated register, etc. — same shadow class as the 0.3.0 error-reexport gap). Finish the 'merge core into hanzo-tools' refactor: move id_tool into hanzo-tools, make hanzo-tools-core a pure empty metapackage. Now ONE package owns hanzo_tools.core. Versions: hanzo-tools 0.3.2, -core 0.3.1 (shim), -browser 0.5.9, -fs 0.3.4, hanzo-mcp 0.15.12 (floors bumped). Verified: fs read PNG -> [text, image]; fs stat -> [text]; 29 tools intact; 9 tests pass.
44 lines
1.1 KiB
TOML
44 lines
1.1 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "hanzo-tools-fs"
|
|
version = "0.3.4"
|
|
description = "Filesystem tools for Hanzo AI - read, write, edit, search, find"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
license = { text = "MIT" }
|
|
authors = [{ name = "Hanzo Industries Inc", email = "[email protected]" }]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
]
|
|
keywords = ["hanzo", "tools", "filesystem", "mcp", "ai"]
|
|
dependencies = [
|
|
"hanzo-async>=0.1.0", # Unified async I/O with uvloop
|
|
"grep-ast>=0.8.1",
|
|
"ffind>=1.3.0",
|
|
"watchdog>=6.0.0",
|
|
"mcp>=1.25.0",
|
|
"fastmcp>=2.14.1",
|
|
"pydantic>=2.12.5",
|
|
]
|
|
|
|
[project.urls]
|
|
"Homepage" = "https://github.com/hanzoai/python-sdk"
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=7.0.0", "ruff>=0.14.0"]
|
|
|
|
[project.entry-points."hanzo.tools"]
|
|
fs = "hanzo_tools.fs:TOOLS"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["hanzo_tools*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
hanzo_tools = ["py.typed"]
|