hanzo-mcp 0.9.1__tar.gz → 0.9.2__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.

Files changed (243) hide show
  1. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/PKG-INFO +1 -1
  2. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/auto_timeout.py +35 -15
  3. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/ast_tool.py +1 -1
  4. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/base.py +2 -2
  5. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/edit.py +1 -1
  6. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/multi_edit.py +1 -1
  7. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/read.py +1 -3
  8. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/rules_tool.py +1 -1
  9. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/symbols_tool.py +1 -1
  10. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/write.py +1 -1
  11. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp.egg-info/PKG-INFO +1 -1
  12. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/pyproject.toml +1 -1
  13. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/README.md +0 -0
  14. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/__init__.py +0 -0
  15. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/__main__.py +0 -0
  16. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/analytics/__init__.py +0 -0
  17. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/analytics/posthog_analytics.py +0 -0
  18. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/bridge.py +0 -0
  19. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/cli.py +0 -0
  20. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/cli_enhanced.py +0 -0
  21. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/cli_plugin.py +0 -0
  22. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/compute_nodes.py +0 -0
  23. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/config/__init__.py +0 -0
  24. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/config/settings.py +0 -0
  25. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/config/tool_config.py +0 -0
  26. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/core/base_agent.py +0 -0
  27. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/core/model_registry.py +0 -0
  28. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/dev_server.py +0 -0
  29. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/__init__.py +0 -0
  30. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/compact_conversation.py +0 -0
  31. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/create_release.py +0 -0
  32. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/enhanced_prompts.py +0 -0
  33. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/example_custom_prompt.py +0 -0
  34. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/project_system.py +0 -0
  35. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/project_todo_reminder.py +0 -0
  36. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/tool_explorer.py +0 -0
  37. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/prompts/utils.py +0 -0
  38. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/server.py +0 -0
  39. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/server_enhanced.py +0 -0
  40. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/__init__.py +0 -0
  41. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/__init__.py +0 -0
  42. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/agent.py +0 -0
  43. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/agent_tool.py +0 -0
  44. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py +0 -0
  45. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/clarification_protocol.py +0 -0
  46. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/clarification_tool.py +0 -0
  47. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/claude_cli_tool.py +0 -0
  48. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/claude_desktop_auth.py +0 -0
  49. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/cli_agent_base.py +0 -0
  50. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/cli_tools.py +0 -0
  51. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/code_auth.py +0 -0
  52. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/code_auth_tool.py +0 -0
  53. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/codex_cli_tool.py +0 -0
  54. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/critic_tool.py +0 -0
  55. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/gemini_cli_tool.py +0 -0
  56. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/grok_cli_tool.py +0 -0
  57. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/iching_tool.py +0 -0
  58. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/network_tool.py +0 -0
  59. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/prompt.py +0 -0
  60. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/review_tool.py +0 -0
  61. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/swarm_alias.py +0 -0
  62. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/swarm_tool.py +0 -0
  63. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py +0 -0
  64. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/tool_adapter.py +0 -0
  65. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/agent/unified_cli_tools.py +0 -0
  66. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/__init__.py +0 -0
  67. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/base.py +0 -0
  68. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/batch_tool.py +0 -0
  69. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/config_tool.py +0 -0
  70. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/context.py +0 -0
  71. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/context_fix.py +0 -0
  72. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/critic_tool.py +0 -0
  73. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/decorators.py +0 -0
  74. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/enhanced_base.py +0 -0
  75. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/fastmcp_pagination.py +0 -0
  76. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/forgiving_edit.py +0 -0
  77. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/mode.py +0 -0
  78. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/mode_loader.py +0 -0
  79. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/paginated_base.py +0 -0
  80. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/paginated_response.py +0 -0
  81. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/pagination.py +0 -0
  82. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/permissions.py +0 -0
  83. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/personality.py +0 -0
  84. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/plugin_loader.py +0 -0
  85. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/stats.py +0 -0
  86. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/test_helpers.py +0 -0
  87. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/thinking_tool.py +0 -0
  88. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/timeout_parser.py +0 -0
  89. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/tool_disable.py +0 -0
  90. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/tool_enable.py +0 -0
  91. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/tool_list.py +0 -0
  92. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/truncate.py +0 -0
  93. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/common/validation.py +0 -0
  94. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/config/__init__.py +0 -0
  95. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/config/config_tool.py +0 -0
  96. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/config/index_config.py +0 -0
  97. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/config/mode_tool.py +0 -0
  98. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/__init__.py +0 -0
  99. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/database_manager.py +0 -0
  100. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/graph.py +0 -0
  101. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/graph_add.py +0 -0
  102. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/graph_query.py +0 -0
  103. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/graph_remove.py +0 -0
  104. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/graph_search.py +0 -0
  105. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/graph_stats.py +0 -0
  106. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/sql.py +0 -0
  107. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/sql_query.py +0 -0
  108. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/sql_search.py +0 -0
  109. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/database/sql_stats.py +0 -0
  110. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/editor/__init__.py +0 -0
  111. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/editor/neovim_command.py +0 -0
  112. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/editor/neovim_edit.py +0 -0
  113. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/editor/neovim_session.py +0 -0
  114. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/__init__.py +0 -0
  115. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/ast_multi_edit.py +0 -0
  116. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/batch_search.py +0 -0
  117. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/content_replace.py +0 -0
  118. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/diff.py +0 -0
  119. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/directory_tree.py +0 -0
  120. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/directory_tree_paginated.py +0 -0
  121. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/find.py +0 -0
  122. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/find_files.py +0 -0
  123. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/git_search.py +0 -0
  124. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/grep.py +0 -0
  125. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/search_tool.py +0 -0
  126. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/tree.py +0 -0
  127. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/unix_aliases.py +0 -0
  128. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/filesystem/watch.py +0 -0
  129. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/jupyter/__init__.py +0 -0
  130. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/jupyter/base.py +0 -0
  131. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/jupyter/jupyter.py +0 -0
  132. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/jupyter/notebook_edit.py +0 -0
  133. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/jupyter/notebook_read.py +0 -0
  134. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/llm/__init__.py +0 -0
  135. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/llm/consensus_tool.py +0 -0
  136. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/llm/llm_manage.py +0 -0
  137. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/llm/llm_tool.py +0 -0
  138. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/llm/llm_unified.py +0 -0
  139. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/llm/provider_tools.py +0 -0
  140. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/lsp/__init__.py +0 -0
  141. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/lsp/lsp_tool.py +0 -0
  142. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/mcp/__init__.py +0 -0
  143. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/mcp/mcp_add.py +0 -0
  144. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/mcp/mcp_remove.py +0 -0
  145. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/mcp/mcp_stats.py +0 -0
  146. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/mcp/mcp_tool.py +0 -0
  147. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/memory/__init__.py +0 -0
  148. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/memory/knowledge_tools.py +0 -0
  149. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/memory/memory_tools.py +0 -0
  150. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/search/__init__.py +0 -0
  151. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/search/find_tool.py +0 -0
  152. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/search/unified_search.py +0 -0
  153. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/__init__.py +0 -0
  154. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/auto_background.py +0 -0
  155. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/base.py +0 -0
  156. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/base_process.py +0 -0
  157. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/bash_session.py +0 -0
  158. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/bash_session_executor.py +0 -0
  159. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/bash_tool.py +0 -0
  160. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/command_executor.py +0 -0
  161. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/logs.py +0 -0
  162. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/npx.py +0 -0
  163. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/npx_background.py +0 -0
  164. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/npx_tool.py +0 -0
  165. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/open.py +0 -0
  166. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/pkill.py +0 -0
  167. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/process_tool.py +0 -0
  168. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/processes.py +0 -0
  169. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/run_background.py +0 -0
  170. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/run_command.py +0 -0
  171. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/run_command_windows.py +0 -0
  172. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/session_manager.py +0 -0
  173. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/session_storage.py +0 -0
  174. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/streaming_command.py +0 -0
  175. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/uvx.py +0 -0
  176. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/uvx_background.py +0 -0
  177. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/uvx_tool.py +0 -0
  178. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/shell/zsh_tool.py +0 -0
  179. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/todo/__init__.py +0 -0
  180. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/todo/base.py +0 -0
  181. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/todo/todo.py +0 -0
  182. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/todo/todo_read.py +0 -0
  183. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/todo/todo_write.py +0 -0
  184. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/__init__.py +0 -0
  185. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/ast_analyzer.py +0 -0
  186. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/git_ingester.py +0 -0
  187. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/index_tool.py +0 -0
  188. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/infinity_store.py +0 -0
  189. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/mock_infinity.py +0 -0
  190. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/project_manager.py +0 -0
  191. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/vector.py +0 -0
  192. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/vector_index.py +0 -0
  193. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/tools/vector/vector_search.py +0 -0
  194. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp/types.py +0 -0
  195. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp.egg-info/SOURCES.txt +0 -0
  196. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp.egg-info/dependency_links.txt +0 -0
  197. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp.egg-info/entry_points.txt +0 -0
  198. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp.egg-info/requires.txt +0 -0
  199. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/hanzo_mcp.egg-info/top_level.txt +0 -0
  200. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/setup.cfg +0 -0
  201. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_agent_tools_ci.py +0 -0
  202. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_async_support.py +0 -0
  203. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_batch_tool_edge_cases.py +0 -0
  204. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_cli.py +0 -0
  205. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_cli_agents_consolidated.py +0 -0
  206. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_cli_tools.py +0 -0
  207. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_e2e_demo.py +0 -0
  208. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_e2e_simple.py +0 -0
  209. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_failure_cases.py +0 -0
  210. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_find_tool_ffind.py +0 -0
  211. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_find_tool_integration.py +0 -0
  212. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_find_tool_registration.py +0 -0
  213. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_git_ingestion.py +0 -0
  214. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_hanzo_agents_integration.py +0 -0
  215. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_hanzo_mcp_integration.py +0 -0
  216. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_hanzo_mcp_local.py +0 -0
  217. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_hanzo_mcp_simple.py +0 -0
  218. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_hanzo_network_integration.py +0 -0
  219. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_litellm_warnings.py +0 -0
  220. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_lsp_tool.py +0 -0
  221. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_manual.py +0 -0
  222. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_memory_base.py +0 -0
  223. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_memory_basic.py +0 -0
  224. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_memory_consolidated.py +0 -0
  225. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_memory_simple.py +0 -0
  226. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_memory_utils.py +0 -0
  227. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_new_tools.py +0 -0
  228. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_no_stubs.py +0 -0
  229. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_performance.py +0 -0
  230. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_search.py +0 -0
  231. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_search_quality.py +0 -0
  232. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_shell_features.py +0 -0
  233. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_shell_tools.py +0 -0
  234. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_simple.py +0 -0
  235. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_stdio_protocol.py +0 -0
  236. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_stdio_simple.py +0 -0
  237. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_streaming_command.py +0 -0
  238. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_swarm_simple.py +0 -0
  239. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_tools_suite.py +0 -0
  240. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_unified_search.py +0 -0
  241. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_utils.py +0 -0
  242. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_vector_store.py +0 -0
  243. {hanzo_mcp-0.9.1 → hanzo_mcp-0.9.2}/tests/test_web3_integration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hanzo-mcp
3
- Version: 0.9.1
3
+ Version: 0.9.2
4
4
  Summary: The Zen of Hanzo MCP: One server to rule them all. The ultimate MCP that orchestrates all others.
5
5
  Author-email: Hanzo Industries Inc <dev@hanzo.ai>
6
6
  License: MIT
@@ -128,47 +128,67 @@ class MCPToolTimeoutManager:
128
128
 
129
129
  def with_auto_timeout(tool_name: str, timeout_manager: Optional[MCPToolTimeoutManager] = None):
130
130
  """Decorator to add automatic timeout and backgrounding to MCP tools.
131
-
131
+
132
132
  Args:
133
133
  tool_name: Name of the tool (for logging and process tracking)
134
134
  timeout_manager: Optional timeout manager instance
135
-
135
+
136
136
  Returns:
137
137
  Decorator function
138
138
  """
139
139
  if timeout_manager is None:
140
140
  timeout_manager = MCPToolTimeoutManager()
141
-
141
+
142
142
  def decorator(func: Callable[..., Awaitable[Any]]) -> Callable[..., Awaitable[Any]]:
143
143
  @functools.wraps(func)
144
- async def wrapper(ctx: MCPContext, **params: Any) -> Any:
144
+ async def wrapper(*args: Any, **params: Any) -> Any:
145
+ # Handle both method calls (with self) and function calls
146
+ # For methods: args = (self, ctx), For functions: args = (ctx,)
147
+ if len(args) >= 2:
148
+ # Method call: self, ctx, **params
149
+ self_or_ctx = args[0]
150
+ ctx = args[1]
151
+ call_func = lambda: func(self_or_ctx, ctx, **params)
152
+ elif len(args) == 1:
153
+ # Function call: ctx, **params
154
+ ctx = args[0]
155
+ call_func = lambda: func(ctx, **params)
156
+ else:
157
+ raise TypeError(f"Expected at least 1 argument (ctx), got {len(args)}")
158
+
145
159
  # Fast path for tests - skip timeout logic
146
160
  if os.getenv("HANZO_MCP_FAST_TESTS") == "1":
147
- return await func(ctx, **params)
148
-
161
+ return await call_func()
162
+
149
163
  # Get tool-specific timeout
150
164
  tool_timeout = timeout_manager._get_timeout_for_tool(tool_name)
151
-
165
+
152
166
  # Create task for the tool execution
153
- tool_task = asyncio.create_task(func(ctx, **params))
154
-
167
+ tool_task = asyncio.create_task(call_func())
168
+
155
169
  try:
156
170
  # Wait for completion with timeout
157
171
  result = await asyncio.wait_for(tool_task, timeout=tool_timeout)
158
172
  return result
159
-
173
+
160
174
  except asyncio.TimeoutError:
161
175
  # Tool timed out - background it
162
176
  process_id = f"{tool_name}_{uuid.uuid4().hex[:8]}"
163
177
  log_file = timeout_manager.process_manager.create_log_file(process_id)
164
-
165
- # Start background execution
178
+
179
+ # Start background execution (need to reconstruct the call)
180
+ async def background_call():
181
+ if len(args) >= 2:
182
+ return await func(args[0], ctx, **params)
183
+ else:
184
+ return await func(ctx, **params)
185
+
166
186
  asyncio.create_task(
167
187
  timeout_manager._background_tool_execution(
168
- func, tool_name, ctx, process_id, log_file, **params
188
+ background_call, tool_name, ctx, process_id, log_file, **params
169
189
  )
170
190
  )
171
-
191
+
172
192
  # Return backgrounding message
173
193
  timeout_formatted = format_timeout(tool_timeout)
174
194
  return (
@@ -179,7 +199,7 @@ def with_auto_timeout(tool_name: str, timeout_manager: Optional[MCPToolTimeoutMa
179
199
  f"Use 'process --action kill --id {process_id}' to cancel\\n\\n"
180
200
  f"The {tool_name} operation is continuing in the background..."
181
201
  )
182
-
202
+
183
203
  return wrapper
184
204
  return decorator
185
205
 
@@ -114,7 +114,7 @@ Searches code structure intelligently, understanding syntax and providing semant
114
114
  Tool result
115
115
  """
116
116
  tool_ctx = self.create_tool_context(ctx)
117
- self.set_tool_context_info(tool_ctx)
117
+ await self.set_tool_context_info(tool_ctx)
118
118
 
119
119
  # Extract parameters
120
120
  pattern: Pattern = params["pattern"]
@@ -104,10 +104,10 @@ class FilesystemBaseTool(FileSystemTool, ABC):
104
104
  tool_ctx = create_tool_context(ctx)
105
105
  return tool_ctx
106
106
 
107
- def set_tool_context_info(self, tool_ctx: ToolContext) -> None:
107
+ async def set_tool_context_info(self, tool_ctx: ToolContext) -> None:
108
108
  """Set the tool info on the context.
109
109
 
110
110
  Args:
111
111
  tool_ctx: Tool context
112
112
  """
113
- tool_ctx.set_tool_info(self.name)
113
+ await tool_ctx.set_tool_info(self.name)
@@ -108,7 +108,7 @@ Usage:
108
108
  Tool result
109
109
  """
110
110
  tool_ctx = self.create_tool_context(ctx)
111
- self.set_tool_context_info(tool_ctx)
111
+ await self.set_tool_context_info(tool_ctx)
112
112
 
113
113
  # Extract parameters
114
114
  file_path: FilePath = params["file_path"]
@@ -152,7 +152,7 @@ If you want to create a new file, use:
152
152
  Tool result
153
153
  """
154
154
  tool_ctx = self.create_tool_context(ctx)
155
- self.set_tool_context_info(tool_ctx)
155
+ await self.set_tool_context_info(tool_ctx)
156
156
 
157
157
  # Extract parameters
158
158
  file_path: FilePath = params["file_path"]
@@ -94,8 +94,6 @@ Usage:
94
94
 
95
95
  @override
96
96
  @auto_timeout("read")
97
-
98
-
99
97
  async def call(
100
98
  self,
101
99
  ctx: MCPContext,
@@ -111,7 +109,7 @@ Usage:
111
109
  Tool result
112
110
  """
113
111
  tool_ctx = self.create_tool_context(ctx)
114
- self.set_tool_context_info(tool_ctx)
112
+ await self.set_tool_context_info(tool_ctx)
115
113
 
116
114
  # Extract parameters
117
115
  file_path = params.get("file_path")
@@ -94,7 +94,7 @@ understand project-specific requirements and preferences."""
94
94
  Tool result
95
95
  """
96
96
  tool_ctx = self.create_tool_context(ctx)
97
- self.set_tool_context_info(tool_ctx)
97
+ await self.set_tool_context_info(tool_ctx)
98
98
 
99
99
  # Extract parameters
100
100
  search_path = params.get("path", ".")
@@ -138,7 +138,7 @@ Finds code structures (functions, classes, methods) with full context."""
138
138
  ) -> str:
139
139
  """Execute symbols operation."""
140
140
  tool_ctx = self.create_tool_context(ctx)
141
- self.set_tool_context_info(tool_ctx)
141
+ await self.set_tool_context_info(tool_ctx)
142
142
 
143
143
  # Extract action
144
144
  action = params.get("action", "search")
@@ -92,7 +92,7 @@ Usage:
92
92
  Tool result
93
93
  """
94
94
  tool_ctx = self.create_tool_context(ctx)
95
- self.set_tool_context_info(tool_ctx)
95
+ await self.set_tool_context_info(tool_ctx)
96
96
 
97
97
  # Extract parameters
98
98
  file_path: FilePath = params["file_path"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hanzo-mcp
3
- Version: 0.9.1
3
+ Version: 0.9.2
4
4
  Summary: The Zen of Hanzo MCP: One server to rule them all. The ultimate MCP that orchestrates all others.
5
5
  Author-email: Hanzo Industries Inc <dev@hanzo.ai>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "hanzo-mcp"
7
- version = "0.9.1"
7
+ version = "0.9.2"
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