claude-mpm 5.1.9__py3-none-any.whl → 5.4.3__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 claude-mpm might be problematic. Click here for more details.

Files changed (131) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/PM_INSTRUCTIONS.md +46 -0
  3. claude_mpm/agents/agent_loader.py +10 -17
  4. claude_mpm/agents/templates/circuit-breakers.md +138 -1
  5. claude_mpm/cli/commands/agent_state_manager.py +8 -17
  6. claude_mpm/cli/commands/configure.py +1046 -149
  7. claude_mpm/cli/commands/configure_agent_display.py +13 -6
  8. claude_mpm/cli/commands/mpm_init/core.py +158 -1
  9. claude_mpm/cli/commands/mpm_init/knowledge_extractor.py +481 -0
  10. claude_mpm/cli/commands/mpm_init/prompts.py +280 -0
  11. claude_mpm/cli/commands/summarize.py +413 -0
  12. claude_mpm/cli/executor.py +8 -0
  13. claude_mpm/cli/parsers/base_parser.py +5 -0
  14. claude_mpm/cli/startup.py +60 -53
  15. claude_mpm/commands/{mpm-ticket-organize.md → mpm-organize.md} +4 -5
  16. claude_mpm/config/agent_sources.py +27 -0
  17. claude_mpm/core/framework/loaders/agent_loader.py +8 -5
  18. claude_mpm/core/socketio_pool.py +3 -3
  19. claude_mpm/core/unified_agent_registry.py +5 -15
  20. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
  21. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-313.pyc +0 -0
  22. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
  23. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
  24. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
  25. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
  26. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
  27. claude_mpm/hooks/claude_hooks/correlation_manager.py +60 -0
  28. claude_mpm/hooks/claude_hooks/event_handlers.py +35 -2
  29. claude_mpm/hooks/claude_hooks/hook_handler.py +4 -0
  30. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
  31. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
  32. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
  33. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
  34. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
  35. claude_mpm/hooks/claude_hooks/services/connection_manager.py +4 -0
  36. claude_mpm/scripts/launch_monitor.py +93 -13
  37. claude_mpm/services/agents/agent_recommendation_service.py +279 -0
  38. claude_mpm/services/agents/deployment/agent_template_builder.py +3 -2
  39. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +322 -53
  40. claude_mpm/services/agents/git_source_manager.py +20 -0
  41. claude_mpm/services/agents/sources/git_source_sync_service.py +8 -1
  42. claude_mpm/services/agents/toolchain_detector.py +6 -5
  43. claude_mpm/services/analysis/__init__.py +11 -1
  44. claude_mpm/services/analysis/clone_detector.py +1030 -0
  45. claude_mpm/services/command_deployment_service.py +0 -2
  46. claude_mpm/services/event_bus/config.py +3 -1
  47. claude_mpm/services/monitor/daemon.py +9 -2
  48. claude_mpm/services/monitor/daemon_manager.py +39 -3
  49. claude_mpm/services/monitor/server.py +225 -19
  50. claude_mpm/services/socketio/event_normalizer.py +15 -1
  51. claude_mpm/services/socketio/server/core.py +160 -21
  52. claude_mpm/services/version_control/git_operations.py +103 -0
  53. claude_mpm/utils/agent_filters.py +17 -44
  54. {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.3.dist-info}/METADATA +1 -77
  55. {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.3.dist-info}/RECORD +59 -114
  56. {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.3.dist-info}/entry_points.txt +0 -2
  57. claude_mpm/dashboard/analysis_runner.py +0 -455
  58. claude_mpm/dashboard/index.html +0 -13
  59. claude_mpm/dashboard/open_dashboard.py +0 -66
  60. claude_mpm/dashboard/static/css/activity.css +0 -1958
  61. claude_mpm/dashboard/static/css/connection-status.css +0 -370
  62. claude_mpm/dashboard/static/css/dashboard.css +0 -4701
  63. claude_mpm/dashboard/static/js/components/activity-tree.js +0 -1871
  64. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +0 -777
  65. claude_mpm/dashboard/static/js/components/agent-inference.js +0 -956
  66. claude_mpm/dashboard/static/js/components/build-tracker.js +0 -333
  67. claude_mpm/dashboard/static/js/components/code-simple.js +0 -857
  68. claude_mpm/dashboard/static/js/components/connection-debug.js +0 -654
  69. claude_mpm/dashboard/static/js/components/diff-viewer.js +0 -891
  70. claude_mpm/dashboard/static/js/components/event-processor.js +0 -542
  71. claude_mpm/dashboard/static/js/components/event-viewer.js +0 -1155
  72. claude_mpm/dashboard/static/js/components/export-manager.js +0 -368
  73. claude_mpm/dashboard/static/js/components/file-change-tracker.js +0 -443
  74. claude_mpm/dashboard/static/js/components/file-change-viewer.js +0 -690
  75. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -724
  76. claude_mpm/dashboard/static/js/components/file-viewer.js +0 -580
  77. claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -211
  78. claude_mpm/dashboard/static/js/components/hud-manager.js +0 -671
  79. claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -1718
  80. claude_mpm/dashboard/static/js/components/module-viewer.js +0 -2764
  81. claude_mpm/dashboard/static/js/components/session-manager.js +0 -579
  82. claude_mpm/dashboard/static/js/components/socket-manager.js +0 -368
  83. claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -749
  84. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +0 -1824
  85. claude_mpm/dashboard/static/js/components/working-directory.js +0 -920
  86. claude_mpm/dashboard/static/js/connection-manager.js +0 -536
  87. claude_mpm/dashboard/static/js/dashboard.js +0 -1914
  88. claude_mpm/dashboard/static/js/extension-error-handler.js +0 -164
  89. claude_mpm/dashboard/static/js/socket-client.js +0 -1474
  90. claude_mpm/dashboard/static/js/tab-isolation-fix.js +0 -185
  91. claude_mpm/dashboard/static/socket.io.min.js +0 -7
  92. claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +0 -7
  93. claude_mpm/dashboard/templates/code_simple.html +0 -153
  94. claude_mpm/dashboard/templates/index.html +0 -606
  95. claude_mpm/dashboard/test_dashboard.html +0 -372
  96. claude_mpm/scripts/mcp_server.py +0 -75
  97. claude_mpm/scripts/mcp_wrapper.py +0 -39
  98. claude_mpm/services/mcp_gateway/__init__.py +0 -159
  99. claude_mpm/services/mcp_gateway/auto_configure.py +0 -369
  100. claude_mpm/services/mcp_gateway/config/__init__.py +0 -17
  101. claude_mpm/services/mcp_gateway/config/config_loader.py +0 -296
  102. claude_mpm/services/mcp_gateway/config/config_schema.py +0 -243
  103. claude_mpm/services/mcp_gateway/config/configuration.py +0 -429
  104. claude_mpm/services/mcp_gateway/core/__init__.py +0 -43
  105. claude_mpm/services/mcp_gateway/core/base.py +0 -312
  106. claude_mpm/services/mcp_gateway/core/exceptions.py +0 -253
  107. claude_mpm/services/mcp_gateway/core/interfaces.py +0 -443
  108. claude_mpm/services/mcp_gateway/core/process_pool.py +0 -977
  109. claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -315
  110. claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -316
  111. claude_mpm/services/mcp_gateway/main.py +0 -589
  112. claude_mpm/services/mcp_gateway/registry/__init__.py +0 -12
  113. claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -412
  114. claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -489
  115. claude_mpm/services/mcp_gateway/server/__init__.py +0 -15
  116. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -414
  117. claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -372
  118. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -712
  119. claude_mpm/services/mcp_gateway/tools/__init__.py +0 -36
  120. claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -485
  121. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -789
  122. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +0 -654
  123. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -456
  124. claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -551
  125. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +0 -555
  126. claude_mpm/services/mcp_gateway/utils/__init__.py +0 -14
  127. claude_mpm/services/mcp_gateway/utils/package_version_checker.py +0 -160
  128. claude_mpm/services/mcp_gateway/utils/update_preferences.py +0 -170
  129. {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.3.dist-info}/WHEEL +0 -0
  130. {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.3.dist-info}/licenses/LICENSE +0 -0
  131. {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.3.dist-info}/top_level.txt +0 -0
@@ -1,443 +0,0 @@
1
- """
2
- MCP Gateway Interface Definitions
3
- ==================================
4
-
5
- This module defines the core interfaces for the MCP Gateway service,
6
- establishing contracts for dependency injection and service orchestration.
7
-
8
- Part of ISS-0034: Infrastructure Setup - MCP Gateway Project Foundation
9
- """
10
-
11
- from abc import ABC, abstractmethod
12
- from dataclasses import dataclass
13
- from pathlib import Path
14
- from typing import Any, Callable, Dict, List, Optional
15
-
16
-
17
- # Tool-related data structures
18
- @dataclass
19
- class MCPToolDefinition:
20
- """Definition of an MCP tool."""
21
-
22
- name: str
23
- description: str
24
- input_schema: Dict[str, Any]
25
- output_schema: Optional[Dict[str, Any]] = None
26
- version: str = "1.0.0"
27
- metadata: Optional[Dict[str, Any]] = None
28
-
29
-
30
- @dataclass
31
- class MCPToolInvocation:
32
- """Represents a tool invocation request."""
33
-
34
- tool_name: str
35
- parameters: Dict[str, Any]
36
- context: Optional[Dict[str, Any]] = None
37
- timeout: Optional[float] = None
38
- request_id: Optional[str] = None
39
-
40
-
41
- @dataclass
42
- class MCPToolResult:
43
- """Result from a tool invocation."""
44
-
45
- success: bool
46
- data: Optional[Any] = None
47
- error: Optional[str] = None
48
- metadata: Optional[Dict[str, Any]] = None
49
- execution_time: Optional[float] = None
50
-
51
-
52
- # Core MCP interfaces
53
- class IMCPConfiguration(ABC):
54
- """
55
- Interface for MCP configuration management.
56
-
57
- Handles loading, validation, and access to MCP Gateway configuration.
58
- """
59
-
60
- @abstractmethod
61
- def load_config(self, config_path: Path) -> bool:
62
- """
63
- Load configuration from a file.
64
-
65
- Args:
66
- config_path: Path to configuration file
67
-
68
- Returns:
69
- True if configuration loaded successfully
70
- """
71
-
72
- @abstractmethod
73
- def get(self, key: str, default: Any = None) -> Any:
74
- """
75
- Get configuration value by key.
76
-
77
- Args:
78
- key: Configuration key (supports dot notation)
79
- default: Default value if key not found
80
-
81
- Returns:
82
- Configuration value or default
83
- """
84
-
85
- @abstractmethod
86
- def set(self, key: str, value: Any) -> None:
87
- """
88
- Set configuration value.
89
-
90
- Args:
91
- key: Configuration key (supports dot notation)
92
- value: Configuration value
93
- """
94
-
95
- @abstractmethod
96
- def validate(self) -> bool:
97
- """
98
- Validate the current configuration.
99
-
100
- Returns:
101
- True if configuration is valid
102
- """
103
-
104
- @abstractmethod
105
- def get_server_config(self) -> Dict[str, Any]:
106
- """
107
- Get MCP server configuration.
108
-
109
- Returns:
110
- Server configuration dictionary
111
- """
112
-
113
- @abstractmethod
114
- def get_tools_config(self) -> Dict[str, Any]:
115
- """
116
- Get tools configuration.
117
-
118
- Returns:
119
- Tools configuration dictionary
120
- """
121
-
122
-
123
- class IMCPToolAdapter(ABC):
124
- """
125
- Interface for MCP tool adapters.
126
-
127
- Tool adapters wrap external tools to make them MCP-compatible.
128
- """
129
-
130
- @abstractmethod
131
- def get_definition(self) -> MCPToolDefinition:
132
- """
133
- Get the tool definition.
134
-
135
- Returns:
136
- Tool definition with schema and metadata
137
- """
138
-
139
- @abstractmethod
140
- async def invoke(self, invocation: MCPToolInvocation) -> MCPToolResult:
141
- """
142
- Invoke the tool with given parameters.
143
-
144
- Args:
145
- invocation: Tool invocation request
146
-
147
- Returns:
148
- Tool execution result
149
- """
150
-
151
- @abstractmethod
152
- def validate_parameters(self, parameters: Dict[str, Any]) -> bool:
153
- """
154
- Validate tool parameters against schema.
155
-
156
- Args:
157
- parameters: Parameters to validate
158
-
159
- Returns:
160
- True if parameters are valid
161
- """
162
-
163
- @abstractmethod
164
- async def initialize(self) -> bool:
165
- """
166
- Initialize the tool adapter.
167
-
168
- Returns:
169
- True if initialization successful
170
- """
171
-
172
- @abstractmethod
173
- async def shutdown(self) -> None:
174
- """
175
- Shutdown the tool adapter and clean up resources.
176
- """
177
-
178
-
179
- class IMCPToolRegistry(ABC):
180
- """
181
- Interface for MCP tool registry.
182
-
183
- Manages registration, discovery, and invocation of MCP tools.
184
- """
185
-
186
- @abstractmethod
187
- def register_tool(self, adapter: IMCPToolAdapter) -> bool:
188
- """
189
- Register a tool adapter.
190
-
191
- Args:
192
- adapter: Tool adapter to register
193
-
194
- Returns:
195
- True if registration successful
196
- """
197
-
198
- @abstractmethod
199
- def unregister_tool(self, tool_name: str) -> bool:
200
- """
201
- Unregister a tool by name.
202
-
203
- Args:
204
- tool_name: Name of tool to unregister
205
-
206
- Returns:
207
- True if unregistration successful
208
- """
209
-
210
- @abstractmethod
211
- def get_tool(self, tool_name: str) -> Optional[IMCPToolAdapter]:
212
- """
213
- Get a tool adapter by name.
214
-
215
- Args:
216
- tool_name: Name of the tool
217
-
218
- Returns:
219
- Tool adapter if found, None otherwise
220
- """
221
-
222
- @abstractmethod
223
- def list_tools(self) -> List[MCPToolDefinition]:
224
- """
225
- List all registered tools.
226
-
227
- Returns:
228
- List of tool definitions
229
- """
230
-
231
- @abstractmethod
232
- async def invoke_tool(self, invocation: MCPToolInvocation) -> MCPToolResult:
233
- """
234
- Invoke a tool through the registry.
235
-
236
- Args:
237
- invocation: Tool invocation request
238
-
239
- Returns:
240
- Tool execution result
241
- """
242
-
243
- @abstractmethod
244
- def search_tools(self, query: str) -> List[MCPToolDefinition]:
245
- """
246
- Search for tools by query.
247
-
248
- Args:
249
- query: Search query
250
-
251
- Returns:
252
- List of matching tool definitions
253
- """
254
-
255
-
256
- class IMCPCommunication(ABC):
257
- """
258
- Interface for MCP communication handling.
259
-
260
- Manages stdio-based communication with MCP clients.
261
- """
262
-
263
- @abstractmethod
264
- async def send_message(self, message: Dict[str, Any]) -> None:
265
- """
266
- Send a message to the MCP client.
267
-
268
- Args:
269
- message: Message to send
270
- """
271
-
272
- @abstractmethod
273
- async def receive_message(self) -> Optional[Dict[str, Any]]:
274
- """
275
- Receive a message from the MCP client.
276
-
277
- Returns:
278
- Received message or None if no message available
279
- """
280
-
281
- @abstractmethod
282
- async def send_response(self, request_id: str, result: Any) -> None:
283
- """
284
- Send a response to a request.
285
-
286
- Args:
287
- request_id: ID of the request being responded to
288
- result: Result data
289
- """
290
-
291
- @abstractmethod
292
- async def send_error(self, request_id: str, error: str, code: int = -1) -> None:
293
- """
294
- Send an error response.
295
-
296
- Args:
297
- request_id: ID of the request that caused the error
298
- error: Error message
299
- code: Error code
300
- """
301
-
302
- @abstractmethod
303
- def is_connected(self) -> bool:
304
- """
305
- Check if communication channel is connected.
306
-
307
- Returns:
308
- True if connected
309
- """
310
-
311
-
312
- class IMCPLifecycle(ABC):
313
- """
314
- Interface for MCP service lifecycle management.
315
-
316
- Manages initialization, startup, shutdown, and health monitoring.
317
- """
318
-
319
- @abstractmethod
320
- async def initialize(self) -> bool:
321
- """
322
- Initialize the MCP service.
323
-
324
- Returns:
325
- True if initialization successful
326
- """
327
-
328
- @abstractmethod
329
- async def start(self) -> bool:
330
- """
331
- Start the MCP service.
332
-
333
- Returns:
334
- True if startup successful
335
- """
336
-
337
- @abstractmethod
338
- async def stop(self) -> None:
339
- """
340
- Stop the MCP service gracefully.
341
- """
342
-
343
- @abstractmethod
344
- async def restart(self) -> bool:
345
- """
346
- Restart the MCP service.
347
-
348
- Returns:
349
- True if restart successful
350
- """
351
-
352
- @abstractmethod
353
- def get_state(self) -> str:
354
- """
355
- Get current service state.
356
-
357
- Returns:
358
- Service state (e.g., "initialized", "running", "stopped")
359
- """
360
-
361
- @abstractmethod
362
- def is_healthy(self) -> bool:
363
- """
364
- Check if service is healthy.
365
-
366
- Returns:
367
- True if service is healthy
368
- """
369
-
370
- @abstractmethod
371
- def get_health_status(self) -> Dict[str, Any]:
372
- """
373
- Get detailed health status.
374
-
375
- Returns:
376
- Health status information
377
- """
378
-
379
-
380
- class IMCPGateway(IMCPLifecycle):
381
- """
382
- Main interface for MCP gateway implementation.
383
-
384
- Orchestrates tool registry, communication, and request handling.
385
- Acts as a protocol bridge between Claude Code and internal tools.
386
- """
387
-
388
- @abstractmethod
389
- def set_tool_registry(self, registry: IMCPToolRegistry) -> None:
390
- """
391
- Set the tool registry for the server.
392
-
393
- Args:
394
- registry: Tool registry to use
395
- """
396
-
397
- @abstractmethod
398
- def set_communication(self, communication: IMCPCommunication) -> None:
399
- """
400
- Set the communication handler.
401
-
402
- Args:
403
- communication: Communication handler to use
404
- """
405
-
406
- @abstractmethod
407
- async def handle_request(self, request: Dict[str, Any]) -> Dict[str, Any]:
408
- """
409
- Handle an MCP request.
410
-
411
- Args:
412
- request: MCP request message
413
-
414
- Returns:
415
- Response message
416
- """
417
-
418
- @abstractmethod
419
- async def run(self) -> None:
420
- """
421
- Run the MCP gateway main loop.
422
-
423
- This method should handle incoming requests and manage the gateway lifecycle.
424
- """
425
-
426
- @abstractmethod
427
- def register_handler(self, method: str, handler: Callable) -> None:
428
- """
429
- Register a custom request handler.
430
-
431
- Args:
432
- method: Method name to handle
433
- handler: Handler function
434
- """
435
-
436
- @abstractmethod
437
- def get_capabilities(self) -> Dict[str, Any]:
438
- """
439
- Get gateway capabilities.
440
-
441
- Returns:
442
- Dictionary of gateway capabilities
443
- """