claude-mpm 4.3.11__py3-none-any.whl → 4.3.12__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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/templates/research.json +20 -8
- claude_mpm/agents/templates/web_qa.json +25 -10
- claude_mpm/cli/__init__.py +1 -0
- claude_mpm/cli/commands/mcp_command_router.py +11 -0
- claude_mpm/cli/commands/mcp_config.py +157 -0
- claude_mpm/cli/commands/mcp_external_commands.py +241 -0
- claude_mpm/cli/commands/mcp_install_commands.py +64 -23
- claude_mpm/cli/commands/mcp_setup_external.py +829 -0
- claude_mpm/cli/commands/run.py +70 -0
- claude_mpm/cli/commands/search.py +285 -0
- claude_mpm/cli/parsers/base_parser.py +13 -0
- claude_mpm/cli/parsers/mcp_parser.py +17 -0
- claude_mpm/cli/parsers/run_parser.py +5 -0
- claude_mpm/cli/parsers/search_parser.py +239 -0
- claude_mpm/constants.py +1 -0
- claude_mpm/core/unified_agent_registry.py +7 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +28 -13
- claude_mpm/services/agents/deployment/agent_discovery_service.py +16 -6
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +6 -4
- claude_mpm/services/cli/agent_cleanup_service.py +5 -0
- claude_mpm/services/mcp_config_manager.py +294 -0
- claude_mpm/services/mcp_gateway/config/configuration.py +17 -0
- claude_mpm/services/mcp_gateway/main.py +38 -0
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +390 -0
- {claude_mpm-4.3.11.dist-info → claude_mpm-4.3.12.dist-info}/METADATA +4 -1
- {claude_mpm-4.3.11.dist-info → claude_mpm-4.3.12.dist-info}/RECORD +31 -24
- {claude_mpm-4.3.11.dist-info → claude_mpm-4.3.12.dist-info}/WHEEL +0 -0
- {claude_mpm-4.3.11.dist-info → claude_mpm-4.3.12.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.3.11.dist-info → claude_mpm-4.3.12.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.3.11.dist-info → claude_mpm-4.3.12.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
"""
|
|
2
|
+
External MCP Services Integration
|
|
3
|
+
==================================
|
|
4
|
+
|
|
5
|
+
Manages installation and basic setup of external MCP services like mcp-vector-search
|
|
6
|
+
and mcp-browser. These services run as separate MCP servers in Claude Desktop,
|
|
7
|
+
not as part of the Claude MPM MCP Gateway.
|
|
8
|
+
|
|
9
|
+
Note: As of the latest architecture, external services are registered as separate
|
|
10
|
+
MCP servers in Claude Desktop configuration, not as tools within the gateway.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import asyncio
|
|
14
|
+
import json
|
|
15
|
+
import subprocess
|
|
16
|
+
import sys
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
from typing import Any, Dict, List, Optional
|
|
19
|
+
|
|
20
|
+
from claude_mpm.services.mcp_gateway.core.base import BaseMCPService
|
|
21
|
+
from claude_mpm.services.mcp_gateway.tools.base_adapter import BaseMCPToolAdapter
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ExternalMCPService(BaseMCPToolAdapter):
|
|
25
|
+
"""Base class for external MCP service integration."""
|
|
26
|
+
|
|
27
|
+
def __init__(self, service_name: str, package_name: str):
|
|
28
|
+
"""
|
|
29
|
+
Initialize external MCP service.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
service_name: Name of the service for MCP
|
|
33
|
+
package_name: Python package name to install/run
|
|
34
|
+
"""
|
|
35
|
+
super().__init__()
|
|
36
|
+
self.service_name = service_name
|
|
37
|
+
self.package_name = package_name
|
|
38
|
+
self.process = None
|
|
39
|
+
self._is_installed = False
|
|
40
|
+
|
|
41
|
+
async def initialize(self) -> bool:
|
|
42
|
+
"""Initialize the external service."""
|
|
43
|
+
try:
|
|
44
|
+
# Check if package is installed
|
|
45
|
+
self._is_installed = await self._check_installation()
|
|
46
|
+
|
|
47
|
+
if not self._is_installed:
|
|
48
|
+
self.logger.warning(f"{self.package_name} not installed, attempting installation...")
|
|
49
|
+
await self._install_package()
|
|
50
|
+
self._is_installed = await self._check_installation()
|
|
51
|
+
|
|
52
|
+
if not self._is_installed:
|
|
53
|
+
self.logger.error(f"Failed to install {self.package_name}")
|
|
54
|
+
return False
|
|
55
|
+
|
|
56
|
+
self.logger.info(f"{self.package_name} is available")
|
|
57
|
+
return True
|
|
58
|
+
|
|
59
|
+
except Exception as e:
|
|
60
|
+
self.logger.error(f"Failed to initialize {self.service_name}: {e}")
|
|
61
|
+
return False
|
|
62
|
+
|
|
63
|
+
async def _check_installation(self) -> bool:
|
|
64
|
+
"""Check if the package is installed."""
|
|
65
|
+
try:
|
|
66
|
+
result = subprocess.run(
|
|
67
|
+
[sys.executable, "-m", self.package_name.replace("-", "_"), "--help"],
|
|
68
|
+
capture_output=True,
|
|
69
|
+
text=True,
|
|
70
|
+
timeout=5
|
|
71
|
+
)
|
|
72
|
+
return result.returncode == 0
|
|
73
|
+
except (subprocess.TimeoutExpired, FileNotFoundError, subprocess.CalledProcessError):
|
|
74
|
+
return False
|
|
75
|
+
|
|
76
|
+
async def _install_package(self) -> bool:
|
|
77
|
+
"""Install the package using pip."""
|
|
78
|
+
try:
|
|
79
|
+
self.logger.info(f"Installing {self.package_name}...")
|
|
80
|
+
result = subprocess.run(
|
|
81
|
+
[sys.executable, "-m", "pip", "install", self.package_name],
|
|
82
|
+
capture_output=True,
|
|
83
|
+
text=True,
|
|
84
|
+
timeout=30
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
if result.returncode == 0:
|
|
88
|
+
self.logger.info(f"Successfully installed {self.package_name}")
|
|
89
|
+
return True
|
|
90
|
+
else:
|
|
91
|
+
self.logger.error(f"Failed to install {self.package_name}: {result.stderr}")
|
|
92
|
+
return False
|
|
93
|
+
|
|
94
|
+
except Exception as e:
|
|
95
|
+
self.logger.error(f"Error installing {self.package_name}: {e}")
|
|
96
|
+
return False
|
|
97
|
+
|
|
98
|
+
def get_definition(self) -> Dict[str, Any]:
|
|
99
|
+
"""Get service definition for MCP registration."""
|
|
100
|
+
return {
|
|
101
|
+
"name": self.service_name,
|
|
102
|
+
"description": f"External MCP service: {self.package_name}",
|
|
103
|
+
"type": "external_service",
|
|
104
|
+
"package": self.package_name,
|
|
105
|
+
"installed": self._is_installed
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class MCPVectorSearchService(ExternalMCPService):
|
|
110
|
+
"""MCP Vector Search service integration."""
|
|
111
|
+
|
|
112
|
+
def __init__(self):
|
|
113
|
+
"""Initialize MCP Vector Search service."""
|
|
114
|
+
super().__init__("mcp-vector-search", "mcp-vector-search")
|
|
115
|
+
|
|
116
|
+
def get_definition(self) -> Dict[str, Any]:
|
|
117
|
+
"""Get tool definition for MCP registration."""
|
|
118
|
+
base_def = super().get_definition()
|
|
119
|
+
base_def.update({
|
|
120
|
+
"description": "Semantic code search powered by vector embeddings",
|
|
121
|
+
"tools": [
|
|
122
|
+
{
|
|
123
|
+
"name": "mcp__mcp-vector-search__search_code",
|
|
124
|
+
"description": "Search for code using semantic similarity",
|
|
125
|
+
"inputSchema": {
|
|
126
|
+
"type": "object",
|
|
127
|
+
"properties": {
|
|
128
|
+
"query": {"type": "string", "description": "The search query"},
|
|
129
|
+
"limit": {"type": "integer", "default": 10},
|
|
130
|
+
"similarity_threshold": {"type": "number", "default": 0.3},
|
|
131
|
+
"language": {"type": "string"},
|
|
132
|
+
"file_extensions": {"type": "array", "items": {"type": "string"}},
|
|
133
|
+
"files": {"type": "string"},
|
|
134
|
+
"class_name": {"type": "string"},
|
|
135
|
+
"function_name": {"type": "string"}
|
|
136
|
+
},
|
|
137
|
+
"required": ["query"]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "mcp__mcp-vector-search__search_similar",
|
|
142
|
+
"description": "Find code similar to a specific file or function",
|
|
143
|
+
"inputSchema": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"properties": {
|
|
146
|
+
"file_path": {"type": "string", "description": "Path to the file"},
|
|
147
|
+
"function_name": {"type": "string"},
|
|
148
|
+
"limit": {"type": "integer", "default": 10},
|
|
149
|
+
"similarity_threshold": {"type": "number", "default": 0.3}
|
|
150
|
+
},
|
|
151
|
+
"required": ["file_path"]
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "mcp__mcp-vector-search__search_context",
|
|
156
|
+
"description": "Search for code based on contextual description",
|
|
157
|
+
"inputSchema": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"properties": {
|
|
160
|
+
"description": {"type": "string", "description": "Contextual description"},
|
|
161
|
+
"focus_areas": {"type": "array", "items": {"type": "string"}},
|
|
162
|
+
"limit": {"type": "integer", "default": 10}
|
|
163
|
+
},
|
|
164
|
+
"required": ["description"]
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "mcp__mcp-vector-search__get_project_status",
|
|
169
|
+
"description": "Get project indexing status and statistics",
|
|
170
|
+
"inputSchema": {
|
|
171
|
+
"type": "object",
|
|
172
|
+
"properties": {},
|
|
173
|
+
"required": []
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "mcp__mcp-vector-search__index_project",
|
|
178
|
+
"description": "Index or reindex the project codebase",
|
|
179
|
+
"inputSchema": {
|
|
180
|
+
"type": "object",
|
|
181
|
+
"properties": {
|
|
182
|
+
"force": {"type": "boolean", "default": False},
|
|
183
|
+
"file_extensions": {"type": "array", "items": {"type": "string"}}
|
|
184
|
+
},
|
|
185
|
+
"required": []
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
})
|
|
190
|
+
return base_def
|
|
191
|
+
|
|
192
|
+
async def invoke(self, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]:
|
|
193
|
+
"""Invoke a tool from mcp-vector-search."""
|
|
194
|
+
try:
|
|
195
|
+
# Extract the actual tool name (remove prefix)
|
|
196
|
+
actual_tool = tool_name.replace("mcp__mcp-vector-search__", "")
|
|
197
|
+
|
|
198
|
+
# Prepare the command
|
|
199
|
+
cmd = [
|
|
200
|
+
sys.executable, "-m", "mcp_vector_search",
|
|
201
|
+
"--tool", actual_tool,
|
|
202
|
+
"--args", json.dumps(arguments)
|
|
203
|
+
]
|
|
204
|
+
|
|
205
|
+
# Run the command
|
|
206
|
+
result = subprocess.run(
|
|
207
|
+
cmd,
|
|
208
|
+
capture_output=True,
|
|
209
|
+
text=True,
|
|
210
|
+
timeout=30,
|
|
211
|
+
cwd=Path.cwd() # Use current working directory for project context
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
if result.returncode == 0:
|
|
215
|
+
try:
|
|
216
|
+
return json.loads(result.stdout)
|
|
217
|
+
except json.JSONDecodeError:
|
|
218
|
+
return {"result": result.stdout}
|
|
219
|
+
else:
|
|
220
|
+
return {"error": result.stderr or "Tool invocation failed"}
|
|
221
|
+
|
|
222
|
+
except subprocess.TimeoutExpired:
|
|
223
|
+
return {"error": "Tool invocation timed out"}
|
|
224
|
+
except Exception as e:
|
|
225
|
+
return {"error": str(e)}
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
class MCPBrowserService(ExternalMCPService):
|
|
229
|
+
"""MCP Browser service integration."""
|
|
230
|
+
|
|
231
|
+
def __init__(self):
|
|
232
|
+
"""Initialize MCP Browser service."""
|
|
233
|
+
super().__init__("mcp-browser", "mcp-browser")
|
|
234
|
+
|
|
235
|
+
def get_definition(self) -> Dict[str, Any]:
|
|
236
|
+
"""Get tool definition for MCP registration."""
|
|
237
|
+
base_def = super().get_definition()
|
|
238
|
+
base_def.update({
|
|
239
|
+
"description": "Web browsing and content extraction capabilities",
|
|
240
|
+
"tools": [
|
|
241
|
+
{
|
|
242
|
+
"name": "mcp__mcp-browser__browse",
|
|
243
|
+
"description": "Browse a webpage and extract content",
|
|
244
|
+
"inputSchema": {
|
|
245
|
+
"type": "object",
|
|
246
|
+
"properties": {
|
|
247
|
+
"url": {"type": "string", "description": "URL to browse"},
|
|
248
|
+
"extract": {"type": "string", "description": "What to extract"}
|
|
249
|
+
},
|
|
250
|
+
"required": ["url"]
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"name": "mcp__mcp-browser__search",
|
|
255
|
+
"description": "Search the web",
|
|
256
|
+
"inputSchema": {
|
|
257
|
+
"type": "object",
|
|
258
|
+
"properties": {
|
|
259
|
+
"query": {"type": "string", "description": "Search query"},
|
|
260
|
+
"num_results": {"type": "integer", "default": 10}
|
|
261
|
+
},
|
|
262
|
+
"required": ["query"]
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"name": "mcp__mcp-browser__screenshot",
|
|
267
|
+
"description": "Take a screenshot of a webpage",
|
|
268
|
+
"inputSchema": {
|
|
269
|
+
"type": "object",
|
|
270
|
+
"properties": {
|
|
271
|
+
"url": {"type": "string", "description": "URL to screenshot"},
|
|
272
|
+
"full_page": {"type": "boolean", "default": False}
|
|
273
|
+
},
|
|
274
|
+
"required": ["url"]
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
]
|
|
278
|
+
})
|
|
279
|
+
return base_def
|
|
280
|
+
|
|
281
|
+
async def invoke(self, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]:
|
|
282
|
+
"""Invoke a tool from mcp-browser."""
|
|
283
|
+
try:
|
|
284
|
+
# Extract the actual tool name (remove prefix)
|
|
285
|
+
actual_tool = tool_name.replace("mcp__mcp-browser__", "")
|
|
286
|
+
|
|
287
|
+
# Prepare the command
|
|
288
|
+
cmd = [
|
|
289
|
+
sys.executable, "-m", "mcp_browser",
|
|
290
|
+
"--tool", actual_tool,
|
|
291
|
+
"--args", json.dumps(arguments)
|
|
292
|
+
]
|
|
293
|
+
|
|
294
|
+
# Run the command
|
|
295
|
+
result = subprocess.run(
|
|
296
|
+
cmd,
|
|
297
|
+
capture_output=True,
|
|
298
|
+
text=True,
|
|
299
|
+
timeout=30
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
if result.returncode == 0:
|
|
303
|
+
try:
|
|
304
|
+
return json.loads(result.stdout)
|
|
305
|
+
except json.JSONDecodeError:
|
|
306
|
+
return {"result": result.stdout}
|
|
307
|
+
else:
|
|
308
|
+
return {"error": result.stderr or "Tool invocation failed"}
|
|
309
|
+
|
|
310
|
+
except subprocess.TimeoutExpired:
|
|
311
|
+
return {"error": "Tool invocation timed out"}
|
|
312
|
+
except Exception as e:
|
|
313
|
+
return {"error": str(e)}
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
class ExternalMCPServiceManager:
|
|
317
|
+
"""Manager for external MCP services.
|
|
318
|
+
|
|
319
|
+
This manager is responsible for checking and installing Python packages
|
|
320
|
+
for external MCP services. The actual registration of these services
|
|
321
|
+
happens in Claude Desktop configuration as separate MCP servers.
|
|
322
|
+
|
|
323
|
+
Note: This class is maintained for backward compatibility and package
|
|
324
|
+
management. The actual tool registration is handled by separate MCP
|
|
325
|
+
server instances in Claude Desktop.
|
|
326
|
+
"""
|
|
327
|
+
|
|
328
|
+
def __init__(self):
|
|
329
|
+
"""Initialize the service manager."""
|
|
330
|
+
self.services: List[ExternalMCPService] = []
|
|
331
|
+
self.logger = None
|
|
332
|
+
|
|
333
|
+
async def initialize_services(self) -> List[ExternalMCPService]:
|
|
334
|
+
"""Initialize all external MCP services.
|
|
335
|
+
|
|
336
|
+
This method checks if external service packages are installed
|
|
337
|
+
and attempts to install them if missing. It does NOT register
|
|
338
|
+
them as tools in the gateway - they run as separate MCP servers.
|
|
339
|
+
"""
|
|
340
|
+
# Create service instances
|
|
341
|
+
services = [
|
|
342
|
+
MCPVectorSearchService(),
|
|
343
|
+
MCPBrowserService()
|
|
344
|
+
]
|
|
345
|
+
|
|
346
|
+
# Initialize each service
|
|
347
|
+
initialized_services = []
|
|
348
|
+
for service in services:
|
|
349
|
+
try:
|
|
350
|
+
if await service.initialize():
|
|
351
|
+
initialized_services.append(service)
|
|
352
|
+
if self.logger:
|
|
353
|
+
self.logger.info(f"Initialized external service: {service.service_name}")
|
|
354
|
+
else:
|
|
355
|
+
if self.logger:
|
|
356
|
+
self.logger.warning(f"Failed to initialize: {service.service_name}")
|
|
357
|
+
except Exception as e:
|
|
358
|
+
if self.logger:
|
|
359
|
+
self.logger.error(f"Error initializing {service.service_name}: {e}")
|
|
360
|
+
|
|
361
|
+
self.services = initialized_services
|
|
362
|
+
return initialized_services
|
|
363
|
+
|
|
364
|
+
def get_all_tools(self) -> List[Dict[str, Any]]:
|
|
365
|
+
"""Get all tool definitions from external services."""
|
|
366
|
+
all_tools = []
|
|
367
|
+
for service in self.services:
|
|
368
|
+
service_def = service.get_definition()
|
|
369
|
+
if "tools" in service_def:
|
|
370
|
+
all_tools.extend(service_def["tools"])
|
|
371
|
+
return all_tools
|
|
372
|
+
|
|
373
|
+
async def invoke_tool(self, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]:
|
|
374
|
+
"""Invoke a tool from any registered external service."""
|
|
375
|
+
# Find the service that handles this tool
|
|
376
|
+
for service in self.services:
|
|
377
|
+
if tool_name.startswith(f"mcp__{service.service_name}__"):
|
|
378
|
+
if isinstance(service, (MCPVectorSearchService, MCPBrowserService)):
|
|
379
|
+
return await service.invoke(tool_name, arguments)
|
|
380
|
+
|
|
381
|
+
return {"error": f"No service found for tool: {tool_name}"}
|
|
382
|
+
|
|
383
|
+
async def shutdown(self):
|
|
384
|
+
"""Shutdown all external services."""
|
|
385
|
+
for service in self.services:
|
|
386
|
+
try:
|
|
387
|
+
await service.shutdown()
|
|
388
|
+
except Exception as e:
|
|
389
|
+
if self.logger:
|
|
390
|
+
self.logger.warning(f"Error shutting down {service.service_name}: {e}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-mpm
|
|
3
|
-
Version: 4.3.
|
|
3
|
+
Version: 4.3.12
|
|
4
4
|
Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
|
|
5
5
|
Author-email: Bob Matsuoka <bob@matsuoka.com>
|
|
6
6
|
Maintainer: Claude MPM Team
|
|
@@ -42,6 +42,9 @@ Requires-Dist: mistune>=3.0.0
|
|
|
42
42
|
Requires-Dist: tree-sitter>=0.21.0
|
|
43
43
|
Requires-Dist: ijson>=3.2.0
|
|
44
44
|
Requires-Dist: mcp>=0.1.0
|
|
45
|
+
Requires-Dist: mcp-vector-search>=0.1.0
|
|
46
|
+
Requires-Dist: mcp-browser>=0.1.0
|
|
47
|
+
Requires-Dist: mcp-ticketer>=0.1.0
|
|
45
48
|
Requires-Dist: toml>=0.10.2
|
|
46
49
|
Requires-Dist: packaging>=21.0
|
|
47
50
|
Requires-Dist: pydantic>=2.0.0
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
|
2
|
-
claude_mpm/VERSION,sha256
|
|
2
|
+
claude_mpm/VERSION,sha256=-c_4_NgMIALgH77IeTHbK7fYo3M_daC6Uf2bbEBnd80,7
|
|
3
3
|
claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
|
|
4
4
|
claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
|
|
5
|
-
claude_mpm/constants.py,sha256=
|
|
5
|
+
claude_mpm/constants.py,sha256=cChN3myrAcF3jC-6DvHnBFTEnwlDk-TAsIXPvUZr_yw,5953
|
|
6
6
|
claude_mpm/init.py,sha256=mcBonXUyP9pxEFFYfFcQ4OFLWiICT1XnonM_EdjIhoI,15133
|
|
7
7
|
claude_mpm/ticket_wrapper.py,sha256=qe5xY579t7_7fK5nyeAfHN_fr7CXdeOD3jfXEc8-7yo,828
|
|
8
8
|
claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=aK9qxS1FRpm_8VaB5GI2I6YA9Wr8dGHuea_txMFe44M,5524
|
|
@@ -48,18 +48,18 @@ claude_mpm/agents/templates/python_engineer.json,sha256=lDlSO-CVtmRjgaE6fapJtRVx
|
|
|
48
48
|
claude_mpm/agents/templates/qa.json,sha256=pHdf-N4k2FJLczuQcBONV1lo8hUXut9tpknyDal3C4A,9590
|
|
49
49
|
claude_mpm/agents/templates/react_engineer.json,sha256=YTstpd82AfmKQ9uu34sb_xdX02rFCA9Xe9oz8XuHdaw,12436
|
|
50
50
|
claude_mpm/agents/templates/refactoring_engineer.json,sha256=PjaJx7AP-pRqZhZmbkHpZmD-ApeHy934cvq6SeJMk5A,11877
|
|
51
|
-
claude_mpm/agents/templates/research.json,sha256=
|
|
51
|
+
claude_mpm/agents/templates/research.json,sha256=c25Q6L-oOKEF-MgRye8hsQCfKzBjluXikq4z386M-Fk,12157
|
|
52
52
|
claude_mpm/agents/templates/security.json,sha256=YBQXtbkyFznUGW0P9YoVgRe--0GYbnFHTj5ol0FWxGQ,24216
|
|
53
53
|
claude_mpm/agents/templates/ticketing.json,sha256=MaLL7xBpZoqghVJ-cQNQOKHoGTkdiaJgE8ysZJqTiwM,11514
|
|
54
54
|
claude_mpm/agents/templates/vercel_ops_agent.json,sha256=UCtq8YWxsw0MYjN078IRmeHyQFH1PG0Iv0xaodtyFN0,26985
|
|
55
55
|
claude_mpm/agents/templates/version_control.json,sha256=fv4pCG-6DeFjB5cFnlC9otVmHUCl-9cJ9vgkQE0MOcw,14430
|
|
56
|
-
claude_mpm/agents/templates/web_qa.json,sha256=
|
|
56
|
+
claude_mpm/agents/templates/web_qa.json,sha256=NtVuMrpWEAeLzewgbBcdpYRlMk5TJMq4UPSODEsnXig,17887
|
|
57
57
|
claude_mpm/agents/templates/web_ui.json,sha256=tqdNRMP8EgBL-yNSQ06WxMTyAziSbWVVqjqm6rLzmdw,34852
|
|
58
58
|
claude_mpm/agents/templates/.claude-mpm/memories/README.md,sha256=vEiG7cPjHRZfwX2IQB-i30ArO8zJyuxMJzHh8hnVZ6A,483
|
|
59
59
|
claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md,sha256=KMZSJrQi-wHOwfl2C0m3A4PpC4QuBtDolAtVybGahKc,77
|
|
60
60
|
claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md,sha256=UBm4BycXtdaa-_l1VCh0alTGGOUSsnCbpKwbFuI-mUY,2219
|
|
61
61
|
claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md,sha256=oPvFSYFnmJ4TkbTe4AZnNHWaJMJ-xqZP2WM6scUKQKo,13089
|
|
62
|
-
claude_mpm/cli/__init__.py,sha256=
|
|
62
|
+
claude_mpm/cli/__init__.py,sha256=U_ZoiMocO4sOT1aBF2CH1OiB5-88PFKIUfnUPDaM0_c,18615
|
|
63
63
|
claude_mpm/cli/__main__.py,sha256=WnVGBwe10InxuZjJRFdwuMF6Gh16aXox6zFgxr0sRXk,847
|
|
64
64
|
claude_mpm/cli/parser.py,sha256=Vqx9n-6Xo1uNhXR4rThmgWpZXTr0nOtkgDf3oMS9b0g,5855
|
|
65
65
|
claude_mpm/cli/startup_logging.py,sha256=g02F_K1WvMhGgq_8UHwbXRJyVwYgaRbO20wfb3GyWW4,24155
|
|
@@ -81,17 +81,21 @@ claude_mpm/cli/commands/debug.py,sha256=cYQXXZQiHja-1lygyd0PMlrZVdOHRsflyfO3d2Dh
|
|
|
81
81
|
claude_mpm/cli/commands/doctor.py,sha256=bOZzDNxEMNMZYrJnu_V82tyZ12r5FiBRQNLVfSVvRIQ,5774
|
|
82
82
|
claude_mpm/cli/commands/info.py,sha256=uiZ2GMkfr-4aeme2l6QhzxyawuhtuyVulfCi66yyvOs,7404
|
|
83
83
|
claude_mpm/cli/commands/mcp.py,sha256=um78Q7o3g8FZ0LcKXiJkGLSo-y-RMgvqlNELM04rijY,7120
|
|
84
|
-
claude_mpm/cli/commands/mcp_command_router.py,sha256=
|
|
84
|
+
claude_mpm/cli/commands/mcp_command_router.py,sha256=j4tmnPRAmMlmtcP-n8Kl6S4l1vn3YY_dE79R3S4xpQ8,5984
|
|
85
|
+
claude_mpm/cli/commands/mcp_config.py,sha256=SAw3gup7t2W6mrSTSOO8SIvBxYEVpO6WZt5s-CivUBU,4880
|
|
85
86
|
claude_mpm/cli/commands/mcp_config_commands.py,sha256=TnTg7-erE5Z6O8C84o4lZITco72Wnu0FVlVF8tNVsP0,695
|
|
86
|
-
claude_mpm/cli/commands/
|
|
87
|
+
claude_mpm/cli/commands/mcp_external_commands.py,sha256=HGAFxA5xzdHMq1iZ6Ei31N2XHvxkN_c9XvAoLKhp7ec,8919
|
|
88
|
+
claude_mpm/cli/commands/mcp_install_commands.py,sha256=IjG_PkOaR8CyOmUkmsPdGe0YYOXF6TZ77HVaPq9OxLo,12399
|
|
87
89
|
claude_mpm/cli/commands/mcp_pipx_config.py,sha256=sE62VD6Q1CcO2k1nlbIhHMfAJFQTZfIzCss99LmfNqA,6088
|
|
88
90
|
claude_mpm/cli/commands/mcp_server_commands.py,sha256=-1G_2Y5ScTvzDd-kY8fTAao2H6FH7DnsLimleF1rVqQ,6197
|
|
91
|
+
claude_mpm/cli/commands/mcp_setup_external.py,sha256=pbxrBH9j7AxRnqr3i-ULU0_FFCe3JlrKBAWoqQIzYRU,32496
|
|
89
92
|
claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
|
|
90
93
|
claude_mpm/cli/commands/memory.py,sha256=Yzfs3_oiKciv3sfOoDm2lJL4M9idG7ARV3-sNw1ge_g,26186
|
|
91
94
|
claude_mpm/cli/commands/monitor.py,sha256=Y4on91KW6Ye5NIglHnMVG8hhzw8ZRslBm1oMm6KC48s,9556
|
|
92
95
|
claude_mpm/cli/commands/mpm_init.py,sha256=lO7N91ZHn_n18XbchUUcYoyme7L5NLcXVnhWm5F_Gq8,22367
|
|
93
96
|
claude_mpm/cli/commands/mpm_init_handler.py,sha256=-pCB0XL3KipqGtnta8CC7Lg5TPMwstEhMFBcgF4aaa4,2919
|
|
94
|
-
claude_mpm/cli/commands/run.py,sha256=
|
|
97
|
+
claude_mpm/cli/commands/run.py,sha256=zaeqGoaurakkRRD6o4J8CBgywTxOTaAGrJX692fpR4w,46603
|
|
98
|
+
claude_mpm/cli/commands/search.py,sha256=3-uCE_maUXNSorCMk4qXncCvpl3320Qu2qeVl6yWYJo,9714
|
|
95
99
|
claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
|
|
96
100
|
claude_mpm/cli/commands/uninstall.py,sha256=KGlVG6veEs1efLVjrZ3wSty7e1zVR9wpt-VXQA1RzWw,5945
|
|
97
101
|
claude_mpm/cli/interactive/__init__.py,sha256=vQqUCgPFvLYA1Vkq-5pnY7Ow3A-IgdM0SByfNL1ZLTk,433
|
|
@@ -101,16 +105,17 @@ claude_mpm/cli/parsers/agent_manager_parser.py,sha256=TQEIm638ELM4X_AAGcn6WrJxlt
|
|
|
101
105
|
claude_mpm/cli/parsers/agents_parser.py,sha256=R-9ESNXdjqr5iCEIcmbb2EPvcswW9UfJzMj5bAkgI4U,9042
|
|
102
106
|
claude_mpm/cli/parsers/analyze_code_parser.py,sha256=cpJSMFbc3mqB4qrMBIEZiikzPekC2IQX-cjt9U2fHW4,5356
|
|
103
107
|
claude_mpm/cli/parsers/analyze_parser.py,sha256=E00Ao0zwzbJPchs_AJt-aoQ7LQEtJPXRCNQ6Piivb4o,3908
|
|
104
|
-
claude_mpm/cli/parsers/base_parser.py,sha256=
|
|
108
|
+
claude_mpm/cli/parsers/base_parser.py,sha256=0iz_EzdlUHya2peMdq_R0OifzAeEaEiV5JCBbUSjW1E,14001
|
|
105
109
|
claude_mpm/cli/parsers/config_parser.py,sha256=wp6NbV8_p9txP28MXFcQrri0JDIfGFM7u4aJbYJXcYQ,2699
|
|
106
110
|
claude_mpm/cli/parsers/configure_parser.py,sha256=cg3VXrnSqi9QLhMihJXeKDjtp1sS5jSHZNM_prgm0S4,4598
|
|
107
111
|
claude_mpm/cli/parsers/dashboard_parser.py,sha256=JBCM6v_iZhADr_Fwtk_d3up9AOod1avMab-vkNE61gE,3460
|
|
108
112
|
claude_mpm/cli/parsers/debug_parser.py,sha256=F7MZdmiXiPfiIPMv21ZUqB2cMT8Ho1LDmpbvCXODLbY,9846
|
|
109
|
-
claude_mpm/cli/parsers/mcp_parser.py,sha256=
|
|
113
|
+
claude_mpm/cli/parsers/mcp_parser.py,sha256=xJ3xETj6_f-1_0-ZhkxMcxtjdsHtzbVEOSE95hAZosk,6548
|
|
110
114
|
claude_mpm/cli/parsers/memory_parser.py,sha256=ZwCDxJEgp-w03L-1tZsWTgisiwamP42s424bA5bvDJc,4760
|
|
111
115
|
claude_mpm/cli/parsers/monitor_parser.py,sha256=PeoznSi_5Bw6THK_Espl8M20o6dKvvBSmFzAbovkaFQ,4920
|
|
112
116
|
claude_mpm/cli/parsers/mpm_init_parser.py,sha256=PxAydGDwTmgi0lu-cQHLnk4286EBzK84StcT8Msvk0I,4791
|
|
113
|
-
claude_mpm/cli/parsers/run_parser.py,sha256=
|
|
117
|
+
claude_mpm/cli/parsers/run_parser.py,sha256=cs34qNonFZG8uYxTYEt0rXi2LcPz3pw8D8hxiywih6w,4927
|
|
118
|
+
claude_mpm/cli/parsers/search_parser.py,sha256=U63DO7ItbwFJhuADtYiaV3zyHrZeag2WdllCGlykOQQ,6876
|
|
114
119
|
claude_mpm/cli/parsers/tickets_parser.py,sha256=FYl-VNH7PrZzfZUCcjnf6F7g6JXnL8YDxwrmR5svIcg,6966
|
|
115
120
|
claude_mpm/cli/shared/__init__.py,sha256=c3Ff46Az3U-YpYgcjOowMcNUkSzDngflAJotv6Bs8TE,1019
|
|
116
121
|
claude_mpm/cli/shared/argument_patterns.py,sha256=unnBuYJA6ZEsHEaMccnyENBgNKqSYzpDdcHGdaseuto,5616
|
|
@@ -177,7 +182,7 @@ claude_mpm/core/socketio_pool.py,sha256=8yL4HMA2GWJOkFuOULp1XHE35um06OE-rxA409hT
|
|
|
177
182
|
claude_mpm/core/tool_access_control.py,sha256=9PiLGhe7bN9yMIqDPqIVIPUmxKsPwb5PUgcOFSl1QBk,6396
|
|
178
183
|
claude_mpm/core/types.py,sha256=RQ6MQlV_G3ohLPSdQRRAlQkoCt1BuLK-vnl2JbuFQYA,7835
|
|
179
184
|
claude_mpm/core/typing_utils.py,sha256=MXPPuTYT6uY-a2T-G8gouoDXn7rRPAqE3xNQ0vP1Lfo,13244
|
|
180
|
-
claude_mpm/core/unified_agent_registry.py,sha256=
|
|
185
|
+
claude_mpm/core/unified_agent_registry.py,sha256=oGpzX7HligcymXxOCxhHUY-D33D8CoGxBzWKMvZN0Sw,30321
|
|
181
186
|
claude_mpm/core/unified_config.py,sha256=MptDUDXv0scgo1zxrGQYg19A0xDHDzPFJPlYeVJPZWA,19659
|
|
182
187
|
claude_mpm/core/unified_paths.py,sha256=tBb-1QCHDpmXYn1gdget8y-5fVE-vEtS1HWABVBN-J4,35958
|
|
183
188
|
claude_mpm/core/shared/__init__.py,sha256=1mPHE8qCOAgJPgUZ6bYNO27xhnPN0h9ChHiMcqF1vQc,401
|
|
@@ -389,6 +394,7 @@ claude_mpm/services/event_aggregator.py,sha256=859FzkvOKL558Np42A8diVu8Hpa66AhKy
|
|
|
389
394
|
claude_mpm/services/exceptions.py,sha256=6l5lXX8j_JhZAgFVs7QoETvsEdzEbByvtAIDbr_JeNY,26439
|
|
390
395
|
claude_mpm/services/hook_installer_service.py,sha256=UoB3rdN3RTK6VHftEM-x4RtCxs55TBvpDf-auXeLceI,19710
|
|
391
396
|
claude_mpm/services/hook_service.py,sha256=rZnMn_4qxX5g9KAn0IQdoG50WmySNfsTmfG0XHuRHXk,15737
|
|
397
|
+
claude_mpm/services/mcp_config_manager.py,sha256=XERA_X0GqXAWFLl0tTbQ3qTLSRhm6do8ZFXXjf9bCjU,10000
|
|
392
398
|
claude_mpm/services/memory_hook_service.py,sha256=pRlTClkRcw30Jhwbha4BC8IMdzKZxF8aWqf52JlntgY,11600
|
|
393
399
|
claude_mpm/services/monitor_build_service.py,sha256=ggtkHcR7eKOMZjoVEA-1GzNdXhI-sh8z83PJXlozgZM,12141
|
|
394
400
|
claude_mpm/services/port_manager.py,sha256=CYqLh8Ss_-aoYEXV3G6uZkGexpsRK_XTBL0bV4P3tSI,22838
|
|
@@ -410,8 +416,8 @@ claude_mpm/services/agents/deployment/__init__.py,sha256=iprW-Ww3LBtWu9pVFjAX45_
|
|
|
410
416
|
claude_mpm/services/agents/deployment/agent_config_provider.py,sha256=gtQcbGr0GspZYplbeRkGXd3BAXl3_pWhKSsbfiSVTww,15234
|
|
411
417
|
claude_mpm/services/agents/deployment/agent_configuration_manager.py,sha256=5nf69hfo7lUa3_55sDcU5WfpzBtOZCMSTPYGr2dlIdY,12173
|
|
412
418
|
claude_mpm/services/agents/deployment/agent_definition_factory.py,sha256=DaJ__b3-ADinfd-qNnW6LKWfclOaZbkBBcfuHgqlUic,2697
|
|
413
|
-
claude_mpm/services/agents/deployment/agent_deployment.py,sha256=
|
|
414
|
-
claude_mpm/services/agents/deployment/agent_discovery_service.py,sha256=
|
|
419
|
+
claude_mpm/services/agents/deployment/agent_deployment.py,sha256=wvguk84DACT32qnPrVM0pvsrFfVoWYz3Zt7Kcb6wwd0,36399
|
|
420
|
+
claude_mpm/services/agents/deployment/agent_discovery_service.py,sha256=1yDjlXdQTsZZtHtHfEJXHlM2QTCxknGOlzMrbupluyY,18433
|
|
415
421
|
claude_mpm/services/agents/deployment/agent_environment_manager.py,sha256=kjMiLyZYHs-s9pVdtj4av4hJW0gNXnD7lZz2CJpxmZI,9863
|
|
416
422
|
claude_mpm/services/agents/deployment/agent_filesystem_manager.py,sha256=kstcGvufqF3cmmkJ_hDIHutPbIrMo_ZsGCKlIKmNbMA,12904
|
|
417
423
|
claude_mpm/services/agents/deployment/agent_format_converter.py,sha256=e27pSOmikIjhvuLIder3ULCtaZpEP9a_01xDHspSCjA,17047
|
|
@@ -438,7 +444,7 @@ claude_mpm/services/agents/deployment/interface_adapter.py,sha256=mOsQ5IJHLEezq8
|
|
|
438
444
|
claude_mpm/services/agents/deployment/lifecycle_health_checker.py,sha256=2dphAvYRABNlsvi3XfVwS8kvv-YURNEwPBVtCc1g3Zc,3164
|
|
439
445
|
claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py,sha256=lK_yg0uRL55opUoecOJBL83Tjj6Pu_z4-4EYWPeN6tM,4336
|
|
440
446
|
claude_mpm/services/agents/deployment/local_template_deployment.py,sha256=VgvmfT8dYaH1KUDMO04EsAQ-XBf_X8u1JlQ_ZGtjDWk,12966
|
|
441
|
-
claude_mpm/services/agents/deployment/multi_source_deployment_service.py,sha256=
|
|
447
|
+
claude_mpm/services/agents/deployment/multi_source_deployment_service.py,sha256=ttqOy0_nWIOybQ5_tThuQ7MBfcM0ZviHpv5QNMM8cu4,43491
|
|
442
448
|
claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py,sha256=5-StpaZYqVvm-WrmLMsoIp85WFYL2p0VLWQOfZEn8jU,11707
|
|
443
449
|
claude_mpm/services/agents/deployment/single_agent_deployer.py,sha256=6QtHP-y4T_-UXYXYvdQgdIooOfjnC5NArlbkUo4EPl0,11492
|
|
444
450
|
claude_mpm/services/agents/deployment/system_instructions_deployer.py,sha256=SCBBXleIn322X_w-swOHjO22J3HCxSHGkd3V-rSbbOs,4060
|
|
@@ -498,7 +504,7 @@ claude_mpm/services/agents/registry/__init__.py,sha256=ROBX82Ac4iLHEE7-aFUy7mT3N
|
|
|
498
504
|
claude_mpm/services/agents/registry/deployed_agent_discovery.py,sha256=aaqu50tjonWURgBWFXUKZvWw9qJYLQgUtCux9xCL1rE,10213
|
|
499
505
|
claude_mpm/services/agents/registry/modification_tracker.py,sha256=bA4F2chibZCTTK_aUVapuK_z0mYZQ7wOi8-OejjZ0AU,33909
|
|
500
506
|
claude_mpm/services/cli/__init__.py,sha256=6yavdruQywt9k39RBOrPxUTz6dEEJ6mHzjY4pl_Q3Do,559
|
|
501
|
-
claude_mpm/services/cli/agent_cleanup_service.py,sha256=
|
|
507
|
+
claude_mpm/services/cli/agent_cleanup_service.py,sha256=7wzbnoASqyEpeUgFMQZkzT8fCF7se23wPJ5feYbFD0E,14288
|
|
502
508
|
claude_mpm/services/cli/agent_dependency_service.py,sha256=mu6RJIjEe_NrMzil3Wm6CvhQUIZ4pYn8tYpyXDBu2NI,13701
|
|
503
509
|
claude_mpm/services/cli/agent_listing_service.py,sha256=8lzK7HKF7SsdlwA3DkhtsL6cFlHvbEwFxSkp2V5rYHc,15957
|
|
504
510
|
claude_mpm/services/cli/agent_output_formatter.py,sha256=FcJ18m3CyeFr_wotJfEmIURHeZ71eomqO_vK7wsPWsM,20521
|
|
@@ -588,11 +594,11 @@ claude_mpm/services/infrastructure/monitoring/resources.py,sha256=7Mt9zvNAYGf7OT
|
|
|
588
594
|
claude_mpm/services/infrastructure/monitoring/service.py,sha256=guYB6rJtU18T2kPhZbKKg85l96lm2f7XVtPnBt1O3So,12613
|
|
589
595
|
claude_mpm/services/mcp_gateway/__init__.py,sha256=cRO71-BE1meBbxJgurS9_4NM1cRlcxJ0w0JENFVUW_I,4465
|
|
590
596
|
claude_mpm/services/mcp_gateway/auto_configure.py,sha256=4Oea5cwzCXMXn216640mEFxZt0FmrbBdvX4DJqdeWek,12040
|
|
591
|
-
claude_mpm/services/mcp_gateway/main.py,sha256=
|
|
597
|
+
claude_mpm/services/mcp_gateway/main.py,sha256=IbiJOzBz9txvaRQKcBL8EC_fzvMAzfzeCsW9iCRHMKU,17662
|
|
592
598
|
claude_mpm/services/mcp_gateway/config/__init__.py,sha256=MpFgHfaT3dQz5QyEdpfbulD6tXUOY325LkovAYsdkAg,386
|
|
593
599
|
claude_mpm/services/mcp_gateway/config/config_loader.py,sha256=GFijus_iPv63gvQ_HDiQ--C1dzLk_0W9dhGfJpTOylE,9417
|
|
594
600
|
claude_mpm/services/mcp_gateway/config/config_schema.py,sha256=eSPyHmYJWBpGxJ8l0vBjEGod_PEnbGyHi3fcNLS4mH0,9475
|
|
595
|
-
claude_mpm/services/mcp_gateway/config/configuration.py,sha256=
|
|
601
|
+
claude_mpm/services/mcp_gateway/config/configuration.py,sha256=GQbxhEq9eyIERqmvAtpRxJW6E7pLcqV2LKn8HMVBHeU,13985
|
|
596
602
|
claude_mpm/services/mcp_gateway/core/__init__.py,sha256=iajLqFBrPixZiFmau3ZXC04mHct2AHNRrwoFMTzskTg,897
|
|
597
603
|
claude_mpm/services/mcp_gateway/core/base.py,sha256=fcZdZSlgvgH6AMNFdMu-NzmovyHGKxR1m-pvwU9ouEw,10203
|
|
598
604
|
claude_mpm/services/mcp_gateway/core/exceptions.py,sha256=oRCvGhGgXeqzzybiBz3KNBud5Dn6feBO9MQQUHuqyT0,6795
|
|
@@ -610,6 +616,7 @@ claude_mpm/services/mcp_gateway/server/stdio_server.py,sha256=vn0QpJB7i8cINk5M58
|
|
|
610
616
|
claude_mpm/services/mcp_gateway/tools/__init__.py,sha256=7_0IpRe7RKJTajajiUCqXxh71gj_P5gSCOMmAjKwVts,530
|
|
611
617
|
claude_mpm/services/mcp_gateway/tools/base_adapter.py,sha256=Al2uKlW6ZqhDNnIzOA28SyHSDGwLrVS0DrNapAedRww,15851
|
|
612
618
|
claude_mpm/services/mcp_gateway/tools/document_summarizer.py,sha256=2LdA_bNzVLEUYwUCI5wHK5xpUze0_CDebbGUjv1qtuY,28126
|
|
619
|
+
claude_mpm/services/mcp_gateway/tools/external_mcp_services.py,sha256=EygVZ-mNH9NrFIIvR560EEZjozYQJYkpRP20ZHeNaPg,15377
|
|
613
620
|
claude_mpm/services/mcp_gateway/tools/health_check_tool.py,sha256=nTgXWGj3JPZzyHHN3cZtWGg8LUk-zFj-jJe5Lpx04d0,16398
|
|
614
621
|
claude_mpm/services/mcp_gateway/tools/hello_world.py,sha256=Znhr059126wT6sUCda9Ujh7-4ciNODz2z3-DrygOhsM,20197
|
|
615
622
|
claude_mpm/services/mcp_gateway/tools/ticket_tools.py,sha256=s4AeR5C3vJ18U4ylZZZREHEaMk2i8A3cBEyWvhmlIu8,23161
|
|
@@ -716,9 +723,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=9mC9V6ThLUu48OMaYaSHwXnxG8BeH70kv7ys
|
|
|
716
723
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
717
724
|
claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
|
|
718
725
|
claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
|
|
719
|
-
claude_mpm-4.3.
|
|
720
|
-
claude_mpm-4.3.
|
|
721
|
-
claude_mpm-4.3.
|
|
722
|
-
claude_mpm-4.3.
|
|
723
|
-
claude_mpm-4.3.
|
|
724
|
-
claude_mpm-4.3.
|
|
726
|
+
claude_mpm-4.3.12.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
|
727
|
+
claude_mpm-4.3.12.dist-info/METADATA,sha256=wHwGi6xfXekH1BlH6X4eAU-70jTmm-VbPnxneJQAGTU,16150
|
|
728
|
+
claude_mpm-4.3.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
729
|
+
claude_mpm-4.3.12.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
|
|
730
|
+
claude_mpm-4.3.12.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
731
|
+
claude_mpm-4.3.12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|