hanzo-mcp 0.6.13__py3-none-any.whl → 0.7.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/analytics/__init__.py +5 -0
- hanzo_mcp/analytics/posthog_analytics.py +364 -0
- hanzo_mcp/cli.py +3 -3
- hanzo_mcp/cli_enhanced.py +3 -3
- hanzo_mcp/config/settings.py +1 -1
- hanzo_mcp/config/tool_config.py +18 -4
- hanzo_mcp/server.py +34 -1
- hanzo_mcp/tools/__init__.py +65 -2
- hanzo_mcp/tools/agent/__init__.py +84 -3
- hanzo_mcp/tools/agent/agent_tool.py +102 -4
- hanzo_mcp/tools/agent/agent_tool_v2.py +492 -0
- hanzo_mcp/tools/agent/clarification_protocol.py +220 -0
- hanzo_mcp/tools/agent/clarification_tool.py +68 -0
- hanzo_mcp/tools/agent/claude_cli_tool.py +125 -0
- hanzo_mcp/tools/agent/claude_desktop_auth.py +508 -0
- hanzo_mcp/tools/agent/cli_agent_base.py +191 -0
- hanzo_mcp/tools/agent/code_auth.py +436 -0
- hanzo_mcp/tools/agent/code_auth_tool.py +194 -0
- hanzo_mcp/tools/agent/codex_cli_tool.py +123 -0
- hanzo_mcp/tools/agent/critic_tool.py +376 -0
- hanzo_mcp/tools/agent/gemini_cli_tool.py +128 -0
- hanzo_mcp/tools/agent/grok_cli_tool.py +128 -0
- hanzo_mcp/tools/agent/iching_tool.py +380 -0
- hanzo_mcp/tools/agent/network_tool.py +273 -0
- hanzo_mcp/tools/agent/prompt.py +62 -20
- hanzo_mcp/tools/agent/review_tool.py +433 -0
- hanzo_mcp/tools/agent/swarm_tool.py +535 -0
- hanzo_mcp/tools/agent/swarm_tool_v2.py +654 -0
- hanzo_mcp/tools/common/base.py +1 -0
- hanzo_mcp/tools/common/batch_tool.py +102 -10
- hanzo_mcp/tools/common/fastmcp_pagination.py +369 -0
- hanzo_mcp/tools/common/forgiving_edit.py +243 -0
- hanzo_mcp/tools/common/paginated_base.py +230 -0
- hanzo_mcp/tools/common/paginated_response.py +307 -0
- hanzo_mcp/tools/common/pagination.py +226 -0
- hanzo_mcp/tools/common/tool_list.py +3 -0
- hanzo_mcp/tools/common/truncate.py +101 -0
- hanzo_mcp/tools/filesystem/__init__.py +29 -0
- hanzo_mcp/tools/filesystem/ast_multi_edit.py +562 -0
- hanzo_mcp/tools/filesystem/directory_tree_paginated.py +338 -0
- hanzo_mcp/tools/lsp/__init__.py +5 -0
- hanzo_mcp/tools/lsp/lsp_tool.py +512 -0
- hanzo_mcp/tools/memory/__init__.py +76 -0
- hanzo_mcp/tools/memory/knowledge_tools.py +518 -0
- hanzo_mcp/tools/memory/memory_tools.py +456 -0
- hanzo_mcp/tools/search/__init__.py +6 -0
- hanzo_mcp/tools/search/find_tool.py +581 -0
- hanzo_mcp/tools/search/unified_search.py +953 -0
- hanzo_mcp/tools/shell/__init__.py +5 -0
- hanzo_mcp/tools/shell/auto_background.py +203 -0
- hanzo_mcp/tools/shell/base_process.py +53 -27
- hanzo_mcp/tools/shell/bash_tool.py +17 -33
- hanzo_mcp/tools/shell/npx_tool.py +15 -32
- hanzo_mcp/tools/shell/streaming_command.py +594 -0
- hanzo_mcp/tools/shell/uvx_tool.py +15 -32
- hanzo_mcp/types.py +23 -0
- {hanzo_mcp-0.6.13.dist-info → hanzo_mcp-0.7.1.dist-info}/METADATA +229 -71
- {hanzo_mcp-0.6.13.dist-info → hanzo_mcp-0.7.1.dist-info}/RECORD +61 -24
- hanzo_mcp-0.6.13.dist-info/licenses/LICENSE +0 -21
- {hanzo_mcp-0.6.13.dist-info → hanzo_mcp-0.7.1.dist-info}/WHEEL +0 -0
- {hanzo_mcp-0.6.13.dist-info → hanzo_mcp-0.7.1.dist-info}/entry_points.txt +0 -0
- {hanzo_mcp-0.6.13.dist-info → hanzo_mcp-0.7.1.dist-info}/top_level.txt +0 -0
hanzo_mcp/types.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Type definitions for Hanzo MCP tools."""
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Any, Optional, List
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class MCPResourceDocument:
|
|
9
|
+
"""Resource document returned by MCP tools."""
|
|
10
|
+
data: Dict[str, Any]
|
|
11
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
12
|
+
|
|
13
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
14
|
+
"""Convert to dictionary format."""
|
|
15
|
+
result = {"data": self.data}
|
|
16
|
+
if self.metadata:
|
|
17
|
+
result["metadata"] = self.metadata
|
|
18
|
+
return result
|
|
19
|
+
|
|
20
|
+
def to_json_string(self) -> str:
|
|
21
|
+
"""Convert to JSON string."""
|
|
22
|
+
import json
|
|
23
|
+
return json.dumps(self.to_dict(), indent=2)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hanzo-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.1
|
|
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
|
|
@@ -13,7 +13,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
14
|
Requires-Python: >=3.12
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
|
-
License-File: LICENSE
|
|
17
16
|
Requires-Dist: mcp>=1.9.4
|
|
18
17
|
Requires-Dist: fastmcp>=2.9.2
|
|
19
18
|
Requires-Dist: httpx>=0.28.1
|
|
@@ -30,6 +29,7 @@ Requires-Dist: pydantic>=2.11.1
|
|
|
30
29
|
Requires-Dist: pydantic-settings>=2.7.0
|
|
31
30
|
Requires-Dist: typing-extensions>=4.13.0
|
|
32
31
|
Requires-Dist: watchdog>=6.0.0
|
|
32
|
+
Requires-Dist: keyring>=24.0.0
|
|
33
33
|
Provides-Extra: dev
|
|
34
34
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
35
35
|
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
@@ -44,6 +44,8 @@ Requires-Dist: sphinx>=8.0.0; extra == "docs"
|
|
|
44
44
|
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "docs"
|
|
45
45
|
Requires-Dist: myst-parser>=4.0.0; extra == "docs"
|
|
46
46
|
Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
|
|
47
|
+
Provides-Extra: analytics
|
|
48
|
+
Requires-Dist: posthog>=3.0.0; extra == "analytics"
|
|
47
49
|
Provides-Extra: test
|
|
48
50
|
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
49
51
|
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
@@ -56,7 +58,6 @@ Requires-Dist: orjson>=3.9.0; extra == "performance"
|
|
|
56
58
|
Provides-Extra: publish
|
|
57
59
|
Requires-Dist: twine>=4.0.2; extra == "publish"
|
|
58
60
|
Requires-Dist: build>=1.0.3; extra == "publish"
|
|
59
|
-
Dynamic: license-file
|
|
60
61
|
|
|
61
62
|
# Hanzo AI - The Zen of Model Context Protocol
|
|
62
63
|
|
|
@@ -66,11 +67,11 @@ Dynamic: license-file
|
|
|
66
67
|
[](https://github.com/hanzoai/mcp/blob/main/LICENSE)
|
|
67
68
|
[](https://discord.gg/hanzoai)
|
|
68
69
|
|
|
69
|
-
## 🥷
|
|
70
|
+
## 🥷 The Complete AI Development Ecosystem via MCP
|
|
70
71
|
|
|
71
|
-
**
|
|
72
|
+
**One unified interface to orchestrate your entire development workflow.**
|
|
72
73
|
|
|
73
|
-
Hanzo AI
|
|
74
|
+
Hanzo AI is more than an MCP server—it's a comprehensive ecosystem of interconnected development tools designed for the AI era. From interactive notebooks with multi-language support to advanced debugging, from intelligent code search to multi-agent workflows, everything works together seamlessly through the Model Context Protocol.
|
|
74
75
|
|
|
75
76
|
```bash
|
|
76
77
|
# Install and rule your development world
|
|
@@ -82,23 +83,110 @@ uvx hanzo-mcp
|
|
|
82
83
|
|
|
83
84
|
> **Note on Installation**: If uvx is not installed, Hanzo will automatically install it for you in your home directory. No manual setup required!
|
|
84
85
|
|
|
85
|
-
##
|
|
86
|
+
## 🌐 The Hanzo Ecosystem
|
|
87
|
+
|
|
88
|
+
### Integrated Development Environment
|
|
89
|
+
```mermaid
|
|
90
|
+
graph LR
|
|
91
|
+
A[Hanzo MCP] --> B[Interactive Notebooks]
|
|
92
|
+
A --> C[Code Intelligence]
|
|
93
|
+
A --> D[Multi-Agent System]
|
|
94
|
+
A --> E[Project Management]
|
|
95
|
+
|
|
96
|
+
B --> B1[Multi-Language REPL]
|
|
97
|
+
B --> B2[SoS Kernels]
|
|
98
|
+
B --> B3[Live Debugging]
|
|
99
|
+
|
|
100
|
+
C --> C1[LSP Integration]
|
|
101
|
+
C --> C2[AST Analysis]
|
|
102
|
+
C --> C3[Semantic Search]
|
|
103
|
+
|
|
104
|
+
D --> D1[Agent Networks]
|
|
105
|
+
D --> D2[Tool Orchestration]
|
|
106
|
+
D --> D3[Consensus Systems]
|
|
107
|
+
|
|
108
|
+
E --> E1[Git Integration]
|
|
109
|
+
E --> E2[Task Management]
|
|
110
|
+
E --> E3[Quality Control]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 🎯 Why Hanzo AI?
|
|
114
|
+
|
|
115
|
+
**The Problem with Fragmented Tools**
|
|
116
|
+
- Install 10 different tools that don't talk to each other
|
|
117
|
+
- Context switching between interfaces kills productivity
|
|
118
|
+
- No unified way to orchestrate complex workflows
|
|
119
|
+
- Missing the power of tool composition
|
|
86
120
|
|
|
87
|
-
|
|
88
|
-
- **
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
91
|
-
- **
|
|
92
|
-
- **
|
|
121
|
+
**The Hanzo Solution**
|
|
122
|
+
- **Unified Ecosystem**: 70+ tools that work together seamlessly
|
|
123
|
+
- **Intelligent Orchestration**: Tools that understand context and collaborate
|
|
124
|
+
- **Interactive Development**: From REPL to debugging in one interface
|
|
125
|
+
- **Quality Built-in**: Automated review, testing, and best practices
|
|
126
|
+
- **Extensible Platform**: Add any MCP server or custom tool
|
|
93
127
|
|
|
94
|
-
|
|
95
|
-
- **One Installation**: 70+ professional tools out of the box
|
|
96
|
-
- **Consistent Philosophy**: Unix-inspired principles with modern AI capabilities
|
|
97
|
-
- **MCP Orchestration**: Install and control other MCP servers through Hanzo
|
|
98
|
-
- **Built-in Quality**: Critic tool ensures high standards automatically
|
|
99
|
-
- **Smart Defaults**: Auto-installs dependencies, reads project rules, just works
|
|
128
|
+
## 🚀 Core Capabilities
|
|
100
129
|
|
|
101
|
-
|
|
130
|
+
### 📓 Interactive Development Environment
|
|
131
|
+
|
|
132
|
+
#### Multi-Language Notebooks with SoS
|
|
133
|
+
```python
|
|
134
|
+
# Work with multiple languages in one notebook
|
|
135
|
+
notebook(
|
|
136
|
+
action="create",
|
|
137
|
+
path="analysis.ipynb",
|
|
138
|
+
kernels=["python3", "R", "javascript", "bash"]
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
# Write and execute code interactively
|
|
142
|
+
notebook(
|
|
143
|
+
action="write",
|
|
144
|
+
cell_type="code",
|
|
145
|
+
content="""
|
|
146
|
+
# Python cell
|
|
147
|
+
data = load_dataset()
|
|
148
|
+
processed = clean_data(data)
|
|
149
|
+
""",
|
|
150
|
+
kernel="python3"
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
# Step through execution line by line
|
|
154
|
+
notebook(
|
|
155
|
+
action="step",
|
|
156
|
+
cell_id="cell_123",
|
|
157
|
+
lines=[1, 2, 3] # Execute specific lines
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
# Read results and outputs
|
|
161
|
+
result = notebook(
|
|
162
|
+
action="read",
|
|
163
|
+
cell_id="cell_123",
|
|
164
|
+
include_outputs=True
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
# Launch debugger for interactive debugging
|
|
168
|
+
debugger(
|
|
169
|
+
notebook="analysis.ipynb",
|
|
170
|
+
cell_id="cell_123",
|
|
171
|
+
breakpoint=15
|
|
172
|
+
)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
#### Interactive REPL Sessions
|
|
176
|
+
```python
|
|
177
|
+
# Start multi-language REPL
|
|
178
|
+
repl(
|
|
179
|
+
languages=["python", "javascript", "go"],
|
|
180
|
+
project_dir="/path/to/project",
|
|
181
|
+
share_context=True # Share variables between languages
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
# Execute code with full project context
|
|
185
|
+
repl.execute("""
|
|
186
|
+
import project_module
|
|
187
|
+
result = project_module.process()
|
|
188
|
+
""", language="python")
|
|
189
|
+
```
|
|
102
190
|
|
|
103
191
|
### 🧠 Advanced AI Tools
|
|
104
192
|
|
|
@@ -154,27 +242,50 @@ todo --action update --id abc123 --status in_progress
|
|
|
154
242
|
todo --action list --filter pending
|
|
155
243
|
```
|
|
156
244
|
|
|
157
|
-
### 🔍
|
|
245
|
+
### 🔍 Intelligent Code Intelligence
|
|
158
246
|
|
|
159
247
|
#### Unified Search Engine
|
|
160
248
|
```python
|
|
161
|
-
# One search to rule them all - automatically runs:
|
|
162
|
-
# -
|
|
249
|
+
# One search to rule them all - automatically runs in parallel:
|
|
250
|
+
# - Text search with ripgrep
|
|
163
251
|
# - AST analysis for code structure
|
|
164
252
|
# - Vector search for semantic meaning
|
|
165
|
-
# - Git history search
|
|
166
|
-
# - Symbol search
|
|
253
|
+
# - Git history search (integrated into git tool)
|
|
254
|
+
# - Symbol search with LSP
|
|
255
|
+
# - Memory search for past discussions
|
|
167
256
|
search("authentication flow")
|
|
168
257
|
```
|
|
169
258
|
|
|
170
|
-
####
|
|
259
|
+
#### Language Server Protocol (LSP) Integration
|
|
260
|
+
```python
|
|
261
|
+
# Full LSP support with jupyter-lsp integration
|
|
262
|
+
lsp(
|
|
263
|
+
action="initialize",
|
|
264
|
+
language="python",
|
|
265
|
+
project_dir="/path/to/project"
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
# Go to definition, find references, rename symbols
|
|
269
|
+
lsp.goto_definition("UserService.authenticate")
|
|
270
|
+
lsp.find_references("API_KEY")
|
|
271
|
+
lsp.rename_symbol("oldFunction", "newFunction")
|
|
272
|
+
|
|
273
|
+
# Get diagnostics and hover information
|
|
274
|
+
diagnostics = lsp.get_diagnostics("main.py")
|
|
275
|
+
info = lsp.hover("mysterious_function", line=42, col=15)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### Git Integration (with built-in search)
|
|
171
279
|
```python
|
|
172
|
-
#
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
#
|
|
280
|
+
# All git operations in one tool
|
|
281
|
+
git("status")
|
|
282
|
+
git("diff", "--cached")
|
|
283
|
+
git("log", "--oneline", "-10")
|
|
284
|
+
|
|
285
|
+
# Git search is now part of the git tool
|
|
286
|
+
git("search", pattern="TODO", history=True)
|
|
287
|
+
git("blame", file="src/auth.py", line=42)
|
|
288
|
+
git("show", commit="abc123:src/main.py")
|
|
178
289
|
```
|
|
179
290
|
|
|
180
291
|
### 🎨 Palette System - Opinions Are Just Configurations
|
|
@@ -205,42 +316,51 @@ their_tool(action="whatever", params=...)
|
|
|
205
316
|
mcp --action remove --alias "their"
|
|
206
317
|
```
|
|
207
318
|
|
|
208
|
-
## 🛠️
|
|
319
|
+
## 🛠️ Comprehensive Tool Ecosystem
|
|
320
|
+
|
|
321
|
+
### 📝 Interactive Development
|
|
322
|
+
- **notebook** - Multi-language notebooks with SoS (read/write/step/debug)
|
|
323
|
+
- **repl** - Interactive multi-language REPL with shared context
|
|
324
|
+
- **debugger** - Full debugging support with breakpoints and stepping
|
|
325
|
+
- **lsp** - Language Server Protocol with jupyter-lsp integration
|
|
209
326
|
|
|
210
|
-
###
|
|
327
|
+
### 🔍 Code Intelligence
|
|
328
|
+
- **search** - Unified multi-modal search (text/AST/vector/git/memory)
|
|
329
|
+
- **symbols** - AST-aware navigation with tree-sitter
|
|
330
|
+
- **find** - Fast file/directory discovery
|
|
331
|
+
- **grep** - Pattern matching with ripgrep
|
|
332
|
+
- **ast** - Code structure analysis
|
|
333
|
+
|
|
334
|
+
### 📁 File Operations
|
|
211
335
|
- **read/write/edit/multi_edit** - Intelligent file operations
|
|
212
|
-
- **search** - Multi-modal parallel search
|
|
213
|
-
- **symbols** - AST-aware code navigation with grep_ast
|
|
214
336
|
- **tree** - Visual directory structures
|
|
215
|
-
- **
|
|
216
|
-
- **
|
|
217
|
-
|
|
218
|
-
### AI & Automation
|
|
219
|
-
- **agent** -
|
|
220
|
-
- **consensus** - Multi-LLM agreement
|
|
221
|
-
- **think** - Structured reasoning
|
|
222
|
-
- **critic** -
|
|
337
|
+
- **watch** - File monitoring with notifications
|
|
338
|
+
- **diff** - Visual comparisons
|
|
339
|
+
|
|
340
|
+
### 🤖 AI & Automation
|
|
341
|
+
- **agent** - Multi-agent task delegation
|
|
342
|
+
- **consensus** - Multi-LLM agreement and validation
|
|
343
|
+
- **think** - Structured reasoning workspace
|
|
344
|
+
- **critic** - Automated code review and quality
|
|
223
345
|
- **batch** - Parallel tool execution
|
|
224
346
|
|
|
225
|
-
###
|
|
226
|
-
- **bash** -
|
|
347
|
+
### 🖥️ System & Process
|
|
348
|
+
- **bash** - Command execution with session management
|
|
227
349
|
- **npx/uvx** - Package runners with auto-install
|
|
228
350
|
- **process** - Background process management
|
|
229
|
-
- **
|
|
230
|
-
- **diff** - Visual comparisons
|
|
351
|
+
- **git** - Complete git integration with search
|
|
231
352
|
|
|
232
|
-
### Data & Analytics
|
|
233
|
-
- **
|
|
234
|
-
- **
|
|
235
|
-
- **
|
|
236
|
-
- **
|
|
237
|
-
- **stats** - Performance analytics
|
|
353
|
+
### 📊 Data & Analytics
|
|
354
|
+
- **vector** - Semantic search and indexing
|
|
355
|
+
- **sql** - Database operations and queries
|
|
356
|
+
- **graph** - Graph database operations
|
|
357
|
+
- **stats** - Performance and usage analytics
|
|
238
358
|
|
|
239
|
-
###
|
|
359
|
+
### 🎯 Project Management
|
|
240
360
|
- **todo** - Unified task management
|
|
241
|
-
- **
|
|
242
|
-
- **
|
|
243
|
-
- **
|
|
361
|
+
- **rules** - Project preferences discovery
|
|
362
|
+
- **palette** - Tool configuration presets
|
|
363
|
+
- **mcp** - Dynamic MCP server orchestration
|
|
244
364
|
|
|
245
365
|
## 🚀 Quick Start
|
|
246
366
|
|
|
@@ -276,25 +396,62 @@ curl -LsSf https://pypi.org/simple/hanzo-mcp | python3
|
|
|
276
396
|
}
|
|
277
397
|
```
|
|
278
398
|
|
|
399
|
+
## 🔗 Ecosystem Integration
|
|
400
|
+
|
|
401
|
+
### Everything Works Together
|
|
402
|
+
```python
|
|
403
|
+
# Example: AI-assisted debugging workflow
|
|
404
|
+
# 1. Find the bug
|
|
405
|
+
search("null pointer exception")
|
|
406
|
+
|
|
407
|
+
# 2. Open in notebook for investigation
|
|
408
|
+
notebook(
|
|
409
|
+
action="create",
|
|
410
|
+
path="debug_session.ipynb",
|
|
411
|
+
import_code="src/auth.py:42-58"
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
# 3. Set breakpoints and debug
|
|
415
|
+
debugger(
|
|
416
|
+
notebook="debug_session.ipynb",
|
|
417
|
+
breakpoints=[45, 52]
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
# 4. Get AI analysis
|
|
421
|
+
critic("Analyze this exception and suggest fixes")
|
|
422
|
+
|
|
423
|
+
# 5. Apply the fix
|
|
424
|
+
edit("src/auth.py", old="user.name", new="user?.name")
|
|
425
|
+
|
|
426
|
+
# 6. Verify with tests
|
|
427
|
+
bash("pytest tests/test_auth.py -v")
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### Tool Composition Power
|
|
431
|
+
- **Search → Notebook → Debug** - Investigate issues interactively
|
|
432
|
+
- **Agent → Critic → Test** - Automated quality workflows
|
|
433
|
+
- **LSP → AST → Edit** - Intelligent refactoring
|
|
434
|
+
- **Git → Search → Todo** - Project management workflows
|
|
435
|
+
|
|
279
436
|
## 🏆 Why Developers Love Hanzo
|
|
280
437
|
|
|
281
438
|
### Smart Defaults
|
|
282
|
-
- **Auto-installs** missing dependencies
|
|
439
|
+
- **Auto-installs** missing dependencies and language servers
|
|
283
440
|
- **Discovers** project rules and preferences automatically
|
|
284
|
-
- **Parallel** operations by default
|
|
441
|
+
- **Parallel** operations by default for speed
|
|
285
442
|
- **Intelligent** fallbacks when tools aren't available
|
|
286
443
|
|
|
287
444
|
### Quality First
|
|
288
|
-
- **Built-in critic** for code review
|
|
289
|
-
- **Test enforcement** in workflows
|
|
445
|
+
- **Built-in critic** for automated code review
|
|
446
|
+
- **Test enforcement** in all workflows
|
|
290
447
|
- **Security scanning** in operations
|
|
291
|
-
- **Best practices**
|
|
448
|
+
- **Best practices** enforced by default
|
|
292
449
|
|
|
293
|
-
### Extensible
|
|
450
|
+
### Truly Extensible
|
|
294
451
|
- **Palette system** for instant context switching
|
|
295
|
-
- **MCP orchestration** to add any
|
|
452
|
+
- **MCP orchestration** to add any server dynamically
|
|
296
453
|
- **Plugin architecture** for custom tools
|
|
297
|
-
- **API
|
|
454
|
+
- **Everything is an API** for maximum flexibility
|
|
298
455
|
|
|
299
456
|
## 📊 Performance
|
|
300
457
|
|
|
@@ -331,11 +488,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
|
331
488
|
|
|
332
489
|
## 📈 Project Status
|
|
333
490
|
|
|
334
|
-
- **Version**: 0.
|
|
335
|
-
- **Tools**: 70+
|
|
336
|
-
- **
|
|
337
|
-
- **
|
|
338
|
-
- **
|
|
491
|
+
- **Version**: 0.7.x (Production Ready)
|
|
492
|
+
- **Tools**: 70+ interconnected tools
|
|
493
|
+
- **Ecosystems**: Interactive notebooks, debugging, LSP, multi-agent
|
|
494
|
+
- **Languages**: Python, JavaScript, Go, R, Julia, Bash, and more via SoS
|
|
495
|
+
- **Community**: Active and growing
|
|
496
|
+
- **Updates**: Continuous improvements
|
|
339
497
|
|
|
340
498
|
## 🛡️ Security
|
|
341
499
|
|
|
@@ -1,37 +1,62 @@
|
|
|
1
1
|
hanzo_mcp/__init__.py,sha256=u_sq1RxXsMYSHcKa9iuMSjVhooegJyiHbPhVIc9O4oE,361
|
|
2
2
|
hanzo_mcp/__main__.py,sha256=TY-sUBg0MJozJws4-e3_kT8mJVoYGKCk6G3gPGxjIBI,129
|
|
3
|
-
hanzo_mcp/cli.py,sha256=
|
|
4
|
-
hanzo_mcp/cli_enhanced.py,sha256=
|
|
3
|
+
hanzo_mcp/cli.py,sha256=NU861dStkBtnerDvV3uTjBL_2RGV2Ujz0C6DnNI8BXI,13295
|
|
4
|
+
hanzo_mcp/cli_enhanced.py,sha256=T_AATmhSoKxEdltB-OY8iv5FxD2yI-d-TtDJ3ui-eY0,15966
|
|
5
5
|
hanzo_mcp/cli_plugin.py,sha256=FjBklPtpIbpgSNq5QfIeeWCO3otjOJPFXcpfKP8bGBw,3181
|
|
6
6
|
hanzo_mcp/dev_server.py,sha256=Ie1egLSmzu2i_kRLorIIlpfHyS-hZBv9P9yUjjAEVVc,8134
|
|
7
|
-
hanzo_mcp/server.py,sha256
|
|
7
|
+
hanzo_mcp/server.py,sha256=o_JUOgHaQkBygUxl98GFbibJH89JOE1Dk7ISRwcGSxw,9808
|
|
8
8
|
hanzo_mcp/server_enhanced.py,sha256=6GK5IiDE2NTXnT_UnGi_HPV-gTn0ZT-D-rOToMmE394,2166
|
|
9
|
+
hanzo_mcp/types.py,sha256=CTquCvlKC-KTyGrtJH7tQxSxLDXMBHy7WTbzbYBnWUE,659
|
|
10
|
+
hanzo_mcp/analytics/__init__.py,sha256=9Z64jQGNqNmLeIYhyVpjtRsU_jfpo9N-NXb-26Q6tt0,212
|
|
11
|
+
hanzo_mcp/analytics/posthog_analytics.py,sha256=XOt7hkvswyYEaKE8f6nmWl-Tr4BvKhM00_XdH2vFUQo,11279
|
|
9
12
|
hanzo_mcp/config/__init__.py,sha256=E3GQ0EMerdJI8mbTL2uhlBPiJYykNOnAoPorIpP2QKM,505
|
|
10
|
-
hanzo_mcp/config/settings.py,sha256=
|
|
11
|
-
hanzo_mcp/config/tool_config.py,sha256=
|
|
13
|
+
hanzo_mcp/config/settings.py,sha256=kA7O8MaDv988H1xlywXWfO1pyGTsoZVR77_aRVR7wg0,18508
|
|
14
|
+
hanzo_mcp/config/tool_config.py,sha256=MhRg-IhgYEY74CNywJskWBxMo0TX6fE6vnBWnqH2y14,6854
|
|
12
15
|
hanzo_mcp/prompts/__init__.py,sha256=Fp2Jr6SmUd6QmasOclgkTIb4qCzRSqtu3i-0d98XKEg,3992
|
|
13
16
|
hanzo_mcp/prompts/compact_conversation.py,sha256=nvD068KEesiMcevxxMBeIJh6AqT7YHOqyH6RepRFFfA,4206
|
|
14
17
|
hanzo_mcp/prompts/create_release.py,sha256=1Z8xSTtz5vAm0rWFnERpFu7wIYExT4iXhM6nGmQaM-s,1374
|
|
15
18
|
hanzo_mcp/prompts/project_system.py,sha256=FgWxRaX7rPQwDZT3n69yBwLkQv4uJ4jcUZjKzikjR9A,8230
|
|
16
19
|
hanzo_mcp/prompts/project_todo_reminder.py,sha256=otiBdmzxssBSb3MZZSQsjYDGLBqi1bM0HgraELP_Nf4,3645
|
|
17
20
|
hanzo_mcp/prompts/utils.py,sha256=IwxIhzZfYJ2anToPulbrpcc07u4Dozo9ok6VE3BC_4A,9963
|
|
18
|
-
hanzo_mcp/tools/__init__.py,sha256=
|
|
19
|
-
hanzo_mcp/tools/agent/__init__.py,sha256=
|
|
21
|
+
hanzo_mcp/tools/__init__.py,sha256=QXnDVa7MjTsGT2MnEXJcUdWS0e5Grw9_mX0rwhZ-F3k,18811
|
|
22
|
+
hanzo_mcp/tools/agent/__init__.py,sha256=Op9hy3rrRCvhzH85mUXWPhFQWYgFbmr486ehl7EaziU,4847
|
|
20
23
|
hanzo_mcp/tools/agent/agent.py,sha256=xWYV6-ACIut_u2yiaobmN5szvoBOs8vre0opNKcKkmY,13541
|
|
21
|
-
hanzo_mcp/tools/agent/agent_tool.py,sha256=
|
|
22
|
-
hanzo_mcp/tools/agent/
|
|
24
|
+
hanzo_mcp/tools/agent/agent_tool.py,sha256=xh7ts4ZOGhe9AiQ1B6fuqvy3HfL-Gtd6azeQfey0PAk,26744
|
|
25
|
+
hanzo_mcp/tools/agent/agent_tool_v2.py,sha256=83yn4GKNJ6N0TSk97kfOK7kyO_RI89c0aPae0rwV9HI,17155
|
|
26
|
+
hanzo_mcp/tools/agent/clarification_protocol.py,sha256=haSUDJQVLAQLpp0doFdqxfSDUWeyzDNL38xcI918_H8,8135
|
|
27
|
+
hanzo_mcp/tools/agent/clarification_tool.py,sha256=yXuo6z8N5wq0Ll5-Tg8RYHtyeexxFREQrC0JlhKrbyk,2469
|
|
28
|
+
hanzo_mcp/tools/agent/claude_cli_tool.py,sha256=TM2VT6FlbUlyLp9QWZ_UBqmSjfNT-F9cmeUHSIupF_o,3904
|
|
29
|
+
hanzo_mcp/tools/agent/claude_desktop_auth.py,sha256=hkHjlqc4dqrv1hXJFOZKvgaHScogGkjV5De3r8NRTBQ,16922
|
|
30
|
+
hanzo_mcp/tools/agent/cli_agent_base.py,sha256=nik-oNttJeaKN7Zy_avDZko96a2IFP_vAVB5Xyx8xEc,6590
|
|
31
|
+
hanzo_mcp/tools/agent/code_auth.py,sha256=tMVHKluMYgL0XII3McXv7mRmhbkotBj6FSP9nlYyzAo,14497
|
|
32
|
+
hanzo_mcp/tools/agent/code_auth_tool.py,sha256=L12B3CelKCgJN829tGaYErtSyWZ6zuZOurGXjHoghMU,6404
|
|
33
|
+
hanzo_mcp/tools/agent/codex_cli_tool.py,sha256=VJnSeD8F_mXTqiRQDKllwAdUXuIVg2aECWKFCF-1S08,3789
|
|
34
|
+
hanzo_mcp/tools/agent/critic_tool.py,sha256=WGE9IcashxSDsLaUkQTiR78u89-3PqAMcJffr4DE9Mo,14139
|
|
35
|
+
hanzo_mcp/tools/agent/gemini_cli_tool.py,sha256=HSzZJP1dgs6cZ2D9CNkkTLGkvGex-jmTMiUHDX49Qdo,4027
|
|
36
|
+
hanzo_mcp/tools/agent/grok_cli_tool.py,sha256=cBBNixC92wjblzlJqI8ar4yg88M9692qOP40gt9YlY8,3861
|
|
37
|
+
hanzo_mcp/tools/agent/iching_tool.py,sha256=dXEJLFtwMQNnPWquxsbAuNH6_hB2sva82Q9VN_Qn0_A,20878
|
|
38
|
+
hanzo_mcp/tools/agent/network_tool.py,sha256=83S-ggTUINGkQjuAcQQjYkx2BUCS6O2POI8vPqS8SlM,10223
|
|
39
|
+
hanzo_mcp/tools/agent/prompt.py,sha256=O5aTf6ooF_KLUgeELjNPoJuxIqFh_pQtDhda9TohQVU,6806
|
|
40
|
+
hanzo_mcp/tools/agent/review_tool.py,sha256=5HeltukjfLfg6EqwExsz7y2h4_lJnqybRQhtbR2DpO8,17257
|
|
41
|
+
hanzo_mcp/tools/agent/swarm_tool.py,sha256=W-czkW1mAdgsAb87f3u0y3r1WA_p_fHotT7hJZUd7Io,21038
|
|
42
|
+
hanzo_mcp/tools/agent/swarm_tool_v2.py,sha256=VhiUCEYv4s9hPLsJoRs-6avEOM1IKqfWI5i69gcbaa0,23346
|
|
23
43
|
hanzo_mcp/tools/agent/tool_adapter.py,sha256=HbuCOuj21hdNlUu0vLQq2QRupi7vCDhMPj2MH-oTwKE,2302
|
|
24
44
|
hanzo_mcp/tools/common/__init__.py,sha256=QQqwCAtOEvWlQ48O-8s_vayY58peGSfk1AgmWJSuQus,1283
|
|
25
|
-
hanzo_mcp/tools/common/base.py,sha256=
|
|
26
|
-
hanzo_mcp/tools/common/batch_tool.py,sha256=
|
|
45
|
+
hanzo_mcp/tools/common/base.py,sha256=Yu6aQX3ma-uLcHf1frLStw1U3zCiOvuROHdr0HPoyc8,5946
|
|
46
|
+
hanzo_mcp/tools/common/batch_tool.py,sha256=GYNGG4tTemmgJEvyUodRq5ysQe0_gpIAQ0WjLRcbjwg,16070
|
|
27
47
|
hanzo_mcp/tools/common/config_tool.py,sha256=X2TaITRcYemyD-V2w-Jwpv3DpFdSp65Dk_QTHfYzgF8,16250
|
|
28
48
|
hanzo_mcp/tools/common/context.py,sha256=by0twroTbcQwTJ552HgzhG67GXHCPyEsBXQ18jueLho,5184
|
|
29
49
|
hanzo_mcp/tools/common/context_fix.py,sha256=T0VUJpz-8SQE-h3MiWYiLaZFyF7s-rfTpYVUP6ax2TU,764
|
|
30
50
|
hanzo_mcp/tools/common/critic_tool.py,sha256=0wj9in66AmLQs8bTCiuNxnSSYyUZUursIIXl_6gRZhw,6292
|
|
31
51
|
hanzo_mcp/tools/common/decorators.py,sha256=4CIpYTrcTKSM1zGKFGGjDwgxJXKKKthavzz_cLGqw2U,6806
|
|
32
52
|
hanzo_mcp/tools/common/enhanced_base.py,sha256=8jF7QNFmS1owhqJLzdClpDkbS3INj49DQ_Rn_yvdIoY,3781
|
|
53
|
+
hanzo_mcp/tools/common/fastmcp_pagination.py,sha256=fbfXsOWb80bSHoDmMhKLthCaHlF_T3MQ42lzjplmOUU,12144
|
|
54
|
+
hanzo_mcp/tools/common/forgiving_edit.py,sha256=6SGMrItHQdAkaqx0y73ivK8vKa5nJTpNbuXtmB_Y7t4,9129
|
|
33
55
|
hanzo_mcp/tools/common/mode.py,sha256=3tHBnhR-N6fxmEJPelLMyeHIUqXx-q0lSGU5BWCPw14,3320
|
|
34
56
|
hanzo_mcp/tools/common/mode_loader.py,sha256=341MxmYmJHwM5WAfQnULbfoypEAnyME-tEu69_8J44Y,3340
|
|
57
|
+
hanzo_mcp/tools/common/paginated_base.py,sha256=Yrrmcy-WnA885cd7Coi-CCHQXboqsjgl8_K8jrEb-Ts,8902
|
|
58
|
+
hanzo_mcp/tools/common/paginated_response.py,sha256=Qqjd_mS0SV1vztV_DY_-iShMBRS5eeQnRor8pKvi0vk,10563
|
|
59
|
+
hanzo_mcp/tools/common/pagination.py,sha256=rTIb-dCm8jMb4ElFa8BWkad8HFAB55RUpnyKgSChGw4,6413
|
|
35
60
|
hanzo_mcp/tools/common/permissions.py,sha256=D6oK5eWqkAZt-tUeL717-NnmYLzcX22wsq86zzhOdfc,7561
|
|
36
61
|
hanzo_mcp/tools/common/personality.py,sha256=8Ly46Ui95t-KbaMz5k6gVQG87Acz7p32sU4Cz-RwtuM,36884
|
|
37
62
|
hanzo_mcp/tools/common/plugin_loader.py,sha256=XUEmxkdteOSejoTnRMeEMXdCOrDPRTt0BvvrvrBA4is,9191
|
|
@@ -39,7 +64,8 @@ hanzo_mcp/tools/common/stats.py,sha256=Idv5lkJjx6PUbpgLkifwrrd09bigzLKgpZHGZFJT5
|
|
|
39
64
|
hanzo_mcp/tools/common/thinking_tool.py,sha256=-jNKGS9V9qkl2Y7Zl8QK6HJmJ4XE2EOWyeA-dg3Fg-o,5071
|
|
40
65
|
hanzo_mcp/tools/common/tool_disable.py,sha256=JFXQsA08WzCHYSuEETjmcUzk1RhABZljRD0d4N8PkSI,4257
|
|
41
66
|
hanzo_mcp/tools/common/tool_enable.py,sha256=CD9ioFVVcnAFtrhKKsuLuKhMh31qMBSVdLSldDbTBmE,5044
|
|
42
|
-
hanzo_mcp/tools/common/tool_list.py,sha256=
|
|
67
|
+
hanzo_mcp/tools/common/tool_list.py,sha256=tYLpUaunjeXeHV95rMASDJyJIc4FIcchEKwrZZr82Hg,9553
|
|
68
|
+
hanzo_mcp/tools/common/truncate.py,sha256=3R2qBuMSl23mJ3W_pVKi9MShdLGEeejkWIUWGHf_oBA,3188
|
|
43
69
|
hanzo_mcp/tools/common/validation.py,sha256=cBA4sqDapIAXUj9mVQVzM3lS_KovDrI5Ct66muxy538,1693
|
|
44
70
|
hanzo_mcp/tools/config/__init__.py,sha256=7yZQLhF40U9F7Xddb4uMwhg-76owkOEOax94xw6Ip-o,313
|
|
45
71
|
hanzo_mcp/tools/config/config_tool.py,sha256=FHtKsXEGwWFLQkrgWQHmzg6-OO3M7HQY30mJjEnXeHM,6876
|
|
@@ -61,12 +87,14 @@ hanzo_mcp/tools/editor/__init__.py,sha256=UfwWP23OUFmd6dYRwm2fKfaYDlignQ2gfi32yR
|
|
|
61
87
|
hanzo_mcp/tools/editor/neovim_command.py,sha256=R4OtUia7WKdzOK8AHDrNpHii5GDJmHWwZigFy9ATycs,8283
|
|
62
88
|
hanzo_mcp/tools/editor/neovim_edit.py,sha256=Hq10p1LIHBM_jGIyvjQYtJr8NR5pAeLRM6GfnGHFzTg,8816
|
|
63
89
|
hanzo_mcp/tools/editor/neovim_session.py,sha256=H1AhXBod9HzcYv4fQu4pOlBcyfwgjUo24lzenDZfqRU,11962
|
|
64
|
-
hanzo_mcp/tools/filesystem/__init__.py,sha256=
|
|
90
|
+
hanzo_mcp/tools/filesystem/__init__.py,sha256=navUNfGxyJqHfc-mVhuAPMGeyjauB9WyknhzSitFQME,7849
|
|
91
|
+
hanzo_mcp/tools/filesystem/ast_multi_edit.py,sha256=DdcVYEbdKIgrPOPJVxmirt_xXfkffFhtBdXpOkCaZek,22084
|
|
65
92
|
hanzo_mcp/tools/filesystem/base.py,sha256=0_6PBU1yqGRIQ8ggQNMEA2rB4DXTFg7sMJRAoocN9do,3818
|
|
66
93
|
hanzo_mcp/tools/filesystem/batch_search.py,sha256=nnl72e-HzkjrGCcnyn-2E8VkKBNRx7-0NxxiYFznbhc,34278
|
|
67
94
|
hanzo_mcp/tools/filesystem/content_replace.py,sha256=9GvQhJP1yBJsLQZPHs1UJZ6hxLBh1gCmZaU_CI4kbsA,9958
|
|
68
95
|
hanzo_mcp/tools/filesystem/diff.py,sha256=0ukeGSvkf4PosKhlvQltMuFKA7and_H5T8c632LEX6U,7618
|
|
69
96
|
hanzo_mcp/tools/filesystem/directory_tree.py,sha256=H_fuqNot8Qx3eJQXBsFGIUVyASGFjXgnO_viT_gCLwU,10696
|
|
97
|
+
hanzo_mcp/tools/filesystem/directory_tree_paginated.py,sha256=bP3ns4jW0srTiIqsmj6tvJ76Xj89JvjYrOofXQ9iXmU,11511
|
|
70
98
|
hanzo_mcp/tools/filesystem/edit.py,sha256=jqn1ae3tL5JrHQYm-uWHbXZSuAtw8o2Nj2yYJ1CGg8k,10632
|
|
71
99
|
hanzo_mcp/tools/filesystem/find.py,sha256=897Lnd2507979hBzkskU5gEj1XDJdr7Gr9hTZIAWkUU,15337
|
|
72
100
|
hanzo_mcp/tools/filesystem/find_files.py,sha256=BjmDzXvfXLV7_5NSZ7whhxXzJbM-vP1O0xq411PReSk,10959
|
|
@@ -92,22 +120,31 @@ hanzo_mcp/tools/llm/consensus_tool.py,sha256=5Rjs9TS0jeNkSH12AQK3fSvy7yo6tJRdmfY
|
|
|
92
120
|
hanzo_mcp/tools/llm/llm_manage.py,sha256=SCgmiO_cjQnCFdpsGzIPMluN1s8FA-Nj5-3AJZLvIUg,15666
|
|
93
121
|
hanzo_mcp/tools/llm/llm_tool.py,sha256=PJpPG8st-kd7Yc21udAZsvfzvkauhhauojvJ-b8ZnJc,29796
|
|
94
122
|
hanzo_mcp/tools/llm/provider_tools.py,sha256=mtjGdAPX3XFc_22fMNYNQbeU49opduQPO9h7DoN5IQo,11546
|
|
123
|
+
hanzo_mcp/tools/lsp/__init__.py,sha256=bqUrl-Do2Qj9usJYUHaU7gg4EZr5YEGY0LtBTgOl15A,149
|
|
124
|
+
hanzo_mcp/tools/lsp/lsp_tool.py,sha256=SNW3E3EykNr1_N3jUJlf0wtVeUIVDwQQR_6Qu34IUs0,19163
|
|
95
125
|
hanzo_mcp/tools/mcp/__init__.py,sha256=OJ9WHtzG3J8sHGSAdckortCR-m6DiyS01YPQMao7E2g,348
|
|
96
126
|
hanzo_mcp/tools/mcp/mcp_add.py,sha256=e66tk-OoV8R5x020sDHWgmJw_QLncfA7_RAi2Mr3ZDc,7924
|
|
97
127
|
hanzo_mcp/tools/mcp/mcp_remove.py,sha256=cI_C6xjaHrQ0jnlqRZvrtjDi4CR6V0mTDLynOlrcAiA,3266
|
|
98
128
|
hanzo_mcp/tools/mcp/mcp_stats.py,sha256=nka8zAJEEfqlA3tO5IamuIwOnmIZzLDW52kOxPTCDZc,5478
|
|
99
129
|
hanzo_mcp/tools/mcp/mcp_tool.py,sha256=kx-HEK1PQaLrWi4wff73HgGpY6x0m0J-CaNAD84uQwU,16855
|
|
100
|
-
hanzo_mcp/tools/
|
|
130
|
+
hanzo_mcp/tools/memory/__init__.py,sha256=1ndJ_bwVVt0xFCpEYDUBHQjby6hM4Uww3Av_aivFAiM,2866
|
|
131
|
+
hanzo_mcp/tools/memory/knowledge_tools.py,sha256=52lWw5Km6rUjvsFXMAgXAIGO91qyDTvpK6WJOZNSfM0,17922
|
|
132
|
+
hanzo_mcp/tools/memory/memory_tools.py,sha256=jBF4HVsOFURBMOV4KXD1z4e-_O5oRKy63DqeFFppHsc,14267
|
|
133
|
+
hanzo_mcp/tools/search/__init__.py,sha256=nYhD_YhR4YLtA4lHK8hKW9XErw0g-JvRB8NF_T8vrd4,272
|
|
134
|
+
hanzo_mcp/tools/search/find_tool.py,sha256=5h7r8nWox80YpgevgRNnr1Gg-CCMYfWu2xD9Qj4O8Bw,22243
|
|
135
|
+
hanzo_mcp/tools/search/unified_search.py,sha256=c2Di9eOcFtDh8FJMpt9nFB1PkkVtD-8lzyProkoaatI,37429
|
|
136
|
+
hanzo_mcp/tools/shell/__init__.py,sha256=Ejgww5ots7XYXnf4uVJ3qvu9CROCHEEps622P4OzUWM,1996
|
|
137
|
+
hanzo_mcp/tools/shell/auto_background.py,sha256=m_S815bsS2B5bIpjolFI1qA2V7SenLq0emqpGDrHIlE,7590
|
|
101
138
|
hanzo_mcp/tools/shell/base.py,sha256=Nx9rAE7CO9-Hr5k_qYKUtNFq4twI6Z-lOt0fpkS57i4,5832
|
|
102
|
-
hanzo_mcp/tools/shell/base_process.py,sha256=
|
|
139
|
+
hanzo_mcp/tools/shell/base_process.py,sha256=h6jg5O_SK6n4QVFC7-4z6kJRlPgxnVEOYt7hofxny4w,10520
|
|
103
140
|
hanzo_mcp/tools/shell/bash_session.py,sha256=YPtdtC0pc6Q04RJqKUy0u0RPTbiT2IGtsvFqejK5Hu4,27271
|
|
104
141
|
hanzo_mcp/tools/shell/bash_session_executor.py,sha256=BcR6aJgluRdj0lepV8MrIkeYo3S9MrbuIqIjtV12WHQ,10891
|
|
105
|
-
hanzo_mcp/tools/shell/bash_tool.py,sha256=
|
|
142
|
+
hanzo_mcp/tools/shell/bash_tool.py,sha256=kjJpwaXHx5Xmjannvw4NVVJFY2HmDU5hH_ZGyYyPMZ0,4453
|
|
106
143
|
hanzo_mcp/tools/shell/command_executor.py,sha256=171GoLjIvbnV4F0kqxs30BgLBQC4I1Gi4jEOZJ9N5FA,36507
|
|
107
144
|
hanzo_mcp/tools/shell/logs.py,sha256=RahjkEHNwsKbnJ7cTAie70BSb9bV6T9Vf4JJluoZXYo,8468
|
|
108
145
|
hanzo_mcp/tools/shell/npx.py,sha256=Bs5tKpyJMm6Yfrmuph0btbvSQGbDczR_YToP2iRqhHY,5083
|
|
109
146
|
hanzo_mcp/tools/shell/npx_background.py,sha256=GNZOYV_jjA9pa7w-ZNy_oX7iSA_VfZRzVUr7dKunfjo,7120
|
|
110
|
-
hanzo_mcp/tools/shell/npx_tool.py,sha256=
|
|
147
|
+
hanzo_mcp/tools/shell/npx_tool.py,sha256=9vgJvBCM82co9-Wb5RVkGOebmRtYiRYZVJdiLVekNgs,3032
|
|
111
148
|
hanzo_mcp/tools/shell/open.py,sha256=h8SWEtHKUBevSt-be51MS1No2srIT6ptuySNexMYn58,3686
|
|
112
149
|
hanzo_mcp/tools/shell/pkill.py,sha256=PStKLEhuZhCZAXnn-Wwlut2xjV7GIc7PozuF8y8b7gI,8676
|
|
113
150
|
hanzo_mcp/tools/shell/process_tool.py,sha256=DvSQfP-X0TzJS8JFa5wmihkfHVnW1J_9Hi7q-H1f_AM,5007
|
|
@@ -117,9 +154,10 @@ hanzo_mcp/tools/shell/run_command.py,sha256=AEH3waGpjbaSxBxSfmDW6hF7aL4pzwEwgUoj
|
|
|
117
154
|
hanzo_mcp/tools/shell/run_command_windows.py,sha256=FZ8fUjqvsdGvzyyvagNiQ6ot_isHvVtvCt39MZ5FNks,15320
|
|
118
155
|
hanzo_mcp/tools/shell/session_manager.py,sha256=o8iS4PFCnq28vPqYtdtH9M8lfGyzyhtNL0hmNI13Uuc,6509
|
|
119
156
|
hanzo_mcp/tools/shell/session_storage.py,sha256=elnyFgn0FwsmVvoWAoJFAqiEeNaK4_yByT8-zXa6r-o,10141
|
|
157
|
+
hanzo_mcp/tools/shell/streaming_command.py,sha256=gHh1J5AxOPgI2pcqhGHXv8sVxMrAkSmqBDsF2V6oNMQ,22312
|
|
120
158
|
hanzo_mcp/tools/shell/uvx.py,sha256=f8Lmn35epWmvEfhzWbKju1KMRotLyqT8VmZ-vXeOL1Y,6749
|
|
121
159
|
hanzo_mcp/tools/shell/uvx_background.py,sha256=sgUSPbDavgnREePVBl0eSe8UhekPHnSVBc2YDHHUo2c,8820
|
|
122
|
-
hanzo_mcp/tools/shell/uvx_tool.py,sha256=
|
|
160
|
+
hanzo_mcp/tools/shell/uvx_tool.py,sha256=vCqsn756vOEwC7QP-8JQHM_BtskJjSrviaRVxVPs5YU,3068
|
|
123
161
|
hanzo_mcp/tools/todo/__init__.py,sha256=gLYj2u9TxvFt_EBSAzQywdUUeuUP6TD620KeoibQoV8,1531
|
|
124
162
|
hanzo_mcp/tools/todo/base.py,sha256=k0CFZy59YlLAJBVzVA4tr-qGkQ1l5yF04kcmziwQWec,10666
|
|
125
163
|
hanzo_mcp/tools/todo/todo.py,sha256=o3rKo8-JziG_42oX6YXNSpveH13pp14hF4Q68KavFsg,8921
|
|
@@ -135,9 +173,8 @@ hanzo_mcp/tools/vector/project_manager.py,sha256=PBaO5WMT5SJRM6wENMZXCCG86P2p5Pf
|
|
|
135
173
|
hanzo_mcp/tools/vector/vector.py,sha256=EpKEDkRfSHsDfPewqRwNAulX0BndlK48p-sFSMtt3js,10179
|
|
136
174
|
hanzo_mcp/tools/vector/vector_index.py,sha256=IqXoEfEk6TOOEThXw4obePZqfvBRiYL_LCrx8z35-h8,4403
|
|
137
175
|
hanzo_mcp/tools/vector/vector_search.py,sha256=jwX1azf4V4seqJ2CIDloX3lJ5_hkUl7X5e2OOgGXQNk,9647
|
|
138
|
-
hanzo_mcp-0.
|
|
139
|
-
hanzo_mcp-0.
|
|
140
|
-
hanzo_mcp-0.
|
|
141
|
-
hanzo_mcp-0.
|
|
142
|
-
hanzo_mcp-0.
|
|
143
|
-
hanzo_mcp-0.6.13.dist-info/RECORD,,
|
|
176
|
+
hanzo_mcp-0.7.1.dist-info/METADATA,sha256=t2OP3M5-NTLZk7T8sGaWbmkffox6ui55DDamB7Y81eU,16085
|
|
177
|
+
hanzo_mcp-0.7.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
178
|
+
hanzo_mcp-0.7.1.dist-info/entry_points.txt,sha256=ML30pedHV5wjthfztzMMz3uYhNdR_6inzYY5pSqNME4,142
|
|
179
|
+
hanzo_mcp-0.7.1.dist-info/top_level.txt,sha256=eGFANatA0MHWiVlpS56fTYRIShtibrSom1uXI6XU0GU,10
|
|
180
|
+
hanzo_mcp-0.7.1.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 hanzoai
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|