hanzo-mcp 0.9.0__py3-none-any.whl → 0.9.2__py3-none-any.whl

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 (135) hide show
  1. hanzo_mcp/__init__.py +1 -1
  2. hanzo_mcp/analytics/posthog_analytics.py +14 -1
  3. hanzo_mcp/cli.py +108 -4
  4. hanzo_mcp/server.py +11 -0
  5. hanzo_mcp/tools/__init__.py +3 -16
  6. hanzo_mcp/tools/agent/__init__.py +5 -0
  7. hanzo_mcp/tools/agent/agent.py +5 -0
  8. hanzo_mcp/tools/agent/agent_tool.py +3 -17
  9. hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py +623 -0
  10. hanzo_mcp/tools/agent/clarification_tool.py +7 -1
  11. hanzo_mcp/tools/agent/claude_desktop_auth.py +16 -6
  12. hanzo_mcp/tools/agent/cli_agent_base.py +5 -0
  13. hanzo_mcp/tools/agent/cli_tools.py +26 -0
  14. hanzo_mcp/tools/agent/code_auth_tool.py +5 -0
  15. hanzo_mcp/tools/agent/critic_tool.py +7 -1
  16. hanzo_mcp/tools/agent/iching_tool.py +5 -0
  17. hanzo_mcp/tools/agent/network_tool.py +5 -0
  18. hanzo_mcp/tools/agent/review_tool.py +7 -1
  19. hanzo_mcp/tools/agent/swarm_alias.py +5 -0
  20. hanzo_mcp/tools/agent/swarm_tool.py +701 -0
  21. hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py +554 -0
  22. hanzo_mcp/tools/agent/unified_cli_tools.py +5 -0
  23. hanzo_mcp/tools/common/auto_timeout.py +254 -0
  24. hanzo_mcp/tools/common/base.py +4 -0
  25. hanzo_mcp/tools/common/batch_tool.py +5 -0
  26. hanzo_mcp/tools/common/config_tool.py +5 -0
  27. hanzo_mcp/tools/common/critic_tool.py +5 -0
  28. hanzo_mcp/tools/common/paginated_base.py +4 -0
  29. hanzo_mcp/tools/common/permissions.py +38 -12
  30. hanzo_mcp/tools/common/personality.py +673 -980
  31. hanzo_mcp/tools/common/stats.py +5 -0
  32. hanzo_mcp/tools/common/thinking_tool.py +5 -0
  33. hanzo_mcp/tools/common/timeout_parser.py +103 -0
  34. hanzo_mcp/tools/common/tool_disable.py +5 -0
  35. hanzo_mcp/tools/common/tool_enable.py +5 -0
  36. hanzo_mcp/tools/common/tool_list.py +5 -0
  37. hanzo_mcp/tools/config/config_tool.py +5 -0
  38. hanzo_mcp/tools/config/mode_tool.py +5 -0
  39. hanzo_mcp/tools/database/graph.py +5 -0
  40. hanzo_mcp/tools/database/graph_add.py +5 -0
  41. hanzo_mcp/tools/database/graph_query.py +5 -0
  42. hanzo_mcp/tools/database/graph_remove.py +5 -0
  43. hanzo_mcp/tools/database/graph_search.py +5 -0
  44. hanzo_mcp/tools/database/graph_stats.py +5 -0
  45. hanzo_mcp/tools/database/sql.py +5 -0
  46. hanzo_mcp/tools/database/sql_query.py +2 -0
  47. hanzo_mcp/tools/database/sql_search.py +5 -0
  48. hanzo_mcp/tools/database/sql_stats.py +5 -0
  49. hanzo_mcp/tools/editor/neovim_command.py +5 -0
  50. hanzo_mcp/tools/editor/neovim_edit.py +7 -2
  51. hanzo_mcp/tools/editor/neovim_session.py +5 -0
  52. hanzo_mcp/tools/filesystem/__init__.py +23 -26
  53. hanzo_mcp/tools/filesystem/ast_tool.py +3 -4
  54. hanzo_mcp/tools/filesystem/base.py +2 -18
  55. hanzo_mcp/tools/filesystem/batch_search.py +825 -0
  56. hanzo_mcp/tools/filesystem/content_replace.py +5 -3
  57. hanzo_mcp/tools/filesystem/diff.py +5 -0
  58. hanzo_mcp/tools/filesystem/directory_tree.py +34 -281
  59. hanzo_mcp/tools/filesystem/directory_tree_paginated.py +345 -0
  60. hanzo_mcp/tools/filesystem/edit.py +6 -5
  61. hanzo_mcp/tools/filesystem/find.py +177 -311
  62. hanzo_mcp/tools/filesystem/find_files.py +370 -0
  63. hanzo_mcp/tools/filesystem/git_search.py +5 -3
  64. hanzo_mcp/tools/filesystem/grep.py +454 -0
  65. hanzo_mcp/tools/filesystem/multi_edit.py +6 -5
  66. hanzo_mcp/tools/filesystem/read.py +10 -9
  67. hanzo_mcp/tools/filesystem/rules_tool.py +6 -4
  68. hanzo_mcp/tools/filesystem/search_tool.py +728 -0
  69. hanzo_mcp/tools/filesystem/symbols_tool.py +510 -0
  70. hanzo_mcp/tools/filesystem/tree.py +273 -0
  71. hanzo_mcp/tools/filesystem/watch.py +6 -1
  72. hanzo_mcp/tools/filesystem/write.py +13 -7
  73. hanzo_mcp/tools/jupyter/jupyter.py +30 -2
  74. hanzo_mcp/tools/jupyter/notebook_edit.py +298 -0
  75. hanzo_mcp/tools/jupyter/notebook_read.py +148 -0
  76. hanzo_mcp/tools/llm/consensus_tool.py +8 -6
  77. hanzo_mcp/tools/llm/llm_manage.py +5 -0
  78. hanzo_mcp/tools/llm/llm_tool.py +2 -0
  79. hanzo_mcp/tools/llm/llm_unified.py +5 -0
  80. hanzo_mcp/tools/llm/provider_tools.py +5 -0
  81. hanzo_mcp/tools/lsp/lsp_tool.py +475 -622
  82. hanzo_mcp/tools/mcp/mcp_add.py +7 -2
  83. hanzo_mcp/tools/mcp/mcp_remove.py +15 -2
  84. hanzo_mcp/tools/mcp/mcp_stats.py +5 -0
  85. hanzo_mcp/tools/mcp/mcp_tool.py +5 -0
  86. hanzo_mcp/tools/memory/knowledge_tools.py +14 -0
  87. hanzo_mcp/tools/memory/memory_tools.py +17 -0
  88. hanzo_mcp/tools/search/find_tool.py +5 -3
  89. hanzo_mcp/tools/search/unified_search.py +3 -1
  90. hanzo_mcp/tools/shell/__init__.py +2 -14
  91. hanzo_mcp/tools/shell/base_process.py +4 -2
  92. hanzo_mcp/tools/shell/bash_tool.py +2 -0
  93. hanzo_mcp/tools/shell/command_executor.py +7 -7
  94. hanzo_mcp/tools/shell/logs.py +5 -0
  95. hanzo_mcp/tools/shell/npx.py +5 -0
  96. hanzo_mcp/tools/shell/npx_background.py +5 -0
  97. hanzo_mcp/tools/shell/npx_tool.py +5 -0
  98. hanzo_mcp/tools/shell/open.py +5 -0
  99. hanzo_mcp/tools/shell/pkill.py +5 -0
  100. hanzo_mcp/tools/shell/process_tool.py +5 -0
  101. hanzo_mcp/tools/shell/processes.py +5 -0
  102. hanzo_mcp/tools/shell/run_background.py +5 -0
  103. hanzo_mcp/tools/shell/run_command.py +2 -0
  104. hanzo_mcp/tools/shell/run_command_windows.py +5 -0
  105. hanzo_mcp/tools/shell/streaming_command.py +5 -0
  106. hanzo_mcp/tools/shell/uvx.py +5 -0
  107. hanzo_mcp/tools/shell/uvx_background.py +5 -0
  108. hanzo_mcp/tools/shell/uvx_tool.py +5 -0
  109. hanzo_mcp/tools/shell/zsh_tool.py +3 -0
  110. hanzo_mcp/tools/todo/todo.py +5 -0
  111. hanzo_mcp/tools/todo/todo_read.py +142 -0
  112. hanzo_mcp/tools/todo/todo_write.py +367 -0
  113. hanzo_mcp/tools/vector/__init__.py +42 -95
  114. hanzo_mcp/tools/vector/index_tool.py +5 -0
  115. hanzo_mcp/tools/vector/vector.py +5 -0
  116. hanzo_mcp/tools/vector/vector_index.py +5 -0
  117. hanzo_mcp/tools/vector/vector_search.py +5 -0
  118. {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.2.dist-info}/METADATA +1 -1
  119. hanzo_mcp-0.9.2.dist-info/RECORD +195 -0
  120. hanzo_mcp/tools/common/path_utils.py +0 -34
  121. hanzo_mcp/tools/compiler/__init__.py +0 -8
  122. hanzo_mcp/tools/compiler/sandboxed_compiler.py +0 -681
  123. hanzo_mcp/tools/environment/__init__.py +0 -8
  124. hanzo_mcp/tools/environment/environment_detector.py +0 -594
  125. hanzo_mcp/tools/filesystem/search.py +0 -1160
  126. hanzo_mcp/tools/framework/__init__.py +0 -8
  127. hanzo_mcp/tools/framework/framework_modes.py +0 -714
  128. hanzo_mcp/tools/memory/conversation_memory.py +0 -636
  129. hanzo_mcp/tools/shell/run_tool.py +0 -56
  130. hanzo_mcp/tools/vector/node_tool.py +0 -538
  131. hanzo_mcp/tools/vector/unified_vector.py +0 -384
  132. hanzo_mcp-0.9.0.dist-info/RECORD +0 -191
  133. {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.2.dist-info}/WHEEL +0 -0
  134. {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.2.dist-info}/entry_points.txt +0 -0
  135. {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.2.dist-info}/top_level.txt +0 -0
@@ -4,26 +4,15 @@ This package provides tools for working with local vector databases for semantic
4
4
  document indexing, and retrieval-augmented generation (RAG) workflows.
5
5
 
6
6
  Supported backends:
7
- - LanceDB (primary) - High-performance embedded vector database
8
- - Hanzo-node (optional) - Distributed vector processing node
9
- - Infinity database (legacy) - High-performance local vector database
7
+ - Infinity database (default) - High-performance local vector database
10
8
  """
11
9
 
12
10
  from mcp.server import FastMCP
13
11
 
14
- from hanzo_mcp.tools.common.base import BaseTool, ToolRegistry
12
+ from hanzo_mcp.tools.common.base import BaseTool
15
13
  from hanzo_mcp.tools.common.permissions import PermissionManager
16
14
 
17
- # Try to import unified vector tools first
18
- try:
19
- from .unified_vector import UnifiedVectorTool
20
- from .node_tool import NodeTool
21
-
22
- UNIFIED_TOOLS_AVAILABLE = True
23
- except ImportError:
24
- UNIFIED_TOOLS_AVAILABLE = False
25
-
26
- # Try to import legacy vector dependencies
15
+ # Try to import vector dependencies
27
16
  try:
28
17
  from .index_tool import IndexTool
29
18
  from .vector_index import VectorIndexTool
@@ -31,73 +20,35 @@ try:
31
20
  from .infinity_store import InfinityVectorStore
32
21
  from .project_manager import ProjectVectorManager
33
22
 
34
- LEGACY_VECTOR_AVAILABLE = True
35
- except ImportError:
36
- LEGACY_VECTOR_AVAILABLE = False
37
-
38
-
39
- def register_vector_tools(
40
- mcp_server: FastMCP,
41
- permission_manager: PermissionManager | None = None,
42
- vector_config: dict | None = None,
43
- enabled_tools: dict[str, bool] | None = None,
44
- search_paths: list[str] | None = None,
45
- project_manager: "ProjectVectorManager | None" = None,
46
- user_id: str = "default",
47
- project_id: str = "default",
48
- use_unified: bool = True,
49
- ) -> list[BaseTool]:
50
- """Register vector database tools with the MCP server.
51
-
52
- Args:
53
- mcp_server: The FastMCP server instance
54
- permission_manager: Permission manager for access control (optional for unified tools)
55
- vector_config: Vector store configuration
56
- enabled_tools: Dictionary of individual tool enable states
57
- search_paths: Paths to search for projects (default: None, uses allowed paths)
58
- project_manager: Optional existing project manager to reuse
59
- user_id: User ID for unified tools
60
- project_id: Project ID for unified tools
61
- use_unified: Whether to use unified tools (default: True)
62
-
63
- Returns:
64
- List of registered tools
65
- """
66
- tools = []
67
-
68
- # Prefer unified tools if available and enabled
69
- if use_unified and UNIFIED_TOOLS_AVAILABLE:
70
- tool_enabled = enabled_tools or {}
71
-
72
- # Register unified vector tool (consolidates vector_search, vector_index, memory ops)
73
- if tool_enabled.get("vector", True):
74
- unified_vector = UnifiedVectorTool(user_id=user_id, project_id=project_id)
75
- ToolRegistry.register_tool(mcp_server, unified_vector)
76
- tools.append(unified_vector)
77
-
78
- # Register node management tool
79
- if tool_enabled.get("node", True):
80
- node_tool = NodeTool()
81
- ToolRegistry.register_tool(mcp_server, node_tool)
82
- tools.append(node_tool)
83
-
84
- import logging
85
- logger = logging.getLogger(__name__)
86
- logger.info(f"Registered {len(tools)} unified vector tools")
87
-
88
- # Fall back to legacy tools if unified not available or disabled
89
- elif not use_unified and LEGACY_VECTOR_AVAILABLE:
23
+ VECTOR_AVAILABLE = True
24
+
25
+ def register_vector_tools(
26
+ mcp_server: FastMCP,
27
+ permission_manager: PermissionManager,
28
+ vector_config: dict | None = None,
29
+ enabled_tools: dict[str, bool] | None = None,
30
+ search_paths: list[str] | None = None,
31
+ project_manager: "ProjectVectorManager | None" = None,
32
+ ) -> list[BaseTool]:
33
+ """Register vector database tools with the MCP server.
34
+
35
+ Args:
36
+ mcp_server: The FastMCP server instance
37
+ permission_manager: Permission manager for access control
38
+ vector_config: Vector store configuration
39
+ enabled_tools: Dictionary of individual tool enable states
40
+ search_paths: Paths to search for projects (default: None, uses allowed paths)
41
+ project_manager: Optional existing project manager to reuse
42
+
43
+ Returns:
44
+ List of registered tools
45
+ """
90
46
  if not vector_config or not vector_config.get("enabled", False):
91
47
  return []
92
48
 
93
- if not permission_manager:
94
- import logging
95
- logger = logging.getLogger(__name__)
96
- logger.warning("Permission manager required for legacy vector tools")
97
- return []
98
-
99
49
  # Check individual tool enablement
100
50
  tool_enabled = enabled_tools or {}
51
+ tools = []
101
52
 
102
53
  # Use provided project manager or create new one
103
54
  if project_manager is None:
@@ -128,34 +79,30 @@ def register_vector_tools(
128
79
  tools.append(VectorSearchTool(permission_manager, project_manager))
129
80
 
130
81
  # Register with MCP server
82
+ from hanzo_mcp.tools.common.base import ToolRegistry
83
+
131
84
  ToolRegistry.register_tools(mcp_server, tools)
132
-
133
- else:
85
+
86
+ return tools
87
+
88
+ except ImportError:
89
+ VECTOR_AVAILABLE = False
90
+
91
+ def register_vector_tools(*args, **kwargs) -> list[BaseTool]:
92
+ """Vector tools not available - missing dependencies."""
134
93
  import logging
135
- logger = logging.getLogger(__name__)
136
- if not UNIFIED_TOOLS_AVAILABLE and not LEGACY_VECTOR_AVAILABLE:
137
- logger.warning("No vector tools available. Install hanzo-memory package or infinity-embedded.")
138
- elif not use_unified:
139
- logger.info("Unified vector tools disabled, legacy tools not available")
140
94
 
141
- return tools
95
+ logger = logging.getLogger(__name__)
96
+ logger.warning("Vector tools not available. Install infinity-embedded: pip install infinity-embedded")
97
+ return []
142
98
 
143
99
 
144
100
  __all__ = [
145
101
  "register_vector_tools",
146
- "UNIFIED_TOOLS_AVAILABLE",
147
- "LEGACY_VECTOR_AVAILABLE",
102
+ "VECTOR_AVAILABLE",
148
103
  ]
149
104
 
150
- if UNIFIED_TOOLS_AVAILABLE:
151
- __all__.extend(
152
- [
153
- "UnifiedVectorTool",
154
- "NodeTool",
155
- ]
156
- )
157
-
158
- if LEGACY_VECTOR_AVAILABLE:
105
+ if VECTOR_AVAILABLE:
159
106
  __all__.extend(
160
107
  [
161
108
  "InfinityVectorStore",
@@ -8,6 +8,8 @@ from pathlib import Path
8
8
  from pydantic import Field
9
9
  from mcp.server.fastmcp import Context as MCPContext
10
10
 
11
+ from hanzo_mcp.tools.common.auto_timeout import auto_timeout
12
+
11
13
  from hanzo_mcp.tools.common.base import BaseTool
12
14
  from hanzo_mcp.tools.common.context import create_tool_context
13
15
  from hanzo_mcp.tools.common.permissions import PermissionManager
@@ -105,6 +107,9 @@ Usage:
105
107
  - index --force: Force re-indexing of all files"""
106
108
 
107
109
  @override
110
+ @auto_timeout("index")
111
+
112
+
108
113
  async def call(
109
114
  self,
110
115
  ctx: MCPContext,
@@ -15,6 +15,8 @@ from pathlib import Path
15
15
  from pydantic import Field
16
16
  from mcp.server.fastmcp import Context as MCPContext
17
17
 
18
+ from hanzo_mcp.tools.common.auto_timeout import auto_timeout
19
+
18
20
  from hanzo_mcp.tools.common.base import BaseTool
19
21
  from hanzo_mcp.tools.common.permissions import PermissionManager
20
22
  from hanzo_mcp.tools.vector.project_manager import ProjectVectorManager
@@ -131,6 +133,9 @@ vector --action clear --path ./old_code
131
133
  """
132
134
 
133
135
  @override
136
+ @auto_timeout("vector")
137
+
138
+
134
139
  async def call(
135
140
  self,
136
141
  ctx: MCPContext,
@@ -5,6 +5,8 @@ from pathlib import Path
5
5
 
6
6
  from mcp.server.fastmcp import Context as MCPContext
7
7
 
8
+ from hanzo_mcp.tools.common.auto_timeout import auto_timeout
9
+
8
10
  from hanzo_mcp.tools.common.base import BaseTool
9
11
  from hanzo_mcp.tools.common.permissions import PermissionManager
10
12
 
@@ -56,6 +58,9 @@ database. Files are chunked for optimal search performance.
56
58
  Projects are detected by finding LLM.md files, with databases stored in .hanzo/db
57
59
  directories alongside them. Use this to build searchable knowledge bases per project."""
58
60
 
61
+ @auto_timeout("vector_index")
62
+
63
+
59
64
  async def call(
60
65
  self,
61
66
  ctx: MCPContext,
@@ -5,6 +5,8 @@ from typing import List, Unpack, Optional, TypedDict, final
5
5
 
6
6
  from mcp.server.fastmcp import Context as MCPContext
7
7
 
8
+ from hanzo_mcp.tools.common.auto_timeout import auto_timeout
9
+
8
10
  from hanzo_mcp.tools.common.base import BaseTool
9
11
  from hanzo_mcp.tools.common.permissions import PermissionManager
10
12
 
@@ -62,6 +64,9 @@ Features:
62
64
 
63
65
  Use 'grep' for exact text/pattern matching, 'vector_search' for semantic similarity."""
64
66
 
67
+ @auto_timeout("vector_search")
68
+
69
+
65
70
  async def call(
66
71
  self,
67
72
  ctx: MCPContext,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hanzo-mcp
3
- Version: 0.9.0
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
@@ -0,0 +1,195 @@
1
+ hanzo_mcp/__init__.py,sha256=qGo83mHlzXfJQPVxf07f57cSLlvklIjg37MAZOIrqvw,863
2
+ hanzo_mcp/__main__.py,sha256=EvDEygOjvP6S_CrZSL8E4qgGUcO_xfmzEIbsLEHPaK4,130
3
+ hanzo_mcp/bridge.py,sha256=ObrWXK01tthz7SmlGie7S-W5bn8xT9M-utCBbDie6wc,14853
4
+ hanzo_mcp/cli.py,sha256=Z21cVfQE2rNbS157IDEkgg7kcXyin_eyyDMTytQdwZE,18529
5
+ hanzo_mcp/cli_enhanced.py,sha256=iwYreGC6GiCqfFWDlRzMOmDqHKVm_qD7YD6I2nOxlpY,15942
6
+ hanzo_mcp/cli_plugin.py,sha256=WvqxDrErFXlgv5ZejMsrN78FsPLq9Gi_DoteFTPlcXU,3143
7
+ hanzo_mcp/compute_nodes.py,sha256=mFHQdxyo_SEeiwrQaPg-V9q2xmMRQiO7X_NePrWhSZ4,6315
8
+ hanzo_mcp/dev_server.py,sha256=uBGdvpK8rXPgLSoYv1quOIrCQnsUf02FwmYcTu8SvSI,8231
9
+ hanzo_mcp/server.py,sha256=WHUV0FU0LBozPmHbPaImv9r_g0PDoAGrMol8Cn3iNSk,11000
10
+ hanzo_mcp/server_enhanced.py,sha256=bBrObdysyda6Ggf-E3aL7UwktUNzYO_HG1V45Av5r-E,2003
11
+ hanzo_mcp/types.py,sha256=4YjIJmM7byrsY4eN10pbhIUpFMQ-fZrpK6scgt-U9dU,648
12
+ hanzo_mcp/analytics/__init__.py,sha256=ANyntTooBrpa_uvwE6KbYxB9uda610UT10pt2rrLiUU,213
13
+ hanzo_mcp/analytics/posthog_analytics.py,sha256=k_LcXHznKd-Wbqrq1v8azsTVuPDd7Fw1BE244OhQtPM,11086
14
+ hanzo_mcp/config/__init__.py,sha256=1ifMucAN-htFEGdRpiC1T809Q03Bd7YUE5ATOHNi6Po,505
15
+ hanzo_mcp/config/settings.py,sha256=doZFlgwVyQHH4PMThHB6U2USTA0TfzqFag8n1JiFeK4,18859
16
+ hanzo_mcp/config/tool_config.py,sha256=N2yQSb3D5TtA_EDHxGaY_UFotAqonXMOXLwyBUjv_EU,6828
17
+ hanzo_mcp/core/base_agent.py,sha256=FtiGT9qP6Qg-5HoBxZK77LUo4zMUJDbZxiykmleTAO8,14795
18
+ hanzo_mcp/core/model_registry.py,sha256=DdV8e8jIFDqDvV2T6u_kvxL2WAqjuXvpfZDPHP6P8hE,13811
19
+ hanzo_mcp/prompts/__init__.py,sha256=flgM_MHLT49lrUqEhIzFj5amY0P6LMDp0-u1sDwz184,7648
20
+ hanzo_mcp/prompts/compact_conversation.py,sha256=nvD068KEesiMcevxxMBeIJh6AqT7YHOqyH6RepRFFfA,4206
21
+ hanzo_mcp/prompts/create_release.py,sha256=1Z8xSTtz5vAm0rWFnERpFu7wIYExT4iXhM6nGmQaM-s,1374
22
+ hanzo_mcp/prompts/enhanced_prompts.py,sha256=wkTMt9TaH8dW9ZxyqdXzyAYBkAWsubXw00Ewvl9pN8s,16908
23
+ hanzo_mcp/prompts/example_custom_prompt.py,sha256=HcUt3qSbKHlp7CgpP1pWa6gb1G441nxLtCVsa42qxw0,1671
24
+ hanzo_mcp/prompts/project_system.py,sha256=FgWxRaX7rPQwDZT3n69yBwLkQv4uJ4jcUZjKzikjR9A,8230
25
+ hanzo_mcp/prompts/project_todo_reminder.py,sha256=95Y32uI2LBfOPQ464K_8nDXNyIojQSOR0PkKQ1_EYy4,3586
26
+ hanzo_mcp/prompts/tool_explorer.py,sha256=Heysi9xgEU0UHCFZc44yDFi2a5pgED1ZiTeHlLtZuOI,16397
27
+ hanzo_mcp/prompts/utils.py,sha256=ubi8yrZH2NKPtJXilwhR6pUGSsO0lyKxP_T0SmQtFwM,9695
28
+ hanzo_mcp/tools/__init__.py,sha256=RZVr_s1Jnc1cCGcDU2FYKtPqZrTWa-ME9umPixl2YaU,19038
29
+ hanzo_mcp/tools/agent/__init__.py,sha256=K5fWO3MSpMoTHiP38qvZJ9VhOQQlFwSgIPI9fRWtIX4,4879
30
+ hanzo_mcp/tools/agent/agent.py,sha256=FeWBHGkexpp50Ya7pA8APoHK4ZchDhIDh7eWEX_axDA,13038
31
+ hanzo_mcp/tools/agent/agent_tool.py,sha256=ysNrkoEd4L2t32f0yS9sa7xFS9cDN6XzzQh2d2v3yfI,16801
32
+ hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py,sha256=m86qZC4FmNvRckKXcQlpw6N2hmQsUduzyizhenDG5Ps,26228
33
+ hanzo_mcp/tools/agent/clarification_protocol.py,sha256=QYJTmDSJVRDyZMow80TxWmnJurxuLo1MaIFge8t_Yvk,8041
34
+ hanzo_mcp/tools/agent/clarification_tool.py,sha256=sye5Y7F8IOaDNh3ZHmcSDGPBJog9-ZJdutV2hGHc1vQ,2674
35
+ hanzo_mcp/tools/agent/claude_cli_tool.py,sha256=55Wc0LKgYCtDKQ02NXOYPMhx-sW7fL_NSCx0upsvvb4,3812
36
+ hanzo_mcp/tools/agent/claude_desktop_auth.py,sha256=NpU4F-167_2_GFldhTABFQwQnDS4jb88ShtLQW9Sq4k,16467
37
+ hanzo_mcp/tools/agent/cli_agent_base.py,sha256=Acfqz4q3AWm-AmTn1gkUgc6cC4T8X8-UMUPKqVh7U0c,6290
38
+ hanzo_mcp/tools/agent/cli_tools.py,sha256=0BdvsqAcae42TwsDjdBmPu7aM3wR_hCv3VIGyNLWqPY,16442
39
+ hanzo_mcp/tools/agent/code_auth.py,sha256=97g3qqBBJNfGdoUppVhc2-BzvyWJVQUe9sYUYS9cBmQ,13902
40
+ hanzo_mcp/tools/agent/code_auth_tool.py,sha256=oNCCP6mpm8zSBIoZZR3cFA-PkHfoyHpGaRmML3MKjlw,6200
41
+ hanzo_mcp/tools/agent/codex_cli_tool.py,sha256=9jyB4cTtdcK50g6oapk7Bo4n8C8bAO2B9RuHHLOtP54,3697
42
+ hanzo_mcp/tools/agent/critic_tool.py,sha256=gu8GmrhQsBzvfrKiDF1akBHfHTtjxhPw9gjyxY4E1QM,13986
43
+ hanzo_mcp/tools/agent/gemini_cli_tool.py,sha256=4PE7qYGlFC6_u0T2_Yh3WfBqZjuZM4UY2rPBkKtwaEU,3927
44
+ hanzo_mcp/tools/agent/grok_cli_tool.py,sha256=YH1qweHDWDm-Yo84gcw_bL2w_vIdhSc6f7LNJlAHSeQ,3761
45
+ hanzo_mcp/tools/agent/iching_tool.py,sha256=toTmskSy6IRnInJMMx6tsnZvd0ylZcHDPoybhUPYOyA,23406
46
+ hanzo_mcp/tools/agent/network_tool.py,sha256=NWpery3KyB2DhAFPZKjbGO-mUwe1xTrcAF6IwOGRs_8,8433
47
+ hanzo_mcp/tools/agent/prompt.py,sha256=16UWq8cxCPDWru5V8izcBqqorEohCxhQkh4KLPzcibI,6782
48
+ hanzo_mcp/tools/agent/review_tool.py,sha256=yC2t9mWOq4ifsGjYYKGNiVQ0biJhvEChufHPHO3a_rM,16793
49
+ hanzo_mcp/tools/agent/swarm_alias.py,sha256=7ubiu4PI7fArsJhK7tM0Q7CCZAOxdb4qNA3cLkuf9Ko,3067
50
+ hanzo_mcp/tools/agent/swarm_tool.py,sha256=4tgJw7pGoUdmrmka-zUcGIMqIByQXVWSlS9iu_3PInw,22241
51
+ hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py,sha256=Qx4GecLtIUFSCeBHjkdcKEM_qVVchsYGBt1mDPM11yk,20310
52
+ hanzo_mcp/tools/agent/tool_adapter.py,sha256=rLItgdKvvfzJL4chNIrNK_I5kSCm6ocmi83RQm93NgA,3191
53
+ hanzo_mcp/tools/agent/unified_cli_tools.py,sha256=Cqi39TcT-88wZtlgOocsdE4HAD0xJtuAXjpnd_WwdkE,8230
54
+ hanzo_mcp/tools/common/__init__.py,sha256=2gXIERXM7sALINWfDBbH_khzBRatvwQSWgpAvKlfy4o,1283
55
+ hanzo_mcp/tools/common/auto_timeout.py,sha256=KJ7w_MLcIgwoPphM2Q3gSNG83nybracxsmEMaUGAZII,8980
56
+ hanzo_mcp/tools/common/base.py,sha256=pI3uoXFDtjUKgCBXwcXe3coMBBcp9xfpxi_XhQKciUY,5964
57
+ hanzo_mcp/tools/common/batch_tool.py,sha256=l1QXZ2A8qLBH021jpADIEpQbuNOjzCvNCdvIqxCGAHw,15788
58
+ hanzo_mcp/tools/common/config_tool.py,sha256=fVh__RYg_FEU1kA0a2U3AeBJ1DEG_GWpA3sbD00D7QQ,15978
59
+ hanzo_mcp/tools/common/context.py,sha256=xcSsG_wg-UdeaSCXLeGVBWvIv_m9-tTV_Rh6N5yVYvg,5126
60
+ hanzo_mcp/tools/common/context_fix.py,sha256=UNRpm_83x0iCsme7Y0D8NyvtJpyoS-7pcbXHaAnvp28,763
61
+ hanzo_mcp/tools/common/critic_tool.py,sha256=ZZPKwNrJEEtlV_D3Z7wbUVlNf-fkb90eAtoaAYOovkE,6319
62
+ hanzo_mcp/tools/common/decorators.py,sha256=tqv5AqR4_bj5vPPM63nURqwP3X_udsJBDLXz4FNIBtI,6529
63
+ hanzo_mcp/tools/common/enhanced_base.py,sha256=qcYI0_cAt2Hj1RUXv_2Qg9pW5VLIxPwjsQ88ZHf31pI,3529
64
+ hanzo_mcp/tools/common/fastmcp_pagination.py,sha256=GrxSA346dIWFXy16vek5AqUoQByiorLA2IVLENuktIw,11588
65
+ hanzo_mcp/tools/common/forgiving_edit.py,sha256=QceOLOl3f96F64YF_Y-t5H9MZmFRbibJ6xfwqp7fVG8,9070
66
+ hanzo_mcp/tools/common/mode.py,sha256=_vGGnRx4DMSrmAj43xEe9I80MUsr3htmUbMvUBtTIWE,3212
67
+ hanzo_mcp/tools/common/mode_loader.py,sha256=Q5PtbGoLEpcGnZchoGPrlf6HA1kZK32PLziu0_c1ukY,3206
68
+ hanzo_mcp/tools/common/paginated_base.py,sha256=CfiCgaVxocVgAl-al7Ii_Q1vDO2H_3HftGil3FEv6gQ,8536
69
+ hanzo_mcp/tools/common/paginated_response.py,sha256=Y2PfXlnFYuKMir9BvYcKBc3nVgX6k7l5gs1eFGmiQF0,9942
70
+ hanzo_mcp/tools/common/pagination.py,sha256=vLO-DwjgzhlHmykkMdy5AAzEak5htv8qgxETnpsnqG4,6033
71
+ hanzo_mcp/tools/common/permissions.py,sha256=DkpVDNq1tua4QmCIT-ZQH9kUBQJYcqRfyG5jc0Khhx4,9581
72
+ hanzo_mcp/tools/common/personality.py,sha256=MiT8QlOGzWGYlWuGgxokFcQU6bUbTWdpsEFBrTyB360,37315
73
+ hanzo_mcp/tools/common/plugin_loader.py,sha256=dVmwi-_sYfnTqIK_MbD1rBBp5I6Av8A6bF6-VAsOqSA,8701
74
+ hanzo_mcp/tools/common/stats.py,sha256=LjF11l1abNa0tNcBxyifipO1NlxRhv_H2od3Ed8FPTw,9656
75
+ hanzo_mcp/tools/common/test_helpers.py,sha256=rrepQmWvqRc3gyNkqBARjGBOFtFolUTQAU4vIfP1If8,1076
76
+ hanzo_mcp/tools/common/thinking_tool.py,sha256=oJj-gGzrt3MNS8lPQvkYaPNCKn0VlSrU3HDXLLmqks0,5100
77
+ hanzo_mcp/tools/common/timeout_parser.py,sha256=n2UcA3yi6k-41XJy66uNQ8tCnYX-c42iqdWOSLFDqsI,3017
78
+ hanzo_mcp/tools/common/tool_disable.py,sha256=yS-IQ2erWtXhj6wKeitrl7VLrls-2Q8cnjroFE1JaGs,4336
79
+ hanzo_mcp/tools/common/tool_enable.py,sha256=ZMFKvdKaZ75l9GHGH-V0PwKQcYCl21PVIGy_TP8Zowk,5068
80
+ hanzo_mcp/tools/common/tool_list.py,sha256=mSifdgbJhPN2YrqzoqX5NOI4P_RnfnB9RLfHl8KUyJw,9484
81
+ hanzo_mcp/tools/common/truncate.py,sha256=D_RSTh0ZaEuuY-mwvgv46OEA9FtQRbJYcIOk_eVG4HM,3110
82
+ hanzo_mcp/tools/common/validation.py,sha256=u-7iTVxPAQn1ZRGfy7OQ6nAaJVmvzeB7RoU5-cbJY3Q,1687
83
+ hanzo_mcp/tools/config/__init__.py,sha256=Elxh2EV-SZ43XJGFBkMmE1Kb-ANZWTDnBTQyNOq8baA,313
84
+ hanzo_mcp/tools/config/config_tool.py,sha256=J8G5k53OzFP5NoXwj-kaxfelM7oSHHgre5zlU-iUI3s,12367
85
+ hanzo_mcp/tools/config/index_config.py,sha256=NknWv5CjfTmBh9fNsvJQ4l-TBF_5IMVo5MObia1DrPE,6167
86
+ hanzo_mcp/tools/config/mode_tool.py,sha256=miC3TPfqk6Zp-H0irEIwjaeDG4boLVouYtuur1U_B8E,10867
87
+ hanzo_mcp/tools/database/__init__.py,sha256=UJEQWCeqUmyWu1npfy2T2dYT1rI7RawXqHwVhrmVhE8,2145
88
+ hanzo_mcp/tools/database/database_manager.py,sha256=xQzVWXlgTefso3y0yCqeZUKJ5W-mLFSi-TZJKvvaP8g,8436
89
+ hanzo_mcp/tools/database/graph.py,sha256=LDq6pyxj_0Ere437ZhwD23sy55eWzUAYImQ4nAp_TIo,17046
90
+ hanzo_mcp/tools/database/graph_add.py,sha256=up5OQmhV5TE9x7LXNVdvk5tvxtc_jDS8N1Ljz0ubJ1A,7843
91
+ hanzo_mcp/tools/database/graph_query.py,sha256=dvgydhtiUXabwv0RzmRto5smo6tg279pfsWN-Nhda0M,19559
92
+ hanzo_mcp/tools/database/graph_remove.py,sha256=7eqER_m9sPJGYHRzuQ8hgcuxkVPCfkuBbFsl4lqZXUw,8530
93
+ hanzo_mcp/tools/database/graph_search.py,sha256=8CM3n7an6Qk6FK3lTEmlNHXiGpzoekQN5bl1BjZKTL0,12524
94
+ hanzo_mcp/tools/database/graph_stats.py,sha256=6GG6Z_Qzk0pduyatn0WQep_XhbSwLqomLwNIybfg2Z4,12819
95
+ hanzo_mcp/tools/database/sql.py,sha256=WgN2UHh5YO7sSbw_k8Iz5jP1ftN_tPubSOMPhvxXWt0,15573
96
+ hanzo_mcp/tools/database/sql_query.py,sha256=OstRu4ICpYI9MPifiG6erqCU3h6qu9C5v3ZEdLrCC50,7266
97
+ hanzo_mcp/tools/database/sql_search.py,sha256=u8LGpBInTQJ8YYpkj647QAjtWTEeU2_3mX6c-stXIfc,9712
98
+ hanzo_mcp/tools/database/sql_stats.py,sha256=Ikm3egOgzyNh5n85uQH-vmY0es7JJduuYLkBwKEBZzM,8794
99
+ hanzo_mcp/tools/editor/__init__.py,sha256=UfwWP23OUFmd6dYRwm2fKfaYDlignQ2gfi32yRson08,331
100
+ hanzo_mcp/tools/editor/neovim_command.py,sha256=gbW48iuYZ7i4BsHnPfSU5lwHK_-YYAvFYfJZ_rXzN2c,8124
101
+ hanzo_mcp/tools/editor/neovim_edit.py,sha256=dEzrKXuZKLK16hMieywN0IycvltktzpEhNVk1JmyNB0,8712
102
+ hanzo_mcp/tools/editor/neovim_session.py,sha256=r9V9AEQu7xotGjhOdEIQvUKB5u8Hvel-QdMDeSeitTk,11759
103
+ hanzo_mcp/tools/filesystem/__init__.py,sha256=bj4xfqzZuABKzGi1G0qgk5IIDsFlOa6k2nQLYLc28dc,8532
104
+ hanzo_mcp/tools/filesystem/ast_multi_edit.py,sha256=kxJL-Nicav9Tn6BcDPBFKGq67XLWhtYgF1NV7UlhzK4,22180
105
+ hanzo_mcp/tools/filesystem/ast_tool.py,sha256=ybm8R55-TtK6t8Y7CFUpqnqXeQ6eIs42M0A2OEWE4PY,7378
106
+ hanzo_mcp/tools/filesystem/base.py,sha256=qKrN4VdO-oTWOGxpA7_Iu9UubHqIanlZjn9QRnHQBVA,3774
107
+ hanzo_mcp/tools/filesystem/batch_search.py,sha256=8r4eDqNaYZzCvYUFV6YEsQ9KcIRP9N1Vsa96XHw6m1c,32830
108
+ hanzo_mcp/tools/filesystem/content_replace.py,sha256=EA3vuIQp7St5r-ld-r8bnFfikvVDmdTbghBDl1rXTT0,9884
109
+ hanzo_mcp/tools/filesystem/diff.py,sha256=bhhTtGU9tSZcigd53PBRBCzqmlAngMWlkWxK9j7TX0w,7635
110
+ hanzo_mcp/tools/filesystem/directory_tree.py,sha256=xfr8Nxl5Na6W8kb2ktBuuE1S10FwQf2ZGoCCBLydvsk,10866
111
+ hanzo_mcp/tools/filesystem/directory_tree_paginated.py,sha256=2ArA_Uaa76WfM-O8nx5dqD2uYdsImIJ_Ols57QzpouI,11599
112
+ hanzo_mcp/tools/filesystem/edit.py,sha256=s2NKTG-vDrk1iyWJqwns7iXyM6pMpcm_D02-SYj4OEc,10511
113
+ hanzo_mcp/tools/filesystem/find.py,sha256=EmfhYOhvKgdyk5pxOXymFf-bpXtSMLSxYetg4-D5N4E,15663
114
+ hanzo_mcp/tools/filesystem/find_files.py,sha256=goo40H1w4F3Re5BwZdn5b8rft7Mxz8WM1pH_ZA1YgsA,10838
115
+ hanzo_mcp/tools/filesystem/git_search.py,sha256=FQbC-vLf7KNKL83gCOosFw7xbxO_mG6GE_bjEqrGljs,16485
116
+ hanzo_mcp/tools/filesystem/grep.py,sha256=K20loRoIZOKSaAO3Kcg2mCm5D2jyZCiIqmWQ71EZ3gE,17042
117
+ hanzo_mcp/tools/filesystem/multi_edit.py,sha256=vZZCJ5tE_QCE-8WaY6i7af8hyPatdTCdhOHwbw-3rsQ,14048
118
+ hanzo_mcp/tools/filesystem/read.py,sha256=oPSYXFWQf5R6Ch7v36yUliFf-HW7yjUv0hSWxkN2jUE,9390
119
+ hanzo_mcp/tools/filesystem/rules_tool.py,sha256=JPGubQLiGvrrvQqscPQOmSNk6A3WH63iTHV6ldU6_1g,8388
120
+ hanzo_mcp/tools/filesystem/search_tool.py,sha256=LFsu7OpTODUN2QnVzokN5y1obSrdsrFzclsNwkh2hjw,25833
121
+ hanzo_mcp/tools/filesystem/symbols_tool.py,sha256=ihZQ7-5X-ubPWXy8p13krFEuU-bJmyzBV8_cf556Deg,15964
122
+ hanzo_mcp/tools/filesystem/tree.py,sha256=fM6dd7yG45TKNzFqHdM-Z0UzX-PoR2KqBxhCV4AnPoI,7281
123
+ hanzo_mcp/tools/filesystem/unix_aliases.py,sha256=N4vy9SXtecCNtggv2zjFk8CmHvhuqTvR6Ha_KT1UE_g,3031
124
+ hanzo_mcp/tools/filesystem/watch.py,sha256=k9BxZfHk7WV2KcE48NwnPnPvXsnb0GG6xb3nWlGCJ8g,6950
125
+ hanzo_mcp/tools/filesystem/write.py,sha256=_i5ut7x23p1UoXUQdvlyVlTO18gmedrHE8PVvagEzLc,4783
126
+ hanzo_mcp/tools/jupyter/__init__.py,sha256=-7uAomIx8tboZ9gcal7t2MRvgZ9A3cltIYA4perfZVE,2646
127
+ hanzo_mcp/tools/jupyter/base.py,sha256=4O8iMBNqlrCNFEbsihpHyX_nyUqLV7w3AWb_0kcKD14,9788
128
+ hanzo_mcp/tools/jupyter/jupyter.py,sha256=HTcOtuL-I-t4k-luz3_iSPOe6aViKyGlIoK21I-YQmA,14933
129
+ hanzo_mcp/tools/jupyter/notebook_edit.py,sha256=kya2TUp0DNzQA_o0rWyMRKCoFXOfe5tNVNQUk93jL80,11476
130
+ hanzo_mcp/tools/jupyter/notebook_read.py,sha256=dSE7Wo5Ob8GKLvfnUsJ_i1Pwh4xnujTVjRGiZevAOCQ,5219
131
+ hanzo_mcp/tools/llm/__init__.py,sha256=4j8X6wqwchBEur0KYqsmPebRw8ZthDj9StpC41csk0M,1524
132
+ hanzo_mcp/tools/llm/consensus_tool.py,sha256=sFAx0AuT9UZX_hs4PZy35cMiIFPCv5C-XuSXm36_kvs,11444
133
+ hanzo_mcp/tools/llm/llm_manage.py,sha256=lVp6VNsC9WcZfbaMENfI18hE-7k4S3Ro9TdAyjxiM50,16050
134
+ hanzo_mcp/tools/llm/llm_tool.py,sha256=69wdw8T-t7y3T0S3oDQrhWTlmEby_8G5aUrO6GsIU8M,29659
135
+ hanzo_mcp/tools/llm/llm_unified.py,sha256=P4X2v7NDmMqfQoCbh43iZehrL8h90DwS7me09dCEiM4,28930
136
+ hanzo_mcp/tools/llm/provider_tools.py,sha256=9sBtTsIqvvDwOQ7yZjttM4mVOcaVCEEhEJ2CNKMy4KM,11489
137
+ hanzo_mcp/tools/lsp/__init__.py,sha256=2Z1edOMrLV6gi1dyGgUyN3lN4HOWynf73Eye_eBk2Xo,150
138
+ hanzo_mcp/tools/lsp/lsp_tool.py,sha256=m_JuykGdQr_oKoIo3xOmmNHaARqzT4tYGgh2BDJmXEY,19350
139
+ hanzo_mcp/tools/mcp/__init__.py,sha256=Rml2im2dg4wNra4nsDH09q73G-yoifQrXL9iYhPmfTg,347
140
+ hanzo_mcp/tools/mcp/mcp_add.py,sha256=VJQP4FTH0c5vdS6iqd3l6DvesheOb1pToKV0xpq4r0c,7920
141
+ hanzo_mcp/tools/mcp/mcp_remove.py,sha256=i8yTz7rGmARsJDdSGkmnwHPEngKG_kkdo2Cn_4P5qCM,3755
142
+ hanzo_mcp/tools/mcp/mcp_stats.py,sha256=7Huo6-S7OqSgGRwTYY-cn_xPlRulSgQgFe_sSRBkJzM,5368
143
+ hanzo_mcp/tools/mcp/mcp_tool.py,sha256=GOUtvB00Ti3ZU5Igam-OHe0H3Qs6mZOt928ec1nCQ5k,16638
144
+ hanzo_mcp/tools/memory/__init__.py,sha256=GQ17ESC6ecPkBEDtAnOYPfHQaXRrs9sr-jv8sUcvKcw,3167
145
+ hanzo_mcp/tools/memory/knowledge_tools.py,sha256=oJSDnQjCqyVo3m3TYs12gSIotUmyK_NDrNBDoh39-U0,17719
146
+ hanzo_mcp/tools/memory/memory_tools.py,sha256=_AW6bUNfa4WigBQeRtgZRpS8azDfShmTB42HDOMK3JE,13759
147
+ hanzo_mcp/tools/search/__init__.py,sha256=7z0GUOmKrJyI7MCbLIvO5zbWHknaNf6kCowi2CtoNNw,292
148
+ hanzo_mcp/tools/search/find_tool.py,sha256=LBL1hfamw04ipKWZ2-6JHxPI3-7XhsvUM_poOLGPCPU,23328
149
+ hanzo_mcp/tools/search/unified_search.py,sha256=JrjhQO62wrY2vItLlEyR1-1ZUlTCBewaHT3pfSXBeyY,35095
150
+ hanzo_mcp/tools/shell/__init__.py,sha256=wxzLRZ8_YN4DmhR3pSpvgWSxnRpCq6U9YCsLszSMIHQ,2343
151
+ hanzo_mcp/tools/shell/auto_background.py,sha256=c1zm2Tpv2XRo_zWbNrphOW1_x8mq8HH-lfG_lXOuhTw,8211
152
+ hanzo_mcp/tools/shell/base.py,sha256=k6iCixqFHOYBiq_0723yGyV6QgQuRYt3ipxtruTzyBI,5778
153
+ hanzo_mcp/tools/shell/base_process.py,sha256=maDql5tKUX0esun3u2n-J1DiecOQVb9MiWRkV1gqfKE,10655
154
+ hanzo_mcp/tools/shell/bash_session.py,sha256=OPWajWdEan9-LBCdQGgh-hCP7bNXh_OuehaNrEXIz3Q,27058
155
+ hanzo_mcp/tools/shell/bash_session_executor.py,sha256=vHduqxC8H4iJqmuQrWaN0FnykOHTPDZQSHQPeJBaYkI,10714
156
+ hanzo_mcp/tools/shell/bash_tool.py,sha256=HVYYWBHP9vPg89jscCF0__jgTVdfUM_Ey_HlfzHRl4M,3772
157
+ hanzo_mcp/tools/shell/command_executor.py,sha256=djNPK2RSRLGaBYY3_xqnwIQ61sm4OHWvOXTZsD1P3qs,35453
158
+ hanzo_mcp/tools/shell/logs.py,sha256=FAqJgTJrOGeMua3Yk1eIWz6y_OD0QI39xFHO8pf9C4g,8308
159
+ hanzo_mcp/tools/shell/npx.py,sha256=d1LBfwTEdwvf1E8moxxr_NkcByn9tG1ZdSiztc1z_4M,5054
160
+ hanzo_mcp/tools/shell/npx_background.py,sha256=9Fi2X-zzhdBxeiBs6ZdndwNZPpC0Th3q9KcATivPSm0,7196
161
+ hanzo_mcp/tools/shell/npx_tool.py,sha256=Susowzmu0ryhZJd7svnCsIWcRfTxp9bDxFmsmNYdQmg,2959
162
+ hanzo_mcp/tools/shell/open.py,sha256=XC0gzQrrOFjBC99b9PaiFmh-sI896XHxM3GKrRjiTi4,3628
163
+ hanzo_mcp/tools/shell/pkill.py,sha256=nwd_jyd8igpfAQd4WFcJ1dyee304DtPgbDv3L781Oso,8519
164
+ hanzo_mcp/tools/shell/process_tool.py,sha256=Q3G6wR3J7MxN65ZF5vA_U0JSSrwTBinqViK57RnziKw,4793
165
+ hanzo_mcp/tools/shell/processes.py,sha256=SJ_x6sgB5SoZw4VXLXOzG1mEGCUG_MRv90dDZHk2-RA,8868
166
+ hanzo_mcp/tools/shell/run_background.py,sha256=0kS4h77Pj1TPtVZoy2M_MPDeeNtTPFyy-sOeMI36guY,9691
167
+ hanzo_mcp/tools/shell/run_command.py,sha256=-T8unGMZ6CKUZrwrvwWz8kKo24KNpBVIMdAlRvhvpx8,16176
168
+ hanzo_mcp/tools/shell/run_command_windows.py,sha256=5gW2KkbqMBZqA3ClJ6Wx22veMnlbVaohRg6TDJ9ABPI,15412
169
+ hanzo_mcp/tools/shell/session_manager.py,sha256=Fc91zVr65u_5fIXoVq0rhbbQQ9Vmo1gxsUSaroC8F40,6481
170
+ hanzo_mcp/tools/shell/session_storage.py,sha256=gWdZnAYSZE_v_aWgPnw8UalW-k1baoa-7Y3CpPxJ4OE,10095
171
+ hanzo_mcp/tools/shell/streaming_command.py,sha256=qbDJupBhVbR5tnJz1ZKR7NXBW3XYpST8foX3HKX_kpo,22420
172
+ hanzo_mcp/tools/shell/uvx.py,sha256=HmD5f7-1nrQzpo3lZLW9Zr_GGulig3zgsjzrI9sjD-I,6503
173
+ hanzo_mcp/tools/shell/uvx_background.py,sha256=9rtX8hUytAezTKD0CLTsTjrSpBX4a1hyUoC8CkYGMLw,8679
174
+ hanzo_mcp/tools/shell/uvx_tool.py,sha256=gxm8EWiEAt4YNISfjcd2xFetkRB1kdmNChZm4aC1hy8,2995
175
+ hanzo_mcp/tools/shell/zsh_tool.py,sha256=Gbl-_hWltn1AYE2K_V4ffjPfEh5CJMCU3gWfwHdGGd0,8188
176
+ hanzo_mcp/tools/todo/__init__.py,sha256=4rXjfj95vB7KJFTdt3g2WOffiyzgixUnf1UckyTizGY,1579
177
+ hanzo_mcp/tools/todo/base.py,sha256=k0CFZy59YlLAJBVzVA4tr-qGkQ1l5yF04kcmziwQWec,10666
178
+ hanzo_mcp/tools/todo/todo.py,sha256=NeTz83zrtSMJm589Z_PzA49ezB1XjCvU7UCiZRXm9eU,8838
179
+ hanzo_mcp/tools/todo/todo_read.py,sha256=XKaj_JZGAeDZG-XzWHN4O1xohIeO0kTankMgYaFGHpE,4659
180
+ hanzo_mcp/tools/todo/todo_write.py,sha256=aZtLl9NzRLndX7FySZus_ysmI08LeZahxMW4pSXFmFY,15218
181
+ hanzo_mcp/tools/vector/__init__.py,sha256=SdsTQJbiAxcHnGhMVoUX2KgFWs50_JvX0SqS_Ejk_hY,3952
182
+ hanzo_mcp/tools/vector/ast_analyzer.py,sha256=nz_fa5sEJEwPhzxeJT6qFqOhybuei0hG5i2jcx2zW30,15747
183
+ hanzo_mcp/tools/vector/git_ingester.py,sha256=gHbdouUec_DPIolC79V1p9jj-m7uq4ulko3N5RnXKd4,15611
184
+ hanzo_mcp/tools/vector/index_tool.py,sha256=8QEY46RQs9xiLTrsaMGOYYRtBhFXY2JEiHhS4f64po0,13565
185
+ hanzo_mcp/tools/vector/infinity_store.py,sha256=xfd2qT59lJVM_N1LTuCyUuVvYE9NxH41DMa4eyJCaqc,28383
186
+ hanzo_mcp/tools/vector/mock_infinity.py,sha256=54V-Ed7lWufP8gMo8rU6cLpJl50j-20-H6ouUpgPxAg,4830
187
+ hanzo_mcp/tools/vector/project_manager.py,sha256=usxOldFajm7UN-74yN7Qa5Xw7Or6EWmOrBtvhJAUESI,13073
188
+ hanzo_mcp/tools/vector/vector.py,sha256=KMV1UHH6kCgTrglyLSfepbDDgOo6U3QMXpsCBQyq5to,9963
189
+ hanzo_mcp/tools/vector/vector_index.py,sha256=Vtdx69DwtsCaokleBhUpaFhP9AQ6Lq7C6xsDbZjPqNY,4274
190
+ hanzo_mcp/tools/vector/vector_search.py,sha256=bRy-Dcm0SsJD7eV99U_XMdSpenh5WAPimqXofrTNIwE,9402
191
+ hanzo_mcp-0.9.2.dist-info/METADATA,sha256=A-fO9hk-M-C-XECxPrB8SfbZyJy4vSdK51mgiGzjf88,8974
192
+ hanzo_mcp-0.9.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
193
+ hanzo_mcp-0.9.2.dist-info/entry_points.txt,sha256=ML30pedHV5wjthfztzMMz3uYhNdR_6inzYY5pSqNME4,142
194
+ hanzo_mcp-0.9.2.dist-info/top_level.txt,sha256=eGFANatA0MHWiVlpS56fTYRIShtibrSom1uXI6XU0GU,10
195
+ hanzo_mcp-0.9.2.dist-info/RECORD,,
@@ -1,34 +0,0 @@
1
- """Path utility functions for consistent path handling across MCP tools."""
2
-
3
- import os
4
- from pathlib import Path
5
-
6
-
7
- def resolve_path(path: str) -> str:
8
- """Resolve a path by expanding user home directory (~) and environment variables.
9
-
10
- This is the centralized path resolution function used by all filesystem tools
11
- to ensure consistent path handling across the MCP system.
12
-
13
- Args:
14
- path: The path to resolve, may contain ~ or environment variables
15
-
16
- Returns:
17
- The fully resolved absolute path
18
-
19
- Examples:
20
- >>> resolve_path('~/Documents/file.txt')
21
- '/Users/username/Documents/file.txt'
22
-
23
- >>> os.environ['MYDIR'] = '/tmp/test'
24
- >>> resolve_path('$MYDIR/file.txt')
25
- '/tmp/test/file.txt'
26
- """
27
- # First expand environment variables, then user home directory
28
- # This order is important for cases like $HOME_ALIAS where the env var contains ~
29
- expanded = os.path.expandvars(path)
30
- expanded = os.path.expanduser(expanded)
31
-
32
- # Convert to Path object and resolve to get absolute path
33
- # This handles relative paths and resolves symlinks
34
- return str(Path(expanded).resolve())
@@ -1,8 +0,0 @@
1
- """Sandboxed compilation and execution tools."""
2
-
3
- from .sandboxed_compiler import SandboxedCompiler, create_sandboxed_compiler
4
-
5
- __all__ = [
6
- "SandboxedCompiler",
7
- "create_sandboxed_compiler",
8
- ]