claude-mpm 5.0.9__py3-none-any.whl → 5.4.41__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 (263) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/__init__.py +4 -0
  3. claude_mpm/agents/BASE_AGENT.md +164 -0
  4. claude_mpm/agents/{PM_INSTRUCTIONS_TEACH.md → CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md} +721 -41
  5. claude_mpm/agents/MEMORY.md +1 -1
  6. claude_mpm/agents/PM_INSTRUCTIONS.md +468 -468
  7. claude_mpm/agents/WORKFLOW.md +5 -254
  8. claude_mpm/agents/agent_loader.py +13 -44
  9. claude_mpm/agents/base_agent.json +1 -1
  10. claude_mpm/agents/frontmatter_validator.py +70 -2
  11. claude_mpm/agents/templates/circuit-breakers.md +431 -45
  12. claude_mpm/cli/__init__.py +0 -1
  13. claude_mpm/cli/__main__.py +4 -0
  14. claude_mpm/cli/chrome_devtools_installer.py +175 -0
  15. claude_mpm/cli/commands/agent_state_manager.py +18 -27
  16. claude_mpm/cli/commands/agents.py +175 -37
  17. claude_mpm/cli/commands/auto_configure.py +723 -236
  18. claude_mpm/cli/commands/config.py +88 -2
  19. claude_mpm/cli/commands/configure.py +1262 -157
  20. claude_mpm/cli/commands/configure_agent_display.py +25 -6
  21. claude_mpm/cli/commands/mpm_init/core.py +225 -46
  22. claude_mpm/cli/commands/mpm_init/knowledge_extractor.py +481 -0
  23. claude_mpm/cli/commands/mpm_init/prompts.py +280 -0
  24. claude_mpm/cli/commands/postmortem.py +1 -1
  25. claude_mpm/cli/commands/profile.py +277 -0
  26. claude_mpm/cli/commands/skills.py +214 -189
  27. claude_mpm/cli/commands/summarize.py +413 -0
  28. claude_mpm/cli/executor.py +21 -3
  29. claude_mpm/cli/interactive/agent_wizard.py +85 -10
  30. claude_mpm/cli/parsers/agents_parser.py +54 -9
  31. claude_mpm/cli/parsers/auto_configure_parser.py +13 -138
  32. claude_mpm/cli/parsers/base_parser.py +12 -0
  33. claude_mpm/cli/parsers/config_parser.py +153 -83
  34. claude_mpm/cli/parsers/profile_parser.py +148 -0
  35. claude_mpm/cli/parsers/skills_parser.py +3 -2
  36. claude_mpm/cli/startup.py +879 -149
  37. claude_mpm/commands/mpm-config.md +28 -0
  38. claude_mpm/commands/mpm-doctor.md +9 -22
  39. claude_mpm/commands/mpm-help.md +5 -287
  40. claude_mpm/commands/mpm-init.md +81 -507
  41. claude_mpm/commands/mpm-monitor.md +15 -402
  42. claude_mpm/commands/mpm-organize.md +120 -0
  43. claude_mpm/commands/mpm-postmortem.md +6 -108
  44. claude_mpm/commands/mpm-session-resume.md +12 -363
  45. claude_mpm/commands/mpm-status.md +5 -69
  46. claude_mpm/commands/mpm-ticket-view.md +52 -495
  47. claude_mpm/commands/mpm-version.md +5 -107
  48. claude_mpm/config/agent_sources.py +27 -0
  49. claude_mpm/core/config.py +2 -4
  50. claude_mpm/core/framework/formatters/content_formatter.py +3 -13
  51. claude_mpm/core/framework/loaders/agent_loader.py +8 -5
  52. claude_mpm/core/framework/loaders/instruction_loader.py +52 -11
  53. claude_mpm/core/framework_loader.py +4 -2
  54. claude_mpm/core/logger.py +13 -0
  55. claude_mpm/core/optimized_startup.py +59 -0
  56. claude_mpm/core/output_style_manager.py +173 -43
  57. claude_mpm/core/shared/config_loader.py +1 -1
  58. claude_mpm/core/socketio_pool.py +3 -3
  59. claude_mpm/core/unified_agent_registry.py +134 -16
  60. claude_mpm/core/unified_config.py +22 -0
  61. claude_mpm/dashboard/static/svelte-build/_app/env.js +1 -0
  62. claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.B_FtCwCQ.css +1 -0
  63. claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.Cl_eSA4x.css +1 -0
  64. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BgChzWQ1.js +1 -0
  65. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIXEwuWe.js +1 -0
  66. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CWc5urbQ.js +1 -0
  67. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DMkZpdF2.js +2 -0
  68. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DjhvlsAc.js +1 -0
  69. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/N4qtv3Hx.js +2 -0
  70. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/uj46x2Wr.js +1 -0
  71. claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.DTL5mJO-.js +2 -0
  72. claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.DzuEhzqh.js +1 -0
  73. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/0.CAGBuiOw.js +1 -0
  74. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.DFLC8jdE.js +1 -0
  75. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.DPvEihJJ.js +10 -0
  76. claude_mpm/dashboard/static/svelte-build/_app/version.json +1 -0
  77. claude_mpm/dashboard/static/svelte-build/favicon.svg +7 -0
  78. claude_mpm/dashboard/static/svelte-build/index.html +36 -0
  79. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  80. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  81. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  82. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  83. claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
  84. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  85. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  86. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  87. claude_mpm/hooks/claude_hooks/correlation_manager.py +60 -0
  88. claude_mpm/hooks/claude_hooks/event_handlers.py +211 -78
  89. claude_mpm/hooks/claude_hooks/hook_handler.py +155 -1
  90. claude_mpm/hooks/claude_hooks/installer.py +33 -10
  91. claude_mpm/hooks/claude_hooks/memory_integration.py +28 -0
  92. claude_mpm/hooks/claude_hooks/response_tracking.py +2 -3
  93. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  94. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-311.pyc +0 -0
  95. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  96. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  97. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  98. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  99. claude_mpm/hooks/claude_hooks/services/connection_manager.py +30 -6
  100. claude_mpm/hooks/memory_integration_hook.py +46 -1
  101. claude_mpm/init.py +63 -19
  102. claude_mpm/models/agent_definition.py +7 -0
  103. claude_mpm/models/git_repository.py +3 -3
  104. claude_mpm/scripts/claude-hook-handler.sh +58 -18
  105. claude_mpm/scripts/launch_monitor.py +93 -13
  106. claude_mpm/scripts/start_activity_logging.py +0 -0
  107. claude_mpm/services/agents/agent_builder.py +3 -3
  108. claude_mpm/services/agents/agent_recommendation_service.py +278 -0
  109. claude_mpm/services/agents/agent_review_service.py +280 -0
  110. claude_mpm/services/agents/cache_git_manager.py +6 -6
  111. claude_mpm/services/agents/deployment/agent_deployment.py +29 -7
  112. claude_mpm/services/agents/deployment/agent_discovery_service.py +4 -5
  113. claude_mpm/services/agents/deployment/agent_template_builder.py +5 -3
  114. claude_mpm/services/agents/deployment/agents_directory_resolver.py +2 -2
  115. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +320 -29
  116. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +546 -68
  117. claude_mpm/services/agents/git_source_manager.py +36 -2
  118. claude_mpm/services/agents/loading/base_agent_manager.py +1 -13
  119. claude_mpm/services/agents/recommender.py +5 -3
  120. claude_mpm/services/agents/single_tier_deployment_service.py +2 -2
  121. claude_mpm/services/agents/sources/git_source_sync_service.py +13 -6
  122. claude_mpm/services/agents/startup_sync.py +22 -2
  123. claude_mpm/services/agents/toolchain_detector.py +10 -6
  124. claude_mpm/services/analysis/__init__.py +11 -1
  125. claude_mpm/services/analysis/clone_detector.py +1030 -0
  126. claude_mpm/services/command_deployment_service.py +81 -10
  127. claude_mpm/services/diagnostics/checks/agent_check.py +2 -2
  128. claude_mpm/services/diagnostics/checks/agent_sources_check.py +1 -1
  129. claude_mpm/services/event_bus/config.py +3 -1
  130. claude_mpm/services/git/git_operations_service.py +101 -16
  131. claude_mpm/services/monitor/daemon.py +9 -2
  132. claude_mpm/services/monitor/daemon_manager.py +39 -3
  133. claude_mpm/services/monitor/management/lifecycle.py +8 -1
  134. claude_mpm/services/monitor/server.py +698 -22
  135. claude_mpm/services/pm_skills_deployer.py +676 -0
  136. claude_mpm/services/profile_manager.py +331 -0
  137. claude_mpm/services/project/project_organizer.py +4 -0
  138. claude_mpm/services/self_upgrade_service.py +120 -12
  139. claude_mpm/services/skills/__init__.py +3 -0
  140. claude_mpm/services/skills/git_skill_source_manager.py +130 -2
  141. claude_mpm/services/skills/selective_skill_deployer.py +704 -0
  142. claude_mpm/services/skills/skill_to_agent_mapper.py +406 -0
  143. claude_mpm/services/skills_deployer.py +126 -9
  144. claude_mpm/services/socketio/dashboard_server.py +1 -0
  145. claude_mpm/services/socketio/event_normalizer.py +51 -6
  146. claude_mpm/services/socketio/server/core.py +386 -108
  147. claude_mpm/services/version_control/git_operations.py +103 -0
  148. claude_mpm/skills/skill_manager.py +92 -3
  149. claude_mpm/utils/agent_dependency_loader.py +14 -2
  150. claude_mpm/utils/agent_filters.py +17 -44
  151. claude_mpm/utils/gitignore.py +3 -0
  152. claude_mpm/utils/migration.py +4 -4
  153. claude_mpm/utils/robust_installer.py +47 -3
  154. {claude_mpm-5.0.9.dist-info → claude_mpm-5.4.41.dist-info}/METADATA +57 -87
  155. {claude_mpm-5.0.9.dist-info → claude_mpm-5.4.41.dist-info}/RECORD +160 -211
  156. claude_mpm-5.4.41.dist-info/entry_points.txt +5 -0
  157. claude_mpm-5.4.41.dist-info/licenses/LICENSE +94 -0
  158. claude_mpm-5.4.41.dist-info/licenses/LICENSE-FAQ.md +153 -0
  159. claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -292
  160. claude_mpm/agents/BASE_DOCUMENTATION.md +0 -53
  161. claude_mpm/agents/BASE_OPS.md +0 -219
  162. claude_mpm/agents/BASE_PM.md +0 -480
  163. claude_mpm/agents/BASE_PROMPT_ENGINEER.md +0 -787
  164. claude_mpm/agents/BASE_QA.md +0 -167
  165. claude_mpm/agents/BASE_RESEARCH.md +0 -53
  166. claude_mpm/agents/base_agent_loader.py +0 -601
  167. claude_mpm/cli/commands/agents_detect.py +0 -380
  168. claude_mpm/cli/commands/agents_recommend.py +0 -309
  169. claude_mpm/cli/ticket_cli.py +0 -35
  170. claude_mpm/commands/mpm-agents-auto-configure.md +0 -278
  171. claude_mpm/commands/mpm-agents-detect.md +0 -177
  172. claude_mpm/commands/mpm-agents-list.md +0 -131
  173. claude_mpm/commands/mpm-agents-recommend.md +0 -223
  174. claude_mpm/commands/mpm-config-view.md +0 -150
  175. claude_mpm/commands/mpm-ticket-organize.md +0 -304
  176. claude_mpm/dashboard/analysis_runner.py +0 -455
  177. claude_mpm/dashboard/index.html +0 -13
  178. claude_mpm/dashboard/open_dashboard.py +0 -66
  179. claude_mpm/dashboard/static/css/activity.css +0 -1958
  180. claude_mpm/dashboard/static/css/connection-status.css +0 -370
  181. claude_mpm/dashboard/static/css/dashboard.css +0 -4701
  182. claude_mpm/dashboard/static/js/components/activity-tree.js +0 -1871
  183. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +0 -777
  184. claude_mpm/dashboard/static/js/components/agent-inference.js +0 -956
  185. claude_mpm/dashboard/static/js/components/build-tracker.js +0 -333
  186. claude_mpm/dashboard/static/js/components/code-simple.js +0 -857
  187. claude_mpm/dashboard/static/js/components/connection-debug.js +0 -654
  188. claude_mpm/dashboard/static/js/components/diff-viewer.js +0 -891
  189. claude_mpm/dashboard/static/js/components/event-processor.js +0 -542
  190. claude_mpm/dashboard/static/js/components/event-viewer.js +0 -1155
  191. claude_mpm/dashboard/static/js/components/export-manager.js +0 -368
  192. claude_mpm/dashboard/static/js/components/file-change-tracker.js +0 -443
  193. claude_mpm/dashboard/static/js/components/file-change-viewer.js +0 -690
  194. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -724
  195. claude_mpm/dashboard/static/js/components/file-viewer.js +0 -580
  196. claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -211
  197. claude_mpm/dashboard/static/js/components/hud-manager.js +0 -671
  198. claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -1718
  199. claude_mpm/dashboard/static/js/components/module-viewer.js +0 -2764
  200. claude_mpm/dashboard/static/js/components/session-manager.js +0 -579
  201. claude_mpm/dashboard/static/js/components/socket-manager.js +0 -368
  202. claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -749
  203. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +0 -1824
  204. claude_mpm/dashboard/static/js/components/working-directory.js +0 -920
  205. claude_mpm/dashboard/static/js/connection-manager.js +0 -536
  206. claude_mpm/dashboard/static/js/dashboard.js +0 -1914
  207. claude_mpm/dashboard/static/js/extension-error-handler.js +0 -164
  208. claude_mpm/dashboard/static/js/socket-client.js +0 -1474
  209. claude_mpm/dashboard/static/js/tab-isolation-fix.js +0 -185
  210. claude_mpm/dashboard/static/socket.io.min.js +0 -7
  211. claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +0 -7
  212. claude_mpm/dashboard/templates/code_simple.html +0 -153
  213. claude_mpm/dashboard/templates/index.html +0 -606
  214. claude_mpm/dashboard/test_dashboard.html +0 -372
  215. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
  216. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
  217. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
  218. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
  219. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
  220. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
  221. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
  222. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
  223. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
  224. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
  225. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
  226. claude_mpm/scripts/mcp_server.py +0 -75
  227. claude_mpm/scripts/mcp_wrapper.py +0 -39
  228. claude_mpm/services/mcp_gateway/__init__.py +0 -159
  229. claude_mpm/services/mcp_gateway/auto_configure.py +0 -369
  230. claude_mpm/services/mcp_gateway/config/__init__.py +0 -17
  231. claude_mpm/services/mcp_gateway/config/config_loader.py +0 -296
  232. claude_mpm/services/mcp_gateway/config/config_schema.py +0 -243
  233. claude_mpm/services/mcp_gateway/config/configuration.py +0 -429
  234. claude_mpm/services/mcp_gateway/core/__init__.py +0 -43
  235. claude_mpm/services/mcp_gateway/core/base.py +0 -312
  236. claude_mpm/services/mcp_gateway/core/exceptions.py +0 -253
  237. claude_mpm/services/mcp_gateway/core/interfaces.py +0 -443
  238. claude_mpm/services/mcp_gateway/core/process_pool.py +0 -977
  239. claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -315
  240. claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -316
  241. claude_mpm/services/mcp_gateway/main.py +0 -589
  242. claude_mpm/services/mcp_gateway/registry/__init__.py +0 -12
  243. claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -412
  244. claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -489
  245. claude_mpm/services/mcp_gateway/server/__init__.py +0 -15
  246. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -414
  247. claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -372
  248. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -712
  249. claude_mpm/services/mcp_gateway/tools/__init__.py +0 -36
  250. claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -485
  251. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -789
  252. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +0 -654
  253. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -456
  254. claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -551
  255. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +0 -555
  256. claude_mpm/services/mcp_gateway/utils/__init__.py +0 -14
  257. claude_mpm/services/mcp_gateway/utils/package_version_checker.py +0 -160
  258. claude_mpm/services/mcp_gateway/utils/update_preferences.py +0 -170
  259. claude_mpm-5.0.9.dist-info/entry_points.txt +0 -10
  260. claude_mpm-5.0.9.dist-info/licenses/LICENSE +0 -21
  261. /claude_mpm/agents/{OUTPUT_STYLE.md → CLAUDE_MPM_OUTPUT_STYLE.md} +0 -0
  262. {claude_mpm-5.0.9.dist-info → claude_mpm-5.4.41.dist-info}/WHEEL +0 -0
  263. {claude_mpm-5.0.9.dist-info → claude_mpm-5.4.41.dist-info}/top_level.txt +0 -0
@@ -88,6 +88,19 @@ Examples:
88
88
  help="Skip confirmation prompts and deploy automatically",
89
89
  )
90
90
 
91
+ # Scope selection
92
+ scope_group = auto_configure_parser.add_mutually_exclusive_group()
93
+ scope_group.add_argument(
94
+ "--agents-only",
95
+ action="store_true",
96
+ help="Configure agents only (skip skills)",
97
+ )
98
+ scope_group.add_argument(
99
+ "--skills-only",
100
+ action="store_true",
101
+ help="Configure skills only (skip agents)",
102
+ )
103
+
91
104
  # Configuration options
92
105
  auto_configure_parser.add_argument(
93
106
  "--min-confidence",
@@ -105,141 +118,3 @@ Examples:
105
118
  )
106
119
 
107
120
  return auto_configure_parser
108
-
109
-
110
- def add_agents_detect_subparser(agents_subparsers) -> argparse.ArgumentParser:
111
- """
112
- Add the agents detect subparser for toolchain detection.
113
-
114
- WHY: Allows users to see what toolchain is detected without making changes,
115
- useful for debugging and verification.
116
-
117
- Args:
118
- agents_subparsers: The agents subparsers object
119
-
120
- Returns:
121
- The configured detect subparser
122
- """
123
- detect_parser = agents_subparsers.add_parser(
124
- "detect",
125
- help="Detect project toolchain without deploying",
126
- description="""
127
- Detect and display project toolchain without making any changes.
128
-
129
- This command analyzes your project to detect:
130
- • Programming languages and versions
131
- • Frameworks and libraries
132
- • Deployment targets and platforms
133
-
134
- Useful for debugging toolchain detection and verifying what would be
135
- detected before running auto-configure.
136
- """,
137
- formatter_class=argparse.RawDescriptionHelpFormatter,
138
- epilog="""
139
- Examples:
140
- # Detect toolchain in current directory
141
- claude-mpm agents detect
142
-
143
- # Detect with verbose output showing evidence
144
- claude-mpm agents detect --verbose
145
-
146
- # JSON output for scripting
147
- claude-mpm agents detect --json
148
-
149
- # Detect specific project
150
- claude-mpm agents detect --project-path /path/to/project
151
- """,
152
- )
153
- add_common_arguments(detect_parser)
154
-
155
- detect_parser.add_argument(
156
- "--project-path",
157
- type=Path,
158
- metavar="PATH",
159
- help="Project path to analyze (default: current directory)",
160
- )
161
-
162
- return detect_parser
163
-
164
-
165
- def add_agents_recommend_subparser(
166
- agents_subparsers,
167
- ) -> argparse.ArgumentParser:
168
- """
169
- Add the agents recommend subparser for agent recommendations.
170
-
171
- WHY: Allows users to see what agents would be recommended without deploying,
172
- useful for reviewing recommendations before committing to deployment.
173
-
174
- Args:
175
- agents_subparsers: The agents subparsers object
176
-
177
- Returns:
178
- The configured recommend subparser
179
- """
180
- recommend_parser = agents_subparsers.add_parser(
181
- "recommend",
182
- help="Show recommended agents without deploying",
183
- description="""
184
- Show recommended agents based on project toolchain without deploying.
185
-
186
- This command analyzes your project toolchain and recommends appropriate
187
- agents with detailed reasoning for each recommendation. No changes are
188
- made to your project.
189
-
190
- Useful for:
191
- • Reviewing recommendations before deployment
192
- • Understanding why agents are recommended
193
- • Adjusting confidence thresholds
194
- """,
195
- formatter_class=argparse.RawDescriptionHelpFormatter,
196
- epilog="""
197
- Examples:
198
- # Show recommendations with reasoning
199
- claude-mpm agents recommend
200
-
201
- # Require 90% confidence for recommendations
202
- claude-mpm agents recommend --min-confidence 0.9
203
-
204
- # JSON output for scripting
205
- claude-mpm agents recommend --json
206
-
207
- # Hide detailed reasoning
208
- claude-mpm agents recommend --no-reasoning
209
-
210
- # Recommend for specific project
211
- claude-mpm agents recommend --project-path /path/to/project
212
- """,
213
- )
214
- add_common_arguments(recommend_parser)
215
-
216
- recommend_parser.add_argument(
217
- "--project-path",
218
- type=Path,
219
- metavar="PATH",
220
- help="Project path to analyze (default: current directory)",
221
- )
222
-
223
- recommend_parser.add_argument(
224
- "--min-confidence",
225
- type=float,
226
- default=0.8,
227
- metavar="FLOAT",
228
- help="Minimum confidence threshold for recommendations (0.0-1.0, default: 0.8)",
229
- )
230
-
231
- recommend_parser.add_argument(
232
- "--show-reasoning",
233
- action="store_true",
234
- default=True,
235
- help="Show detailed reasoning for recommendations (default)",
236
- )
237
-
238
- recommend_parser.add_argument(
239
- "--no-reasoning",
240
- dest="show_reasoning",
241
- action="store_false",
242
- help="Hide detailed reasoning for recommendations",
243
- )
244
-
245
- return recommend_parser
@@ -438,6 +438,13 @@ def create_parser(
438
438
  except ImportError:
439
439
  pass
440
440
 
441
+ try:
442
+ from .profile_parser import add_profile_subparser
443
+
444
+ add_profile_subparser(subparsers)
445
+ except ImportError:
446
+ pass
447
+
441
448
  try:
442
449
  from .monitor_parser import add_monitor_subparser
443
450
 
@@ -594,6 +601,11 @@ def create_parser(
594
601
  action="store_true",
595
602
  help="Skip confirmation prompts",
596
603
  )
604
+
605
+ # Add summarize command
606
+ from ..commands.summarize import add_summarize_parser
607
+
608
+ add_summarize_parser(subparsers)
597
609
  except ImportError:
598
610
  # Commands module may not be available during testing or refactoring
599
611
  pass
@@ -1,14 +1,15 @@
1
1
  """
2
2
  Config command parser for claude-mpm CLI.
3
3
 
4
- WHY: This module provides the config command which is synonymous with configure.
5
- Both launch the interactive configuration TUI.
4
+ WHY: This module provides the unified config command with subcommands for
5
+ auto-configuration, viewing, validation, and status checks.
6
6
 
7
- DESIGN DECISION: 'config' and 'configure' are aliases - both commands provide
8
- identical functionality through the interactive configuration interface.
7
+ DESIGN DECISION: 'config' provides both auto-configuration (default) and
8
+ manual configuration management through subcommands.
9
9
  """
10
10
 
11
11
  import argparse
12
+ from pathlib import Path
12
13
 
13
14
  from ...constants import CLICommands
14
15
  from .base_parser import add_common_arguments
@@ -16,11 +17,10 @@ from .base_parser import add_common_arguments
16
17
 
17
18
  def add_config_subparser(subparsers) -> argparse.ArgumentParser:
18
19
  """
19
- Add the config subparser (alias for configure).
20
+ Add the unified config subparser with all configuration subcommands.
20
21
 
21
- WHY: 'config' and 'configure' are synonymous commands that both launch
22
- the interactive configuration interface. This provides a consistent
23
- parser setup matching the configure command.
22
+ WHY: 'config' provides comprehensive configuration management including
23
+ auto-detection, manual viewing, validation, and status checks.
24
24
 
25
25
  Args:
26
26
  subparsers: The subparsers object from the main parser
@@ -28,111 +28,181 @@ def add_config_subparser(subparsers) -> argparse.ArgumentParser:
28
28
  Returns:
29
29
  The configured config subparser
30
30
  """
31
- # Config command - alias for configure (interactive configuration)
31
+ # Config command with subcommands
32
32
  config_parser = subparsers.add_parser(
33
33
  CLICommands.CONFIG.value,
34
- help="Interactive configuration interface for managing agents and behaviors (alias for 'configure')",
35
- description="Launch an interactive Rich-based menu for configuring claude-mpm agents, templates, and behavior files",
36
- )
34
+ help="Unified configuration management with auto-detection and manual viewing",
35
+ description="""
36
+ Unified configuration management for Claude MPM.
37
37
 
38
- # Add common arguments
39
- add_common_arguments(config_parser)
38
+ Available commands:
39
+ auto Auto-configure agents and skills based on detected toolchain (default)
40
+ view View current configuration settings
41
+ validate Validate configuration files
42
+ status Show configuration health and status
40
43
 
41
- # Configuration scope options
42
- scope_group = config_parser.add_argument_group("configuration scope")
43
- scope_group.add_argument(
44
- "--scope",
45
- choices=["project", "user"],
46
- default="project",
47
- help="Configuration scope to manage (default: project)",
44
+ Running 'config' with no subcommand defaults to 'auto' in preview mode.
45
+ """,
46
+ formatter_class=argparse.RawDescriptionHelpFormatter,
48
47
  )
48
+ add_common_arguments(config_parser)
49
49
 
50
- # Direct navigation options (skip main menu)
51
- nav_group = config_parser.add_argument_group("direct navigation")
52
- nav_group.add_argument(
53
- "--agents", action="store_true", help="Jump directly to agent management"
50
+ # Add subcommands
51
+ config_subparsers = config_parser.add_subparsers(
52
+ dest="config_command", help="Configuration commands", metavar="SUBCOMMAND"
53
+ )
54
+
55
+ # Auto-configure subcommand (default)
56
+ auto_parser = config_subparsers.add_parser(
57
+ "auto",
58
+ help="Auto-configure agents and skills based on detected toolchain",
59
+ description="""
60
+ Auto-configure agents and skills for your project based on detected toolchain.
61
+
62
+ This command analyzes your project to detect languages, frameworks, and
63
+ deployment targets, then recommends and deploys appropriate specialized
64
+ agents and skills automatically.
65
+
66
+ The command provides safety features including:
67
+ • Preview mode to see changes before applying
68
+ • Confidence thresholds to ensure quality matches
69
+ • Validation gates to block invalid configurations
70
+ • Rollback on failure to maintain consistency
71
+ """,
72
+ formatter_class=argparse.RawDescriptionHelpFormatter,
73
+ )
74
+ add_common_arguments(auto_parser)
75
+
76
+ # Configuration mode
77
+ mode_group = auto_parser.add_mutually_exclusive_group()
78
+ mode_group.add_argument(
79
+ "--preview",
80
+ "--dry-run",
81
+ dest="preview",
82
+ action="store_true",
83
+ help="Show what would be configured without deploying (preview mode)",
54
84
  )
55
- nav_group.add_argument(
56
- "--templates", action="store_true", help="Jump directly to template editing"
85
+ mode_group.add_argument(
86
+ "--yes",
87
+ "-y",
88
+ action="store_true",
89
+ help="Skip confirmation prompts and deploy automatically",
57
90
  )
58
- nav_group.add_argument(
59
- "--behaviors",
91
+
92
+ # Scope selection
93
+ scope_group = auto_parser.add_mutually_exclusive_group()
94
+ scope_group.add_argument(
95
+ "--agents-only",
60
96
  action="store_true",
61
- help="Jump directly to behavior file management",
97
+ help="Configure agents only (skip skills)",
62
98
  )
63
- nav_group.add_argument(
64
- "--startup",
99
+ scope_group.add_argument(
100
+ "--skills-only",
65
101
  action="store_true",
66
- help="Configure startup services and agents",
102
+ help="Configure skills only (skip agents)",
103
+ )
104
+
105
+ # Configuration options
106
+ auto_parser.add_argument(
107
+ "--min-confidence",
108
+ type=float,
109
+ default=0.8,
110
+ metavar="FLOAT",
111
+ help="Minimum confidence threshold for recommendations (0.0-1.0, default: 0.8)",
112
+ )
113
+
114
+ auto_parser.add_argument(
115
+ "--project-path",
116
+ type=Path,
117
+ metavar="PATH",
118
+ help="Project path to analyze (default: current directory)",
67
119
  )
68
- nav_group.add_argument(
69
- "--version-info",
120
+
121
+ auto_parser.add_argument(
122
+ "--json",
70
123
  action="store_true",
71
- help="Display version information and exit",
124
+ help="Output results in JSON format",
72
125
  )
73
126
 
74
- # Non-interactive options
75
- noninteractive_group = config_parser.add_argument_group("non-interactive options")
76
- noninteractive_group.add_argument(
77
- "--list-agents", action="store_true", help="List all available agents and exit"
127
+ # View subcommand
128
+ view_parser = config_subparsers.add_parser(
129
+ "view",
130
+ help="View current configuration settings",
78
131
  )
79
- noninteractive_group.add_argument(
80
- "--enable-agent",
132
+ add_common_arguments(view_parser)
133
+
134
+ view_parser.add_argument(
135
+ "--section",
81
136
  type=str,
82
- metavar="AGENT_NAME",
83
- help="Enable a specific agent and exit",
137
+ metavar="SECTION",
138
+ help="Specific configuration section to view (agents, memory, websocket, etc.)",
84
139
  )
85
- noninteractive_group.add_argument(
86
- "--disable-agent",
87
- type=str,
88
- metavar="AGENT_NAME",
89
- help="Disable a specific agent and exit",
140
+ view_parser.add_argument(
141
+ "--format",
142
+ choices=["yaml", "json", "table", "text"],
143
+ default="table",
144
+ help="Output format (default: table)",
90
145
  )
91
- noninteractive_group.add_argument(
92
- "--export-config",
93
- type=str,
94
- metavar="FILE",
95
- help="Export current configuration to a file",
146
+ view_parser.add_argument(
147
+ "--show-defaults",
148
+ action="store_true",
149
+ help="Include default values in output",
96
150
  )
97
- noninteractive_group.add_argument(
98
- "--import-config",
99
- type=str,
100
- metavar="FILE",
101
- help="Import configuration from a file",
151
+ view_parser.add_argument(
152
+ "--config-file",
153
+ type=Path,
154
+ metavar="PATH",
155
+ help="Specific config file to view (default: all)",
102
156
  )
103
157
 
104
- # Hook management options
105
- hooks_group = config_parser.add_argument_group("hook management")
106
- hooks_group.add_argument(
107
- "--install-hooks",
108
- action="store_true",
109
- help="Install Claude MPM hooks for Claude Code integration",
158
+ # Validate subcommand
159
+ validate_parser = config_subparsers.add_parser(
160
+ "validate",
161
+ help="Validate configuration files for correctness",
110
162
  )
111
- hooks_group.add_argument(
112
- "--verify-hooks",
113
- action="store_true",
114
- help="Verify that Claude MPM hooks are properly installed",
163
+ add_common_arguments(validate_parser)
164
+
165
+ validate_parser.add_argument(
166
+ "--config-file",
167
+ type=Path,
168
+ metavar="PATH",
169
+ help="Validate specific config file (default: all)",
115
170
  )
116
- hooks_group.add_argument(
117
- "--uninstall-hooks",
171
+ validate_parser.add_argument(
172
+ "--strict",
118
173
  action="store_true",
119
- help="Uninstall Claude MPM hooks",
174
+ help="Use strict validation rules",
120
175
  )
121
- hooks_group.add_argument(
122
- "--force",
176
+ validate_parser.add_argument(
177
+ "--fix",
123
178
  action="store_true",
124
- help="Force reinstallation of hooks even if they already exist",
179
+ help="Attempt to fix validation errors automatically",
125
180
  )
126
181
 
127
- # Display options
128
- display_group = config_parser.add_argument_group("display options")
129
- display_group.add_argument(
130
- "--no-colors",
131
- action="store_true",
132
- help="Disable colored output in the interface",
182
+ # Status subcommand
183
+ status_parser = config_subparsers.add_parser(
184
+ "status",
185
+ help="Show configuration health and status",
133
186
  )
134
- display_group.add_argument(
135
- "--compact", action="store_true", help="Use compact display mode"
187
+ add_common_arguments(status_parser)
188
+
189
+ # Note: --verbose is provided by add_common_arguments()
190
+ status_parser.add_argument(
191
+ "--check-response-logging",
192
+ action="store_true",
193
+ help="Check response logging configuration",
194
+ )
195
+ status_parser.add_argument(
196
+ "--format",
197
+ choices=["yaml", "json", "text"],
198
+ default="text",
199
+ help="Output format (default: text)",
200
+ )
201
+ status_parser.add_argument(
202
+ "--config-file",
203
+ type=Path,
204
+ metavar="PATH",
205
+ help="Specific config file to check (default: all)",
136
206
  )
137
207
 
138
208
  return config_parser
@@ -0,0 +1,148 @@
1
+ """
2
+ Profile command parser for claude-mpm CLI.
3
+
4
+ WHY: This module provides the profile command for managing deployment profiles
5
+ that control which agents and skills are deployed.
6
+
7
+ DESIGN DECISION: Provides intuitive subcommands for listing, activating,
8
+ and inspecting profiles to reduce context usage by limiting deployed components.
9
+ """
10
+
11
+ import argparse
12
+
13
+ from ...constants import CLICommands
14
+ from .base_parser import add_common_arguments
15
+
16
+
17
+ def add_profile_subparser(subparsers) -> argparse.ArgumentParser:
18
+ """
19
+ Add the profile subparser for deployment profile management.
20
+
21
+ WHY: Users need to manage which agents and skills are deployed to reduce
22
+ context usage and improve performance. Profiles define enabled/disabled
23
+ agents and skills for specific workflows.
24
+
25
+ Args:
26
+ subparsers: The subparsers object from the main parser
27
+
28
+ Returns:
29
+ The configured profile subparser
30
+ """
31
+ # Profile command with subcommands
32
+ profile_parser = subparsers.add_parser(
33
+ "profile",
34
+ help="Manage deployment profiles for agents and skills",
35
+ description="""
36
+ Deployment profile management for Claude MPM.
37
+
38
+ Profiles control which agents and skills are deployed, reducing context usage
39
+ by limiting available agents to only what's needed for your workflow.
40
+
41
+ Available commands:
42
+ list List all available profiles
43
+ set Set the active profile
44
+ status Show current active profile and filtering summary
45
+ show Show detailed configuration of a profile
46
+
47
+ Example workflows:
48
+ # List available profiles
49
+ claude-mpm profile list
50
+
51
+ # Activate a profile
52
+ claude-mpm profile set framework-development
53
+
54
+ # Check current profile status
55
+ claude-mpm profile status
56
+
57
+ # View profile details
58
+ claude-mpm profile show framework-development
59
+ """,
60
+ formatter_class=argparse.RawDescriptionHelpFormatter,
61
+ )
62
+ add_common_arguments(profile_parser)
63
+
64
+ # Add subcommands
65
+ profile_subparsers = profile_parser.add_subparsers(
66
+ dest="profile_command",
67
+ help="Profile management commands",
68
+ metavar="SUBCOMMAND",
69
+ )
70
+
71
+ # List subcommand
72
+ list_parser = profile_subparsers.add_parser(
73
+ "list",
74
+ help="List all available deployment profiles",
75
+ description="""
76
+ List all profiles found in .claude-mpm/profiles/ directory.
77
+
78
+ Shows profile names, descriptions, and indicates which profile is currently active.
79
+ """,
80
+ formatter_class=argparse.RawDescriptionHelpFormatter,
81
+ )
82
+ add_common_arguments(list_parser)
83
+
84
+ # Set subcommand
85
+ set_parser = profile_subparsers.add_parser(
86
+ "set",
87
+ help="Set the active deployment profile",
88
+ description="""
89
+ Set the active deployment profile.
90
+
91
+ This updates configuration.yaml with the selected profile, which will be
92
+ applied on next startup or when running 'claude-mpm init'.
93
+
94
+ Examples:
95
+ # Activate framework development profile
96
+ claude-mpm profile set framework-development
97
+
98
+ # Activate minimal profile for focused work
99
+ claude-mpm profile set minimal
100
+ """,
101
+ formatter_class=argparse.RawDescriptionHelpFormatter,
102
+ )
103
+ add_common_arguments(set_parser)
104
+ set_parser.add_argument(
105
+ "profile_name",
106
+ help="Name of profile to activate (without .yaml extension)",
107
+ )
108
+
109
+ # Status subcommand
110
+ status_parser = profile_subparsers.add_parser(
111
+ "status",
112
+ help="Show current active profile and filtering summary",
113
+ description="""
114
+ Display current active profile with filtering summary.
115
+
116
+ Shows:
117
+ - Active profile name
118
+ - Number of agents enabled/disabled
119
+ - Number of skills enabled/disabled
120
+ - Disabled skill patterns
121
+ """,
122
+ formatter_class=argparse.RawDescriptionHelpFormatter,
123
+ )
124
+ add_common_arguments(status_parser)
125
+
126
+ # Show subcommand
127
+ show_parser = profile_subparsers.add_parser(
128
+ "show",
129
+ help="Show detailed configuration of a profile",
130
+ description="""
131
+ Display detailed configuration of a specific profile.
132
+
133
+ Shows complete lists of enabled/disabled agents and skills, including
134
+ glob patterns for skill filtering.
135
+
136
+ Examples:
137
+ # Show framework development profile details
138
+ claude-mpm profile show framework-development
139
+ """,
140
+ formatter_class=argparse.RawDescriptionHelpFormatter,
141
+ )
142
+ add_common_arguments(show_parser)
143
+ show_parser.add_argument(
144
+ "profile_name",
145
+ help="Name of profile to display (without .yaml extension)",
146
+ )
147
+
148
+ return profile_parser
@@ -168,9 +168,10 @@ def add_skills_subparser(subparsers) -> argparse.ArgumentParser:
168
168
  help="Force redeployment of already deployed skills",
169
169
  )
170
170
  deploy_github_parser.add_argument(
171
- "--all",
171
+ "--all-skills",
172
172
  action="store_true",
173
- help="Deploy all available skills (no filtering)",
173
+ dest="all_skills",
174
+ help="Deploy ALL available skills (not just agent-referenced). By default, only skills referenced in agent frontmatter are deployed.",
174
175
  )
175
176
 
176
177
  # List available GitHub skills