claude-mpm 5.6.13__py3-none-any.whl → 5.6.14__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 (48) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/cli/commands/commander.py +173 -3
  3. claude_mpm/cli/parsers/commander_parser.py +41 -8
  4. claude_mpm/cli/startup.py +10 -1
  5. claude_mpm/cli/startup_display.py +2 -1
  6. claude_mpm/commander/__init__.py +6 -0
  7. claude_mpm/commander/adapters/__init__.py +32 -3
  8. claude_mpm/commander/adapters/auggie.py +260 -0
  9. claude_mpm/commander/adapters/base.py +98 -1
  10. claude_mpm/commander/adapters/claude_code.py +32 -1
  11. claude_mpm/commander/adapters/codex.py +237 -0
  12. claude_mpm/commander/adapters/example_usage.py +310 -0
  13. claude_mpm/commander/adapters/mpm.py +389 -0
  14. claude_mpm/commander/adapters/registry.py +204 -0
  15. claude_mpm/commander/api/app.py +32 -16
  16. claude_mpm/commander/api/routes/messages.py +11 -11
  17. claude_mpm/commander/api/routes/projects.py +20 -20
  18. claude_mpm/commander/api/routes/sessions.py +19 -21
  19. claude_mpm/commander/api/routes/work.py +86 -50
  20. claude_mpm/commander/api/schemas.py +4 -0
  21. claude_mpm/commander/chat/cli.py +4 -0
  22. claude_mpm/commander/daemon.py +139 -9
  23. claude_mpm/commander/env_loader.py +59 -0
  24. claude_mpm/commander/memory/__init__.py +45 -0
  25. claude_mpm/commander/memory/compression.py +347 -0
  26. claude_mpm/commander/memory/embeddings.py +230 -0
  27. claude_mpm/commander/memory/entities.py +310 -0
  28. claude_mpm/commander/memory/example_usage.py +290 -0
  29. claude_mpm/commander/memory/integration.py +325 -0
  30. claude_mpm/commander/memory/search.py +381 -0
  31. claude_mpm/commander/memory/store.py +657 -0
  32. claude_mpm/commander/registry.py +10 -4
  33. claude_mpm/commander/work/executor.py +22 -12
  34. claude_mpm/core/output_style_manager.py +34 -7
  35. claude_mpm/hooks/claude_hooks/auto_pause_handler.py +0 -0
  36. claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
  37. claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  38. claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
  39. claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
  40. claude_mpm/hooks/templates/pre_tool_use_template.py +0 -0
  41. claude_mpm/scripts/start_activity_logging.py +0 -0
  42. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/METADATA +2 -2
  43. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/RECORD +41 -27
  44. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/WHEEL +0 -0
  45. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/entry_points.txt +0 -0
  46. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/licenses/LICENSE +0 -0
  47. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  48. {claude_mpm-5.6.13.dist-info → claude_mpm-5.6.14.dist-info}/top_level.txt +0 -0
@@ -51,16 +51,19 @@ class WorkExecutor:
51
51
 
52
52
  logger.debug(f"Initialized WorkExecutor for project {queue.project_id}")
53
53
 
54
- async def execute_next(self) -> bool:
54
+ async def execute_next(self, pane_target: Optional[str] = None) -> bool:
55
55
  """Execute next available work item.
56
56
 
57
57
  Gets next work from queue, starts it, and executes via RuntimeExecutor.
58
58
 
59
+ Args:
60
+ pane_target: Optional tmux pane target for execution
61
+
59
62
  Returns:
60
63
  True if work was executed, False if queue empty/blocked
61
64
 
62
65
  Example:
63
- >>> executed = await executor.execute_next()
66
+ >>> executed = await executor.execute_next("%5")
64
67
  >>> if not executed:
65
68
  ... print("No work available")
66
69
  """
@@ -71,10 +74,12 @@ class WorkExecutor:
71
74
  return False
72
75
 
73
76
  # Execute the work item
74
- await self.execute(work_item)
77
+ await self.execute(work_item, pane_target)
75
78
  return True
76
79
 
77
- async def execute(self, work_item: WorkItem) -> None:
80
+ async def execute(
81
+ self, work_item: WorkItem, pane_target: Optional[str] = None
82
+ ) -> None:
78
83
  """Execute a specific work item.
79
84
 
80
85
  Marks work as IN_PROGRESS and sends to RuntimeExecutor.
@@ -83,12 +88,13 @@ class WorkExecutor:
83
88
 
84
89
  Args:
85
90
  work_item: WorkItem to execute
91
+ pane_target: Optional tmux pane target for execution
86
92
 
87
93
  Raises:
88
94
  RuntimeError: If execution fails
89
95
 
90
96
  Example:
91
- >>> await executor.execute(work_item)
97
+ >>> await executor.execute(work_item, "%5")
92
98
  """
93
99
  # Mark as in progress
94
100
  if not self.queue.start(work_item.id):
@@ -103,17 +109,21 @@ class WorkExecutor:
103
109
  )
104
110
 
105
111
  try:
106
- # Send work content to runtime
107
- # Note: In actual implementation, this would integrate with
108
- # ProjectSession which manages the pane_target
109
- # For now, we assume runtime has active session
110
- # This will be properly integrated when wiring with ProjectSession
112
+ # Send work content to runtime if pane target provided
113
+ if pane_target:
114
+ await self.runtime.send_message(pane_target, work_item.content)
115
+ logger.info(
116
+ f"Work item {work_item.id} sent to pane {pane_target} for execution"
117
+ )
118
+ else:
119
+ logger.warning(
120
+ f"No pane target provided for work item {work_item.id}, "
121
+ f"work marked as in-progress but not sent to runtime"
122
+ )
111
123
 
112
124
  # Store work item ID in metadata for callback tracking
113
125
  work_item.metadata["execution_started"] = True
114
126
 
115
- logger.info(f"Work item {work_item.id} sent to runtime for execution")
116
-
117
127
  except Exception as e:
118
128
  logger.error(f"Failed to execute work item {work_item.id}: {e}")
119
129
  await self.handle_failure(work_item.id, str(e))
@@ -297,6 +297,9 @@ class OutputStyleManager:
297
297
  target_path = style_config["target"]
298
298
  style_name = style_config["name"]
299
299
 
300
+ # Check if this is a fresh install (file doesn't exist yet)
301
+ is_fresh_install = not target_path.exists()
302
+
300
303
  # If content not provided, read from source
301
304
  if content is None:
302
305
  content = self.extract_output_style_content(style=style)
@@ -310,7 +313,9 @@ class OutputStyleManager:
310
313
 
311
314
  # Activate the style if requested
312
315
  if activate:
313
- self._activate_output_style(style_name)
316
+ self._activate_output_style(
317
+ style_name, is_fresh_install=is_fresh_install
318
+ )
314
319
 
315
320
  return True
316
321
 
@@ -318,12 +323,21 @@ class OutputStyleManager:
318
323
  self.logger.error(f"Failed to deploy {style} style: {e}")
319
324
  return False
320
325
 
321
- def _activate_output_style(self, style_name: str = "Claude MPM") -> bool:
326
+ def _activate_output_style(
327
+ self, style_name: str = "Claude MPM", is_fresh_install: bool = False
328
+ ) -> bool:
322
329
  """
323
330
  Update Claude Code settings to activate a specific output style.
324
331
 
332
+ Only activates the style if:
333
+ 1. No active style is currently set (first deployment), OR
334
+ 2. This is a fresh install (style file didn't exist before deployment)
335
+
336
+ This preserves user preferences if they've manually changed their active style.
337
+
325
338
  Args:
326
339
  style_name: Name of the style to activate (e.g., "Claude MPM", "Claude MPM Teacher")
340
+ is_fresh_install: Whether this is a fresh install (style file didn't exist before)
327
341
 
328
342
  Returns:
329
343
  True if activated successfully, False otherwise
@@ -342,8 +356,12 @@ class OutputStyleManager:
342
356
  # Check current active style
343
357
  current_style = settings.get("activeOutputStyle")
344
358
 
345
- # Update active output style if different
346
- if current_style != style_name:
359
+ # Only set activeOutputStyle if:
360
+ # 1. No active style is set (first deployment), OR
361
+ # 2. This is a fresh install (file didn't exist before deployment)
362
+ should_activate = current_style is None or is_fresh_install
363
+
364
+ if should_activate and current_style != style_name:
347
365
  settings["activeOutputStyle"] = style_name
348
366
 
349
367
  # Ensure settings directory exists
@@ -358,7 +376,10 @@ class OutputStyleManager:
358
376
  f"✅ Activated {style_name} output style (was: {current_style or 'none'})"
359
377
  )
360
378
  else:
361
- self.logger.debug(f"{style_name} output style already active")
379
+ self.logger.debug(
380
+ f"Preserving user preference: {current_style or 'none'} "
381
+ f"(skipping activation of {style_name})"
382
+ )
362
383
 
363
384
  return True
364
385
 
@@ -452,6 +473,10 @@ class OutputStyleManager:
452
473
  """
453
474
  results: Dict[str, bool] = {}
454
475
 
476
+ # Check if professional style exists BEFORE deployment
477
+ # This determines if this is a fresh install
478
+ professional_style_existed = self.styles["professional"]["target"].exists()
479
+
455
480
  for style_type_key in self.styles:
456
481
  # Deploy without activation
457
482
  # Cast is safe because we know self.styles keys are OutputStyleType
@@ -459,9 +484,11 @@ class OutputStyleManager:
459
484
  success = self.deploy_output_style(style=style_type, activate=False)
460
485
  results[style_type] = success
461
486
 
462
- # Activate the default style if requested
487
+ # Activate the default style if requested AND this is first deployment
463
488
  if activate_default and results.get("professional", False):
464
- self._activate_output_style("Claude MPM")
489
+ self._activate_output_style(
490
+ "Claude MPM", is_fresh_install=not professional_style_existed
491
+ )
465
492
 
466
493
  return results
467
494
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.6.13
3
+ Version: 5.6.14
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
@@ -23,7 +23,7 @@ License-File: LICENSE
23
23
  License-File: LICENSE-FAQ.md
24
24
  Requires-Dist: ai-trackdown-pytools>=1.4.0
25
25
  Requires-Dist: pyyaml>=6.0
26
- Requires-Dist: python-dotenv>=0.19.0
26
+ Requires-Dist: python-dotenv>=1.0.0
27
27
  Requires-Dist: click>=8.0.0
28
28
  Requires-Dist: pexpect>=4.8.0
29
29
  Requires-Dist: psutil>=5.9.0
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
2
- claude_mpm/VERSION,sha256=ZrTpz3bolbYqLISSD7E_ue7APgTX0vbtj_G5SRWWxOI,7
2
+ claude_mpm/VERSION,sha256=N3JXgSQF14_WNnDj_WQaXFRyVIXk9kjTMKcZXD7xw-M,7
3
3
  claude_mpm/__init__.py,sha256=AGfh00BHKvLYD-UVFw7qbKtl7NMRIzRXOWw7vEuZ-h4,2214
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=pz3lTrZZR5HhV3eZzYtIbtBwWo7iM6pkBHP_ixxmI6Y,6827
@@ -42,8 +42,8 @@ claude_mpm/cli/chrome_devtools_installer.py,sha256=efA_ZX1iR3oaJi3222079BQw6DEG8
42
42
  claude_mpm/cli/executor.py,sha256=eerqDVszBfTm8N2FgreLr-132Jb9BVZGNrrukvb_b-I,15106
43
43
  claude_mpm/cli/helpers.py,sha256=CypEhw0tbNH6_GzVTaQdi4w7ThCWO43Ep92YbJzPR4I,3638
44
44
  claude_mpm/cli/parser.py,sha256=Vqx9n-6Xo1uNhXR4rThmgWpZXTr0nOtkgDf3oMS9b0g,5855
45
- claude_mpm/cli/startup.py,sha256=d0sATrAARpHeRsltUsXTS8sC50I2k0JSCKtEv5opcqo,63591
46
- claude_mpm/cli/startup_display.py,sha256=2b7cIow39gUFdJyarh9lv4uvnicnCWml-onUbKnGGWY,17132
45
+ claude_mpm/cli/startup.py,sha256=q0q4ixGbboysdils2ptnEUll4f0iMooX0g2briB77P0,63711
46
+ claude_mpm/cli/startup_display.py,sha256=KI4GZ0uVoK7FXeK5jsS4JAyaKaKf5rCkY3h5tNeEY7M,17209
47
47
  claude_mpm/cli/startup_logging.py,sha256=wHokzcCA0AJPxAqFrpY5PMOBh1iOhdhgP1gY1OvD0gY,29392
48
48
  claude_mpm/cli/utils.py,sha256=5e3v-ow1gd-5nlad9OWCsL-3SRJcPjBJ9HS3zygwkiQ,8988
49
49
  claude_mpm/cli/commands/__init__.py,sha256=-JkPmY_gq6ZZSyw1F9K0mc5CRXwZurVq1HXvxf2mhaI,1342
@@ -61,7 +61,7 @@ claude_mpm/cli/commands/auto_configure.py,sha256=0Suzil6O0SBNeHUCwHOkt2q7gfuXRTy
61
61
  claude_mpm/cli/commands/autotodos.py,sha256=mm2R6dIfHOjAMCgFkjfjBzdFQ-ou19b_R3Lo0Vi8vCI,19428
62
62
  claude_mpm/cli/commands/cleanup.py,sha256=RQikOGLuLFWXzjeoHArdr5FA4Pf7tSK9w2NXL4vCrok,19769
63
63
  claude_mpm/cli/commands/cleanup_orphaned_agents.py,sha256=JR8crvgrz7Sa6d-SI-gKywok5S9rwc_DzDVk_h85sVs,4467
64
- claude_mpm/cli/commands/commander.py,sha256=tt0SilfdMzmqpQlYaFu2RB9Jd5z6uETlDoANmzrmidg,1294
64
+ claude_mpm/cli/commands/commander.py,sha256=HTMC9mOYDCQK40gE7MIibMyL5SqilToqlLFdwDbNcSU,7209
65
65
  claude_mpm/cli/commands/config.py,sha256=2M9VUPYcQkBUCIyyB-v1qTL3xYvao9YI2l_JGBUDauA,23374
66
66
  claude_mpm/cli/commands/configure.py,sha256=VUokhUcV90GzEEivV3xNmfQHogM94mdDadW3S4mp83M,136509
67
67
  claude_mpm/cli/commands/configure_agent_display.py,sha256=oSvUhR861o_Pyqmop4ACAQNjwL02-Rf6TMqFvmQNh24,10575
@@ -125,7 +125,7 @@ claude_mpm/cli/parsers/analyze_code_parser.py,sha256=cpJSMFbc3mqB4qrMBIEZiikzPek
125
125
  claude_mpm/cli/parsers/analyze_parser.py,sha256=E00Ao0zwzbJPchs_AJt-aoQ7LQEtJPXRCNQ6Piivb4o,3908
126
126
  claude_mpm/cli/parsers/auto_configure_parser.py,sha256=CZOk_nJZrNtRo8WnYWQKdfXywq6l6ZLMHU7U9hA7A_4,3699
127
127
  claude_mpm/cli/parsers/base_parser.py,sha256=ofGa86qKDdY3DjtF3AGmouGNP9sM2xqzHwSFlvHsEAI,22341
128
- claude_mpm/cli/parsers/commander_parser.py,sha256=c74Qz_gYE_4YLfdQAVi2DR_m-HKb4KyQIvpag8ZtTCc,2560
128
+ claude_mpm/cli/parsers/commander_parser.py,sha256=bxLxM58wqkyTuccz2Rm_1uve0HjXdxDggW9UWDI16N8,3389
129
129
  claude_mpm/cli/parsers/config_parser.py,sha256=i8kv6XWhftzZlEBruAl58Fl6IcyeOb7QVkfPeEayjCk,6255
130
130
  claude_mpm/cli/parsers/configure_parser.py,sha256=t3cwAQX3BfljDDRJH3i0LplpRprw5jdKcI9Uy3M8xtE,4382
131
131
  claude_mpm/cli/parsers/dashboard_parser.py,sha256=JBCM6v_iZhADr_Fwtk_d3up9AOod1avMab-vkNE61gE,3460
@@ -151,31 +151,37 @@ claude_mpm/cli_module/__init__.py,sha256=OU0dPrHYOzNKGDoUyyGYieSBVyf-MnEAikJOg2R
151
151
  claude_mpm/cli_module/args.py,sha256=50_Y3AgMNeidtPjQ5-WZ1o-5Y7G2GAGQwMmllYjVScE,8464
152
152
  claude_mpm/cli_module/commands.py,sha256=7ZzLm_R0wUkuYV1Hqe1BUDsP8b3BH33i5arkSEugm3U,7013
153
153
  claude_mpm/cli_module/migration_example.py,sha256=DtQ59RyoBD6r8FIfrjKXCQ8-xnUiOqP5McBiS6_W1Qc,5183
154
- claude_mpm/commander/__init__.py,sha256=8NjmTnvUzWm_UrTunHj3Gt3PFUq0XNtNj1o1p1puiTo,2186
154
+ claude_mpm/commander/__init__.py,sha256=A0RW9NLHzwgMfGP4ByD6f4E1YZmlwNkgycNMMp6zxf0,2458
155
155
  claude_mpm/commander/config.py,sha256=b9HUNN7LY8tHU4XkLzpuoVdHUZcgC-3by39fRYOg32Q,1583
156
156
  claude_mpm/commander/config_loader.py,sha256=H2ASh19-Nu1Ej4_ojhuIQMU9fR4sMHTsA8fiXocoosE,3736
157
- claude_mpm/commander/daemon.py,sha256=6cD5KFx97CetYxusC-oGpdYnBaHPz7PejRv4VI4L66U,16186
157
+ claude_mpm/commander/daemon.py,sha256=oxwskLLzyNJBiEEwOXXvHkfF-eakA5A8AR5hYtMg4KU,21547
158
+ claude_mpm/commander/env_loader.py,sha256=2qf_b4PNsf4TkNzE9xcZotQjTokEdBqjDfPVN6taqY0,1911
158
159
  claude_mpm/commander/instance_manager.py,sha256=H37wjQkeeIQV5l-0q_ycDk1theU3eT1gg3b-Lbncirw,10790
159
160
  claude_mpm/commander/project_session.py,sha256=z_vhKcvla8WPmXS1MBl-Iki6oFxNug-YUdHMm15r6H0,9356
160
- claude_mpm/commander/registry.py,sha256=WcPUgZQnCWahrYvl_8GL8xvgikhlPjyJihylhWCIyvc,12878
161
+ claude_mpm/commander/registry.py,sha256=vytUc4xpaExA5arRxJnWCw4jb0JhN7t0N_sNJiA49Vs,13203
161
162
  claude_mpm/commander/tmux_orchestrator.py,sha256=uDnMQlzhEt1Ki8DTORpxi7lVtwIvN9n0aTA_5m8EycE,11243
162
- claude_mpm/commander/adapters/__init__.py,sha256=jRtMUAaT_592Tmgjyna9vhLJKfhpZ9QeD-x6om8Engg,856
163
- claude_mpm/commander/adapters/base.py,sha256=Xx9sloqHg_jNluDexL6wjYskCHLXzhZuEEtjNIMxYb0,5640
164
- claude_mpm/commander/adapters/claude_code.py,sha256=YGWZN9Y3QUdYC0mHQ-D5su7PDT6bCcaRK7jzgZbaG1A,12015
163
+ claude_mpm/commander/adapters/__init__.py,sha256=DLx0iMpxFqzdb7_ezeA3cJ5sGR4WfovyL2PpdLIcvDQ,1627
164
+ claude_mpm/commander/adapters/auggie.py,sha256=tZs91FHsWnJ1SwiXz_bPrhD_Dkhk-xWJcet_D2QiXVM,8184
165
+ claude_mpm/commander/adapters/base.py,sha256=bAaPGIvw5n0mn3zkbxWeQqcg_KjKwcBonLJJpGX-4wk,8732
166
+ claude_mpm/commander/adapters/claude_code.py,sha256=EZbfcqmWR3b17AzIwP3H8YullX3Idk3wG0L_yF17_HY,13175
167
+ claude_mpm/commander/adapters/codex.py,sha256=f-kvabP0C4mtCHClo4-jBoJncOdD9sEfZbZpdHYdNkU,7204
165
168
  claude_mpm/commander/adapters/communication.py,sha256=Gs_vmQ630a_CQLS1x0B0lgcQCOfW82_VZeqto3a9ZYQ,11707
169
+ claude_mpm/commander/adapters/example_usage.py,sha256=LZNyUqqJuECovyvr1Y1ZpqM_Zzf5qdWEUiTZwFr7A-4,9092
170
+ claude_mpm/commander/adapters/mpm.py,sha256=MU8UkJ54Le_zp4Gtjq8QK-_jQShkLR2AKWztceN-WfA,12573
171
+ claude_mpm/commander/adapters/registry.py,sha256=3UG3JxyJxN1jv6h1rTGBHf4PpK8CLt6qSv9z_I-kq6o,6137
166
172
  claude_mpm/commander/api/__init__.py,sha256=I73MajIx-r6iIEYVJ4eHo-InMwfKOruN78VXF_eMEIk,376
167
- claude_mpm/commander/api/app.py,sha256=r7swU1wF0frST6zOObcBjq9VM45VfDHT4aNldAjEPKc,3129
173
+ claude_mpm/commander/api/app.py,sha256=SIcDoJqPW7Dqdje8Wb0HVpVMgUcmux8NAZRj1DeiJP0,3743
168
174
  claude_mpm/commander/api/errors.py,sha256=cBwHbC-rt543ZmE1DNLFv5XBqeUD58z7f4fGJF1x5uA,3590
169
- claude_mpm/commander/api/schemas.py,sha256=VmoBRP4NUIIvkH0Do3af3nxXS3Q97sYCJpJurv20tXU,4933
175
+ claude_mpm/commander/api/schemas.py,sha256=cJtBr63IqMVnLguJFgacFswmcU9tOvXv3bQg953IwOw,5129
170
176
  claude_mpm/commander/api/routes/__init__.py,sha256=xI13W9tT4zYGaCotLMw4rKpGDhjkvi1YqNRoLh-8E5I,229
171
177
  claude_mpm/commander/api/routes/events.py,sha256=XxSEpRdcty9cSrkRMjEMALktqZfcGGx5n-rHexGFZSs,4879
172
178
  claude_mpm/commander/api/routes/inbox.py,sha256=edwse_fHITO_jICd3kOTGFim41tx2GbB0MN55Mg036M,5276
173
- claude_mpm/commander/api/routes/messages.py,sha256=-jhR8jYd_CwhVW0WeM4un9WLzSMueLAhMrDrg080E5A,3916
174
- claude_mpm/commander/api/routes/projects.py,sha256=rN27P4D45Qzp0kE49PCM1bonLI4ZS65-q-u-3HprRto,7226
175
- claude_mpm/commander/api/routes/sessions.py,sha256=LWlehH534YVoPl_4Cfhxa_GePRbRnYQ49hXf3e70x0s,6275
176
- claude_mpm/commander/api/routes/work.py,sha256=BKx9fd7iqvgxYUDm1stui7TGev6dfhuvP3X-_8pC2-U,7257
179
+ claude_mpm/commander/api/routes/messages.py,sha256=Lr11555gvfWk2XO2OlVtgqZ3UDykT7RA_hYn10Kw9fw,4046
180
+ claude_mpm/commander/api/routes/projects.py,sha256=hvDZW5Bq68Im7zJ6Lwe0RMySHJMoZymdwhdL891TRtY,7470
181
+ claude_mpm/commander/api/routes/sessions.py,sha256=_hIZk2HsYevtesaiuDRmb38UGGVycLFwawT1BjI5fFA,6509
182
+ claude_mpm/commander/api/routes/work.py,sha256=4rUvWSGvE2V7DT3hYvJNd8aECabTnGC_pcZVo_0gXCk,8853
177
183
  claude_mpm/commander/chat/__init__.py,sha256=5Iiya2YPkF54OvtZgL4NNT0zp5PCsZnnE7D6l19aYnA,243
178
- claude_mpm/commander/chat/cli.py,sha256=mHWEXjDll7OFIi2frTwfMs0wnJ71aFkFHX3vJr_iEGM,3151
184
+ claude_mpm/commander/chat/cli.py,sha256=neu4B5YLjR-IiVPByVS1YKOOPUytepbEZDyBIqNxixA,3262
179
185
  claude_mpm/commander/chat/commands.py,sha256=0Lvc4XT1k-0gpmLxhzgwVNw7IXc40kgZ9YqTVF0vxxk,2440
180
186
  claude_mpm/commander/chat/repl.py,sha256=c7Qi4qBg32b-JQyBKSNGadSWmmUrU7vBpFOkCV94QwU,10999
181
187
  claude_mpm/commander/core/__init__.py,sha256=BVtJoH9hn9LtlmtqPBybPowbPfiKNaNgtotLV82JRQk,357
@@ -194,6 +200,14 @@ claude_mpm/commander/inbox/models.py,sha256=-fSVvpokWY4-da9JscMOrILz3omqTLk18Z7_
194
200
  claude_mpm/commander/llm/__init__.py,sha256=f8L4ClJPc_3Qn-oV0PZ7ErLMi_i_3g892z5eS51roJ0,250
195
201
  claude_mpm/commander/llm/openrouter_client.py,sha256=ovnb1w7fypj3vRvey3EDFf7CB4vO_pzTkH3az_sAMSk,5450
196
202
  claude_mpm/commander/llm/summarizer.py,sha256=kGJNYJ9Bkmdk2HoJkNqzG8uAsS0FEsv5hnV2GaZF6tM,1963
203
+ claude_mpm/commander/memory/__init__.py,sha256=FSaSrkxvTtqKhSPEZr9TBQafDnxMGnxbB28BL6X0jeY,1417
204
+ claude_mpm/commander/memory/compression.py,sha256=RjgCYvRtY_16wbvW3_U7yQa0CfcbJIj0Y3cmgLIxeTY,11266
205
+ claude_mpm/commander/memory/embeddings.py,sha256=1arPcfhpqex8Kt2NnYh--RypwwFzjgVzPA2d8-8WC3M,7269
206
+ claude_mpm/commander/memory/entities.py,sha256=p-eTQU1RQ5tFugl0FX4Xl-BtzzhDvj5sE3ApvViAEG8,9894
207
+ claude_mpm/commander/memory/example_usage.py,sha256=6jbzp0HNlQhC_WSfSo-bGkSp5-khXQfLDpc-UR80CiQ,8804
208
+ claude_mpm/commander/memory/integration.py,sha256=JWak3uOj9LH0fJ-pI5soxDYmG6mMU07RUSQJdGqozUs,10741
209
+ claude_mpm/commander/memory/search.py,sha256=9RinmRuVVoNBy0Hry3bwyzb53LpaHzgcBXBDQFAeBIQ,12820
210
+ claude_mpm/commander/memory/store.py,sha256=UkoqEXhBskOg_LFxrlXI1g0NZJDnnKTa8JKh49rZlAI,21781
197
211
  claude_mpm/commander/models/__init__.py,sha256=qq7uzc03aUqge-KsPxCsU46OnQPHpYRLmmQ8oFge3vg,419
198
212
  claude_mpm/commander/models/events.py,sha256=PaPLaAl6h7oLsB1Tj0gv_XJ0O5cJvW3QR59IFDM-u5s,4238
199
213
  claude_mpm/commander/models/project.py,sha256=QRaYlJ8DOayCr4S4ISbEWXcqQHG5iWD1eSz-0LbAsgQ,5099
@@ -222,7 +236,7 @@ claude_mpm/commander/session/context.py,sha256=_P6VbFFjLSETxOgNDVCxhfCAdP3zeIbW7
222
236
  claude_mpm/commander/session/manager.py,sha256=RiCq2zAUFGURtmyiYP8NTb447dvBIG65GhX4uQa_KO0,1675
223
237
  claude_mpm/commander/web/__init__.py,sha256=QStUHljiyh5KUycukpjtX08O0HxA9e_6_hhVZybNBRo,39
224
238
  claude_mpm/commander/work/__init__.py,sha256=XuOjTHv0dZPQwOg3NOnmNLW4pM1PWKr03egIUWeaOH8,962
225
- claude_mpm/commander/work/executor.py,sha256=JVAlqWk9E6xkslQofc9gTxMxU5nBZtnhrNCaFQOxfF4,6369
239
+ claude_mpm/commander/work/executor.py,sha256=TdDT8Xb8WPbbZkZWX6m186S_KpXoMkh8yZU4GESYZiI,6755
226
240
  claude_mpm/commander/work/queue.py,sha256=GrfNRhY8uaxzZ6Q3I0YjjCqssQOKx-oyREdIKV2mvjQ,11895
227
241
  claude_mpm/commander/workflow/__init__.py,sha256=_eLy6z3rUj99gINqVHf0abapw8miyKRqgT3j7DAM0ZM,933
228
242
  claude_mpm/commander/workflow/event_handler.py,sha256=BO8kKAOJRpmY5OfibHID4fkvgqL46jUnDzJknhnE3YE,8285
@@ -286,7 +300,7 @@ claude_mpm/core/mixins.py,sha256=vmZ7Nu2ZOnKjbhN07Ixk4noIej9nsJiknrp-Sclfu0A,534
286
300
  claude_mpm/core/oneshot_session.py,sha256=nA86Zk7W3Rh_yIhPuegFL7Xgc9S63vQ_MqfLk52doV0,21994
287
301
  claude_mpm/core/optimized_agent_loader.py,sha256=yevEwTZWzVeZYEJhV3czD45OU7ukJIaJos4MGnFP7YQ,15857
288
302
  claude_mpm/core/optimized_startup.py,sha256=U5I4f7PNYXCBOLbCkbWT2V2sv01T8iWP2Bw-f928Q9M,17927
289
- claude_mpm/core/output_style_manager.py,sha256=K3EY4w5wvvdjfzNSEZQxSYhzBCxAEexXQHHYAYR9Jcw,17931
303
+ claude_mpm/core/output_style_manager.py,sha256=QAWxH0fQ6Wr-NlGPs3SY6xT4DUZG5BuMN8ReeEGpGW4,19195
290
304
  claude_mpm/core/pm_hook_interceptor.py,sha256=92C8TrpK-XVQD8BiXbqs8lSCX72PU0KZG5oAjhf8GOQ,11197
291
305
  claude_mpm/core/service_registry.py,sha256=QpmAMWCov8XXaxQwE7WiNbgv6u_CRjpKPB64kLYvZKk,11722
292
306
  claude_mpm/core/session_manager.py,sha256=iEDZWKBYHSu001nFX8vFvH33RvQOW0eIgomWhFM53sw,12078
@@ -1113,10 +1127,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
1113
1127
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
1114
1128
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
1115
1129
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
1116
- claude_mpm-5.6.13.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1117
- claude_mpm-5.6.13.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1118
- claude_mpm-5.6.13.dist-info/METADATA,sha256=sH-tdqfDZNpgGwO38ZlAaKnq9gntlJBWerfqfKi56q0,15246
1119
- claude_mpm-5.6.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1120
- claude_mpm-5.6.13.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1121
- claude_mpm-5.6.13.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1122
- claude_mpm-5.6.13.dist-info/RECORD,,
1130
+ claude_mpm-5.6.14.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1131
+ claude_mpm-5.6.14.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1132
+ claude_mpm-5.6.14.dist-info/METADATA,sha256=A_iow_IpMJgpDMXTCkMOJuppdanbmP2-JL-WsljSmkE,15245
1133
+ claude_mpm-5.6.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1134
+ claude_mpm-5.6.14.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1135
+ claude_mpm-5.6.14.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1136
+ claude_mpm-5.6.14.dist-info/RECORD,,