claude-mpm 5.4.22__py3-none-any.whl → 5.4.48__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

Files changed (119) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_AGENT.md +164 -0
  3. claude_mpm/agents/BASE_ENGINEER.md +658 -0
  4. claude_mpm/agents/MEMORY.md +1 -1
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +739 -1052
  6. claude_mpm/agents/WORKFLOW.md +5 -254
  7. claude_mpm/agents/agent_loader.py +1 -1
  8. claude_mpm/agents/base_agent.json +31 -0
  9. claude_mpm/agents/frontmatter_validator.py +2 -2
  10. claude_mpm/cli/commands/agent_state_manager.py +10 -10
  11. claude_mpm/cli/commands/agents.py +9 -9
  12. claude_mpm/cli/commands/auto_configure.py +4 -4
  13. claude_mpm/cli/commands/configure.py +1 -1
  14. claude_mpm/cli/commands/configure_agent_display.py +10 -0
  15. claude_mpm/cli/commands/mpm_init/core.py +65 -0
  16. claude_mpm/cli/commands/postmortem.py +1 -1
  17. claude_mpm/cli/commands/profile.py +277 -0
  18. claude_mpm/cli/commands/skills.py +14 -18
  19. claude_mpm/cli/executor.py +10 -0
  20. claude_mpm/cli/interactive/agent_wizard.py +2 -2
  21. claude_mpm/cli/parsers/base_parser.py +7 -0
  22. claude_mpm/cli/parsers/profile_parser.py +148 -0
  23. claude_mpm/cli/parsers/skills_parser.py +0 -6
  24. claude_mpm/cli/startup.py +346 -75
  25. claude_mpm/commands/mpm-config.md +13 -250
  26. claude_mpm/commands/mpm-doctor.md +9 -22
  27. claude_mpm/commands/mpm-help.md +5 -206
  28. claude_mpm/commands/mpm-init.md +81 -507
  29. claude_mpm/commands/mpm-monitor.md +15 -402
  30. claude_mpm/commands/mpm-organize.md +61 -441
  31. claude_mpm/commands/mpm-postmortem.md +6 -108
  32. claude_mpm/commands/mpm-session-resume.md +12 -363
  33. claude_mpm/commands/mpm-status.md +5 -69
  34. claude_mpm/commands/mpm-ticket-view.md +52 -495
  35. claude_mpm/commands/mpm-version.md +5 -107
  36. claude_mpm/core/config.py +2 -4
  37. claude_mpm/core/framework/loaders/agent_loader.py +1 -1
  38. claude_mpm/core/framework/loaders/instruction_loader.py +52 -11
  39. claude_mpm/core/optimized_startup.py +59 -0
  40. claude_mpm/core/shared/config_loader.py +1 -1
  41. claude_mpm/core/unified_agent_registry.py +1 -1
  42. claude_mpm/dashboard/static/svelte-build/_app/env.js +1 -0
  43. claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.B_FtCwCQ.css +1 -0
  44. claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.Cl_eSA4x.css +1 -0
  45. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BgChzWQ1.js +1 -0
  46. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIXEwuWe.js +1 -0
  47. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CWc5urbQ.js +1 -0
  48. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DMkZpdF2.js +2 -0
  49. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DjhvlsAc.js +1 -0
  50. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/N4qtv3Hx.js +2 -0
  51. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/uj46x2Wr.js +1 -0
  52. claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.DTL5mJO-.js +2 -0
  53. claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.DzuEhzqh.js +1 -0
  54. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/0.CAGBuiOw.js +1 -0
  55. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.DFLC8jdE.js +1 -0
  56. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.DPvEihJJ.js +10 -0
  57. claude_mpm/dashboard/static/svelte-build/_app/version.json +1 -0
  58. claude_mpm/dashboard/static/svelte-build/favicon.svg +7 -0
  59. claude_mpm/dashboard/static/svelte-build/index.html +36 -0
  60. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  61. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  62. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  63. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  64. claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
  65. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  66. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  67. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  68. claude_mpm/hooks/claude_hooks/hook_handler.py +149 -1
  69. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  70. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-311.pyc +0 -0
  71. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  72. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  73. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  74. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  75. claude_mpm/hooks/claude_hooks/services/connection_manager.py +26 -6
  76. claude_mpm/hooks/kuzu_memory_hook.py +5 -5
  77. claude_mpm/init.py +63 -0
  78. claude_mpm/models/git_repository.py +3 -3
  79. claude_mpm/scripts/start_activity_logging.py +0 -0
  80. claude_mpm/services/agents/agent_builder.py +3 -3
  81. claude_mpm/services/agents/cache_git_manager.py +6 -6
  82. claude_mpm/services/agents/deployment/agent_deployment.py +29 -7
  83. claude_mpm/services/agents/deployment/agent_discovery_service.py +2 -2
  84. claude_mpm/services/agents/deployment/agent_format_converter.py +23 -13
  85. claude_mpm/services/agents/deployment/agent_template_builder.py +29 -19
  86. claude_mpm/services/agents/deployment/agents_directory_resolver.py +2 -2
  87. claude_mpm/services/agents/deployment/async_agent_deployment.py +31 -27
  88. claude_mpm/services/agents/deployment/local_template_deployment.py +3 -1
  89. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +169 -26
  90. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +98 -75
  91. claude_mpm/services/agents/git_source_manager.py +19 -4
  92. claude_mpm/services/agents/recommender.py +5 -3
  93. claude_mpm/services/agents/single_tier_deployment_service.py +2 -2
  94. claude_mpm/services/agents/sources/git_source_sync_service.py +112 -6
  95. claude_mpm/services/agents/startup_sync.py +22 -2
  96. claude_mpm/services/diagnostics/checks/agent_check.py +2 -2
  97. claude_mpm/services/diagnostics/checks/agent_sources_check.py +1 -1
  98. claude_mpm/services/git/git_operations_service.py +8 -8
  99. claude_mpm/services/monitor/management/lifecycle.py +8 -1
  100. claude_mpm/services/monitor/server.py +473 -3
  101. claude_mpm/services/pm_skills_deployer.py +711 -0
  102. claude_mpm/services/profile_manager.py +331 -0
  103. claude_mpm/services/skills/git_skill_source_manager.py +101 -3
  104. claude_mpm/services/skills_deployer.py +4 -3
  105. claude_mpm/services/socketio/dashboard_server.py +1 -0
  106. claude_mpm/services/socketio/event_normalizer.py +37 -6
  107. claude_mpm/services/socketio/server/core.py +262 -123
  108. claude_mpm/skills/skill_manager.py +92 -3
  109. claude_mpm/utils/agent_dependency_loader.py +14 -2
  110. claude_mpm/utils/agent_filters.py +1 -1
  111. claude_mpm/utils/migration.py +4 -4
  112. claude_mpm/utils/robust_installer.py +47 -3
  113. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/METADATA +7 -4
  114. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/RECORD +118 -79
  115. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/WHEEL +0 -0
  116. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/entry_points.txt +0 -0
  117. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/licenses/LICENSE +0 -0
  118. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  119. {claude_mpm-5.4.22.dist-info → claude_mpm-5.4.48.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  WHY: Phase 3 of 1M-486 requires migrating from old single-tier deployment
4
4
  (~/.claude/agents/, ~/.claude/skills/) to new two-phase architecture:
5
- - Cache: ~/.claude-mpm/cache/remote-agents/, ~/.claude-mpm/cache/skills/
5
+ - Cache: ~/.claude-mpm/cache/agents/, ~/.claude-mpm/cache/skills/
6
6
  - Deployment: .claude-mpm/agents/, .claude-mpm/skills/
7
7
 
8
8
  DESIGN DECISIONS:
@@ -41,7 +41,7 @@ class MigrationUtility:
41
41
  self.old_agent_dir = Path.home() / ".claude" / "agents"
42
42
  self.old_skill_dir = Path.home() / ".claude" / "skills"
43
43
 
44
- self.new_agent_cache = Path.home() / ".claude-mpm" / "cache" / "remote-agents"
44
+ self.new_agent_cache = Path.home() / ".claude-mpm" / "cache" / "agents"
45
45
  self.new_skill_cache = Path.home() / ".claude-mpm" / "cache" / "skills"
46
46
 
47
47
  def detect_old_locations(self) -> Dict[str, bool]:
@@ -80,7 +80,7 @@ class MigrationUtility:
80
80
  def migrate_agents(
81
81
  self, dry_run: bool = False, auto_confirm: bool = False
82
82
  ) -> Dict[str, any]:
83
- """Migrate agents from ~/.claude/agents/ to ~/.claude-mpm/cache/remote-agents/.
83
+ """Migrate agents from ~/.claude/agents/ to ~/.claude-mpm/cache/agents/.
84
84
 
85
85
  Args:
86
86
  dry_run: Preview migration without making changes
@@ -329,7 +329,7 @@ class MigrationUtility:
329
329
 
330
330
  warning += "\nThe deployment architecture has changed:\n"
331
331
  warning += " OLD: ~/.claude/agents/ (single-tier, global)\n"
332
- warning += " NEW: ~/.claude-mpm/cache/remote-agents/ → .claude-mpm/agents/ (two-phase, per-project)\n\n"
332
+ warning += " NEW: ~/.claude-mpm/cache/agents/ → .claude-mpm/agents/ (two-phase, per-project)\n\n"
333
333
 
334
334
  warning += "To migrate:\n"
335
335
  warning += " claude-mpm migrate\n\n"
@@ -82,6 +82,7 @@ class RobustPackageInstaller:
82
82
  self.attempts: List[InstallAttempt] = []
83
83
  self.success_cache: Dict[str, bool] = {}
84
84
  self.in_virtualenv = self._check_virtualenv()
85
+ self.is_uv_tool = self._check_uv_tool_installation()
85
86
  self.is_pep668_managed = self._check_pep668_managed()
86
87
  self.pep668_warning_shown = False
87
88
 
@@ -261,6 +262,36 @@ class RobustPackageInstaller:
261
262
 
262
263
  return False
263
264
 
265
+ def _check_uv_tool_installation(self) -> bool:
266
+ """
267
+ Check if running in UV tool environment (no pip available).
268
+
269
+ WHY: UV tool environments don't have pip installed. The executable
270
+ path typically contains ".local/share/uv/tools/" and the UV_TOOL_DIR
271
+ environment variable is set. In such environments, we need to use
272
+ 'uv pip' instead of 'python -m pip'.
273
+
274
+ Returns:
275
+ True if UV tool environment, False otherwise
276
+ """
277
+ import os
278
+
279
+ # Check UV_TOOL_DIR environment variable
280
+ uv_tool_dir = os.environ.get("UV_TOOL_DIR", "")
281
+ if uv_tool_dir and "claude-mpm" in uv_tool_dir:
282
+ logger.debug(f"UV tool environment detected via UV_TOOL_DIR: {uv_tool_dir}")
283
+ return True
284
+
285
+ # Check executable path for UV tool patterns
286
+ executable = sys.executable
287
+ if ".local/share/uv/tools/" in executable or "/uv/tools/" in executable:
288
+ logger.debug(
289
+ f"UV tool environment detected via executable path: {executable}"
290
+ )
291
+ return True
292
+
293
+ return False
294
+
264
295
  def _show_pep668_warning(self) -> None:
265
296
  """
266
297
  Show warning about PEP 668 managed environment.
@@ -301,7 +332,12 @@ class RobustPackageInstaller:
301
332
  Returns:
302
333
  Command as list of arguments
303
334
  """
304
- base_cmd = [sys.executable, "-m", "pip", "install"]
335
+ # UV tool environments don't have pip; use uv pip instead
336
+ if self.is_uv_tool:
337
+ base_cmd = ["uv", "pip", "install"]
338
+ logger.debug("Using 'uv pip install' for UV tool environment")
339
+ else:
340
+ base_cmd = [sys.executable, "-m", "pip", "install"]
305
341
 
306
342
  # Determine appropriate flags based on environment
307
343
  if self.in_virtualenv:
@@ -651,7 +687,12 @@ class RobustPackageInstaller:
651
687
  Tuple of (success, error_message)
652
688
  """
653
689
  try:
654
- cmd = [sys.executable, "-m", "pip", "install"]
690
+ # UV tool environments don't have pip; use uv pip instead
691
+ if self.is_uv_tool:
692
+ cmd = ["uv", "pip", "install"]
693
+ logger.debug("Using 'uv pip install' for batch installation")
694
+ else:
695
+ cmd = [sys.executable, "-m", "pip", "install"]
655
696
 
656
697
  # Add appropriate flags based on environment
657
698
  if self.in_virtualenv:
@@ -702,7 +743,10 @@ class RobustPackageInstaller:
702
743
 
703
744
  # Add environment status
704
745
  lines.append("")
705
- if self.in_virtualenv:
746
+ if self.is_uv_tool:
747
+ lines.append("✓ Environment: UV Tool Environment")
748
+ lines.append(" Using 'uv pip' command (pip not available)")
749
+ elif self.in_virtualenv:
706
750
  lines.append("✓ Environment: Virtual Environment (isolated)")
707
751
  lines.append(" No special pip flags needed")
708
752
  elif self.is_pep668_managed:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.4.22
3
+ Version: 5.4.48
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
@@ -49,7 +49,6 @@ Requires-Dist: rich>=13.0.0
49
49
  Requires-Dist: questionary>=2.0.0
50
50
  Requires-Dist: pyee>=13.0.0
51
51
  Requires-Dist: pathspec>=0.11.0
52
- Requires-Dist: kuzu-memory>=1.1.5
53
52
  Provides-Extra: mcp
54
53
  Requires-Dist: mcp>=0.1.0; extra == "mcp"
55
54
  Requires-Dist: mcp-vector-search>=0.1.0; extra == "mcp"
@@ -101,6 +100,8 @@ Requires-Dist: pymongo>=4.5.0; extra == "data-processing"
101
100
  Requires-Dist: redis>=5.0.0; extra == "data-processing"
102
101
  Requires-Dist: beautifulsoup4>=4.12.0; extra == "data-processing"
103
102
  Requires-Dist: jsonschema>=4.19.0; extra == "data-processing"
103
+ Provides-Extra: memory
104
+ Requires-Dist: kuzu-memory>=1.1.5; extra == "memory"
104
105
  Dynamic: license-file
105
106
 
106
107
  # Claude MPM - Multi-Agent Project Manager
@@ -387,12 +388,12 @@ claude-mpm verify
387
388
 
388
389
  ## Cache Management
389
390
 
390
- Claude MPM maintains a local cache of agent templates at `~/.claude-mpm/cache/remote-agents/`.
391
+ Claude MPM maintains a local cache of agent templates at `~/.claude-mpm/cache/agents/`.
391
392
 
392
393
  ### Cache Structure
393
394
 
394
395
  ```
395
- ~/.claude-mpm/cache/remote-agents/
396
+ ~/.claude-mpm/cache/agents/
396
397
  └── bobmatnyc/
397
398
  └── claude-mpm-agents/
398
399
  ├── .git/ # Git repository
@@ -400,6 +401,8 @@ Claude MPM maintains a local cache of agent templates at `~/.claude-mpm/cache/re
400
401
  └── docs/
401
402
  ```
402
403
 
404
+ > **Note**: Prior to v5.4.23, agents were cached to `~/.claude-mpm/cache/remote-agents/`. This has been standardized to `~/.claude-mpm/cache/agents/`. Existing caches are automatically migrated.
405
+
403
406
  ### Git Workflow (Optional)
404
407
 
405
408
  If your cache is a git repository, you can manage agents with git operations: