claude-mpm 4.21.3__py3-none-any.whl → 5.0.2__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 (484) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +12 -0
  3. claude_mpm/agents/OUTPUT_STYLE.md +3 -48
  4. claude_mpm/agents/PM_INSTRUCTIONS.md +632 -334
  5. claude_mpm/agents/WORKFLOW.md +75 -2
  6. claude_mpm/agents/__init__.py +6 -0
  7. claude_mpm/agents/agent_loader.py +1 -4
  8. claude_mpm/agents/base_agent.json +6 -3
  9. claude_mpm/agents/frontmatter_validator.py +1 -1
  10. claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +370 -3
  11. claude_mpm/agents/templates/context-management-examples.md +544 -0
  12. claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
  13. claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
  14. claude_mpm/agents/templates/research-gate-examples.md +669 -0
  15. claude_mpm/agents/templates/structured-questions-examples.md +615 -0
  16. claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
  17. claude_mpm/agents/templates/ticketing-examples.md +277 -0
  18. claude_mpm/cli/__init__.py +38 -2
  19. claude_mpm/cli/commands/agent_source.py +774 -0
  20. claude_mpm/cli/commands/agent_state_manager.py +125 -20
  21. claude_mpm/cli/commands/agents.py +684 -13
  22. claude_mpm/cli/commands/agents_cleanup.py +210 -0
  23. claude_mpm/cli/commands/agents_discover.py +338 -0
  24. claude_mpm/cli/commands/aggregate.py +1 -1
  25. claude_mpm/cli/commands/analyze.py +3 -3
  26. claude_mpm/cli/commands/auto_configure.py +2 -6
  27. claude_mpm/cli/commands/cleanup.py +1 -1
  28. claude_mpm/cli/commands/config.py +7 -4
  29. claude_mpm/cli/commands/configure.py +478 -44
  30. claude_mpm/cli/commands/configure_agent_display.py +4 -4
  31. claude_mpm/cli/commands/configure_navigation.py +63 -46
  32. claude_mpm/cli/commands/debug.py +12 -12
  33. claude_mpm/cli/commands/doctor.py +10 -2
  34. claude_mpm/cli/commands/hook_errors.py +277 -0
  35. claude_mpm/cli/commands/local_deploy.py +1 -4
  36. claude_mpm/cli/commands/mcp_install_commands.py +1 -1
  37. claude_mpm/cli/commands/mpm_init/core.py +50 -2
  38. claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
  39. claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
  40. claude_mpm/cli/commands/run.py +124 -128
  41. claude_mpm/cli/commands/skill_source.py +694 -0
  42. claude_mpm/cli/commands/skills.py +435 -1
  43. claude_mpm/cli/executor.py +78 -3
  44. claude_mpm/cli/interactive/agent_wizard.py +919 -41
  45. claude_mpm/cli/parsers/agent_source_parser.py +171 -0
  46. claude_mpm/cli/parsers/agents_parser.py +173 -4
  47. claude_mpm/cli/parsers/base_parser.py +49 -0
  48. claude_mpm/cli/parsers/config_parser.py +96 -43
  49. claude_mpm/cli/parsers/skill_source_parser.py +169 -0
  50. claude_mpm/cli/parsers/skills_parser.py +138 -0
  51. claude_mpm/cli/parsers/source_parser.py +138 -0
  52. claude_mpm/cli/startup.py +499 -84
  53. claude_mpm/cli/startup_display.py +480 -0
  54. claude_mpm/cli/utils.py +1 -1
  55. claude_mpm/cli_module/commands.py +1 -1
  56. claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
  57. claude_mpm/commands/mpm-agents-detect.md +9 -0
  58. claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
  59. claude_mpm/commands/mpm-agents-recommend.md +9 -0
  60. claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
  61. claude_mpm/commands/mpm-doctor.md +9 -0
  62. claude_mpm/commands/mpm-help.md +11 -2
  63. claude_mpm/commands/mpm-init.md +27 -2
  64. claude_mpm/commands/mpm-monitor.md +9 -0
  65. claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
  66. claude_mpm/commands/mpm-status.md +9 -0
  67. claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
  68. claude_mpm/commands/mpm-ticket-view.md +552 -0
  69. claude_mpm/commands/mpm-version.md +9 -0
  70. claude_mpm/commands/mpm.md +10 -0
  71. claude_mpm/config/agent_presets.py +258 -0
  72. claude_mpm/config/agent_sources.py +325 -0
  73. claude_mpm/config/skill_sources.py +590 -0
  74. claude_mpm/constants.py +12 -0
  75. claude_mpm/core/api_validator.py +1 -1
  76. claude_mpm/core/claude_runner.py +17 -10
  77. claude_mpm/core/config.py +24 -0
  78. claude_mpm/core/constants.py +1 -1
  79. claude_mpm/core/framework/__init__.py +3 -16
  80. claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
  81. claude_mpm/core/framework/processors/metadata_processor.py +1 -1
  82. claude_mpm/core/hook_error_memory.py +381 -0
  83. claude_mpm/core/hook_manager.py +41 -2
  84. claude_mpm/core/interactive_session.py +112 -5
  85. claude_mpm/core/logger.py +3 -1
  86. claude_mpm/core/oneshot_session.py +94 -4
  87. claude_mpm/dashboard/static/css/activity.css +69 -69
  88. claude_mpm/dashboard/static/css/connection-status.css +10 -10
  89. claude_mpm/dashboard/static/css/dashboard.css +15 -15
  90. claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
  91. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
  92. claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
  93. claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
  94. claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
  95. claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
  96. claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
  97. claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
  98. claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
  99. claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
  100. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
  101. claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
  102. claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
  103. claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
  104. claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
  105. claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
  106. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
  107. claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
  108. claude_mpm/dashboard/static/js/connection-manager.js +76 -76
  109. claude_mpm/dashboard/static/js/dashboard.js +76 -58
  110. claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
  111. claude_mpm/dashboard/static/js/socket-client.js +138 -121
  112. claude_mpm/dashboard/templates/code_simple.html +23 -23
  113. claude_mpm/dashboard/templates/index.html +18 -18
  114. claude_mpm/experimental/cli_enhancements.py +1 -5
  115. claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
  116. claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
  117. claude_mpm/hooks/claude_hooks/installer.py +45 -0
  118. claude_mpm/hooks/failure_learning/__init__.py +2 -8
  119. claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
  120. claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
  121. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
  122. claude_mpm/hooks/kuzu_response_hook.py +1 -5
  123. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  124. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  125. claude_mpm/models/git_repository.py +198 -0
  126. claude_mpm/scripts/claude-hook-handler.sh +3 -3
  127. claude_mpm/scripts/start_activity_logging.py +3 -1
  128. claude_mpm/services/agents/agent_builder.py +45 -9
  129. claude_mpm/services/agents/agent_preset_service.py +238 -0
  130. claude_mpm/services/agents/agent_selection_service.py +484 -0
  131. claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
  132. claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
  133. claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
  134. claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
  135. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
  136. claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
  137. claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
  138. claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
  139. claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
  140. claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
  141. claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
  142. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
  143. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
  144. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
  145. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
  146. claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
  147. claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
  148. claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
  149. claude_mpm/services/agents/git_source_manager.py +629 -0
  150. claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
  151. claude_mpm/services/agents/local_template_manager.py +50 -10
  152. claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
  153. claude_mpm/services/agents/sources/__init__.py +13 -0
  154. claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
  155. claude_mpm/services/agents/sources/git_source_sync_service.py +1055 -0
  156. claude_mpm/services/agents/startup_sync.py +239 -0
  157. claude_mpm/services/agents/toolchain_detector.py +474 -0
  158. claude_mpm/services/cli/session_pause_manager.py +1 -1
  159. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  160. claude_mpm/services/command_deployment_service.py +92 -1
  161. claude_mpm/services/core/interfaces/__init__.py +1 -3
  162. claude_mpm/services/core/interfaces/health.py +1 -4
  163. claude_mpm/services/core/models/__init__.py +2 -11
  164. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  165. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  166. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  167. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  168. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  169. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  170. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  171. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  172. claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
  173. claude_mpm/services/event_bus/direct_relay.py +3 -3
  174. claude_mpm/services/event_bus/event_bus.py +36 -3
  175. claude_mpm/services/events/consumers/logging.py +1 -2
  176. claude_mpm/services/git/__init__.py +21 -0
  177. claude_mpm/services/git/git_operations_service.py +494 -0
  178. claude_mpm/services/github/__init__.py +21 -0
  179. claude_mpm/services/github/github_cli_service.py +397 -0
  180. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  181. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  182. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  183. claude_mpm/services/instructions/__init__.py +9 -0
  184. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  185. claude_mpm/services/local_ops/__init__.py +3 -13
  186. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  187. claude_mpm/services/local_ops/health_manager.py +1 -4
  188. claude_mpm/services/local_ops/process_manager.py +1 -1
  189. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  190. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  191. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  192. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  193. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  194. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  195. claude_mpm/services/memory/optimizer.py +1 -1
  196. claude_mpm/services/model/model_router.py +8 -9
  197. claude_mpm/services/monitor/daemon.py +1 -1
  198. claude_mpm/services/monitor/server.py +2 -2
  199. claude_mpm/services/native_agent_converter.py +356 -0
  200. claude_mpm/services/port_manager.py +1 -1
  201. claude_mpm/services/pr/__init__.py +14 -0
  202. claude_mpm/services/pr/pr_template_service.py +329 -0
  203. claude_mpm/services/project/documentation_manager.py +2 -1
  204. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  205. claude_mpm/services/runner_configuration_service.py +1 -0
  206. claude_mpm/services/self_upgrade_service.py +165 -7
  207. claude_mpm/services/skills/__init__.py +18 -0
  208. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  209. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  210. claude_mpm/services/skills_config.py +547 -0
  211. claude_mpm/services/skills_deployer.py +955 -0
  212. claude_mpm/services/socketio/handlers/connection.py +1 -1
  213. claude_mpm/services/socketio/handlers/git.py +2 -2
  214. claude_mpm/services/socketio/server/core.py +1 -4
  215. claude_mpm/services/socketio/server/main.py +1 -3
  216. claude_mpm/services/system_instructions_service.py +1 -3
  217. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  218. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  219. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  220. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  221. claude_mpm/services/unified/unified_deployment.py +1 -5
  222. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  223. claude_mpm/services/visualization/__init__.py +1 -5
  224. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  225. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  226. claude_mpm/skills/bundled/performance-profiling.md +6 -0
  227. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
  228. claude_mpm/skills/skills_registry.py +0 -1
  229. claude_mpm/templates/questions/__init__.py +38 -0
  230. claude_mpm/templates/questions/base.py +193 -0
  231. claude_mpm/templates/questions/pr_strategy.py +311 -0
  232. claude_mpm/templates/questions/project_init.py +385 -0
  233. claude_mpm/templates/questions/ticket_mgmt.py +394 -0
  234. claude_mpm/tools/__main__.py +8 -8
  235. claude_mpm/tools/code_tree_analyzer/analysis.py +1 -1
  236. claude_mpm/utils/agent_dependency_loader.py +80 -13
  237. claude_mpm/utils/dependency_cache.py +3 -1
  238. claude_mpm/utils/gitignore.py +241 -0
  239. claude_mpm/utils/log_cleanup.py +3 -3
  240. claude_mpm/utils/progress.py +383 -0
  241. claude_mpm/utils/robust_installer.py +3 -5
  242. claude_mpm/utils/structured_questions.py +619 -0
  243. {claude_mpm-4.21.3.dist-info → claude_mpm-5.0.2.dist-info}/METADATA +429 -59
  244. {claude_mpm-4.21.3.dist-info → claude_mpm-5.0.2.dist-info}/RECORD +252 -425
  245. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  246. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  247. claude_mpm/agents/templates/agent-manager.json +0 -273
  248. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  249. claude_mpm/agents/templates/api_qa.json +0 -180
  250. claude_mpm/agents/templates/clerk-ops.json +0 -235
  251. claude_mpm/agents/templates/code_analyzer.json +0 -101
  252. claude_mpm/agents/templates/content-agent.json +0 -358
  253. claude_mpm/agents/templates/dart_engineer.json +0 -307
  254. claude_mpm/agents/templates/data_engineer.json +0 -225
  255. claude_mpm/agents/templates/documentation.json +0 -211
  256. claude_mpm/agents/templates/engineer.json +0 -210
  257. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  258. claude_mpm/agents/templates/golang_engineer.json +0 -270
  259. claude_mpm/agents/templates/imagemagick.json +0 -264
  260. claude_mpm/agents/templates/java_engineer.json +0 -346
  261. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  262. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  263. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  264. claude_mpm/agents/templates/memory_manager.json +0 -158
  265. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  266. claude_mpm/agents/templates/ops.json +0 -185
  267. claude_mpm/agents/templates/php-engineer.json +0 -287
  268. claude_mpm/agents/templates/product_owner.json +0 -338
  269. claude_mpm/agents/templates/project_organizer.json +0 -140
  270. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  271. claude_mpm/agents/templates/python_engineer.json +0 -387
  272. claude_mpm/agents/templates/qa.json +0 -242
  273. claude_mpm/agents/templates/react_engineer.json +0 -238
  274. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  275. claude_mpm/agents/templates/research.json +0 -188
  276. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  277. claude_mpm/agents/templates/rust_engineer.json +0 -275
  278. claude_mpm/agents/templates/security.json +0 -202
  279. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  280. claude_mpm/agents/templates/ticketing.json +0 -177
  281. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  282. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  283. claude_mpm/agents/templates/version_control.json +0 -157
  284. claude_mpm/agents/templates/web_qa.json +0 -399
  285. claude_mpm/agents/templates/web_ui.json +0 -189
  286. claude_mpm/commands/mpm-tickets.md +0 -102
  287. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  288. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  289. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  290. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  291. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  292. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  293. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  294. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  295. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  296. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  297. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  298. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  299. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  300. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  301. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  302. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  303. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  304. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  305. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  306. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  307. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  308. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  309. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  310. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  311. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  312. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  313. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  314. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  315. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  316. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  317. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  318. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  319. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  320. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  321. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  322. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  323. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  324. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  325. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  326. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  327. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  328. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  329. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  330. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  331. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  332. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  333. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  334. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  335. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  336. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  337. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  338. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  339. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  340. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  341. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  342. claude_mpm/dashboard/static/built/react/events.js +0 -30
  343. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  344. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  345. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  346. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  347. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  348. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  349. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  350. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  351. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  352. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  353. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  354. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  355. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  356. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  357. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  358. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  359. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  360. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  361. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  362. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  363. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  364. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  365. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  366. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  367. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  368. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  369. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  370. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  371. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  372. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  373. claude_mpm/dashboard/static/events.html +0 -607
  374. claude_mpm/dashboard/static/index.html +0 -635
  375. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  376. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  377. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  378. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  379. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  380. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  381. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  382. claude_mpm/dashboard/static/legacy/files.html +0 -747
  383. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  384. claude_mpm/dashboard/static/monitors.html +0 -431
  385. claude_mpm/dashboard/static/production/events.html +0 -659
  386. claude_mpm/dashboard/static/production/main.html +0 -698
  387. claude_mpm/dashboard/static/production/monitors.html +0 -483
  388. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  389. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  390. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  391. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  392. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  393. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  394. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  395. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  396. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  397. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  398. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  399. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  400. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  401. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  402. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  403. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  404. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  405. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  406. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  407. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  408. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  409. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  410. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  411. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  412. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  413. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  414. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  415. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  416. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  417. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  418. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  419. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  420. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  421. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  422. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  423. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  424. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  425. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  426. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  427. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  428. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  429. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  430. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  431. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  432. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  433. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  434. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  435. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  436. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  437. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  438. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
  439. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
  440. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
  441. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
  442. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
  443. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
  444. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
  445. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
  446. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
  447. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
  448. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
  449. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
  450. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
  451. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  452. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  453. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  454. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  455. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  456. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  457. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  458. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  459. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  460. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  461. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  462. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  463. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  464. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  465. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  466. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  467. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  468. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  469. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  470. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  471. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  472. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  473. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  474. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  475. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  476. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  477. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  478. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  479. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  480. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  481. {claude_mpm-4.21.3.dist-info → claude_mpm-5.0.2.dist-info}/WHEEL +0 -0
  482. {claude_mpm-4.21.3.dist-info → claude_mpm-5.0.2.dist-info}/entry_points.txt +0 -0
  483. {claude_mpm-4.21.3.dist-info → claude_mpm-5.0.2.dist-info}/licenses/LICENSE +0 -0
  484. {claude_mpm-4.21.3.dist-info → claude_mpm-5.0.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,171 @@
1
+ """Agent source command parser for agent repository management.
2
+
3
+ WHY: This module provides CLI commands for managing agent source repositories
4
+ (Git repositories containing agent markdown files). Parallel to skill source management
5
+ but for the agent deployment system (multi-tier Git-based agents).
6
+
7
+ DESIGN DECISION: Agent source management is separate from agent deployment to
8
+ maintain clear separation of concerns:
9
+ - agent-source commands: Manage repository configuration
10
+ - agents commands: View and interact with agents themselves
11
+
12
+ IMPLEMENTATION NOTE: This module is adapted from skill_source_parser.py, following
13
+ the same proven patterns but for agent repositories instead of skills.
14
+ """
15
+
16
+ import argparse
17
+
18
+ from .base_parser import add_common_arguments
19
+
20
+
21
+ def add_agent_source_subparser(subparsers) -> argparse.ArgumentParser:
22
+ """Add the agent-source subparser with all repository management commands.
23
+
24
+ WHY: Agent sources (Git repositories) need their own command group
25
+ for managing repository configuration, priorities, and synchronization.
26
+
27
+ Args:
28
+ subparsers: The subparsers object from the main parser
29
+
30
+ Returns:
31
+ The configured agent-source subparser
32
+ """
33
+ # Agent source command with subcommands
34
+ agent_source_parser = subparsers.add_parser(
35
+ "agent-source",
36
+ help="Manage agent source repositories",
37
+ )
38
+ add_common_arguments(agent_source_parser)
39
+
40
+ agent_source_subparsers = agent_source_parser.add_subparsers(
41
+ dest="agent_source_command",
42
+ help="Agent source repository commands",
43
+ metavar="SUBCOMMAND",
44
+ )
45
+
46
+ # Add repository
47
+ add_parser = agent_source_subparsers.add_parser(
48
+ "add",
49
+ help="Add a new agent source repository",
50
+ )
51
+ add_parser.add_argument(
52
+ "url",
53
+ help="Git repository URL (e.g., https://github.com/owner/repo)",
54
+ )
55
+ add_parser.add_argument(
56
+ "--subdirectory",
57
+ help="Subdirectory within repository containing agents (e.g., 'agents')",
58
+ )
59
+ add_parser.add_argument(
60
+ "--priority",
61
+ type=int,
62
+ default=100,
63
+ help="Priority for conflict resolution (lower = higher precedence, default: 100)",
64
+ )
65
+ add_parser.add_argument(
66
+ "--disabled",
67
+ action="store_true",
68
+ help="Add repository but keep it disabled",
69
+ )
70
+ add_parser.add_argument(
71
+ "--test",
72
+ action="store_true",
73
+ help="Test repository access without saving to configuration",
74
+ )
75
+ add_parser.add_argument(
76
+ "--no-test",
77
+ action="store_true",
78
+ dest="skip_test",
79
+ help="Skip immediate testing (not recommended)",
80
+ )
81
+
82
+ # Remove repository
83
+ remove_parser = agent_source_subparsers.add_parser(
84
+ "remove",
85
+ help="Remove an agent source repository",
86
+ )
87
+ remove_parser.add_argument(
88
+ "source_id",
89
+ help="Source identifier (e.g., 'owner/repo' or 'owner/repo/subdirectory')",
90
+ )
91
+ remove_parser.add_argument(
92
+ "--force",
93
+ action="store_true",
94
+ help="Skip confirmation prompt",
95
+ )
96
+
97
+ # List repositories
98
+ list_parser = agent_source_subparsers.add_parser(
99
+ "list",
100
+ help="List configured agent source repositories",
101
+ )
102
+ list_parser.add_argument(
103
+ "--by-priority",
104
+ action="store_true",
105
+ dest="by_priority",
106
+ help="Sort by priority (lowest first)",
107
+ )
108
+ list_parser.add_argument(
109
+ "--enabled-only",
110
+ action="store_true",
111
+ dest="enabled_only",
112
+ help="Show only enabled repositories",
113
+ )
114
+ list_parser.add_argument(
115
+ "--json",
116
+ action="store_true",
117
+ help="Output as JSON",
118
+ )
119
+
120
+ # Update/sync repositories
121
+ update_parser = agent_source_subparsers.add_parser(
122
+ "update",
123
+ help="Update (sync) agent sources from Git",
124
+ )
125
+ update_parser.add_argument(
126
+ "source_id",
127
+ nargs="?",
128
+ help="Optional: Update only this repository (default: update all)",
129
+ )
130
+ update_parser.add_argument(
131
+ "--force",
132
+ action="store_true",
133
+ help="Force update even if cache is fresh",
134
+ )
135
+
136
+ # Enable repository
137
+ enable_parser = agent_source_subparsers.add_parser(
138
+ "enable",
139
+ help="Enable a disabled repository",
140
+ )
141
+ enable_parser.add_argument(
142
+ "source_id",
143
+ help="Source identifier to enable",
144
+ )
145
+
146
+ # Disable repository
147
+ disable_parser = agent_source_subparsers.add_parser(
148
+ "disable",
149
+ help="Disable a repository",
150
+ )
151
+ disable_parser.add_argument(
152
+ "source_id",
153
+ help="Source identifier to disable",
154
+ )
155
+
156
+ # Show repository details
157
+ show_parser = agent_source_subparsers.add_parser(
158
+ "show",
159
+ help="Show details for an agent source",
160
+ )
161
+ show_parser.add_argument(
162
+ "source_id",
163
+ help="Source identifier to show",
164
+ )
165
+ show_parser.add_argument(
166
+ "--agents",
167
+ action="store_true",
168
+ help="Also list agents from this source",
169
+ )
170
+
171
+ return agent_source_parser
@@ -31,7 +31,22 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
31
31
  """
32
32
  # Agents command with subcommands
33
33
  agents_parser = subparsers.add_parser(
34
- CLICommands.AGENTS.value, help="Manage agents and deployment"
34
+ CLICommands.AGENTS.value,
35
+ help="Manage agents and deployment",
36
+ description="""
37
+ Manage Claude MPM agents.
38
+
39
+ NOTE: For interactive agent management, use 'claude-mpm config' instead.
40
+ The 'agents manage' command has been deprecated in favor of the
41
+ unified configuration interface.
42
+
43
+ Available commands:
44
+ discover Discover available agents from configured sources
45
+ deploy Deploy agents to your project
46
+ list List available agents
47
+ manage (Deprecated) Use 'claude-mpm config' instead
48
+ """,
49
+ formatter_class=argparse.RawDescriptionHelpFormatter,
35
50
  )
36
51
  add_common_arguments(agents_parser)
37
52
 
@@ -121,9 +136,17 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
121
136
  "--backup", action="store_true", help="Create backup before deletion"
122
137
  )
123
138
 
124
- # Manage local agents (interactive menu)
125
- agents_subparsers.add_parser(
126
- "manage", help="Interactive menu for managing local agents"
139
+ # Manage local agents (interactive menu) - DEPRECATED
140
+ manage_parser = agents_subparsers.add_parser(
141
+ "manage",
142
+ help="(Deprecated) Manage local agents - use 'claude-mpm config' instead",
143
+ description="Manage locally deployed agents. Note: This command has been deprecated. "
144
+ "Please use 'claude-mpm config' for the enhanced configuration interface.",
145
+ )
146
+ manage_parser.epilog = (
147
+ "\nDEPRECATION NOTICE:\n"
148
+ "This command has been deprecated in favor of 'claude-mpm config' which provides\n"
149
+ "a unified interface for managing agents, skills, templates, and behavior settings.\n"
127
150
  )
128
151
 
129
152
  # Configure agent deployment settings
@@ -193,6 +216,11 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
193
216
  action="store_true",
194
217
  help="Show what would be deployed without actually deploying",
195
218
  )
219
+ deploy_agents_parser.add_argument(
220
+ "--preset",
221
+ type=str,
222
+ help="Deploy agents by preset name (minimal, python-dev, nextjs-fullstack, etc.)",
223
+ )
196
224
 
197
225
  # Validate agents
198
226
  validate_agents_parser = agents_subparsers.add_parser(
@@ -240,6 +268,28 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
240
268
  help="Maximum retry attempts per package (default: 3)",
241
269
  )
242
270
 
271
+ # Cleanup: sync, install, and remove old underscore-named agents
272
+ cleanup_parser = agents_subparsers.add_parser(
273
+ "cleanup",
274
+ help="Sync agents, install with new naming, and remove old underscore-named duplicates",
275
+ )
276
+ cleanup_parser.add_argument(
277
+ "--dry-run",
278
+ action="store_true",
279
+ help="Show what would be done without actually doing it",
280
+ )
281
+ cleanup_parser.add_argument(
282
+ "--target",
283
+ type=Path,
284
+ help="Target directory for agent deployment (default: project .claude-mpm/agents/)",
285
+ )
286
+ cleanup_parser.add_argument(
287
+ "--global",
288
+ dest="global_deployment",
289
+ action="store_true",
290
+ help="Deploy to global ~/.claude/agents/ instead of project directory",
291
+ )
292
+
243
293
  # Cleanup orphaned agents
244
294
  cleanup_orphaned_parser = agents_subparsers.add_parser(
245
295
  "cleanup-orphaned", help="Clean up orphaned agents that don't have templates"
@@ -266,6 +316,96 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
266
316
  help="Only show summary, not individual agents",
267
317
  )
268
318
 
319
+ # Migrate user-level agents to project-level (DEPRECATION support)
320
+ migrate_parser = agents_subparsers.add_parser(
321
+ "migrate-to-project",
322
+ help="Migrate user-level agents to project-level (user-level is DEPRECATED)",
323
+ )
324
+ migrate_parser.add_argument(
325
+ "--dry-run",
326
+ action="store_true",
327
+ help="Show what would be migrated without actually doing it",
328
+ )
329
+ migrate_parser.add_argument(
330
+ "--force",
331
+ "-f",
332
+ action="store_true",
333
+ help="Overwrite existing project agents if conflicts",
334
+ )
335
+
336
+ # Deploy all agents from sources (single-tier deployment)
337
+ deploy_all_parser = agents_subparsers.add_parser(
338
+ "deploy-all",
339
+ help="Deploy all agents from configured sources (single-tier deployment)",
340
+ )
341
+ deploy_all_parser.add_argument(
342
+ "--force-sync",
343
+ action="store_true",
344
+ help="Force sync repositories before deploying (ignore cache)",
345
+ )
346
+ deploy_all_parser.add_argument(
347
+ "--dry-run",
348
+ action="store_true",
349
+ help="Show what would be deployed without actually deploying",
350
+ )
351
+
352
+ # List available agents from sources
353
+ available_parser = agents_subparsers.add_parser(
354
+ "available",
355
+ help="List available agents from all configured sources",
356
+ )
357
+ available_parser.add_argument(
358
+ "--source",
359
+ help="Filter by source repository (e.g., 'owner/repo/subdirectory')",
360
+ )
361
+ available_parser.add_argument(
362
+ "--format",
363
+ choices=["table", "json", "simple"],
364
+ default="table",
365
+ help="Output format (default: table)",
366
+ )
367
+
368
+ # Discover agents with rich filtering (Phase 1: Discovery & Browsing)
369
+ discover_parser = agents_subparsers.add_parser(
370
+ "discover",
371
+ help="Discover available agents from configured sources with rich filtering",
372
+ )
373
+ discover_parser.add_argument(
374
+ "--source",
375
+ help="Filter by specific source ID (e.g., 'owner/repo')",
376
+ )
377
+ discover_parser.add_argument(
378
+ "--category",
379
+ help="Filter by category (e.g., 'engineer/backend', 'qa', 'ops/platform')",
380
+ )
381
+ discover_parser.add_argument(
382
+ "--language",
383
+ help="Filter by programming language (e.g., 'python', 'javascript', 'rust')",
384
+ )
385
+ discover_parser.add_argument(
386
+ "--framework",
387
+ help="Filter by framework (e.g., 'react', 'nextjs', 'django')",
388
+ )
389
+ discover_parser.add_argument(
390
+ "--platform",
391
+ help="Filter by platform (e.g., 'vercel', 'gcp', 'docker')",
392
+ )
393
+ discover_parser.add_argument(
394
+ "--specialization",
395
+ help="Filter by specialization (e.g., 'data', 'security', 'mobile')",
396
+ )
397
+ discover_parser.add_argument(
398
+ "--format",
399
+ choices=["table", "json", "simple"],
400
+ default="table",
401
+ help="Output format (default: table)",
402
+ )
403
+ discover_parser.add_argument(
404
+ "--verbose",
405
+ action="store_true",
406
+ help="Show descriptions and metadata for each agent",
407
+ )
408
+
269
409
  # Auto-configuration commands (TSK-0054 Phase 5)
270
410
  from .auto_configure_parser import (
271
411
  add_agents_detect_subparser,
@@ -275,4 +415,33 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
275
415
  add_agents_detect_subparser(agents_subparsers)
276
416
  add_agents_recommend_subparser(agents_subparsers)
277
417
 
418
+ # Phase 3: Agent Selection Modes (single-tier deployment)
419
+ # Minimal configuration - deploy 6 core agents
420
+ deploy_minimal_parser = agents_subparsers.add_parser(
421
+ "deploy-minimal",
422
+ help="Deploy minimal configuration (6 core agents: engineer, documentation, qa, research, ops, ticketing)",
423
+ )
424
+ deploy_minimal_parser.add_argument(
425
+ "--dry-run",
426
+ action="store_true",
427
+ help="Show what would be deployed without actually deploying",
428
+ )
429
+
430
+ # Auto-configure - detect toolchain and deploy matching agents
431
+ deploy_auto_parser = agents_subparsers.add_parser(
432
+ "deploy-auto",
433
+ help="Auto-detect project toolchain and deploy matching agents",
434
+ )
435
+ deploy_auto_parser.add_argument(
436
+ "--path",
437
+ type=Path,
438
+ default=Path.cwd(),
439
+ help="Project path to scan for toolchain detection (default: current directory)",
440
+ )
441
+ deploy_auto_parser.add_argument(
442
+ "--dry-run",
443
+ action="store_true",
444
+ help="Show what would be deployed without actually deploying",
445
+ )
446
+
278
447
  return agents_parser
@@ -389,6 +389,27 @@ def create_parser(
389
389
  except ImportError:
390
390
  pass
391
391
 
392
+ try:
393
+ from .source_parser import add_source_subparser
394
+
395
+ add_source_subparser(subparsers)
396
+ except ImportError:
397
+ pass
398
+
399
+ try:
400
+ from .skill_source_parser import add_skill_source_subparser
401
+
402
+ add_skill_source_subparser(subparsers)
403
+ except ImportError:
404
+ pass
405
+
406
+ try:
407
+ from .agent_source_parser import add_agent_source_subparser
408
+
409
+ add_agent_source_subparser(subparsers)
410
+ except ImportError:
411
+ pass
412
+
392
413
  try:
393
414
  from .auto_configure_parser import add_auto_configure_subparser
394
415
 
@@ -541,6 +562,34 @@ def create_parser(
541
562
  from ..commands.verify import add_parser as add_verify_parser
542
563
 
543
564
  add_verify_parser(subparsers)
565
+
566
+ # Add hook-errors command for managing hook error memory
567
+ hook_errors_parser = subparsers.add_parser(
568
+ "hook-errors",
569
+ help="Manage hook error memory and diagnostics",
570
+ )
571
+ hook_errors_parser.add_argument(
572
+ "hook_errors_command",
573
+ nargs="?",
574
+ choices=["list", "summary", "clear", "diagnose", "status"],
575
+ help="Hook errors subcommand",
576
+ )
577
+ hook_errors_parser.add_argument(
578
+ "--format",
579
+ choices=["table", "json"],
580
+ default="table",
581
+ help="Output format for list command",
582
+ )
583
+ hook_errors_parser.add_argument(
584
+ "--hook-type",
585
+ help="Filter by specific hook type",
586
+ )
587
+ hook_errors_parser.add_argument(
588
+ "-y",
589
+ "--yes",
590
+ action="store_true",
591
+ help="Skip confirmation prompts",
592
+ )
544
593
  except ImportError:
545
594
  # Commands module may not be available during testing or refactoring
546
595
  pass
@@ -1,27 +1,26 @@
1
- from pathlib import Path
2
-
3
1
  """
4
2
  Config command parser for claude-mpm CLI.
5
3
 
6
- WHY: This module contains all arguments specific to configuration management,
7
- extracted from the monolithic parser.py for better organization.
4
+ WHY: This module provides the config command which is synonymous with configure.
5
+ Both launch the interactive configuration TUI.
8
6
 
9
- DESIGN DECISION: Configuration commands handle validation and management
10
- of claude-mpm settings and warrant their own module.
7
+ DESIGN DECISION: 'config' and 'configure' are aliases - both commands provide
8
+ identical functionality through the interactive configuration interface.
11
9
  """
12
10
 
13
11
  import argparse
14
12
 
15
- from ...constants import CLICommands, ConfigCommands
13
+ from ...constants import CLICommands
16
14
  from .base_parser import add_common_arguments
17
15
 
18
16
 
19
17
  def add_config_subparser(subparsers) -> argparse.ArgumentParser:
20
18
  """
21
- Add the config subparser with all configuration management commands.
19
+ Add the config subparser (alias for configure).
22
20
 
23
- WHY: Configuration management has multiple subcommands for validation,
24
- viewing, and editing that need their own argument structures.
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.
25
24
 
26
25
  Args:
27
26
  subparsers: The subparsers object from the main parser
@@ -29,57 +28,111 @@ def add_config_subparser(subparsers) -> argparse.ArgumentParser:
29
28
  Returns:
30
29
  The configured config subparser
31
30
  """
32
- # Config command with subcommands
31
+ # Config command - alias for configure (interactive configuration)
33
32
  config_parser = subparsers.add_parser(
34
- CLICommands.CONFIG.value, help="Validate and manage configuration"
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",
35
36
  )
37
+
38
+ # Add common arguments
36
39
  add_common_arguments(config_parser)
37
40
 
38
- config_subparsers = config_parser.add_subparsers(
39
- dest="config_command", help="Config commands", metavar="SUBCOMMAND"
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)",
40
48
  )
41
49
 
42
- # Validate config
43
- validate_config_parser = config_subparsers.add_parser(
44
- ConfigCommands.VALIDATE.value, help="Validate configuration files"
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"
45
54
  )
46
- validate_config_parser.add_argument(
47
- "--config-file",
48
- type=Path,
49
- help="Specific config file to validate (default: all)",
55
+ nav_group.add_argument(
56
+ "--templates", action="store_true", help="Jump directly to template editing"
57
+ )
58
+ nav_group.add_argument(
59
+ "--behaviors",
60
+ action="store_true",
61
+ help="Jump directly to behavior file management",
50
62
  )
51
- validate_config_parser.add_argument(
52
- "--strict", action="store_true", help="Use strict validation rules"
63
+ nav_group.add_argument(
64
+ "--startup",
65
+ action="store_true",
66
+ help="Configure startup services and agents",
53
67
  )
54
- validate_config_parser.add_argument(
55
- "--fix",
68
+ nav_group.add_argument(
69
+ "--version-info",
56
70
  action="store_true",
57
- help="Attempt to fix validation errors automatically",
71
+ help="Display version information and exit",
72
+ )
73
+
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"
78
+ )
79
+ noninteractive_group.add_argument(
80
+ "--enable-agent",
81
+ type=str,
82
+ metavar="AGENT_NAME",
83
+ help="Enable a specific agent and exit",
84
+ )
85
+ noninteractive_group.add_argument(
86
+ "--disable-agent",
87
+ type=str,
88
+ metavar="AGENT_NAME",
89
+ help="Disable a specific agent and exit",
90
+ )
91
+ noninteractive_group.add_argument(
92
+ "--export-config",
93
+ type=str,
94
+ metavar="FILE",
95
+ help="Export current configuration to a file",
96
+ )
97
+ noninteractive_group.add_argument(
98
+ "--import-config",
99
+ type=str,
100
+ metavar="FILE",
101
+ help="Import configuration from a file",
58
102
  )
59
103
 
60
- # View config
61
- view_config_parser = config_subparsers.add_parser(
62
- ConfigCommands.VIEW.value, help="View current configuration"
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",
63
110
  )
64
- view_config_parser.add_argument(
65
- "--section", help="Specific configuration section to view"
111
+ hooks_group.add_argument(
112
+ "--verify-hooks",
113
+ action="store_true",
114
+ help="Verify that Claude MPM hooks are properly installed",
66
115
  )
67
- view_config_parser.add_argument(
68
- "--format",
69
- choices=["yaml", "json", "table"],
70
- default="yaml",
71
- help="Output format (default: yaml)",
116
+ hooks_group.add_argument(
117
+ "--uninstall-hooks",
118
+ action="store_true",
119
+ help="Uninstall Claude MPM hooks",
72
120
  )
73
- view_config_parser.add_argument(
74
- "--show-defaults", action="store_true", help="Include default values in output"
121
+ hooks_group.add_argument(
122
+ "--force",
123
+ action="store_true",
124
+ help="Force reinstallation of hooks even if they already exist",
75
125
  )
76
126
 
77
- # Status config
78
- status_config_parser = config_subparsers.add_parser(
79
- ConfigCommands.STATUS.value, help="Show configuration status"
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",
80
133
  )
81
- status_config_parser.add_argument(
82
- "--verbose", action="store_true", help="Show detailed status information"
134
+ display_group.add_argument(
135
+ "--compact", action="store_true", help="Use compact display mode"
83
136
  )
84
137
 
85
138
  return config_parser