claude-mpm 4.1.10__py3-none-any.whl → 4.1.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.
Files changed (56) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/INSTRUCTIONS.md +8 -0
  3. claude_mpm/cli/__init__.py +11 -0
  4. claude_mpm/cli/commands/analyze.py +2 -1
  5. claude_mpm/cli/commands/configure.py +9 -8
  6. claude_mpm/cli/commands/configure_tui.py +3 -1
  7. claude_mpm/cli/commands/dashboard.py +288 -0
  8. claude_mpm/cli/commands/debug.py +0 -1
  9. claude_mpm/cli/commands/mpm_init.py +442 -0
  10. claude_mpm/cli/commands/mpm_init_handler.py +84 -0
  11. claude_mpm/cli/parsers/base_parser.py +15 -0
  12. claude_mpm/cli/parsers/dashboard_parser.py +113 -0
  13. claude_mpm/cli/parsers/mpm_init_parser.py +128 -0
  14. claude_mpm/constants.py +10 -0
  15. claude_mpm/core/config.py +18 -0
  16. claude_mpm/core/instruction_reinforcement_hook.py +266 -0
  17. claude_mpm/core/pm_hook_interceptor.py +105 -8
  18. claude_mpm/dashboard/analysis_runner.py +52 -25
  19. claude_mpm/dashboard/static/built/components/activity-tree.js +1 -1
  20. claude_mpm/dashboard/static/built/components/code-tree.js +2 -0
  21. claude_mpm/dashboard/static/built/components/code-viewer.js +2 -0
  22. claude_mpm/dashboard/static/built/components/event-viewer.js +1 -1
  23. claude_mpm/dashboard/static/built/dashboard.js +1 -1
  24. claude_mpm/dashboard/static/built/socket-client.js +1 -1
  25. claude_mpm/dashboard/static/css/code-tree.css +330 -1
  26. claude_mpm/dashboard/static/dist/components/activity-tree.js +1 -1
  27. claude_mpm/dashboard/static/dist/components/code-tree.js +2593 -2
  28. claude_mpm/dashboard/static/dist/components/event-viewer.js +1 -1
  29. claude_mpm/dashboard/static/dist/dashboard.js +1 -1
  30. claude_mpm/dashboard/static/dist/socket-client.js +1 -1
  31. claude_mpm/dashboard/static/js/components/activity-tree.js +212 -13
  32. claude_mpm/dashboard/static/js/components/build-tracker.js +15 -13
  33. claude_mpm/dashboard/static/js/components/code-tree.js +2503 -917
  34. claude_mpm/dashboard/static/js/components/event-viewer.js +58 -19
  35. claude_mpm/dashboard/static/js/dashboard.js +46 -44
  36. claude_mpm/dashboard/static/js/socket-client.js +74 -32
  37. claude_mpm/dashboard/templates/index.html +25 -20
  38. claude_mpm/services/agents/deployment/agent_template_builder.py +11 -7
  39. claude_mpm/services/agents/memory/memory_format_service.py +3 -1
  40. claude_mpm/services/cli/agent_cleanup_service.py +1 -4
  41. claude_mpm/services/cli/socketio_manager.py +39 -8
  42. claude_mpm/services/cli/startup_checker.py +0 -1
  43. claude_mpm/services/core/cache_manager.py +0 -1
  44. claude_mpm/services/infrastructure/monitoring.py +1 -1
  45. claude_mpm/services/socketio/event_normalizer.py +64 -0
  46. claude_mpm/services/socketio/handlers/code_analysis.py +449 -0
  47. claude_mpm/services/socketio/server/connection_manager.py +3 -1
  48. claude_mpm/tools/code_tree_analyzer.py +930 -24
  49. claude_mpm/tools/code_tree_builder.py +0 -1
  50. claude_mpm/tools/code_tree_events.py +113 -15
  51. {claude_mpm-4.1.10.dist-info → claude_mpm-4.1.12.dist-info}/METADATA +2 -1
  52. {claude_mpm-4.1.10.dist-info → claude_mpm-4.1.12.dist-info}/RECORD +56 -48
  53. {claude_mpm-4.1.10.dist-info → claude_mpm-4.1.12.dist-info}/WHEEL +0 -0
  54. {claude_mpm-4.1.10.dist-info → claude_mpm-4.1.12.dist-info}/entry_points.txt +0 -0
  55. {claude_mpm-4.1.10.dist-info → claude_mpm-4.1.12.dist-info}/licenses/LICENSE +0 -0
  56. {claude_mpm-4.1.10.dist-info → claude_mpm-4.1.12.dist-info}/top_level.txt +0 -0
@@ -327,7 +327,6 @@ class CodeTreeBuilder:
327
327
  progress_callback,
328
328
  )
329
329
 
330
-
331
330
  def _build_node(
332
331
  self,
333
332
  path: Path,
@@ -7,10 +7,11 @@ WHY: Provides incremental event emission for real-time code tree visualization
7
7
  in the dashboard. Uses Socket.IO to stream events as code is analyzed.
8
8
 
9
9
  DESIGN DECISIONS:
10
+ - Support lazy loading with directory discovery
11
+ - Emit events only for structural elements (directories, files, main functions)
12
+ - Filter out internal functions and handlers
10
13
  - Batch events for performance (emit every 10 nodes or 100ms)
11
- - Include progress tracking for large codebases
12
- - Use structured event format for dashboard consumption
13
- - Support resumable processing with event checkpoints
14
+ - Use clean event subtypes without colons
14
15
  """
15
16
 
16
17
  import json
@@ -29,6 +30,8 @@ except ImportError:
29
30
  SOCKETIO_AVAILABLE = False
30
31
  socketio = None
31
32
 
33
+ from pathlib import Path
34
+
32
35
  from ..core.logging_config import get_logger
33
36
 
34
37
 
@@ -62,14 +65,15 @@ class CodeTreeEventEmitter:
62
65
  the tree building incrementally, providing feedback for large codebases.
63
66
  """
64
67
 
65
- # Event types
66
- EVENT_FILE_START = "code:file:start"
67
- EVENT_FILE_COMPLETE = "code:file:complete"
68
+ # Event types - using underscores for clean subtypes
69
+ EVENT_DIRECTORY_DISCOVERED = "code:directory:discovered"
70
+ EVENT_FILE_DISCOVERED = "code:file:discovered"
71
+ EVENT_FILE_ANALYZED = "code:file:analyzed"
68
72
  EVENT_NODE_FOUND = "code:node:found"
69
73
  EVENT_ANALYSIS_START = "code:analysis:start"
70
74
  EVENT_ANALYSIS_COMPLETE = "code:analysis:complete"
71
- EVENT_PROGRESS = "code:progress"
72
- EVENT_ERROR = "code:error"
75
+ EVENT_PROGRESS = "code:analysis:progress"
76
+ EVENT_ERROR = "code:analysis:error"
73
77
 
74
78
  def __init__(
75
79
  self,
@@ -223,30 +227,111 @@ class CodeTreeEventEmitter:
223
227
  else:
224
228
  self._emit_event(event)
225
229
 
230
+ def emit_directory_discovered(self, dir_path: str, children: List[Dict[str, Any]]):
231
+ """Emit directory discovery event."""
232
+ self.emit(
233
+ self.EVENT_DIRECTORY_DISCOVERED,
234
+ {
235
+ "path": dir_path,
236
+ "name": Path(dir_path).name,
237
+ "children": children,
238
+ "type": "directory",
239
+ },
240
+ )
241
+
242
+ def emit_file_discovered(
243
+ self, file_path: str, language: Optional[str] = None, size: int = 0
244
+ ):
245
+ """Emit file discovery event."""
246
+ self.emit(
247
+ self.EVENT_FILE_DISCOVERED,
248
+ {
249
+ "path": file_path,
250
+ "name": Path(file_path).name,
251
+ "language": language or "unknown",
252
+ "size": size,
253
+ "type": "file",
254
+ },
255
+ )
256
+
226
257
  def emit_file_start(self, file_path: str, language: Optional[str] = None):
227
- """Emit file processing start event."""
258
+ """Emit file analysis start event.
259
+
260
+ WHY: Signals the beginning of file analysis for progress tracking.
261
+ """
228
262
  self.emit(
229
- self.EVENT_FILE_START,
230
- {"file": file_path, "language": language or "unknown"},
263
+ "code:file_start",
264
+ {
265
+ "path": file_path,
266
+ "name": Path(file_path).name,
267
+ "language": language or "unknown",
268
+ "type": "file",
269
+ "status": "analyzing",
270
+ },
231
271
  )
232
272
 
233
273
  def emit_file_complete(
234
274
  self, file_path: str, nodes_count: int = 0, duration: float = 0
235
275
  ):
236
- """Emit file processing complete event."""
276
+ """Emit file analysis complete event.
277
+
278
+ WHY: Signals completion of file analysis with summary statistics.
279
+ """
280
+ self.emit(
281
+ "code:file_complete",
282
+ {
283
+ "path": file_path,
284
+ "name": Path(file_path).name,
285
+ "nodes_count": nodes_count,
286
+ "duration": duration,
287
+ "type": "file",
288
+ "status": "complete",
289
+ },
290
+ )
291
+
292
+ def emit_file_analyzed(
293
+ self, file_path: str, nodes: List[Dict[str, Any]], duration: float = 0
294
+ ):
295
+ """Emit file analysis complete event."""
237
296
  self.stats["files_processed"] += 1
238
297
  self.emit(
239
- self.EVENT_FILE_COMPLETE,
240
- {"file": file_path, "nodes_count": nodes_count, "duration": duration},
298
+ self.EVENT_FILE_ANALYZED,
299
+ {
300
+ "path": file_path,
301
+ "nodes": nodes,
302
+ "nodes_count": len(nodes),
303
+ "duration": duration,
304
+ },
241
305
  )
242
306
 
243
307
  def emit_node(self, node: CodeNodeEvent):
244
- """Emit code node discovery event (batched)."""
308
+ """Emit code node discovery event (batched).
309
+
310
+ Filters out internal functions and handlers.
311
+ """
312
+ # Filter out internal handler functions
313
+ if self._is_internal_function(node.name):
314
+ return
315
+
245
316
  self.stats["nodes_found"] += 1
246
317
  # In stdout mode, don't batch - emit immediately for real-time updates
247
318
  batch_mode = not self.use_stdout
248
319
  self.emit(self.EVENT_NODE_FOUND, node.to_dict(), batch=batch_mode)
249
320
 
321
+ def _is_internal_function(self, name: str) -> bool:
322
+ """Check if function is an internal handler that should be filtered."""
323
+ internal_patterns = [
324
+ "handle", # Event handlers
325
+ "on_", # Event callbacks
326
+ "_", # Private methods
327
+ "get_", # Simple getters
328
+ "set_", # Simple setters
329
+ "__", # Python magic methods
330
+ ]
331
+
332
+ name_lower = name.lower()
333
+ return any(name_lower.startswith(pattern) for pattern in internal_patterns)
334
+
250
335
  def emit_progress(self, current: int, total: int, message: str = ""):
251
336
  """Emit progress update event."""
252
337
  self.emit(
@@ -266,6 +351,19 @@ class CodeTreeEventEmitter:
266
351
 
267
352
  def _emit_event(self, event: Dict[str, Any]):
268
353
  """Emit a single event."""
354
+
355
+ # Convert datetime objects to ISO strings for JSON serialization
356
+ def convert_datetime(obj):
357
+ if isinstance(obj, datetime):
358
+ return obj.isoformat()
359
+ if isinstance(obj, dict):
360
+ return {k: convert_datetime(v) for k, v in obj.items()}
361
+ if isinstance(obj, list):
362
+ return [convert_datetime(item) for item in obj]
363
+ return obj
364
+
365
+ event = convert_datetime(event)
366
+
269
367
  if self.use_stdout:
270
368
  # Emit to stdout as JSON for subprocess communication
271
369
  print(json.dumps(event), flush=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.1.10
3
+ Version: 4.1.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
@@ -50,6 +50,7 @@ Requires-Dist: textual>=0.47.0
50
50
  Requires-Dist: rich>=13.0.0
51
51
  Requires-Dist: pyee>=13.0.0
52
52
  Requires-Dist: importlib-resources>=5.0; python_version < "3.9"
53
+ Requires-Dist: pathspec>=0.11.0
53
54
  Provides-Extra: dev
54
55
  Requires-Dist: pytest>=7.0; extra == "dev"
55
56
  Requires-Dist: pytest-asyncio; extra == "dev"
@@ -1,13 +1,13 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
2
- claude_mpm/VERSION,sha256=kHNeFDPnfVWgtQY83pMnf3xc-l5ijApdqrjS_CUou6g,7
2
+ claude_mpm/VERSION,sha256=pA0PDcbDd54qtqPLESZNiMjxMry2U5GfMzmfInLXyEA,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=vOIJMlZS1dpuBQG_mP7pp4yO6tluaN71aNNJI-Sh6js,5728
5
+ claude_mpm/constants.py,sha256=I946iCQzIIPRZVVJ8aO7lA4euiyDnNw2IX7EelAOkIE,5915
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
9
9
  claude_mpm/agents/BASE_PM.md,sha256=OMWebRWA4ZDk9z3H9DxvksNYqfG4ZExFVNF2vUirUBo,9299
10
- claude_mpm/agents/INSTRUCTIONS.md,sha256=1Yj0EuZmNv8QfkPn0OlCfRtPZFry0XWZO-BqWc7vOXY,12031
10
+ claude_mpm/agents/INSTRUCTIONS.md,sha256=MrW6XCGiOCypSTTNmJXXhevu7w1mAQ9iudYa4TkLleE,12222
11
11
  claude_mpm/agents/MEMORY.md,sha256=EeY1MwnrhaAij5_pUCt_lcOc2-coo3EYkWRyRbPyJmM,3181
12
12
  claude_mpm/agents/OUTPUT_STYLE.md,sha256=HZ5GhiTwMWj9G_uefmMguH4Ukhs2CQqa8u5FQ6HBrbo,2538
13
13
  claude_mpm/agents/WORKFLOW.md,sha256=y-tYNbSqJ4D4ND5TMc5bvcnq_mYw3Gwq9bnpz-LzwvQ,7972
@@ -46,7 +46,7 @@ claude_mpm/agents/templates/web_ui.json,sha256=l1DHRCrXpHDl01K5lkhiLYjPtv6i90lMR
46
46
  claude_mpm/agents/templates/.claude-mpm/memories/README.md,sha256=vEiG7cPjHRZfwX2IQB-i30ArO8zJyuxMJzHh8hnVZ6A,483
47
47
  claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md,sha256=KMZSJrQi-wHOwfl2C0m3A4PpC4QuBtDolAtVybGahKc,77
48
48
  claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md,sha256=UBm4BycXtdaa-_l1VCh0alTGGOUSsnCbpKwbFuI-mUY,2219
49
- claude_mpm/cli/__init__.py,sha256=ulrLMzZ418R-QJQsY9APFgfHqr0zwbmXJy-aLLN9imk,15785
49
+ claude_mpm/cli/__init__.py,sha256=EbljSdUXNMUSPjXjvzKBkGfgTMwmWFLjRkGDJ0_eRjk,16247
50
50
  claude_mpm/cli/__main__.py,sha256=WnVGBwe10InxuZjJRFdwuMF6Gh16aXox6zFgxr0sRXk,847
51
51
  claude_mpm/cli/parser.py,sha256=pG4B8kcROCNLF5-3YiZTXwDBs4EoKxTdhw8CHKezYHc,1362
52
52
  claude_mpm/cli/startup_logging.py,sha256=CWu43ecTJLLT-YHRL94c783XljpR8GKydycGJ1JFuXI,23462
@@ -56,14 +56,15 @@ claude_mpm/cli/commands/__init__.py,sha256=1EJpBPxZMYQlMUbguqC6QCET8tv6yqY-_FOg8
56
56
  claude_mpm/cli/commands/agent_manager.py,sha256=BYyoyyTx06Oy-kN6EwDOc1aFqw_HKRFhn3XYaT99u-M,29642
57
57
  claude_mpm/cli/commands/agents.py,sha256=Zz0UZF8t6KOsgMSehTDjEb39pevPwKCDhH-2WoYFq-Y,38064
58
58
  claude_mpm/cli/commands/aggregate.py,sha256=rLwZxXmIyTPuDUYKTooVtTgiW4mU3vw4_383jK1nXHU,18065
59
- claude_mpm/cli/commands/analyze.py,sha256=mStuIEbvgEXXtFv7QdSw8c__YO1N5_Y_dB9e062gGSE,18904
59
+ claude_mpm/cli/commands/analyze.py,sha256=jWPGiUeKEnD15DFt-6c41ZFF1ePdGMNEUaW0KUtklpw,18924
60
60
  claude_mpm/cli/commands/analyze_code.py,sha256=4rkAF9uS3PQLoZQoxAE5zZ8VlRMlsc1QAvoAYc3j_ak,17160
61
61
  claude_mpm/cli/commands/cleanup.py,sha256=c4QyAs9odx7__rSM9RDy2r9iwPlrfeIzx2vINbl7WaA,19694
62
62
  claude_mpm/cli/commands/cleanup_orphaned_agents.py,sha256=JR8crvgrz7Sa6d-SI-gKywok5S9rwc_DzDVk_h85sVs,4467
63
63
  claude_mpm/cli/commands/config.py,sha256=Yfi8WO-10_MYz2QipFw-yEzVvHKNQ6iSQXeyW5J85Cg,18559
64
- claude_mpm/cli/commands/configure.py,sha256=h8C_jEfYqKld0W6S4s60S1y94TALD4tITX9fgCbEjW8,55413
65
- claude_mpm/cli/commands/configure_tui.py,sha256=sOKwgffzVRBadKhSDXZUhjAK_ER3jmxYXmT0H7uvVOg,66746
66
- claude_mpm/cli/commands/debug.py,sha256=6bdXkGlOt0UiSP666teReOBWZQKsvTYbvU4LmmmLHTw,47057
64
+ claude_mpm/cli/commands/configure.py,sha256=OsuISDoctmQyJpd0wn4LUFRR1AdoVLveT-pU6JJdW60,55439
65
+ claude_mpm/cli/commands/configure_tui.py,sha256=VYLlm2B7QN8P3HtKMEO5Z7A9TpRicWvsojtNh4NxVWQ,66760
66
+ claude_mpm/cli/commands/dashboard.py,sha256=l8h0TkKLwrFUPqKcfTKLw_gCcFM4nytuaA7WIGm7JXI,11023
67
+ claude_mpm/cli/commands/debug.py,sha256=lupNJRzpPHeisREYmbQ-9E3A3pvKjSHsapYFJVH8sbc,47056
67
68
  claude_mpm/cli/commands/doctor.py,sha256=bOZzDNxEMNMZYrJnu_V82tyZ12r5FiBRQNLVfSVvRIQ,5774
68
69
  claude_mpm/cli/commands/info.py,sha256=_hWH7uNv9VLO0eZh9Ua6qc5L1Z66kYj9ATzU4Q8UkSM,7377
69
70
  claude_mpm/cli/commands/mcp.py,sha256=f4PmzAt89cmXXHBJAul2nFh7-EStDY97_J4vaL690CE,7029
@@ -75,6 +76,8 @@ claude_mpm/cli/commands/mcp_server_commands.py,sha256=-1G_2Y5ScTvzDd-kY8fTAao2H6
75
76
  claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
76
77
  claude_mpm/cli/commands/memory.py,sha256=Yzfs3_oiKciv3sfOoDm2lJL4M9idG7ARV3-sNw1ge_g,26186
77
78
  claude_mpm/cli/commands/monitor.py,sha256=F4HY3x1A6hJgtHJlLssIWJFgND1xFGfzZSLU0ylwHpM,27308
79
+ claude_mpm/cli/commands/mpm_init.py,sha256=H9kDt1DjVZBV7tgLHVcFPYURBKYv01CwMRnKZNMvZkM,16209
80
+ claude_mpm/cli/commands/mpm_init_handler.py,sha256=bubidVBlXQQ_NucU3FBn14W7_pfuj47AS5eBarTjnPw,2854
78
81
  claude_mpm/cli/commands/run.py,sha256=7jvKy4emK8szoHR9nEigXnOrkugx4MduLmUadfWnUv0,43113
79
82
  claude_mpm/cli/commands/socketio_monitor.py,sha256=GHHY5pKg0XCffoqLoO0l0Nxa9HQY4gdrpYebLVahzl4,9540
80
83
  claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
@@ -83,13 +86,15 @@ claude_mpm/cli/parsers/agent_manager_parser.py,sha256=8HuGpTnHSOnTOqOHriBTzi8EzK
83
86
  claude_mpm/cli/parsers/agents_parser.py,sha256=DxAZMotptyaJbROqbRbTipOKLLJ96ATrXhwiFK6Dbm0,5450
84
87
  claude_mpm/cli/parsers/analyze_code_parser.py,sha256=cpJSMFbc3mqB4qrMBIEZiikzPekC2IQX-cjt9U2fHW4,5356
85
88
  claude_mpm/cli/parsers/analyze_parser.py,sha256=E00Ao0zwzbJPchs_AJt-aoQ7LQEtJPXRCNQ6Piivb4o,3908
86
- claude_mpm/cli/parsers/base_parser.py,sha256=XzFfoPY1Q07__D_dEFxiVw6leJDdLPoqqCsVuTKyJk4,13122
89
+ claude_mpm/cli/parsers/base_parser.py,sha256=X4ScS1KIX1ODlA6hELCcwEvI76dZDqsodDYuIRxMdRo,13461
87
90
  claude_mpm/cli/parsers/config_parser.py,sha256=wp6NbV8_p9txP28MXFcQrri0JDIfGFM7u4aJbYJXcYQ,2699
88
91
  claude_mpm/cli/parsers/configure_parser.py,sha256=cg3VXrnSqi9QLhMihJXeKDjtp1sS5jSHZNM_prgm0S4,4598
92
+ claude_mpm/cli/parsers/dashboard_parser.py,sha256=JBCM6v_iZhADr_Fwtk_d3up9AOod1avMab-vkNE61gE,3460
89
93
  claude_mpm/cli/parsers/debug_parser.py,sha256=F7MZdmiXiPfiIPMv21ZUqB2cMT8Ho1LDmpbvCXODLbY,9846
90
94
  claude_mpm/cli/parsers/mcp_parser.py,sha256=zW4wClYOGf_o8yRediJkQRxgta2RI6S3IG_QDgAkp-k,5992
91
95
  claude_mpm/cli/parsers/memory_parser.py,sha256=ZwCDxJEgp-w03L-1tZsWTgisiwamP42s424bA5bvDJc,4760
92
96
  claude_mpm/cli/parsers/monitor_parser.py,sha256=Go78VOFQCts2fouv33tKfd303w0mVPpJiuBbRBGK5x0,4525
97
+ claude_mpm/cli/parsers/mpm_init_parser.py,sha256=NZGaaN9eKwjJv8MYVrdjDFppuHN0zbXl3U6zv6QZ5uU,4369
93
98
  claude_mpm/cli/parsers/run_parser.py,sha256=bkVqtQDl0y0mQi6Ue8mSXNggUuPfXlywgyXLCOPccXg,4750
94
99
  claude_mpm/cli/parsers/tickets_parser.py,sha256=FYl-VNH7PrZzfZUCcjnf6F7g6JXnL8YDxwrmR5svIcg,6966
95
100
  claude_mpm/cli/shared/__init__.py,sha256=c3Ff46Az3U-YpYgcjOowMcNUkSzDngflAJotv6Bs8TE,1019
@@ -113,7 +118,7 @@ claude_mpm/core/agent_session_manager.py,sha256=JmhP67tZuJhGaXOriWeYdl69edxB8szV
113
118
  claude_mpm/core/base_service.py,sha256=OGFg2IrvkSVhDUoN12y9HD6L6YGka0pc6Wj3AmHKxYk,29182
114
119
  claude_mpm/core/cache.py,sha256=aCvZg08gT8uMFSDp-s0-xqRYSgcfBTDGM3MlJTTboMY,17170
115
120
  claude_mpm/core/claude_runner.py,sha256=e6ob7FwcBzvhw9gnPvmL8Zw_BasdfzuV8b1dvqtvGKk,34787
116
- claude_mpm/core/config.py,sha256=jlzsKa9IbOJj5szcnDmQPelJow2NtJUC3sZ1T3Tr-ng,36947
121
+ claude_mpm/core/config.py,sha256=weC5QRzyIlh49gqAiDc7w4CBi8htqna04J6RsmkImPw,37942
117
122
  claude_mpm/core/config_aliases.py,sha256=asgAgMGlZSv-5PXPBH8e__QfwJQy_Or9ldPD9yzCrM0,9643
118
123
  claude_mpm/core/config_constants.py,sha256=MEF35Y2Lj5FMzRdhgSgZrZeTzHfCzistPGZVY8INta4,10073
119
124
  claude_mpm/core/constants.py,sha256=88J9bGT05Fbr3lzHLWtLQbBYRuJuLBjK3Bfq_qyWcIo,9539
@@ -124,6 +129,7 @@ claude_mpm/core/framework_loader.py,sha256=-3081VeWTZpId3fBaomqHy15aYQiRFfIgWF3W
124
129
  claude_mpm/core/hook_manager.py,sha256=_Y7QWv8MfZgSHbKmWYfojuDRPxC2niZgOb7JkeUFQaE,11059
125
130
  claude_mpm/core/hook_performance_config.py,sha256=e7a7oFctkRhA3aPXMO5Wavr-E6ku7ikLxMzPU7P1-yg,5779
126
131
  claude_mpm/core/injectable_service.py,sha256=6MUqTVTBBw6legToIVj1C_BzdERO0zKYEPnFPVZJJfE,7398
132
+ claude_mpm/core/instruction_reinforcement_hook.py,sha256=o0B-__TTM6HJvRyibSHQCgBDSjw2sZUiRPWxYEX5Q9w,9468
127
133
  claude_mpm/core/interactive_session.py,sha256=OO0Oqv5hXfEtnAUNUc2WKd6BtxbT_p4Kcei-53GKxno,21973
128
134
  claude_mpm/core/interfaces.py,sha256=RNqXxUioEpV4vOaEoUJ38OvKYPMlpSb3V5Sb97l0w3Q,25625
129
135
  claude_mpm/core/lazy.py,sha256=6EYpXGZwsMAMQ3GXepNtyw_b7IxDwOTjfOVE6mV-S2s,14774
@@ -136,7 +142,7 @@ claude_mpm/core/oneshot_session.py,sha256=QkSw-gs7tTQkdKQiZh7mbia5hc5PMt_xaMoDY-
136
142
  claude_mpm/core/optimized_agent_loader.py,sha256=Suwu3jXf3g8s6Y_HMK8ruPH7mkUQzTIAUQsUKy5HfIk,15788
137
143
  claude_mpm/core/optimized_startup.py,sha256=bvCLSmUstzObl5XxA252EWXzcmwFSYvKHazKgttMhmo,15478
138
144
  claude_mpm/core/output_style_manager.py,sha256=LjEADIvCZr8iGL1RGwh15EDDVdkOCgTepIN2TDY50ho,20729
139
- claude_mpm/core/pm_hook_interceptor.py,sha256=vidXG7BSrsMH4eORrBrBGpiZZJGlJ8DjhK1JHqJrhlo,7099
145
+ claude_mpm/core/pm_hook_interceptor.py,sha256=PQYMWRRLmMbFNDQhl37CB52OtWcT5gXbMUP9nKWAWjA,11161
140
146
  claude_mpm/core/service_registry.py,sha256=l0vnKNsxZVlKH-_g-WXRAIoQRqyqsKdTyo5_EAwYW1c,11580
141
147
  claude_mpm/core/session_manager.py,sha256=wlrPnoFJMDbFz1_J_FNTHmCL0WQwgA4jkdUYI3LWkBo,11943
142
148
  claude_mpm/core/socketio_pool.py,sha256=8yL4HMA2GWJOkFuOULp1XHE35um06OE-rxA409hTKmk,30961
@@ -150,17 +156,19 @@ claude_mpm/core/shared/__init__.py,sha256=1mPHE8qCOAgJPgUZ6bYNO27xhnPN0h9ChHiMcq
150
156
  claude_mpm/core/shared/config_loader.py,sha256=Bw9dvMAxn0z6bsqlgs86gsuLJ3a-cZ7K_VfJi4VkpeI,10532
151
157
  claude_mpm/core/shared/path_resolver.py,sha256=iIi5cPWD1JCClOCiistQpY9p0km7BoeQ2oU-wZzBoUE,8224
152
158
  claude_mpm/core/shared/singleton_manager.py,sha256=3CN8coiDLJih9jFXImy6ZlEEE6U_myZ4xX--2E5gWZw,6537
153
- claude_mpm/dashboard/analysis_runner.py,sha256=JU0wG81KIVrKFWbENH5DhcjO6yPDUcrkad-naA2dhkA,13366
159
+ claude_mpm/dashboard/analysis_runner.py,sha256=f4AhsDoo1DL2B8TtoTCb2soLHR2Jb9SO2KWx71v5c2E,14756
154
160
  claude_mpm/dashboard/index.html,sha256=d0DPXBFdtIYWPv0TsLnnYBY8jY2wnoAL9EYAkrUN7UM,452
155
161
  claude_mpm/dashboard/open_dashboard.py,sha256=i4OHdjeQLtZX4UnLVMiFlq6iSENvlCcdcmodmaaU94Q,2205
156
162
  claude_mpm/dashboard/test_dashboard.html,sha256=Aakmm9O-pWld_CCXLuUBOJC81Ix9D1avytTN93u0zfc,15090
157
163
  claude_mpm/dashboard/.claude-mpm/socketio-instances.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
158
- claude_mpm/dashboard/static/built/dashboard.js,sha256=HXx1zKVsETkWovw1irSVY03S4y53niEklKylQ-aYNLQ,51633
159
- claude_mpm/dashboard/static/built/socket-client.js,sha256=4r6931RKCwAHvsR0epIs3ZIZxO5XcHFGZTp2bAeciPY,26073
160
- claude_mpm/dashboard/static/built/components/activity-tree.js,sha256=2PLs0bcXy7rbh-Ptg-BSAnOJRpcA3MNDtUq75HFhYYQ,15924
164
+ claude_mpm/dashboard/static/built/dashboard.js,sha256=hJwPqEZ6jWrobIsawl7QKz1a_wJ0D7frWxl8tXhHxCg,51908
165
+ claude_mpm/dashboard/static/built/socket-client.js,sha256=SrcjD1q6YBh9R0PtFNAYXAj8IU3WndA5C3t8Llfa9iw,29110
166
+ claude_mpm/dashboard/static/built/components/activity-tree.js,sha256=_oc9c4NPD21lTLQyRnog8-FcwYEXPEo_MG9w6kSctQM,20585
161
167
  claude_mpm/dashboard/static/built/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
168
+ claude_mpm/dashboard/static/built/components/code-tree.js,sha256=iZa89wJHUbbwrfCtVKVw2xGTZRtFmnWLMRoL9M155Lc,36628
169
+ claude_mpm/dashboard/static/built/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
162
170
  claude_mpm/dashboard/static/built/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
163
- claude_mpm/dashboard/static/built/components/event-viewer.js,sha256=uG5LZp6uPJvEMh4ZjhIiorHYHeIMg9OeysUtnnUp3Kk,25180
171
+ claude_mpm/dashboard/static/built/components/event-viewer.js,sha256=D5tFt75KIj6NINZ0pd1cS3xLQr2XEXyV6-Xk4d6eZGY,26423
164
172
  claude_mpm/dashboard/static/built/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
165
173
  claude_mpm/dashboard/static/built/components/file-tool-tracker.js,sha256=fZgUsg_u52KRYZFQooF_ZZjvKvYHaY9N7uJIS3XR9s8,9824
166
174
  claude_mpm/dashboard/static/built/components/hud-library-loader.js,sha256=v08Xntd0Lwf-q6Nww1X2r5AWokYLgg9xUWe6ExHiNAg,2964
@@ -172,17 +180,17 @@ claude_mpm/dashboard/static/built/components/socket-manager.js,sha256=LEqCS0_EAB
172
180
  claude_mpm/dashboard/static/built/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
173
181
  claude_mpm/dashboard/static/built/components/working-directory.js,sha256=xE1ydpKDzRWrzHzfjrCiq5wbf3vDhmgQTGKS7myQcPM,15790
174
182
  claude_mpm/dashboard/static/css/activity.css,sha256=wSulDUcObOR9WKxlKUfvFjwgkv8CLfs1wtuhKnImdOg,9101
175
- claude_mpm/dashboard/static/css/code-tree.css,sha256=1YyF1Xourh952stpc42IZM9wnMMnxSuydx0WW_RPImk,14460
183
+ claude_mpm/dashboard/static/css/code-tree.css,sha256=xgWxg5yWOeJhiZ8eirxri6JHETxQs8SQDSv3yYtdgfY,20894
176
184
  claude_mpm/dashboard/static/css/connection-status.css,sha256=nQiMLxIFjY5MDgrVCG58VR5H1PpE1vLlgXmnn01-P64,6729
177
185
  claude_mpm/dashboard/static/css/dashboard.css,sha256=zhedJp4daAiIstRuasckfwdCLL5s700YRYHYNefz718,66023
178
- claude_mpm/dashboard/static/dist/dashboard.js,sha256=HXx1zKVsETkWovw1irSVY03S4y53niEklKylQ-aYNLQ,51633
179
- claude_mpm/dashboard/static/dist/socket-client.js,sha256=SkA1RItbuCTIAUY8tg7Qal7Vmm8lljO68ujGZFgwj7w,27741
180
- claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=5aRzrI4FjkbEvlcwAiELawivFiBAsMel4XBChowMBDk,16583
186
+ claude_mpm/dashboard/static/dist/dashboard.js,sha256=hJwPqEZ6jWrobIsawl7QKz1a_wJ0D7frWxl8tXhHxCg,51908
187
+ claude_mpm/dashboard/static/dist/socket-client.js,sha256=SrcjD1q6YBh9R0PtFNAYXAj8IU3WndA5C3t8Llfa9iw,29110
188
+ claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=_oc9c4NPD21lTLQyRnog8-FcwYEXPEo_MG9w6kSctQM,20585
181
189
  claude_mpm/dashboard/static/dist/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
182
- claude_mpm/dashboard/static/dist/components/code-tree.js,sha256=2cvT28x8GQ8FP9_DlukAXb8K3Hq66ZQVqm3U37LR_Kg,19896
190
+ claude_mpm/dashboard/static/dist/components/code-tree.js,sha256=a6kwZx5fE9rDnfDRAFzS7eXzKKabgXtaA_cPRVJYj1o,91165
183
191
  claude_mpm/dashboard/static/dist/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
184
192
  claude_mpm/dashboard/static/dist/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
185
- claude_mpm/dashboard/static/dist/components/event-viewer.js,sha256=Mv7lZ6w41px5gtAPcYFWuACvVKmD_cAettpIIy-fdkY,25348
193
+ claude_mpm/dashboard/static/dist/components/event-viewer.js,sha256=D5tFt75KIj6NINZ0pd1cS3xLQr2XEXyV6-Xk4d6eZGY,26423
186
194
  claude_mpm/dashboard/static/dist/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
187
195
  claude_mpm/dashboard/static/dist/components/file-tool-tracker.js,sha256=fZgUsg_u52KRYZFQooF_ZZjvKvYHaY9N7uJIS3XR9s8,9824
188
196
  claude_mpm/dashboard/static/dist/components/hud-library-loader.js,sha256=v08Xntd0Lwf-q6Nww1X2r5AWokYLgg9xUWe6ExHiNAg,2964
@@ -194,18 +202,18 @@ claude_mpm/dashboard/static/dist/components/socket-manager.js,sha256=LEqCS0_EABA
194
202
  claude_mpm/dashboard/static/dist/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
195
203
  claude_mpm/dashboard/static/dist/components/working-directory.js,sha256=xE1ydpKDzRWrzHzfjrCiq5wbf3vDhmgQTGKS7myQcPM,15790
196
204
  claude_mpm/dashboard/static/js/connection-manager.js,sha256=IJrtihUCQqkECXhiqy53vAJIdxNp7pJVIsV2ocos3As,17981
197
- claude_mpm/dashboard/static/js/dashboard.js,sha256=3UAU4yfZ0LplGbbG3Xlo23m2lGpxuDm--HqSQ860JDQ,73760
205
+ claude_mpm/dashboard/static/js/dashboard.js,sha256=v8meyOAZiCZ_JEw5wTKNVzQwOtDI0VREQ5L6ptlW0iw,73966
198
206
  claude_mpm/dashboard/static/js/extension-error-handler.js,sha256=DZHrJ3gbfv4nsjmZpNMj-Sc3GKjVJ5ds8lgoaLRnq5I,6274
199
- claude_mpm/dashboard/static/js/socket-client.js,sha256=oyN1qIYEXTzFIAlG7WLoWz3T5sDOKVNJbdSBSHLbxiE,52629
200
- claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=yflzs55dwvpfgaqT14YpOjFKQKsezJkpYY4qlaFH1Hw,36487
207
+ claude_mpm/dashboard/static/js/socket-client.js,sha256=l6EfzUVzgq-a1Na0FS7rVwYGbO6CmrRvnVy7iAoJPdc,56052
208
+ claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=6Dm-4yMqxjxtz7MJh3HCL1oGCYpTPWAxa6X5v5fxLbI,44719
201
209
  claude_mpm/dashboard/static/js/components/agent-hierarchy.js,sha256=Xihxog_vJrk8VBEkDogV_wbye2GIFWmH71VQ1lETOHk,28243
202
210
  claude_mpm/dashboard/static/js/components/agent-inference.js,sha256=RUVZ_fLOyDkHYjrROen_Pzzay79Bh29eXp_GRIPbIRg,37493
203
- claude_mpm/dashboard/static/js/components/build-tracker.js,sha256=IBfKpoSKWD5QMPN4tOZl-E84Q3QADYVsZ76ickrKW8E,11485
204
- claude_mpm/dashboard/static/js/components/code-tree.js,sha256=hSyImqlRrUEyHKLeczDyiRexYguJh5O2RbIJTFyM9ow,42593
211
+ claude_mpm/dashboard/static/js/components/build-tracker.js,sha256=iouv35tNhnyx9UKtD7X1eakJkpCnvZVCrAJ_VdzsKUY,11251
212
+ claude_mpm/dashboard/static/js/components/code-tree.js,sha256=bbNPHSR9WiVf4dkyCS0E2tAkpeGxR_Vr893qua82gtk,105876
205
213
  claude_mpm/dashboard/static/js/components/code-viewer.js,sha256=vhesEPYOM6MggweaYvYsv7ufVbuVpIcyJPXpJXyJwpM,14453
206
214
  claude_mpm/dashboard/static/js/components/connection-debug.js,sha256=Qxr_ofDNkxDlZAwbLnhZkXVMyuO9jOe-NMWC9VHxNnA,22196
207
215
  claude_mpm/dashboard/static/js/components/event-processor.js,sha256=_GnAz8pxN1iyXw0O4AIR482QFyQAigEKO9IDUOUbGqc,24844
208
- claude_mpm/dashboard/static/js/components/event-viewer.js,sha256=wqYuRt29QP1clXg4G1hTzp8Tn14Qp7PZTOj3wNMLwEQ,41410
216
+ claude_mpm/dashboard/static/js/components/event-viewer.js,sha256=Ahl9eTxCYMhDC_533Gf4O96S04W5O_Ts0PAGWSVivkI,43672
209
217
  claude_mpm/dashboard/static/js/components/export-manager.js,sha256=T1YtaR758FaB9aP_5V1xZC9EBIFQOG5H8f_sLopxR5A,11863
210
218
  claude_mpm/dashboard/static/js/components/file-tool-tracker.js,sha256=y8O7kW5uP6KBT2gWvjRoH1aJG-7o1qzyrVnvShsNAK0,28620
211
219
  claude_mpm/dashboard/static/js/components/hud-library-loader.js,sha256=SK6tY8TL88lnewi4M-i092HdgYondv_lVfHoQ-A_cWU,7170
@@ -216,7 +224,7 @@ claude_mpm/dashboard/static/js/components/session-manager.js,sha256=pJrlMcSBNTXo
216
224
  claude_mpm/dashboard/static/js/components/socket-manager.js,sha256=KC-aOJDEPSiMPYk0ABgvCC1xmO7TVQ4SVqohi2GNsWQ,13303
217
225
  claude_mpm/dashboard/static/js/components/ui-state-manager.js,sha256=EWm0HpPI9TShChitRCyZvZCiUk5rIBVyw10BoHdnTzI,13178
218
226
  claude_mpm/dashboard/static/js/components/working-directory.js,sha256=BRsPYwVnhbhFl0mC0Gvb-Ev1zxAu6yZpZcl1T1aJWWA,33558
219
- claude_mpm/dashboard/templates/index.html,sha256=EWAcH0vvKmCFRnXkZzzGMOl76WgqJYM-qPFWRI6o0HU,26939
227
+ claude_mpm/dashboard/templates/index.html,sha256=K_Gn-nISwn0SXM3dn1rsmwNU46izl8JYjVN4QCLLB5c,26710
220
228
  claude_mpm/experimental/cli_enhancements.py,sha256=rlYOMVlj8vQzuyCkHWQ7TtjcsDeFq3y1Ng5qty2fyY8,11486
221
229
  claude_mpm/generators/__init__.py,sha256=rG8vwF_BjPmeMKvyMXpUA8uJ-7mtW2HTNfalZzgRlNk,153
222
230
  claude_mpm/generators/agent_profile_generator.py,sha256=0C4Cziee6qqXOe1t0J7JO8L5cAudV-xJT_bPw1jS_9k,5695
@@ -297,7 +305,7 @@ claude_mpm/services/agents/deployment/agent_operation_service.py,sha256=wPoGYf3F
297
305
  claude_mpm/services/agents/deployment/agent_record_service.py,sha256=0v-tWJV-AczLXPet1oqlY_fepIj4qa3l_aZMjpDXSN8,14040
298
306
  claude_mpm/services/agents/deployment/agent_restore_handler.py,sha256=YDPVY4m_4l5wSFq9fxsTqm0ixX8AeTyzERh-PtabuUY,3101
299
307
  claude_mpm/services/agents/deployment/agent_state_service.py,sha256=yjuVG-rwyXBS0T8yKfrx1QTOSmfB_Ejvm-0QLjBNDDI,11772
300
- claude_mpm/services/agents/deployment/agent_template_builder.py,sha256=sUBUQ0pjSPM_C6iEthdA8uVBvLBXxXKhaBPZdibIjXg,15513
308
+ claude_mpm/services/agents/deployment/agent_template_builder.py,sha256=hPs_W8RerGIkgAO_n6i-83DZJxIFILPRCctMBiNsG90,15631
301
309
  claude_mpm/services/agents/deployment/agent_validator.py,sha256=kXzOmkUzMdr_m4Feys5FfNLKvaIttFeOqZ_KaBlIhwY,12562
302
310
  claude_mpm/services/agents/deployment/agent_version_manager.py,sha256=RtU3zrz9VJmQdNoPHQ1FA3ewhOlUmbqGAxqMel-7YcY,10910
303
311
  claude_mpm/services/agents/deployment/agent_versioning.py,sha256=cDkSv12m6_XjhhD6Tr_tmcnvx4RrXhMAKpjm6E_fKyQ,989
@@ -364,14 +372,14 @@ claude_mpm/services/agents/memory/agent_persistence_service.py,sha256=1_wMyoXRdA
364
372
  claude_mpm/services/agents/memory/content_manager.py,sha256=OUrTFKvw1Ym8JyMt6bPQbfCARgMGN__nqNVPkxQnF6A,16385
365
373
  claude_mpm/services/agents/memory/memory_categorization_service.py,sha256=nJTztLXl_g5Z6bjUFvvDL8mOqqfLNFrbqYBJR5_EchM,4713
366
374
  claude_mpm/services/agents/memory/memory_file_service.py,sha256=uQ7Ou39UsFabHCNYocO9XjkJdlXmR7Z6LS4o1L7yA98,3319
367
- claude_mpm/services/agents/memory/memory_format_service.py,sha256=edKWZ1TNo4lPVPXjN1rCwz8dXKzDRZ-4AigVOMCOVfc,6083
375
+ claude_mpm/services/agents/memory/memory_format_service.py,sha256=4lwfKVYlhxMKPbvuJlO7l80XZt8x575NA6-2IePTSmE,6115
368
376
  claude_mpm/services/agents/memory/memory_limits_service.py,sha256=6nkCXOE3_3aPla7n8GwWBVJTxZI7w0aA596E9J-a48c,3310
369
377
  claude_mpm/services/agents/memory/template_generator.py,sha256=bfRY_GEhsO3WoIU36VjlVYWqmXR9UEPngeBcSpWoDUQ,2547
370
378
  claude_mpm/services/agents/registry/__init__.py,sha256=ROBX82Ac4iLHEE7-aFUy7mT3NSz5eIub19ck5Q81NHQ,681
371
379
  claude_mpm/services/agents/registry/deployed_agent_discovery.py,sha256=aaqu50tjonWURgBWFXUKZvWw9qJYLQgUtCux9xCL1rE,10213
372
380
  claude_mpm/services/agents/registry/modification_tracker.py,sha256=bA4F2chibZCTTK_aUVapuK_z0mYZQ7wOi8-OejjZ0AU,33909
373
381
  claude_mpm/services/cli/__init__.py,sha256=6yavdruQywt9k39RBOrPxUTz6dEEJ6mHzjY4pl_Q3Do,559
374
- claude_mpm/services/cli/agent_cleanup_service.py,sha256=mI5CoMAfhISHkdZ-3ihh6Q5a8Zcu0bUmv08Rnxkvvh8,14066
382
+ claude_mpm/services/cli/agent_cleanup_service.py,sha256=aZd620xKl_ioXOnTRTLLF6L2AnZuAUmC0ia4sr5iJwU,14035
375
383
  claude_mpm/services/cli/agent_dependency_service.py,sha256=mu6RJIjEe_NrMzil3Wm6CvhQUIZ4pYn8tYpyXDBu2NI,13701
376
384
  claude_mpm/services/cli/agent_listing_service.py,sha256=bRb7rAsybTOZ-0F22xE3a4S1QPkuq3K7FavlFePCrVc,15999
377
385
  claude_mpm/services/cli/agent_output_formatter.py,sha256=FcJ18m3CyeFr_wotJfEmIURHeZ71eomqO_vK7wsPWsM,20521
@@ -380,12 +388,12 @@ claude_mpm/services/cli/dashboard_launcher.py,sha256=PCqk9e6E7SHrKmjrXZJ5Ak8yuB7
380
388
  claude_mpm/services/cli/memory_crud_service.py,sha256=ciN9Pl_12iDAqF9zPBWOzu-iXiAzpy3CiIwXRoeB5m0,22645
381
389
  claude_mpm/services/cli/memory_output_formatter.py,sha256=nbf7VsjGvH4e9fLv9c7PzjuO9COZhbK5P2fNZ79055w,24783
382
390
  claude_mpm/services/cli/session_manager.py,sha256=rla_Stbcvt93wa9G9MCMu9UqB3FLGqlPt_eN5lQb3Gg,16599
383
- claude_mpm/services/cli/socketio_manager.py,sha256=90pvf97Q2Upz9WMP4_SOMfDmlgdkdiCJ0ix6vA7hgco,16745
384
- claude_mpm/services/cli/startup_checker.py,sha256=Y1ZGkV1Fy8i0Lu2MKcaO21fN9kI8x6VdMOlkN77-FsI,12233
391
+ claude_mpm/services/cli/socketio_manager.py,sha256=j11Q6w-oxFEeXltSfy2riAhYwWPnm4_9G8XZjlnyDy0,18177
392
+ claude_mpm/services/cli/startup_checker.py,sha256=efhuvu8ns5G16jcQ0nQZKVddmD2AktUEdlvjNcXjAuk,12232
385
393
  claude_mpm/services/communication/__init__.py,sha256=b4qc7_Rqy4DE9q7BAUlfUZjoYG4uimAyUnE0irPcXyU,560
386
394
  claude_mpm/services/core/__init__.py,sha256=evEayLlBqJvxMZhrhuK6aagXmNrKGSj8Jm9OOxKzqvU,2195
387
395
  claude_mpm/services/core/base.py,sha256=iA-F7DgGp-FJIMvQTiHQ68RkG_k-AtUWlArJPMw6ZPk,7297
388
- claude_mpm/services/core/cache_manager.py,sha256=eDWKiVgonVjsBcRPsFcQzastGIiFLQ2uheI8d6PtZB4,11568
396
+ claude_mpm/services/core/cache_manager.py,sha256=dBHvvI6M67kaxFtAubi4IsWfbDZSct1siyKHTmCIrW8,11567
389
397
  claude_mpm/services/core/interfaces.py,sha256=FbLhWiOUMlvBfqjYBCeoWgsmRscQGBKteRMW-BGz4hQ,1261
390
398
  claude_mpm/services/core/memory_manager.py,sha256=CxKyA9uquU6FPKfCz3lxlP56-2t_5hEOaeq9f7EPlWk,23953
391
399
  claude_mpm/services/core/path_resolver.py,sha256=yTO5sYETZWhYi9prwwVz9c6iKX_J2cnwBR-I8nwCdkw,17658
@@ -451,7 +459,7 @@ claude_mpm/services/infrastructure/__init__.py,sha256=dKXYEeDbAHMImXmefgcHrlTdcg
451
459
  claude_mpm/services/infrastructure/context_preservation.py,sha256=QzN0SOaFx7PndLZTNn2rO8G6XGnbZvasm7Y-zOU0x-E,21060
452
460
  claude_mpm/services/infrastructure/daemon_manager.py,sha256=ZfEmSSwyP7nYRfdpEl7GdNuFOxPV99XlGnSTg_akEHI,8555
453
461
  claude_mpm/services/infrastructure/logging.py,sha256=3bYMJi-qzpPNgs1-Epfp6EAuRm5iP-hypIluSpgy0Eg,6473
454
- claude_mpm/services/infrastructure/monitoring.py,sha256=6C1dFCUgTRu6fNdy6xjnSRS-111JwZTshk2DZfaERPs,2205
462
+ claude_mpm/services/infrastructure/monitoring.py,sha256=9JTtIhK4rO7Bko_QWjYlviNkNNrxjbw-uddteKpc9Y8,2143
455
463
  claude_mpm/services/infrastructure/monitoring/__init__.py,sha256=4Wo3CV8F2Gcc0OyPHEf1Uz1JkMYksdKky_yUDxF0vTE,1066
456
464
  claude_mpm/services/infrastructure/monitoring/aggregator.py,sha256=vvPSDrvJmO2l9QhUajz4ZxBNT1Yk3XOVp-8wZKxv_wc,15201
457
465
  claude_mpm/services/infrastructure/monitoring/base.py,sha256=f4sOTWbfH5p9P7n4N2iOVe3GWGxhqlLv6UD1LdKzV70,3864
@@ -513,11 +521,11 @@ claude_mpm/services/shared/manager_base.py,sha256=kmjhpVqgfYC1N4YQnPAilCfdrSpAh9
513
521
  claude_mpm/services/shared/service_factory.py,sha256=blNkIowhIxykrn-a1qsD8Rtkjlky615nAT2nc8m18QI,9718
514
522
  claude_mpm/services/socketio/__init__.py,sha256=PS-2twllga-2mhSfKdu4MgpikfKp_730gMLAqU_9YX4,556
515
523
  claude_mpm/services/socketio/client_proxy.py,sha256=VPhU6u9FtFZNujR2K4bcDwr4iUrANSIRukqMb2U_XP0,6637
516
- claude_mpm/services/socketio/event_normalizer.py,sha256=ftC7ZQerX6yy1GtqAyuW-j5iJ9M5xM4BYXpMencE7vY,25551
524
+ claude_mpm/services/socketio/event_normalizer.py,sha256=TlhZbLgb6fSFNXNAZEEbGxHOqgTIB2S9WtEGJEV7Olw,28402
517
525
  claude_mpm/services/socketio/migration_utils.py,sha256=1pK_zGZ8Pd57pCg1O-3gKT8i7_fjEKZ377hxOMGUPQQ,11963
518
526
  claude_mpm/services/socketio/handlers/__init__.py,sha256=lGYFfn5P1eB6ri3HAPuDJMfdCfHIw6mQEbweAihNuHY,873
519
527
  claude_mpm/services/socketio/handlers/base.py,sha256=DjUODCOLTQSsC_-NP9yr-8g77arawmsRrM5KC06aDmw,4845
520
- claude_mpm/services/socketio/handlers/code_analysis.py,sha256=yV3QbJ5p_cxfLTcHt2RssVwoCiC8vI8mW3tkeI58bqk,5638
528
+ claude_mpm/services/socketio/handlers/code_analysis.py,sha256=Ir4bodBKnviS_oFtgKuMFuO_iY_A_aXJ4P9IjcgaS64,23383
521
529
  claude_mpm/services/socketio/handlers/connection.py,sha256=sa6Rg5Y9tcf-e4PEb6f4fNhFQcpZ9WbwdiGXmkzlFTs,26781
522
530
  claude_mpm/services/socketio/handlers/connection_handler.py,sha256=DTY0pa--HQu4C6-WCgE1zskvHm3gVuEKWwaSFNBAoec,13287
523
531
  claude_mpm/services/socketio/handlers/file.py,sha256=itpPa5OAow5_OXrTOXk0vsyuEYm4iVmxwN9xowy7jiY,8341
@@ -528,7 +536,7 @@ claude_mpm/services/socketio/handlers/project.py,sha256=yYqWlPfPanA7zH7dgQnP3EpO
528
536
  claude_mpm/services/socketio/handlers/registry.py,sha256=0f-8zBz-iXCbdPPG8iaMpamgfCOJjgE4rxJ1rKs8aCo,8063
529
537
  claude_mpm/services/socketio/server/__init__.py,sha256=S486w-i-hBo3rNW_AtzxbasEgP32By-uI9zz7hzKz-o,640
530
538
  claude_mpm/services/socketio/server/broadcaster.py,sha256=y_D-fDhSD2NZI0cP9wuoB2nlI7VkKjzW_EjVmP-xd5Y,21375
531
- claude_mpm/services/socketio/server/connection_manager.py,sha256=wSUNbkkMNJ1Rtup_NCs6UTbAIiB_9--4MqlT0t_0Az4,21220
539
+ claude_mpm/services/socketio/server/connection_manager.py,sha256=lf1rurOvUej0FWLWXn2u1q0xz2rlzSWKb818Le-LkFM,21234
532
540
  claude_mpm/services/socketio/server/core.py,sha256=m6qzVSPkL2FfR2lAcXwsK_UcxC1g-1oTNmyuguS0_GI,27326
533
541
  claude_mpm/services/socketio/server/eventbus_integration.py,sha256=6LkK8W9wTiNd8d9KoAH2IY1b4osyGGgGaJ0DmwIwnVM,7790
534
542
  claude_mpm/services/socketio/server/main.py,sha256=JvaH4vHz1AgdBsyB7qSG-BZmak9E2FA02Ij2jYKMvqs,19535
@@ -549,9 +557,9 @@ claude_mpm/services/visualization/mermaid_generator.py,sha256=6QGgXtMg_N9rKeRn8w
549
557
  claude_mpm/storage/__init__.py,sha256=DXnmee6iGqC6ctFLW7_Ty1cVCjYDFuCMkwO4EV0i25k,274
550
558
  claude_mpm/storage/state_storage.py,sha256=1fFqkFy63T32JQvhUdVBNhaLQyUlkq4unjeyl0Z6j8I,16865
551
559
  claude_mpm/tools/__main__.py,sha256=MKDuxFuujqD5FZcLTqniDNQ2BI8yg5fDSLU3ElV6m6U,5709
552
- claude_mpm/tools/code_tree_analyzer.py,sha256=sRfdqSSCtaxW77Jq9OYSAfcQcNqf4eOlwJw6f_D4DQ0,28032
553
- claude_mpm/tools/code_tree_builder.py,sha256=kKZyz5VddJ9ovFLlohG6xxoS5D7Y_SfOQLlWqE8ZVk8,18127
554
- claude_mpm/tools/code_tree_events.py,sha256=E9XJUSIFwv7aabA1swXh1nuLcphLq29cwuixYTCWaDs,10143
560
+ claude_mpm/tools/code_tree_analyzer.py,sha256=_qoQcH_gMSeZQsEx2xkGuj-ZKmxabGCtk92-0XFo-Ug,59398
561
+ claude_mpm/tools/code_tree_builder.py,sha256=gwnsFO5ajs55UzX3SU34OMZBwhjouruQhGdQ3fJHjeA,18126
562
+ claude_mpm/tools/code_tree_events.py,sha256=ypUmxQRUpxQt2LQfXV_qpdL42KNvLO-K5XstxZIj9-w,13277
555
563
  claude_mpm/tools/socketio_debug.py,sha256=H0mKHO6EIYqCVm4YU-SJ4Cw8ssA7VqJ3vU7y6eF7brk,22212
556
564
  claude_mpm/utils/__init__.py,sha256=rkxNE0tDfKEN2lr2LLBuToNSvkF-yjF38607eUXL1vk,353
557
565
  claude_mpm/utils/agent_dependency_loader.py,sha256=FjWpyd7w03K4YOPF0VLy2wCUgMd8CtDhBamV6LODcGM,32213
@@ -573,9 +581,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
573
581
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
574
582
  claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
575
583
  claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
576
- claude_mpm-4.1.10.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
577
- claude_mpm-4.1.10.dist-info/METADATA,sha256=tCmbaEFL9KUtbGr3EdUVn4XBvlvRGlGG0qgUSaQ5r1E,13387
578
- claude_mpm-4.1.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
579
- claude_mpm-4.1.10.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
580
- claude_mpm-4.1.10.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
581
- claude_mpm-4.1.10.dist-info/RECORD,,
584
+ claude_mpm-4.1.12.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
585
+ claude_mpm-4.1.12.dist-info/METADATA,sha256=799EFJYPXgdtoFNFj9o8q12aZH6ytETEbKtOxtcIzlw,13419
586
+ claude_mpm-4.1.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
587
+ claude_mpm-4.1.12.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
588
+ claude_mpm-4.1.12.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
589
+ claude_mpm-4.1.12.dist-info/RECORD,,