Commit Graph
321 Commits
Author SHA1 Message Date
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
zeekay d7f2fcdbf6 feat(agent): one tool with actions, not many tools
Consolidated agent tool with actions:
- run: single agent execution (claude -p default)
- dag: DAG execution with dependencies and {dep_id} injection
- swarm: work distribution with max_concurrent semaphore
- consensus: Lux Quasar protocol (Nova + Quasar phases)
- dispatch: different agents for different tasks

Removed hanzo-agents SDK dependency. Lightweight CLI execution.

Consensus: https://github.com/luxfi/consensus
2025-12-26 15:46:48 -08:00
zeekay 08af6230f0 chore: bump hanzo-tools-shell to 0.3.0 2025-12-26 13:25:55 -08:00
zeekay a2403c928b feat(shell): add curl, jq, wget tools for shell escaping-free operations
Add three new shell tools that bypass shell escaping issues by using
subprocess with list arguments instead of shell interpretation:

- curl: HTTP client with proper JSON body handling
- jq: JSON processor with direct filter passing
- wget: File/site downloads with mirror mode support

These tools solve the common problem of shell escaping nightmares
when working with complex JSON or special characters.

Updates:
- Added CurlTool, JqTool, WgetTool to hanzo-tools-shell
- Updated __all__ exports and TOOLS list
- Added tools to entrypoint_loader PACKAGE_TOOL_PREFIXES
2025-12-26 13:25:21 -08:00
zeekay 3f883514c8 chore: bump hanzo-mcp to 0.10.22, hanzo-tools-agent to 0.2.1 2025-12-26 12:25:51 -08:00
zeekay 303a05a616 feat(agent): agentic proxy with agent integration
Enhanced agent tool architecture:
- 8 CLI agents: claude, codex, gemini, grok, qwen, vibe, code, dev
- Auto-detects agent environment for seamless auth
- Shares hanzo-mcp config with spawned agents
- Lightweight - no heavy litellm dependency

Essential tools reorganization:
- Added agent, think, critic to essential tools
- Removed llm/consensus from essential (heavy deps, opt-in)
- HEAVY_TOOLS constant for tracking opt-in tools

Config sharing:
- HANZO_AGENT_PARENT=true passed to child agents
- MCP config env vars propagated
- API keys shared when appropriate
2025-12-26 12:25:16 -08:00
zeekay 3d4aa8c6c6 fix: update agent tests for unified tools 2025-12-26 12:08:56 -08:00
zeekay a9a0813b6c fix: lint and format issues 2025-12-26 12:07:03 -08:00
zeekay 16eadf211b chore: bump hanzo-mcp to 0.10.21 2025-12-26 11:45:26 -08:00
zeekay 5a1c976535 feat: consolidate tools - 52 to 30 tools
Major consolidation of hanzo-mcp tools:

Memory (9 → 1 tool):
- Unified UnifiedMemoryTool with actions: recall, create, update, delete,
  manage, facts, store, summarize, kb

Agent (10+ → 3 tools):
- Unified UnifiedAgentTool for claude, codex, gemini, grok CLI agents
- Removed duplicate critic (use reasoning.critic instead)
- Kept iching and review tools
- Removed code_auth, network, request_clarification

LLM (3 → 2 tools):
- Removed llm_manage (consolidated into llm)

Tool Management (4 → 1 tool):
- Existing unified `tool` command handles install, enable, disable, list

Essential Tools:
- Added memory, shell, open, tool to ESSENTIAL_TOOLS
- Added memory to ESSENTIAL_SYSTEM_TOOLS (always enabled)
- Updated hanzo mode with iching, review, computer

Bug fixes:
- Fixed async await warning in dag_tool.py
- Fixed duplicate critic conflict between agent and reasoning
2025-12-26 11:43:19 -08:00
zeekay 2cb7eb03fc feat(hanzo-mcp): unified tool command and essential tools system
Major improvements to mode and tool management:

1. Essential System Tools - Critical tools (llm, consensus, config, mode,
   tool, version, stats) are now ALWAYS enabled regardless of active mode.
   Previously, mode system disabled all tools then only enabled mode-specific
   ones, causing critical tools to be unavailable.

2. Unified 'tool' Command - Consolidates tool_install, tool_enable,
   tool_disable, tool_list into single 'tool' command with actions:
   - list: List all tools by category
   - enable/disable: Toggle tool state
   - install/uninstall: Package management
   - upgrade/reload: Update tools
   - self_update: Update hanzo-mcp

3. Fixed Permission Manager - Made permission_manager optional in:
   - FileSystemTool base class
   - ComputerTool
   - ConfigTool
   - ReadTool, WriteTool, EditTool
   Now creates default PermissionManager if not provided.

4. Fixed Mode System - Builtin modes (hanzo, minimal, fullstack, devops,
   security) are now always registered alongside hanzo-persona profiles.
   Previously they were skipped when hanzo-persona was available.

5. Updated ESSENTIAL_TOOLS constant with modern tool names and added
   llm, consensus, config, mode to ensure they're in all default modes.

Version bump: 0.10.19 -> 0.10.20
v0.10.20 forge/v0.10.20
2025-12-26 11:09:45 -08:00
zeekay ba22163460 feat(hanzo-mcp): v0.10.18 - add hanzo-tools-* and hanzo-persona as required dependencies 2025-12-26 10:47:00 -08:00
zeekay b59c52e665 chore: update hanzo-agent submodule 2025-12-26 10:36:26 -08:00