claude-mpm 4.0.20__py3-none-any.whl → 4.0.23__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 (46) hide show
  1. claude_mpm/BUILD_NUMBER +1 -1
  2. claude_mpm/VERSION +1 -1
  3. claude_mpm/agents/INSTRUCTIONS.md +74 -0
  4. claude_mpm/agents/WORKFLOW.md +308 -4
  5. claude_mpm/agents/agents_metadata.py +52 -0
  6. claude_mpm/agents/base_agent_loader.py +75 -19
  7. claude_mpm/agents/templates/__init__.py +4 -0
  8. claude_mpm/agents/templates/api_qa.json +206 -0
  9. claude_mpm/agents/templates/code_analyzer.json +2 -2
  10. claude_mpm/agents/templates/data_engineer.json +2 -2
  11. claude_mpm/agents/templates/documentation.json +36 -9
  12. claude_mpm/agents/templates/engineer.json +2 -2
  13. claude_mpm/agents/templates/ops.json +2 -2
  14. claude_mpm/agents/templates/qa.json +2 -2
  15. claude_mpm/agents/templates/refactoring_engineer.json +65 -43
  16. claude_mpm/agents/templates/research.json +24 -16
  17. claude_mpm/agents/templates/security.json +2 -2
  18. claude_mpm/agents/templates/ticketing.json +18 -5
  19. claude_mpm/agents/templates/vercel_ops_agent.json +281 -0
  20. claude_mpm/agents/templates/vercel_ops_instructions.md +582 -0
  21. claude_mpm/agents/templates/version_control.json +2 -2
  22. claude_mpm/agents/templates/web_ui.json +2 -2
  23. claude_mpm/cli/commands/mcp_command_router.py +87 -1
  24. claude_mpm/cli/commands/mcp_install_commands.py +207 -26
  25. claude_mpm/cli/parsers/mcp_parser.py +23 -0
  26. claude_mpm/constants.py +1 -0
  27. claude_mpm/core/base_service.py +7 -1
  28. claude_mpm/core/config.py +64 -39
  29. claude_mpm/core/framework_loader.py +100 -37
  30. claude_mpm/core/interactive_session.py +28 -17
  31. claude_mpm/scripts/socketio_daemon.py +67 -7
  32. claude_mpm/scripts/socketio_daemon_hardened.py +897 -0
  33. claude_mpm/services/agents/deployment/agent_deployment.py +65 -3
  34. claude_mpm/services/agents/deployment/async_agent_deployment.py +65 -1
  35. claude_mpm/services/agents/memory/agent_memory_manager.py +42 -203
  36. claude_mpm/services/memory_hook_service.py +62 -4
  37. claude_mpm/services/runner_configuration_service.py +5 -9
  38. claude_mpm/services/socketio/server/broadcaster.py +32 -1
  39. claude_mpm/services/socketio/server/core.py +4 -0
  40. claude_mpm/services/socketio/server/main.py +23 -4
  41. {claude_mpm-4.0.20.dist-info → claude_mpm-4.0.23.dist-info}/METADATA +1 -1
  42. {claude_mpm-4.0.20.dist-info → claude_mpm-4.0.23.dist-info}/RECORD +46 -42
  43. {claude_mpm-4.0.20.dist-info → claude_mpm-4.0.23.dist-info}/WHEEL +0 -0
  44. {claude_mpm-4.0.20.dist-info → claude_mpm-4.0.23.dist-info}/entry_points.txt +0 -0
  45. {claude_mpm-4.0.20.dist-info → claude_mpm-4.0.23.dist-info}/licenses/LICENSE +0 -0
  46. {claude_mpm-4.0.20.dist-info → claude_mpm-4.0.23.dist-info}/top_level.txt +0 -0
@@ -184,10 +184,41 @@ class SocketIOEventBroadcaster:
184
184
 
185
185
  WHY: Failed broadcasts need to be retried automatically
186
186
  to ensure reliable event delivery.
187
+
188
+ IMPORTANT: This method must handle being called from a different thread
189
+ than the one running the event loop.
187
190
  """
188
191
  if self.loop and not self.retry_task:
192
+ try:
193
+ # Check if the loop is running in the current thread
194
+ try:
195
+ running_loop = asyncio.get_running_loop()
196
+ if running_loop == self.loop:
197
+ # Same thread, can use create_task directly
198
+ self.retry_task = asyncio.create_task(self._process_retry_queue())
199
+ self.logger.info("🔄 Started retry queue processor (same thread)")
200
+ else:
201
+ # Different thread, need to schedule in the target loop
202
+ self._start_retry_in_loop()
203
+ except RuntimeError:
204
+ # No running loop in current thread, schedule in target loop
205
+ self._start_retry_in_loop()
206
+ except Exception as e:
207
+ self.logger.error(f"Failed to start retry processor: {e}")
208
+
209
+ def _start_retry_in_loop(self):
210
+ """Helper to start retry processor from a different thread."""
211
+ async def _create_retry_task():
189
212
  self.retry_task = asyncio.create_task(self._process_retry_queue())
190
- self.logger.info("🔄 Started retry queue processor")
213
+ self.logger.info("🔄 Started retry queue processor (cross-thread)")
214
+
215
+ # Schedule the task creation in the target loop
216
+ future = asyncio.run_coroutine_threadsafe(_create_retry_task(), self.loop)
217
+ try:
218
+ # Wait briefly to ensure it's scheduled
219
+ future.result(timeout=1.0)
220
+ except Exception as e:
221
+ self.logger.error(f"Failed to schedule retry processor: {e}")
191
222
 
192
223
  def stop_retry_processor(self):
193
224
  """Stop the background retry processor."""
@@ -138,8 +138,12 @@ class SocketIOServerCore:
138
138
  """Run the server event loop."""
139
139
  try:
140
140
  # Create new event loop for this thread
141
+ # WHY: We create and assign the loop immediately to minimize the race
142
+ # condition window where other threads might try to access it.
141
143
  self.loop = asyncio.new_event_loop()
142
144
  asyncio.set_event_loop(self.loop)
145
+
146
+ self.logger.debug("Event loop created and set for background thread")
143
147
 
144
148
  # Run the server
145
149
  self.loop.run_until_complete(self._start_server())
@@ -117,11 +117,30 @@ class SocketIOServer(SocketIOServiceInterface):
117
117
  server=self, # Pass server reference for event history access
118
118
  )
119
119
 
120
- # Set the loop reference for broadcaster
121
- self.broadcaster.loop = self.core.loop
120
+ # Wait for the event loop to be initialized in the background thread
121
+ # WHY: The core server starts in a background thread and creates the event
122
+ # loop asynchronously. We must wait for it to be ready before using it.
123
+ max_wait = 5.0 # Maximum wait time in seconds
124
+ wait_interval = 0.1 # Check interval
125
+ waited = 0.0
122
126
 
123
- # Start the retry processor for resilient event delivery
124
- self.broadcaster.start_retry_processor()
127
+ while self.core.loop is None and waited < max_wait:
128
+ time.sleep(wait_interval)
129
+ waited += wait_interval
130
+
131
+ if self.core.loop is None:
132
+ self.logger.warning(
133
+ f"Event loop not initialized after {max_wait}s wait. "
134
+ "Retry processor may not function correctly."
135
+ )
136
+ else:
137
+ self.logger.debug(f"Event loop ready after {waited:.1f}s")
138
+
139
+ # Set the loop reference for broadcaster
140
+ self.broadcaster.loop = self.core.loop
141
+
142
+ # Start the retry processor for resilient event delivery
143
+ self.broadcaster.start_retry_processor()
125
144
 
126
145
  # Register events
127
146
  self._register_events()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.0.20
3
+ Version: 4.0.23
4
4
  Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
5
5
  Home-page: https://github.com/bobmatnyc/claude-mpm
6
6
  Author: Claude MPM Team
@@ -1,44 +1,47 @@
1
- claude_mpm/BUILD_NUMBER,sha256=lClFCBcT1eNYIwcwgsxZcVeZ3Ebeb7-A7a1Zx8FU8xQ,4
2
- claude_mpm/VERSION,sha256=LuG3_UpVIlN7GaTUhjk6a1oc-0jWsWEvW6XSPD4fSgs,7
1
+ claude_mpm/BUILD_NUMBER,sha256=6gnAAIfVlq4dLrhM-K_0YnH5UP9ByZjxxUGIUBSyWBw,4
2
+ claude_mpm/VERSION,sha256=U25cdfC_CggX3GwmTPoFYSFLMj6I8N0V44gRENy549A,7
3
3
  claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
4
4
  claude_mpm/__main__.py,sha256=_kaecmtouDenx_-wueUULnTxu8LirJEerzXIHiKMgew,723
5
- claude_mpm/constants.py,sha256=cwfhDsstU5KK7esKnoq0PtSUg7LjneujdHjR-o5dX00,5597
5
+ claude_mpm/constants.py,sha256=a2Nq-v1O7sMXV_H8BItGWTGhZc2JnH9V8AYm2VPaQ2M,5619
6
6
  claude_mpm/init.py,sha256=n2W1sBtGUOod2XSMbiYZsqucvQUMuxf0ZudzeQjFv7E,15209
7
7
  claude_mpm/ticket_wrapper.py,sha256=qe5xY579t7_7fK5nyeAfHN_fr7CXdeOD3jfXEc8-7yo,828
8
8
  claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=IV25JFisAu0sVR3IbVZ8OxiLGYjKJ5QdiBJ3OycmeSw,4110
9
9
  claude_mpm/agents/BASE_PM.md,sha256=0qquMIRvJyXpHe7vs2TNwaZNuC5IdLUkLkJgY6nWgvc,7951
10
- claude_mpm/agents/INSTRUCTIONS.md,sha256=gQK3E0lcWntCyMoTXmwxuXPSyh-9zX94MU8nQT7gbaU,9750
10
+ claude_mpm/agents/INSTRUCTIONS.md,sha256=0PpAHBlk8E9sL7WZ2hL41DfKNITjVlI8j5rSayH9Ryk,12934
11
11
  claude_mpm/agents/MEMORY.md,sha256=zzwq4ytOrRaj64iq1q7brC6WOCQ4PDDC75TTRT8QudA,3493
12
12
  claude_mpm/agents/OUTPUT_STYLE.md,sha256=iX1vX81PnCq8N92v95hWbvaUfg3JZ2qpGJYfCG97r0c,2854
13
- claude_mpm/agents/WORKFLOW.md,sha256=K1XqSlPNAs6HkcOSBTrOD7-0BcWCn90Sb6zX1EXtV6c,4686
13
+ claude_mpm/agents/WORKFLOW.md,sha256=pZPdOzmu4jEredvA4MC_rcEoW4zo5kvOT2174i0Pmzs,18527
14
14
  claude_mpm/agents/__init__.py,sha256=CPLqdKz9t_0gsSNdMSCZFw09jWQKSQ_piszPRFUyhKM,3220
15
15
  claude_mpm/agents/agent-template.yaml,sha256=mRlz5Yd0SmknTeoJWgFkZXzEF5T7OmGBJGs2-KPT93k,1969
16
16
  claude_mpm/agents/agent_loader.py,sha256=jLn2KBH_V7gm76MDiAnR1AKOCcp-DqcYJffaYhF9BRs,31786
17
17
  claude_mpm/agents/agent_loader_integration.py,sha256=fkdakWWN9hKC-H_H9KQqBmreM-vDF1dRr5DTaq3_Nwk,7275
18
- claude_mpm/agents/agents_metadata.py,sha256=IWF2VxAJChrN0fpPV2bi3Cn-Gva-FaBU7EbWvd9N3As,5881
18
+ claude_mpm/agents/agents_metadata.py,sha256=2UAUW38B3j-7cys9EAs07Kv6L5VlYZ2DwwK8W6dmHJE,7248
19
19
  claude_mpm/agents/async_agent_loader.py,sha256=HAwRbgE4Vs42z7Ch-5QlPdGsLldTlYOMm6uV9iJkzd0,14740
20
20
  claude_mpm/agents/base_agent.json,sha256=FJKxaN3LveoofjliQ2jVlxCo9Q-qiOefySBPsXiNNaw,5407
21
- claude_mpm/agents/base_agent_loader.py,sha256=piH5vmTM7xnHsbVBm5PcnrNHqCq1Ah4EU6rLmuuRvKg,18977
21
+ claude_mpm/agents/base_agent_loader.py,sha256=PTYr20mKLB5vi4pLxYnCL5kEIQHbN22C43OZ6e9coxY,21730
22
22
  claude_mpm/agents/frontmatter_validator.py,sha256=9KPm6hEV3_2qoQrRm-ctEcKA4UY3-QysEfT5s2iSnqk,23526
23
23
  claude_mpm/agents/system_agent_config.py,sha256=Ln8yRxG71-6XxurripkRn7XFbr6rYiiDfGIadwlM_-U,24158
24
24
  claude_mpm/agents/backups/INSTRUCTIONS.md,sha256=tdekngpZ5RjECYZosOaDSBmXPZsVvZcwDQEmmlw7fOQ,14268
25
25
  claude_mpm/agents/schema/agent_schema.json,sha256=qiHVzxkNjzkXK-JZ6tCSuQIbWgnWLSCPKdEVonCoHUQ,8769
26
- claude_mpm/agents/templates/__init__.py,sha256=gL349GCJ9RLxhw_e1jky-CSP2LbKz6arA-CVM_-Gxtc,2621
27
- claude_mpm/agents/templates/code_analyzer.json,sha256=GnKXRMO0Uxab8pc2AVru0us5S6Rf7SfpewonsYqesVk,17721
28
- claude_mpm/agents/templates/data_engineer.json,sha256=LhOkBtGN-Kls69tARSqOn6S48SsPnqfHJnDyqDqJZu8,15249
29
- claude_mpm/agents/templates/documentation.json,sha256=Rtxw1CUvQg04YuKWUpU6LPU1W0WgglMoNO1yuGtk-mw,16670
30
- claude_mpm/agents/templates/engineer.json,sha256=cxES5OiUT9UcI8npqpFrDo9doOyVJXYzWW4Q78hf6BI,8792
26
+ claude_mpm/agents/templates/__init__.py,sha256=kghxAWs3KvcAA9Esk3NI7caumYgW6fiW8vRO1-MEndU,2735
27
+ claude_mpm/agents/templates/api_qa.json,sha256=Cjrf7DPp75WZRrZeJuXvU8Sp82cbVuVHu-Mvew-0aIo,18314
28
+ claude_mpm/agents/templates/code_analyzer.json,sha256=GYwBL7W1DgCQqAGP3_9JOATPbUS6q87vxgXxXDIpxyg,23994
29
+ claude_mpm/agents/templates/data_engineer.json,sha256=1xlnCPJM4IR8jlqh_wkV7G1x7uuo15afl1l7zo64yt8,17442
30
+ claude_mpm/agents/templates/documentation.json,sha256=beSvkbjHyBpGAmgxDt6e8FiVdxkM1mdJe9QTD1J1ySQ,24547
31
+ claude_mpm/agents/templates/engineer.json,sha256=xoEmi75yTyBNP-ICbtliVEOAMihpZWQ24sNlvghRWdI,11181
31
32
  claude_mpm/agents/templates/memory_manager.json,sha256=XgXZYJFXFsNHRzwl_qyIKF6jzBa0dv6DqoiU8uuzHvw,12613
32
- claude_mpm/agents/templates/ops.json,sha256=QVlUNxE6ohwUYLj9nGG7_E9J3NA4Q8re22WXa8Zg-U4,13779
33
+ claude_mpm/agents/templates/ops.json,sha256=x1_Qsv8oXKacmDfdTnZpfx1fiZmE5p95-ahXZ89QHRo,16040
33
34
  claude_mpm/agents/templates/project_organizer.json,sha256=MpnwngqsKb4bEfTsnwOJCs1AMV29FEkx2sf2f_PZo5Y,17162
34
- claude_mpm/agents/templates/qa.json,sha256=hNHlTT92r99ozH-TcBjmB5cMpUP09shCm2i7tK-v46g,14890
35
- claude_mpm/agents/templates/refactoring_engineer.json,sha256=02FSPaBHJW5Oc6jVp9BM10dbMfXXhVZRTE4gHaq557Y,17216
36
- claude_mpm/agents/templates/research.json,sha256=eSIjZXOlwn8N4ldiK84YsMpZeMmRYf8RvNQjNPkFd8Y,10909
37
- claude_mpm/agents/templates/security.json,sha256=VqJfSmc7HtKdima7CGPAbZ1hkOarrQ8_R_pV43utwBA,12350
38
- claude_mpm/agents/templates/ticketing.json,sha256=cia9bJmi8XZsewRgDAb71QJS5VAR0WccBwvh21pejWM,34907
39
- claude_mpm/agents/templates/version_control.json,sha256=-xq8ox6I9_QPvpxn3te-AJ04ZB4K69dK0AoAuhS74ss,11693
35
+ claude_mpm/agents/templates/qa.json,sha256=z1FUC4cmEfzv6zl9GQbr_U8oYkwfIxqxSqlAtH3P_iI,16842
36
+ claude_mpm/agents/templates/refactoring_engineer.json,sha256=IismqSVLgvEBL11AqEotouM6f0uoMuEEb5Am5r52o-g,21972
37
+ claude_mpm/agents/templates/research.json,sha256=18BQP7cPKEzdXH8CZFV0OoB1pj1reRlLB8Gt2fzvDHU,15216
38
+ claude_mpm/agents/templates/security.json,sha256=LRGVHNfUdB9EI-r7WsOdg8do4OxAMfV3BurlV_rY07o,14222
39
+ claude_mpm/agents/templates/ticketing.json,sha256=3Wd-uHfuj2yxUwdygVH8KcrGhhNS0w2OYUVyTSsMAsw,40191
40
+ claude_mpm/agents/templates/vercel_ops_agent.json,sha256=t_jjZeNThEYBJtntbSxR_grIr5nV_ktroJME_eXyx14,7926
41
+ claude_mpm/agents/templates/vercel_ops_instructions.md,sha256=yDf5_2IEC22t6CqZaKCpbk1PIccHt3BbbnQ6IbAay38,15500
42
+ claude_mpm/agents/templates/version_control.json,sha256=I_BudE8mEMWUwKYdkh36B-VraJwY7WLmOvgVTUJI3i0,13910
40
43
  claude_mpm/agents/templates/web_qa.json,sha256=HPShgnMvhzxJ6XX6NO4-XqGlG3B1gZLJg2egzZTYoPA,17813
41
- claude_mpm/agents/templates/web_ui.json,sha256=mdiBN8TlojYpU1Zw2hISPJeqWnz6TvjgGL-oeAKaTUc,22751
44
+ claude_mpm/agents/templates/web_ui.json,sha256=HD6BfYyX70UKVz076vw7YXOOXWkYX1ruD6NbgpysGgs,25734
42
45
  claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json,sha256=lLso4RHXVTQmX4A1XwF84kT59zZDblPO1xCgBj4S4x8,5060
43
46
  claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json,sha256=snfJW2yW9aMv9ldCSIWW7zwnyoQRx5u7xLMkNlfus9I,2258
44
47
  claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json,sha256=21o8TGCM9TO6eocSV9Ev5MmCq-xYwwCqMU7KQESaY2Q,8479
@@ -61,9 +64,9 @@ claude_mpm/cli/commands/cleanup.py,sha256=WsZK6eEjlMV3dnKByA0VYEkq3Ovvez7JiM1-YU
61
64
  claude_mpm/cli/commands/config.py,sha256=oM_rb6jSd6ZpGTo8YkaOPTIRocIVpLMrQqAhUxDZ5pg,9737
62
65
  claude_mpm/cli/commands/info.py,sha256=UgAwH97Zbr0tFhxqPj4dIFEsrlmPrgSzxvicue_oQ6g,2896
63
66
  claude_mpm/cli/commands/mcp.py,sha256=572RW4RaIxa2XLiv6QK2KwxLjdYqreWD1hVQQScURkk,7137
64
- claude_mpm/cli/commands/mcp_command_router.py,sha256=l_FbI8kyfMcjWMTdTKsbIkugcPvGPy3Bl9VAYv95KdU,5026
67
+ claude_mpm/cli/commands/mcp_command_router.py,sha256=XO4w0-bYX4Hw1pveZocsjBxGTzCTFI7NtraZQlA4hQA,8455
65
68
  claude_mpm/cli/commands/mcp_config_commands.py,sha256=TnTg7-erE5Z6O8C84o4lZITco72Wnu0FVlVF8tNVsP0,695
66
- claude_mpm/cli/commands/mcp_install_commands.py,sha256=mrrCtvWZeSVyGxivSSTPMpo2wWGsNNAsPM3-IZjY9Ms,2931
69
+ claude_mpm/cli/commands/mcp_install_commands.py,sha256=d4U6JFxCQAodGo-QNEOOc57ulcZVEwUZEhuuBSJx_Ok,9284
67
70
  claude_mpm/cli/commands/mcp_server_commands.py,sha256=_5iC8Iuroz_OwJCsMQ1CJKNNaGJl2616rf9s9xYb-_o,6503
68
71
  claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
69
72
  claude_mpm/cli/commands/memory.py,sha256=FhOF5pl-EVhkHRUErnlGlraBh_vM2fsOrZCsD07Fd1E,38397
@@ -76,7 +79,7 @@ claude_mpm/cli/parsers/__init__.py,sha256=z6xJz7lumf54qkqv5hvDYr3P1ib_MqvoxSW8-g
76
79
  claude_mpm/cli/parsers/agents_parser.py,sha256=KK2XQjheedr2OpQ2vGfH1iOWHYLgGgpNZx0yU5un_Aw,4576
77
80
  claude_mpm/cli/parsers/base_parser.py,sha256=XS0-ZsErT-SoWzhwXVa2jFJSZEqvMRK8v074TaWZtOA,11663
78
81
  claude_mpm/cli/parsers/config_parser.py,sha256=wp6NbV8_p9txP28MXFcQrri0JDIfGFM7u4aJbYJXcYQ,2699
79
- claude_mpm/cli/parsers/mcp_parser.py,sha256=SUwOagXlNP3qbRUvjuNU17plTyCD2ppJXBIPLQ0rmvw,5050
82
+ claude_mpm/cli/parsers/mcp_parser.py,sha256=ArxHmTpe3lOxgYlpqtIXBF_frq40f_EfPZqyIKBS65I,5857
80
83
  claude_mpm/cli/parsers/memory_parser.py,sha256=ZwCDxJEgp-w03L-1tZsWTgisiwamP42s424bA5bvDJc,4760
81
84
  claude_mpm/cli/parsers/monitor_parser.py,sha256=lkiAzMfU8DDdv5cJ-OHQ4sS5b-kcmACIuAwsqWkVdik,4453
82
85
  claude_mpm/cli/parsers/run_parser.py,sha256=blZYOZQI0kumQ6aRuk1Fn75Fbca5KrUTGiVomzdWIWA,4753
@@ -94,21 +97,21 @@ claude_mpm/core/__init__.py,sha256=xIIcZZv57QDkKs6SEs_3wd7kXKrI1imDa_9v8crCwEQ,8
94
97
  claude_mpm/core/agent_name_normalizer.py,sha256=NNQoglaVWsynV3p0ti6chQavjEdVT6o71Zyg4priZ54,8913
95
98
  claude_mpm/core/agent_registry.py,sha256=iH8i6F0SvtW2QjSh5UQ1w8DciXE1zluyLBwoqyfMWxo,19251
96
99
  claude_mpm/core/agent_session_manager.py,sha256=MolW5mHhKCN1VSPvzgMnLiXJGv7TRic0TNFQaJqs3kw,11054
97
- claude_mpm/core/base_service.py,sha256=ROXWZ2G9pKoORye9KNHQdQUhx-x7soa8PwgFY5IK1Iw,29073
100
+ claude_mpm/core/base_service.py,sha256=_G4y4-FLaXj2vEkidABiJ4Zb7zD5Uc3UebgYG3tOd4I,29398
98
101
  claude_mpm/core/cache.py,sha256=eE-5dW5scztLo8hqx1kuOnNamP4X_oO9E8Rz_QP4UDI,17224
99
102
  claude_mpm/core/claude_runner.py,sha256=m86M3emg76oIlYIe5zSjsnNuw9W52f21Da73q8yZ77o,31765
100
- claude_mpm/core/config.py,sha256=8-bbiPaKbux9VYOdaLDIAmgSmtsxQcF3vFfyMsorM4w,34945
103
+ claude_mpm/core/config.py,sha256=OK1eVHDdxXCsXWu2dZVIwGZTPNbHKpIPYyG6f3evgFU,36787
101
104
  claude_mpm/core/config_aliases.py,sha256=X8H0cwry7pPdvfnorB1s0paUNA7E989G0ZNSccYUKnE,9693
102
105
  claude_mpm/core/config_constants.py,sha256=i5gxsDPQjCCzp6EYcLljhTu2x-oSzlRM5-wNBnCYPqQ,9395
103
106
  claude_mpm/core/constants.py,sha256=6e_IMQMOeW3oMgUsLFGvbqzM8Sf4fDYMpn3rGpfWVhM,9561
104
107
  claude_mpm/core/container.py,sha256=SERH3YOH9BXtHbv-kWu0bViNpdcGccDXR0NXFXbw1Pc,32155
105
108
  claude_mpm/core/exceptions.py,sha256=lNVLqVuRjygHe89NJg1rPAyevVdzpLOKgHFMQtGSxdA,19654
106
109
  claude_mpm/core/factories.py,sha256=A7WcjYWjhkc-tzUnef0YaW0Jj8oxMP-7_g2jIj1XYa8,7265
107
- claude_mpm/core/framework_loader.py,sha256=VDoEjTYP2t1e2Mo7dBsHFkAw2QwtP_6g2YaxMLtYc6Q,66946
110
+ claude_mpm/core/framework_loader.py,sha256=iP5Z9od8Zj75RhSScsNUER6sZ-d07cFTcjCL7JCqC4Y,71019
108
111
  claude_mpm/core/hook_manager.py,sha256=N-54QwNsyrUZSrH533HAo6hlJKPFbgMeDirg92H8en8,11014
109
112
  claude_mpm/core/hook_performance_config.py,sha256=Cqf-89mjiLlFJ-v4PhxfzsaOVovYYQa5pa-RMm42Ki8,5748
110
113
  claude_mpm/core/injectable_service.py,sha256=HXuviYX-h0sNxOFzgZiYjf-gLDUnQIeG-0-KuWdfCzk,7397
111
- claude_mpm/core/interactive_session.py,sha256=L_UdxRBsvzGDLv0u6ySW-aRQ7XZbq2rlg1IFcM0rPWw,21701
114
+ claude_mpm/core/interactive_session.py,sha256=aPjv-9fflTcbgpCAGZe-MrlV-u3Dn_jBauamS8P5r_0,22246
112
115
  claude_mpm/core/interfaces.py,sha256=unClq54EgOIamVICS0G_LJzUa4gLXixqfDxiAvNjEkk,26914
113
116
  claude_mpm/core/lazy.py,sha256=to0DBciTUnWL9UO8o5bCVSgFCRHE1VtSrgX_B8qYg0Y,14724
114
117
  claude_mpm/core/logger.py,sha256=lzwREb0SBEXL-IkCRnJHK_GKuRaegNOx4CJltfAsNAE,15774
@@ -202,7 +205,8 @@ claude_mpm/models/agent_session.py,sha256=DQp7nkCUBQf3IaGV5DjCduTHoo-8tNxjn2ZpIS
202
205
  claude_mpm/scripts/__init__.py,sha256=IffMdVD99Pxyw85yluRa0VDPi4dRQecIWce764pcfZE,553
203
206
  claude_mpm/scripts/mcp_server.py,sha256=TiAZwuznT9Io_qeAWAuW9eWGoNm8_Y9u2D3cX1do90k,2260
204
207
  claude_mpm/scripts/mcp_wrapper.py,sha256=OPqjuQMLMZBDt84Dktt9KPwsEaIN-UM49OgcKrDwr0U,1125
205
- claude_mpm/scripts/socketio_daemon.py,sha256=qB_q6y8cqaGJMnEmCJ9zXdr8xbeZV27Y79f7cUs8qlY,12958
208
+ claude_mpm/scripts/socketio_daemon.py,sha256=O0IlxApfc7OSi8GKdUPUvnfvn8mh4fQKEAOQeVRNhRU,15858
209
+ claude_mpm/scripts/socketio_daemon_hardened.py,sha256=Lw1g4WC8Hu5EZgJQ0k08V-nIXrChzutc_MtaiSvu1xg,33812
206
210
  claude_mpm/scripts/socketio_server_manager.py,sha256=AUFNCsgRzvvZeazjsybocM-sxYm7S3cMoP0B4DdICNw,13958
207
211
  claude_mpm/scripts/start_activity_logging.py,sha256=1G9bFYiBSkpxSRXyKht73nL5gH-4zwukLutWWKAipGg,2869
208
212
  claude_mpm/services/__init__.py,sha256=xEDAI9qchdcunlxO--k6q3xK1e13R8kRIwjoYaZX-LA,7524
@@ -213,11 +217,11 @@ claude_mpm/services/command_handler_service.py,sha256=lPPq-QBY7zhbwbJU03Jg3sBDQ5
213
217
  claude_mpm/services/event_aggregator.py,sha256=EVmQSQKFpgLEBex6ufLp7giHlR1r9LFzFpffhKNlqVc,20209
214
218
  claude_mpm/services/exceptions.py,sha256=4OfgnVlkXNRpe2lxw2dGzxaNCKqJ51XH1UR3wYlt0Zc,26382
215
219
  claude_mpm/services/hook_service.py,sha256=wSeKJeoTrNjZ_wbjxy9NyI1Wm7EnuJsmgYFxTbCDag8,15832
216
- claude_mpm/services/memory_hook_service.py,sha256=izzQyoIU062Tia-dRYdBu5CN_hBqO5kNu5ULyfc73uk,8610
220
+ claude_mpm/services/memory_hook_service.py,sha256=dbKA54IwnmzbSbV1hdKkfqfoew-w2b1li-bB-RAhF4s,11449
217
221
  claude_mpm/services/port_manager.py,sha256=rtd9MoA2gTH83E8ZOzGay0UcbrIGz0KiOwNxQRXTFu4,22910
218
222
  claude_mpm/services/recovery_manager.py,sha256=XD-2lHhxsCzmk9p-xwMB07wSXefX0xFVUc6SLkpy8xo,25873
219
223
  claude_mpm/services/response_tracker.py,sha256=umJJ69RGN3C7vgLPBa47aNuM3l2il7eJ2e6Z7QM_ezA,9108
220
- claude_mpm/services/runner_configuration_service.py,sha256=QYsl1srbYxJR7h3-u_TzYwk8KSxHZz-On4YxdSFgvq0,21033
224
+ claude_mpm/services/runner_configuration_service.py,sha256=XkeWLv7RWAmFG7qlTnSFgeXNHsTShhDVB5abTz-E-xg,20971
221
225
  claude_mpm/services/session_management_service.py,sha256=w82Q9BXFbcYZTHc3rqh0Qw4yLqyj-GaR1RJfH-f-EPg,10089
222
226
  claude_mpm/services/socketio_client_manager.py,sha256=LV0wO7oZx3rgnoGeVww6e441gOSvB3qOZm9lO7xFS_8,18157
223
227
  claude_mpm/services/socketio_server.py,sha256=yE14_4pHERXBC5L1WQCpIBHuy0tpklsUY_icyl-nLkg,3033
@@ -231,7 +235,7 @@ claude_mpm/services/agents/deployment/__init__.py,sha256=d9l1uaf-G7v_mCxcz8OUQMF
231
235
  claude_mpm/services/agents/deployment/agent_config_provider.py,sha256=iH_N4Qi7gq_Pc4OYqsnaaX5KPVMlJ2dYkQS_PEVmLtY,13312
232
236
  claude_mpm/services/agents/deployment/agent_configuration_manager.py,sha256=VhwSYX1wYYnSQqfqmCpy9goPJ9f2eEA2_DFrdwtO7j4,12180
233
237
  claude_mpm/services/agents/deployment/agent_definition_factory.py,sha256=izcjZGLznts8khXD8wLViUbk_kPhnrqucLHFdfap_8c,2754
234
- claude_mpm/services/agents/deployment/agent_deployment.py,sha256=imA_m0LuqM5SzF9FLGgDO3is2hRBTPMv5M3DS7afFf8,44867
238
+ claude_mpm/services/agents/deployment/agent_deployment.py,sha256=bxuqi0T7tk40sJDexhiuLwjdLOAdYNLrYAiWQYa27Yc,47943
235
239
  claude_mpm/services/agents/deployment/agent_discovery_service.py,sha256=0z1y1OXZUt2vJEmY0RCD0KSvSiG7KkpqT68wVVfNEDY,13438
236
240
  claude_mpm/services/agents/deployment/agent_environment_manager.py,sha256=Tx-fqnRmd-XV8goqUv3M6dtfthc98hrh7-Xcvs3QKYU,9936
237
241
  claude_mpm/services/agents/deployment/agent_filesystem_manager.py,sha256=dKDsweubspi-x0X97ah_Ffw1LRPWttD2JKtryrwhjhw,13004
@@ -245,7 +249,7 @@ claude_mpm/services/agents/deployment/agent_validator.py,sha256=SOjLoAQoUroa6Stu
245
249
  claude_mpm/services/agents/deployment/agent_version_manager.py,sha256=QH6LWmgBfT0EIgvV1W6ihCl18833Hg3I24MEVfuTYnI,10839
246
250
  claude_mpm/services/agents/deployment/agent_versioning.py,sha256=HVejWr4AAQq8wEP4wxAiCntG_PielWQPnVICmEfNQNs,1002
247
251
  claude_mpm/services/agents/deployment/agents_directory_resolver.py,sha256=GlTcA9Tpa73XXaNuPIhRoS3z6sKP88iYJU1G1fH4eUg,3101
248
- claude_mpm/services/agents/deployment/async_agent_deployment.py,sha256=JldTVkbfSxYeFl8CkgVWMqNxkNo6uyRGzzhXtRrspAY,25100
252
+ claude_mpm/services/agents/deployment/async_agent_deployment.py,sha256=1Ij6PDj3nVboSp7_6cN1YPk-8QcbvqeXrHfe96dnZMQ,28221
249
253
  claude_mpm/services/agents/deployment/deployment_config_loader.py,sha256=Wlm64Ovb-9qgm6F4AOMoBNsUb796Ixe0lDh8gRvKO3o,1935
250
254
  claude_mpm/services/agents/deployment/deployment_type_detector.py,sha256=Zq4BzJMI-t3NWHc7pxou5wwz-UPUjZ5gi46Uu4yXeaQ,4380
251
255
  claude_mpm/services/agents/deployment/interface_adapter.py,sha256=bZmO4vF8Dnt0Ea8SgpIMHXPs6kMubSBDA-rN6ZH8hGQ,8143
@@ -298,7 +302,7 @@ claude_mpm/services/agents/management/__init__.py,sha256=dZcFI9EBajH2KbCoNQWAFQ0
298
302
  claude_mpm/services/agents/management/agent_capabilities_generator.py,sha256=2j5yoyCXhsK41Bpr8gDAS6jXKhTI_lyYPkTa2djPls4,7002
299
303
  claude_mpm/services/agents/management/agent_management_service.py,sha256=ek8qGMHqyAb2kks4GG0GpS123dl-zyhRas9pnn6fUy8,23027
300
304
  claude_mpm/services/agents/memory/__init__.py,sha256=V7Sgx3ISF--XN2pJzk_XduOHxWNxZ0I2H9xOTsV46K8,608
301
- claude_mpm/services/agents/memory/agent_memory_manager.py,sha256=gQSUGd5LWRmqWYF5FksDbR0ho7IAwZBJCwVAx1jzTGA,54788
305
+ claude_mpm/services/agents/memory/agent_memory_manager.py,sha256=nsEgTYOAl0Co6PdNHNT0vEJH4_0npWNrt6lcq6iCtsQ,48124
302
306
  claude_mpm/services/agents/memory/agent_persistence_service.py,sha256=mx67hEZtpMG-fom_qUvOL0U8HSWam1F55LJj4g4k3nw,2783
303
307
  claude_mpm/services/agents/memory/content_manager.py,sha256=do1FvWS4ER_-XVRmu7OJ70SLeDsfPJOv8aZ0otMazAg,18728
304
308
  claude_mpm/services/agents/memory/template_generator.py,sha256=hGYp6l8Wc7qjTgDNDUCwbsRWmSJXjfXWsfch26nVKiA,3845
@@ -387,9 +391,9 @@ claude_mpm/services/socketio/handlers/memory.py,sha256=0RltTwhXPhBZEpqSYFoXmVuSJ
387
391
  claude_mpm/services/socketio/handlers/project.py,sha256=_SbSRZ54IivtHWtfl4sKfbgRQL6sKaqVM5Rsxvql5JQ,789
388
392
  claude_mpm/services/socketio/handlers/registry.py,sha256=LiPfkRLGj0LLicWapRTnDzoqpPLr8UeE_TrXhZONqaU,6002
389
393
  claude_mpm/services/socketio/server/__init__.py,sha256=a5SYqKHCER3ger9dv4_P-RmLtND6pHd-2VFSrP04Gqo,640
390
- claude_mpm/services/socketio/server/broadcaster.py,sha256=xRlEQBtIHxgnE2x7t0WN9PlPDaThudS-5FcZl2rFOc4,19063
391
- claude_mpm/services/socketio/server/core.py,sha256=mvIIV80WLOPWhs16JM17nA9Nwoo9j8anBc-sjaalp4c,14433
392
- claude_mpm/services/socketio/server/main.py,sha256=74tMkSW0kC3kgJjYhW89kjiwfYT6liIuUg78PbmH08M,12654
394
+ claude_mpm/services/socketio/server/broadcaster.py,sha256=hQ7xqnSrnOwtjM6O4cZ8Ih_KRrQ8r2UHIzJptD4puaY,20626
395
+ claude_mpm/services/socketio/server/core.py,sha256=oPJGH8iflbRk73Rnw6mqCyh54S2hjsKBQ-ReC2e_QeI,14685
396
+ claude_mpm/services/socketio/server/main.py,sha256=3_2_j4kIHl2Xwz1Vq1rAlXYhV9OGWDTL4ekeCcbEWps,13501
393
397
  claude_mpm/services/version_control/__init__.py,sha256=xj13GwrNw4t1KieGlmw62hj14HPj2BWP2Tlv-9E_tTE,1510
394
398
  claude_mpm/services/version_control/branch_strategy.py,sha256=XsmXwB98-zoTGKsM27fPS813tcKaJwgB7DWilgKKhio,23232
395
399
  claude_mpm/services/version_control/conflict_resolution.py,sha256=RM5cFxlEmvqS3SeCwMYAkhTu5UTIGlhI2Kgh2Yw7VO0,26381
@@ -418,9 +422,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=e74VlIPozCljZss_0SwLO3J1ZuIKRT9FrrFi
418
422
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
419
423
  claude_mpm/validation/agent_validator.py,sha256=szbK9d29v_T6xE_KvW845WLKXbS_yYpXQscrSrSeldI,20937
420
424
  claude_mpm/validation/frontmatter_validator.py,sha256=Q_aTyjigfKZQG7eSwLtwMfd0h_eyS9FQAm59ZFf5VYA,7036
421
- claude_mpm-4.0.20.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
422
- claude_mpm-4.0.20.dist-info/METADATA,sha256=yAryBq9lAiVzg-V8RYwICULf2jMQWzpryTxXSljsDPQ,11883
423
- claude_mpm-4.0.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
424
- claude_mpm-4.0.20.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
425
- claude_mpm-4.0.20.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
426
- claude_mpm-4.0.20.dist-info/RECORD,,
425
+ claude_mpm-4.0.23.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
426
+ claude_mpm-4.0.23.dist-info/METADATA,sha256=-viRnbmxmEzT8LdEi3Qw_K8IAZtQCs6Ijqf6GTif0ss,11883
427
+ claude_mpm-4.0.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
428
+ claude_mpm-4.0.23.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
429
+ claude_mpm-4.0.23.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
430
+ claude_mpm-4.0.23.dist-info/RECORD,,