hanzo-mcp 0.9.0__py3-none-any.whl → 0.9.1__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.
- hanzo_mcp/__init__.py +1 -1
- hanzo_mcp/analytics/posthog_analytics.py +14 -1
- hanzo_mcp/cli.py +108 -4
- hanzo_mcp/server.py +11 -0
- hanzo_mcp/tools/__init__.py +3 -16
- hanzo_mcp/tools/agent/__init__.py +5 -0
- hanzo_mcp/tools/agent/agent.py +5 -0
- hanzo_mcp/tools/agent/agent_tool.py +3 -17
- hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py +623 -0
- hanzo_mcp/tools/agent/clarification_tool.py +7 -1
- hanzo_mcp/tools/agent/claude_desktop_auth.py +16 -6
- hanzo_mcp/tools/agent/cli_agent_base.py +5 -0
- hanzo_mcp/tools/agent/cli_tools.py +26 -0
- hanzo_mcp/tools/agent/code_auth_tool.py +5 -0
- hanzo_mcp/tools/agent/critic_tool.py +7 -1
- hanzo_mcp/tools/agent/iching_tool.py +5 -0
- hanzo_mcp/tools/agent/network_tool.py +5 -0
- hanzo_mcp/tools/agent/review_tool.py +7 -1
- hanzo_mcp/tools/agent/swarm_alias.py +5 -0
- hanzo_mcp/tools/agent/swarm_tool.py +701 -0
- hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py +554 -0
- hanzo_mcp/tools/agent/unified_cli_tools.py +5 -0
- hanzo_mcp/tools/common/auto_timeout.py +234 -0
- hanzo_mcp/tools/common/base.py +4 -0
- hanzo_mcp/tools/common/batch_tool.py +5 -0
- hanzo_mcp/tools/common/config_tool.py +5 -0
- hanzo_mcp/tools/common/critic_tool.py +5 -0
- hanzo_mcp/tools/common/paginated_base.py +4 -0
- hanzo_mcp/tools/common/permissions.py +38 -12
- hanzo_mcp/tools/common/personality.py +673 -980
- hanzo_mcp/tools/common/stats.py +5 -0
- hanzo_mcp/tools/common/thinking_tool.py +5 -0
- hanzo_mcp/tools/common/timeout_parser.py +103 -0
- hanzo_mcp/tools/common/tool_disable.py +5 -0
- hanzo_mcp/tools/common/tool_enable.py +5 -0
- hanzo_mcp/tools/common/tool_list.py +5 -0
- hanzo_mcp/tools/config/config_tool.py +5 -0
- hanzo_mcp/tools/config/mode_tool.py +5 -0
- hanzo_mcp/tools/database/graph.py +5 -0
- hanzo_mcp/tools/database/graph_add.py +5 -0
- hanzo_mcp/tools/database/graph_query.py +5 -0
- hanzo_mcp/tools/database/graph_remove.py +5 -0
- hanzo_mcp/tools/database/graph_search.py +5 -0
- hanzo_mcp/tools/database/graph_stats.py +5 -0
- hanzo_mcp/tools/database/sql.py +5 -0
- hanzo_mcp/tools/database/sql_query.py +2 -0
- hanzo_mcp/tools/database/sql_search.py +5 -0
- hanzo_mcp/tools/database/sql_stats.py +5 -0
- hanzo_mcp/tools/editor/neovim_command.py +5 -0
- hanzo_mcp/tools/editor/neovim_edit.py +7 -2
- hanzo_mcp/tools/editor/neovim_session.py +5 -0
- hanzo_mcp/tools/filesystem/__init__.py +23 -26
- hanzo_mcp/tools/filesystem/ast_tool.py +2 -3
- hanzo_mcp/tools/filesystem/base.py +0 -16
- hanzo_mcp/tools/filesystem/batch_search.py +825 -0
- hanzo_mcp/tools/filesystem/content_replace.py +5 -3
- hanzo_mcp/tools/filesystem/diff.py +5 -0
- hanzo_mcp/tools/filesystem/directory_tree.py +34 -281
- hanzo_mcp/tools/filesystem/directory_tree_paginated.py +345 -0
- hanzo_mcp/tools/filesystem/edit.py +5 -4
- hanzo_mcp/tools/filesystem/find.py +177 -311
- hanzo_mcp/tools/filesystem/find_files.py +370 -0
- hanzo_mcp/tools/filesystem/git_search.py +5 -3
- hanzo_mcp/tools/filesystem/grep.py +454 -0
- hanzo_mcp/tools/filesystem/multi_edit.py +5 -4
- hanzo_mcp/tools/filesystem/read.py +11 -8
- hanzo_mcp/tools/filesystem/rules_tool.py +5 -3
- hanzo_mcp/tools/filesystem/search_tool.py +728 -0
- hanzo_mcp/tools/filesystem/symbols_tool.py +510 -0
- hanzo_mcp/tools/filesystem/tree.py +273 -0
- hanzo_mcp/tools/filesystem/watch.py +6 -1
- hanzo_mcp/tools/filesystem/write.py +12 -6
- hanzo_mcp/tools/jupyter/jupyter.py +30 -2
- hanzo_mcp/tools/jupyter/notebook_edit.py +298 -0
- hanzo_mcp/tools/jupyter/notebook_read.py +148 -0
- hanzo_mcp/tools/llm/consensus_tool.py +8 -6
- hanzo_mcp/tools/llm/llm_manage.py +5 -0
- hanzo_mcp/tools/llm/llm_tool.py +2 -0
- hanzo_mcp/tools/llm/llm_unified.py +5 -0
- hanzo_mcp/tools/llm/provider_tools.py +5 -0
- hanzo_mcp/tools/lsp/lsp_tool.py +475 -622
- hanzo_mcp/tools/mcp/mcp_add.py +7 -2
- hanzo_mcp/tools/mcp/mcp_remove.py +15 -2
- hanzo_mcp/tools/mcp/mcp_stats.py +5 -0
- hanzo_mcp/tools/mcp/mcp_tool.py +5 -0
- hanzo_mcp/tools/memory/knowledge_tools.py +14 -0
- hanzo_mcp/tools/memory/memory_tools.py +17 -0
- hanzo_mcp/tools/search/find_tool.py +5 -3
- hanzo_mcp/tools/search/unified_search.py +3 -1
- hanzo_mcp/tools/shell/__init__.py +2 -14
- hanzo_mcp/tools/shell/base_process.py +4 -2
- hanzo_mcp/tools/shell/bash_tool.py +2 -0
- hanzo_mcp/tools/shell/command_executor.py +7 -7
- hanzo_mcp/tools/shell/logs.py +5 -0
- hanzo_mcp/tools/shell/npx.py +5 -0
- hanzo_mcp/tools/shell/npx_background.py +5 -0
- hanzo_mcp/tools/shell/npx_tool.py +5 -0
- hanzo_mcp/tools/shell/open.py +5 -0
- hanzo_mcp/tools/shell/pkill.py +5 -0
- hanzo_mcp/tools/shell/process_tool.py +5 -0
- hanzo_mcp/tools/shell/processes.py +5 -0
- hanzo_mcp/tools/shell/run_background.py +5 -0
- hanzo_mcp/tools/shell/run_command.py +2 -0
- hanzo_mcp/tools/shell/run_command_windows.py +5 -0
- hanzo_mcp/tools/shell/streaming_command.py +5 -0
- hanzo_mcp/tools/shell/uvx.py +5 -0
- hanzo_mcp/tools/shell/uvx_background.py +5 -0
- hanzo_mcp/tools/shell/uvx_tool.py +5 -0
- hanzo_mcp/tools/shell/zsh_tool.py +3 -0
- hanzo_mcp/tools/todo/todo.py +5 -0
- hanzo_mcp/tools/todo/todo_read.py +142 -0
- hanzo_mcp/tools/todo/todo_write.py +367 -0
- hanzo_mcp/tools/vector/__init__.py +42 -95
- hanzo_mcp/tools/vector/index_tool.py +5 -0
- hanzo_mcp/tools/vector/vector.py +5 -0
- hanzo_mcp/tools/vector/vector_index.py +5 -0
- hanzo_mcp/tools/vector/vector_search.py +5 -0
- {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.1.dist-info}/METADATA +1 -1
- hanzo_mcp-0.9.1.dist-info/RECORD +195 -0
- hanzo_mcp/tools/common/path_utils.py +0 -34
- hanzo_mcp/tools/compiler/__init__.py +0 -8
- hanzo_mcp/tools/compiler/sandboxed_compiler.py +0 -681
- hanzo_mcp/tools/environment/__init__.py +0 -8
- hanzo_mcp/tools/environment/environment_detector.py +0 -594
- hanzo_mcp/tools/filesystem/search.py +0 -1160
- hanzo_mcp/tools/framework/__init__.py +0 -8
- hanzo_mcp/tools/framework/framework_modes.py +0 -714
- hanzo_mcp/tools/memory/conversation_memory.py +0 -636
- hanzo_mcp/tools/shell/run_tool.py +0 -56
- hanzo_mcp/tools/vector/node_tool.py +0 -538
- hanzo_mcp/tools/vector/unified_vector.py +0 -384
- hanzo_mcp-0.9.0.dist-info/RECORD +0 -191
- {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.1.dist-info}/WHEEL +0 -0
- {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.1.dist-info}/entry_points.txt +0 -0
- {hanzo_mcp-0.9.0.dist-info → hanzo_mcp-0.9.1.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
|
-
-
|
|
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
|
|
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
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
147
|
-
"LEGACY_VECTOR_AVAILABLE",
|
|
102
|
+
"VECTOR_AVAILABLE",
|
|
148
103
|
]
|
|
149
104
|
|
|
150
|
-
if
|
|
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,
|
hanzo_mcp/tools/vector/vector.py
CHANGED
|
@@ -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,
|
|
@@ -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=zF7UrB-5ybfMZlkdCpfX7SrElIYIw8WJQLQahgOro6o,8203
|
|
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=KxT8XANBnlBvtNVZG00DU-CXkdQwzYdraJ3kYJfOr_w,7372
|
|
106
|
+
hanzo_mcp/tools/filesystem/base.py,sha256=2lJLa4vmSGZz57v8KKVMI9_oLF4_-NYiYZVnm-GsyoQ,3762
|
|
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=9VA0svYhozVwFKw5LJInPjgIa-bhKT5h5yS80fb0Efo,10505
|
|
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=Kll71UaLGFL5HRySlV6mSQafpS4UoeSEuZxpcgqY4k8,14042
|
|
118
|
+
hanzo_mcp/tools/filesystem/read.py,sha256=5OL4imSwTEs7jSQOo3OCjmlou_E8qdHBwxU6ikqPcqA,9386
|
|
119
|
+
hanzo_mcp/tools/filesystem/rules_tool.py,sha256=gUkzq78_caNd8hytiUSAMv7Q_CzGlbng04laffx9XmM,8382
|
|
120
|
+
hanzo_mcp/tools/filesystem/search_tool.py,sha256=LFsu7OpTODUN2QnVzokN5y1obSrdsrFzclsNwkh2hjw,25833
|
|
121
|
+
hanzo_mcp/tools/filesystem/symbols_tool.py,sha256=oYKcw-Y1BvPXGck0bA0kiXrl0bM5y9SVCNDRh_jCn5Y,15958
|
|
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=FYFhfTkJ_523DCWRhb58_X_bfWFObVcTtFj30OvGTsg,4777
|
|
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.1.dist-info/METADATA,sha256=n-cN_4WzeuxbLbIZvzQ8HAOyc0CEBhwV2yonmjic2vs,8974
|
|
192
|
+
hanzo_mcp-0.9.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
193
|
+
hanzo_mcp-0.9.1.dist-info/entry_points.txt,sha256=ML30pedHV5wjthfztzMMz3uYhNdR_6inzYY5pSqNME4,142
|
|
194
|
+
hanzo_mcp-0.9.1.dist-info/top_level.txt,sha256=eGFANatA0MHWiVlpS56fTYRIShtibrSom1uXI6XU0GU,10
|
|
195
|
+
hanzo_mcp-0.9.1.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())
|