hanzo-mcp 0.9.2__tar.gz → 0.9.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of hanzo-mcp might be problematic. Click here for more details.
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/PKG-INFO +1 -1
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py +43 -2
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp.egg-info/PKG-INFO +1 -1
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/pyproject.toml +1 -1
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/README.md +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/__main__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/analytics/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/analytics/posthog_analytics.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/bridge.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/cli.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/cli_enhanced.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/cli_plugin.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/compute_nodes.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/config/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/config/settings.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/config/tool_config.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/core/base_agent.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/core/model_registry.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/dev_server.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/compact_conversation.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/create_release.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/enhanced_prompts.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/example_custom_prompt.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/project_system.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/project_todo_reminder.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/tool_explorer.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/prompts/utils.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/server.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/server_enhanced.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/agent.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/agent_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/clarification_protocol.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/clarification_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/claude_cli_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/claude_desktop_auth.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/cli_agent_base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/cli_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/code_auth.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/code_auth_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/codex_cli_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/critic_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/gemini_cli_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/grok_cli_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/iching_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/network_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/prompt.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/review_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/swarm_alias.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/swarm_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/tool_adapter.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/agent/unified_cli_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/auto_timeout.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/batch_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/config_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/context.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/context_fix.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/critic_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/decorators.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/enhanced_base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/fastmcp_pagination.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/forgiving_edit.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/mode.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/mode_loader.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/paginated_base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/paginated_response.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/pagination.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/permissions.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/personality.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/plugin_loader.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/stats.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/test_helpers.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/thinking_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/timeout_parser.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/tool_disable.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/tool_enable.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/tool_list.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/truncate.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/common/validation.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/config/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/config/config_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/config/index_config.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/config/mode_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/database_manager.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/graph.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/graph_add.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/graph_query.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/graph_remove.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/graph_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/graph_stats.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/sql.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/sql_query.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/sql_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/database/sql_stats.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/editor/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/editor/neovim_command.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/editor/neovim_edit.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/editor/neovim_session.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/ast_multi_edit.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/ast_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/batch_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/content_replace.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/diff.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/directory_tree.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/directory_tree_paginated.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/edit.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/find.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/find_files.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/git_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/grep.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/multi_edit.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/read.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/rules_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/search_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/symbols_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/tree.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/unix_aliases.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/watch.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/filesystem/write.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/jupyter/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/jupyter/base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/jupyter/jupyter.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/jupyter/notebook_edit.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/jupyter/notebook_read.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/llm/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/llm/consensus_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/llm/llm_manage.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/llm/llm_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/llm/llm_unified.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/llm/provider_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/lsp/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/lsp/lsp_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/mcp/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/mcp/mcp_add.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/mcp/mcp_remove.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/mcp/mcp_stats.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/mcp/mcp_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/memory/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/memory/knowledge_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/memory/memory_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/search/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/search/find_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/search/unified_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/auto_background.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/base_process.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/bash_session.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/bash_session_executor.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/bash_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/command_executor.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/logs.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/npx.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/npx_background.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/npx_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/open.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/pkill.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/process_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/processes.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/run_background.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/run_command.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/run_command_windows.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/session_manager.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/session_storage.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/streaming_command.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/uvx.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/uvx_background.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/uvx_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/shell/zsh_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/todo/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/todo/base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/todo/todo.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/todo/todo_read.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/todo/todo_write.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/__init__.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/ast_analyzer.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/git_ingester.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/index_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/infinity_store.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/mock_infinity.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/project_manager.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/vector.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/vector_index.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/tools/vector/vector_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp/types.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp.egg-info/SOURCES.txt +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp.egg-info/dependency_links.txt +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp.egg-info/entry_points.txt +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp.egg-info/requires.txt +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/hanzo_mcp.egg-info/top_level.txt +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/setup.cfg +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_agent_tools_ci.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_async_support.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_batch_tool_edge_cases.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_cli.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_cli_agents_consolidated.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_cli_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_e2e_demo.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_e2e_simple.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_failure_cases.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_find_tool_ffind.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_find_tool_integration.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_find_tool_registration.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_git_ingestion.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_hanzo_agents_integration.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_hanzo_mcp_integration.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_hanzo_mcp_local.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_hanzo_mcp_simple.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_hanzo_network_integration.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_litellm_warnings.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_lsp_tool.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_manual.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_memory_base.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_memory_basic.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_memory_consolidated.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_memory_simple.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_memory_utils.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_new_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_no_stubs.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_performance.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_search_quality.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_shell_features.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_shell_tools.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_simple.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_stdio_protocol.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_stdio_simple.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_streaming_command.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_swarm_simple.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_tools_suite.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_unified_search.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_utils.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_vector_store.py +0 -0
- {hanzo_mcp-0.9.2 → hanzo_mcp-0.9.3}/tests/test_web3_integration.py +0 -0
|
@@ -450,6 +450,9 @@ AGENT RESPONSES:
|
|
|
450
450
|
tool_call_count = len(message.tool_calls)
|
|
451
451
|
await tool_ctx.info(f"Processing {tool_call_count} tool calls")
|
|
452
452
|
|
|
453
|
+
# Track which tool calls we've processed to ensure all get results
|
|
454
|
+
tool_results_to_add = []
|
|
455
|
+
|
|
453
456
|
for tool_call in message.tool_calls:
|
|
454
457
|
total_tool_use_count += 1
|
|
455
458
|
function_name = tool_call.function.name
|
|
@@ -542,8 +545,8 @@ AGENT RESPONSES:
|
|
|
542
545
|
await tool_ctx.info(
|
|
543
546
|
f"tool {function_name} run with args {function_args} and return {tool_result[: min(100, len(tool_result))]}"
|
|
544
547
|
)
|
|
545
|
-
# Add the tool result to
|
|
546
|
-
|
|
548
|
+
# Add the tool result to the list
|
|
549
|
+
tool_results_to_add.append(
|
|
547
550
|
{
|
|
548
551
|
"role": "tool",
|
|
549
552
|
"tool_call_id": tool_call.id,
|
|
@@ -552,6 +555,9 @@ AGENT RESPONSES:
|
|
|
552
555
|
}
|
|
553
556
|
)
|
|
554
557
|
|
|
558
|
+
# Add all tool results to messages atomically
|
|
559
|
+
messages.extend(tool_results_to_add)
|
|
560
|
+
|
|
555
561
|
# Log progress
|
|
556
562
|
await tool_ctx.info(f"Processed {len(message.tool_calls)} tool calls. Total: {total_tool_use_count}")
|
|
557
563
|
|
|
@@ -559,6 +565,41 @@ AGENT RESPONSES:
|
|
|
559
565
|
await tool_ctx.error(f"Error in model call: {str(e)}")
|
|
560
566
|
# Avoid trying to JSON serialize message objects
|
|
561
567
|
await tool_ctx.error(f"Message count: {len(messages)}")
|
|
568
|
+
|
|
569
|
+
# CRITICAL FIX: Ensure we add tool_result messages for any tool_use blocks that were added
|
|
570
|
+
# Get the last assistant message (which has the tool_calls)
|
|
571
|
+
last_assistant_msg = None
|
|
572
|
+
for msg in reversed(messages):
|
|
573
|
+
if msg.get("role") == "assistant" and hasattr(msg, "tool_calls"):
|
|
574
|
+
last_assistant_msg = msg
|
|
575
|
+
break
|
|
576
|
+
|
|
577
|
+
# If there are orphaned tool calls, add error results for them
|
|
578
|
+
if last_assistant_msg and hasattr(last_assistant_msg, "tool_calls"):
|
|
579
|
+
# Count how many tool results we already have after this message
|
|
580
|
+
tool_results_count = 0
|
|
581
|
+
found_assistant = False
|
|
582
|
+
for msg in reversed(messages):
|
|
583
|
+
if msg == last_assistant_msg:
|
|
584
|
+
found_assistant = True
|
|
585
|
+
break
|
|
586
|
+
if found_assistant and msg.get("role") == "tool":
|
|
587
|
+
tool_results_count += 1
|
|
588
|
+
|
|
589
|
+
# Add error results for any missing tool calls
|
|
590
|
+
expected_results = len(last_assistant_msg.tool_calls)
|
|
591
|
+
if tool_results_count < expected_results:
|
|
592
|
+
for i in range(tool_results_count, expected_results):
|
|
593
|
+
tool_call = last_assistant_msg.tool_calls[i]
|
|
594
|
+
messages.append(
|
|
595
|
+
{
|
|
596
|
+
"role": "tool",
|
|
597
|
+
"tool_call_id": tool_call.id,
|
|
598
|
+
"name": tool_call.function.name,
|
|
599
|
+
"content": f"Error: Tool execution interrupted - {str(e)}",
|
|
600
|
+
}
|
|
601
|
+
)
|
|
602
|
+
|
|
562
603
|
return f"Error in agent execution: {str(e)}"
|
|
563
604
|
|
|
564
605
|
# If we've reached the limit, add a warning and get final response
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hanzo-mcp"
|
|
7
|
-
version = "0.9.
|
|
7
|
+
version = "0.9.3"
|
|
8
8
|
description = "The Zen of Hanzo MCP: One server to rule them all. The ultimate MCP that orchestrates all others."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|