zeekay
bd9c6e5740
fix: async audit improvements and test fixes
...
- Fix deprecated asyncio.get_event_loop() → get_running_loop() in open_tool.py
- Add documentation for ProcessManager dict modification pattern
- Add module docstring for hanzo_async.paths explaining executor usage
- Fix bash test to use proper bash syntax (not zsh-style { } backgrounding)
- Bump hanzo-tools-shell 0.5.2 → 0.5.3
- Bump hanzo-async 0.1.0 → 0.1.1
All 53 shell tests pass. Async code review: production-ready.
2026-01-04 17:18:57 -08:00
zeekay
56972574f9
chore: bump hanzo-mcp to 0.10.32
2026-01-04 16:51:48 -08:00
zeekay
4fa44a28fc
refactor: remove ambiguous shell tool, keep specific shells
...
- Remove ShellTool from TOOLS list (too ambiguous)
- Keep zsh, bash, fish, dash as specific shell tools
- Update get_shell_tools to include bash
- Fix test imports (ShellTool now in shell_tools.py)
- Update tests to expect cmd as primary tool
- Verify asyncio.gather + uvloop works correctly
hanzo-tools-shell: 0.5.1 → 0.5.2
2026-01-04 13:27:34 -08:00
zeekay
35c8288217
chore: bump versions for PyPI release
...
- hanzo-async: 0.1.0 (new)
- hanzo-tools-fs: 0.3.1
- hanzo-tools-shell: 0.5.1
- hanzo-tools-agent: 0.3.0
- hanzo-mcp: 0.10.31
2026-01-03 17:41:51 -08:00
zeekay
f34a70a041
feat: add hanzo-async unified async I/O with uvloop support
...
New package: hanzo-async
- Automatic uvloop detection and configuration
- Async file I/O (read_file, write_file, append_file, read_json, write_json)
- Async path operations (path_exists, is_file, is_dir, mkdir, etc.)
- Async subprocess execution (run_command, run_shell)
- Graceful fallback to asyncio on Windows or when uvloop not installed
Updated packages to use hanzo-async:
- hanzo-tools-shell: base_process.py, ps_tool.py, shell_tools.py
- hanzo-tools-agent: agent_tool.py, dataset.py
- hanzo-tools-fs: search.py
- hanzo-mcp: cli.py, auto_timeout.py, event_loop.py, version_tool.py
Shell improvements:
- Renamed zsh_tool.py to shell_tools.py (better organization)
- Added DashTool for Debian/Ubuntu's fast POSIX shell
- All shell tools now thin shims over CmdTool
Version info now shows async backend:
- CLI: hanzo-mcp 0.10.27 (async: uvloop 0.22.1)
- Tool: async: uvloop 0.22.1
2026-01-03 17:39:48 -08:00
zeekay
b1de477422
docs: add Next.js documentation site with @hanzo/mdx
...
- Fumadocs-based docs with @hanzo/mdx and @hanzo/ui integration
- Comprehensive SDK documentation for all packages:
- hanzo-agent SDK (agents, tools, guardrails, tracing)
- hanzo-mcp tools (filesystem, shell, browser, memory, etc.)
- Client, models, embeddings, chat APIs
- Tailwind 4 + Next.js 16 + React 19 stack
- Static export for GitHub Pages deployment
2025-12-29 20:16:38 -08:00
zeekay
4d0db161a8
fix(docs): install package for API reference generation
2025-12-27 21:29:46 -08:00
zeekay
a5592fbcec
fix(docs): pin mkdocstrings version for compatibility
2025-12-27 21:27:50 -08:00
zeekay
113f3f9a77
fix(docs): checkout submodules for docs build
2025-12-27 21:26:25 -08:00
zeekay
0723f4cff4
ci(docs): add GitHub Pages deployment workflow
2025-12-27 21:24:35 -08:00
zeekay
cd89d0090a
fix(imports): update filesystem to fs in agent tools
2025-12-27 20:36:12 -08:00
zeekay
1143769c59
fix(lint): fix import sorting and lru_cache noqa
...
- Fix 12 import sorting issues (I001)
- Add noqa for lru_cache in shellflow.py (TID251 rule for Stainless SDK)
2025-12-27 20:32:45 -08:00
zeekay
12d4acf619
style(hanzo): format with black
2025-12-27 16:25:51 -08:00
zeekay
601e279e06
chore: rename Quality Gate workflow
2025-12-27 15:39:39 -08:00
zeekay
7bf664aee8
fix(ci): update workflow to use hanzo_tools.agent imports
...
- Replace hanzo_mcp.tools.agent.cli_tools with hanzo_tools.agent
- Update test imports to use AgentTool, IChingTool, ReviewTool
- Simplify integration tests for new agent tool API
2025-12-27 15:30:38 -08:00
zeekay
1951042fb8
fix(mcp): correct import in litellm warning test
...
- Change register_agent_tools to register_tools (actual export name)
2025-12-27 15:26:31 -08:00
zeekay
6c6f4b163a
fix(mcp): simplify agent tests to match actual API
...
- Remove tests for non-existent AgentTool attributes (AGENTS, _mcp_config, etc.)
- Update uv.lock with latest package versions
- Keep only basic tool creation and registration tests
2025-12-27 15:25:11 -08:00
zeekay
d3842b805f
style: format hanzo_mcp/__init__.py
2025-12-27 15:21:35 -08:00
zeekay
c47c738142
style: fix import sorting in test file
2025-12-27 15:20:15 -08:00
zeekay
b7469bb51b
fix(mcp): update tests to use AgentTool instead of UnifiedAgentTool
2025-12-27 15:18:54 -08:00
zeekay
bfb452c947
fix(ci): update workflow tool counts
...
- hanzo_tools.filesystem -> hanzo_tools.fs
- shell: 7 -> 11 tools (added bash, curl, jq, wget)
- memory: 9 -> 1 (unified tool with actions)
- agent: 10-12 -> 3 (AgentTool, IChingTool, ReviewTool)
- Total: 40 tools
2025-12-27 15:15:36 -08:00
zeekay
7326bfa5e7
fix(core): update memory tool count (1 unified tool, not 9)
2025-12-27 15:13:50 -08:00
zeekay
e95018bd3a
fix(core): remove ToolCategory from exports (it's in hanzo-mcp, not hanzo-tools-core)
2025-12-27 15:11:58 -08:00
zeekay
9b7b008c20
fix(core): import MCPResourceDocument from types.py, not base.py
2025-12-27 15:09:52 -08:00
zeekay
07ce4b521b
fix(ci): ignore hanzo-tools-core deprecation warning in pytest
2025-12-27 15:08:38 -08:00
zeekay
2200d578d9
fix(core): filter deprecation warning in tests
2025-12-27 15:07:07 -08:00
zeekay
418b146211
fix(core): update test module names and tool counts
...
- hanzo_tools.filesystem -> hanzo_tools.fs (correct module name)
- shell: 7 -> 11 tools (dag, ps, zsh, bash, shell, npx, uvx, open, curl, jq, wget)
- agent: 10-12 -> 3 tools (AgentTool, IChingTool, ReviewTool)
- Removed variable agent tool count - now exactly 3 tools
- Updated total required tools: 48
2025-12-27 15:05:46 -08:00
zeekay
6998188dea
style: format test files with black
2025-12-27 15:00:11 -08:00
zeekay
640d5bdfe3
fix(mcp): lower shell dep to 0.2.0 to unblock CI (PyPI has 0.2.0)
2025-12-27 14:58:29 -08:00
zeekay
ec7eabd9fc
test: add basic test suites for all 18 hanzo-tools-* packages
2025-12-27 14:57:15 -08:00
zeekay
058fffc218
docs: add READMEs for all 18 hanzo-tools-* packages
2025-12-27 14:55:13 -08:00
zeekay
3f6c71425a
chore(mcp): bump to 0.10.27, require hanzo-tools-shell>=0.4.1
forge/hanzo-mcp-0.10.27
forge/hanzo-tools-shell-0.4.1
hanzo-mcp-0.10.27
hanzo-tools-shell-0.4.1
2025-12-27 14:51:25 -08:00
zeekay
a8eb3c4b67
feat(shell): shellflow DSL parser with high-performance optimization
...
- Add shellflow.py: minimal DSL for DAG execution
- Syntax: A ; B (sequential), { A & B } (parallel)
- Compiles to JSON AST, S-expressions, or command list
- Supports quoted strings, &&, ||, nested braces
- Performance optimizations:
- Precompiled regex with local variable caching
- Fast-path for simple/sequential commands (8x faster)
- LRU cache for repeated patterns
- Full type annotations for mypyc compilation
- Restore dag as separate semantic tool:
- dag: for parallel/serial/graph execution
- zsh: for shell commands with shellflow DSL
- Both support nested arrays for auto-parallel
- Add comprehensive test suite (53 tests):
- Tokenizer, parser, normalization tests
- S-expression and command conversion tests
- Performance benchmarks
- Integration tests with real shell execution
Performance: ~7M ops/sec for simple commands,
~220k ops/sec for sequential, ~100k ops/sec for mixed DAGs
2025-12-27 14:44:33 -08:00
zeekay
a3a10fb760
docs(shell): update bash/shell tool descriptions with Shellflow syntax
2025-12-27 14:17:48 -08:00
zeekay
289b7d5711
feat(shell): add Shellflow DSL for inline DAG syntax
...
Shellflow syntax:
A ; B ; C → sequential
{ A & B & C } → parallel
A ; { B & C } ; D → mixed
Usage:
zsh("mkdir dist ; { cp a dist/ & cp b dist/ } ; zip out.zip dist/")
Compiles to JSON AST then executes via DAG.
Bump to v0.4.0
forge/hanzo-tools-shell-0.4.0
hanzo-tools-shell-0.4.0
2025-12-27 14:17:04 -08:00
zeekay
0f8b1e9906
feat(shell): nested arrays auto-parallel in DAG execution
...
zsh(["setup", ["a", "b", "c"], "cleanup"])
# Runs: setup → (a, b, c in parallel) → cleanup
Bump hanzo-tools-shell to v0.3.3
forge/hanzo-tools-shell-0.3.3
hanzo-tools-shell-0.3.3
2025-12-27 13:34:59 -08:00
zeekay
fb1873b2ac
feat(shell): add bash tool and shell parameter for runtime switching
...
- Add shell parameter to zsh/bash/shell tools for runtime shell switching
- Add BashTool for bash-specific scripts
- Usage: zsh("cmd", shell="bash") or bash("cmd")
- Bump hanzo-tools-shell to v0.3.2
forge/hanzo-tools-shell-0.3.2
hanzo-tools-shell-0.3.2
2025-12-27 13:32:07 -08:00
zeekay
47c9c200b3
refactor(shell): merge dag into zsh for unified shell tool
...
- ZshTool now includes full DAG functionality (serial, parallel, graph)
- Single "zsh" command for all shell operations
- Usage: zsh("ls") or zsh(["cmd1", "cmd2"]) or zsh([...], parallel=True)
- DagTool kept in codebase for backwards compatibility
- Removed DagTool from default TOOLS list
- Bump hanzo-tools-shell to v0.3.1
hanzo-mcp-0.10.26
forge/hanzo-mcp-0.10.26
forge/hanzo-tools-agent-0.2.7
forge/hanzo-tools-shell-0.3.1
hanzo-tools-agent-0.2.7
hanzo-tools-shell-0.3.1
2025-12-27 13:09:33 -08:00
zeekay
06f86e01f4
feat(agent): add direct API mode and auto-backgrounding
...
- Add _exec_api method for OpenAI/Anthropic-compatible API calls
- Add httpx and uvloop as optional dependencies [api] [perf]
- Auto-background long-running agent processes with ps --logs support
- Configure YOLO mode flags for all CLI agents
- Bump hanzo-tools-agent to v0.2.7, hanzo-mcp to v0.10.26
2025-12-27 13:06:01 -08:00
zeekay
955b30a004
Bump agent tools
2025-12-27 10:50:15 -08:00
zeekay
16d1277bc3
refactor: rename hanzo-tools-filesystem to hanzo-tools-fs
...
- Shorter package name for brevity
- hanzo_tools.filesystem -> hanzo_tools.fs
- Updated all dependencies and CI
2025-12-26 16:56:44 -08:00
zeekay
a9769ebb28
refactor: merge hanzo-tools-core into hanzo-tools
...
- hanzo-tools now contains core infrastructure (BaseTool, ToolRegistry, etc.)
- hanzo-tools-core becomes a thin backwards-compat wrapper
- All tool packages now depend on hanzo-tools>=0.3.0
- Reduces package count and simplifies dependency tree
2025-12-26 16:53:58 -08:00
zeekay
8ea8f4965c
ci: add missing packages to PyPI publish workflow
...
Added:
- hanzoai (main SDK)
- hanzo-consensus (consensus protocol)
- hanzo-tools-computer (pyautogui)
All 28 packages now covered by CI publish.
2025-12-26 16:49:20 -08:00
zeekay
4f2e58e76c
docs(consensus): document MCP mesh usage
2025-12-26 16:45:04 -08:00
zeekay
d2e5decf24
feat(consensus): add MCP mesh for agent-to-agent consensus
...
- MCPMesh: Register agents as MCP servers
- MCPAgent: Call tools on other agents
- run_mcp_consensus: N rounds of discussion via MCP
- create_mesh: Convenience factory
Each agent in consensus is available as MCP to every other.
2025-12-26 16:44:37 -08:00
zeekay
00c8bf1994
refactor: rename hanzo-metastable-consensus to hanzo-consensus
...
Simplified package naming for clarity.
2025-12-26 16:42:52 -08:00
zeekay
a46a541db1
feat(llm): use hanzo-metastable-consensus for consensus tool
...
- Replace litellm aggregation with Metastable protocol
- Two-phase finality: Sampling + Finality
- Reference: https://github.com/luxfi/consensus
2025-12-26 16:39:01 -08:00
zeekay
436ff4bf3d
feat: extract hanzo-metastable-consensus package
...
- New package: hanzo-metastable-consensus
- Two-phase finality: Sampling + Finality
- Used by hanzo-tools-agent for consensus action
- Reference: https://github.com/luxfi/consensus
2025-12-26 16:20:32 -08:00
zeekay
67d8c62d5c
feat(agent): multi-agent orchestration with DAG, swarm, Lux Quasar consensus
...
- Actions: run, dag, swarm, consensus, dispatch, list, status, config
- DAG execution with topological sort and {dep_id} output injection
- Swarm for work distribution with asyncio.Semaphore max_concurrent
- Lux Quasar consensus: Nova DAG + Quasar finality phases
- Photon luminance-weighted peer sampling (faster agents = higher weight)
Native agents: claude, codex, gemini, grok, qwen, vibe, dev
Anthropic-compatible agents (via claude CLI):
- minimax (MiniMax-M2.1)
- kimi (Kimi K2 / Moonshot)
- deepseek (DeepSeek)
- yi (Yi / 01.AI)
- glm (Zhipu GLM-4)
- baichuan (Baichuan4)
- step (StepFun)
- dashscope (Qwen Max via DashScope)
- qwen-cc (Qwen Plus via DashScope)
Consensus: https://github.com/luxfi/consensus
2025-12-26 16:08:35 -08:00
zeekay
4b4b69cd0a
refactor(agent): rename Lux Quasar to Metastable consensus
2025-12-26 15:49:42 -08:00