claude-mpm 4.21.0__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 (497) 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 +14 -2
  63. claude_mpm/commands/mpm-init.md +27 -2
  64. claude_mpm/commands/mpm-monitor.md +9 -0
  65. claude_mpm/commands/mpm-session-resume.md +381 -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 +11 -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/base.py +26 -11
  162. claude_mpm/services/core/interfaces/__init__.py +1 -3
  163. claude_mpm/services/core/interfaces/health.py +1 -4
  164. claude_mpm/services/core/models/__init__.py +2 -11
  165. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  166. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  167. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  168. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  169. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  170. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  171. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  172. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  173. claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
  174. claude_mpm/services/event_bus/direct_relay.py +3 -3
  175. claude_mpm/services/event_bus/event_bus.py +36 -3
  176. claude_mpm/services/event_bus/relay.py +23 -7
  177. claude_mpm/services/events/consumers/logging.py +1 -2
  178. claude_mpm/services/git/__init__.py +21 -0
  179. claude_mpm/services/git/git_operations_service.py +494 -0
  180. claude_mpm/services/github/__init__.py +21 -0
  181. claude_mpm/services/github/github_cli_service.py +397 -0
  182. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  183. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  184. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  185. claude_mpm/services/instructions/__init__.py +9 -0
  186. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  187. claude_mpm/services/local_ops/__init__.py +3 -13
  188. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  189. claude_mpm/services/local_ops/health_manager.py +1 -4
  190. claude_mpm/services/local_ops/process_manager.py +1 -1
  191. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  192. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  193. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  194. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  195. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  196. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  197. claude_mpm/services/memory/failure_tracker.py +19 -4
  198. claude_mpm/services/memory/optimizer.py +1 -1
  199. claude_mpm/services/model/model_router.py +8 -9
  200. claude_mpm/services/monitor/daemon.py +1 -1
  201. claude_mpm/services/monitor/server.py +2 -2
  202. claude_mpm/services/native_agent_converter.py +356 -0
  203. claude_mpm/services/port_manager.py +1 -1
  204. claude_mpm/services/pr/__init__.py +14 -0
  205. claude_mpm/services/pr/pr_template_service.py +329 -0
  206. claude_mpm/services/project/documentation_manager.py +2 -1
  207. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  208. claude_mpm/services/runner_configuration_service.py +1 -0
  209. claude_mpm/services/self_upgrade_service.py +165 -7
  210. claude_mpm/services/skills/__init__.py +18 -0
  211. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  212. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  213. claude_mpm/services/skills_config.py +547 -0
  214. claude_mpm/services/skills_deployer.py +955 -0
  215. claude_mpm/services/socketio/handlers/connection.py +1 -1
  216. claude_mpm/services/socketio/handlers/git.py +2 -2
  217. claude_mpm/services/socketio/server/core.py +1 -4
  218. claude_mpm/services/socketio/server/main.py +1 -3
  219. claude_mpm/services/system_instructions_service.py +1 -3
  220. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  221. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  222. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  223. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  224. claude_mpm/services/unified/unified_deployment.py +1 -5
  225. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  226. claude_mpm/services/visualization/__init__.py +1 -5
  227. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  228. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  229. claude_mpm/skills/bundled/performance-profiling.md +6 -0
  230. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
  231. claude_mpm/skills/skills_registry.py +0 -1
  232. claude_mpm/templates/questions/__init__.py +38 -0
  233. claude_mpm/templates/questions/base.py +193 -0
  234. claude_mpm/templates/questions/pr_strategy.py +311 -0
  235. claude_mpm/templates/questions/project_init.py +385 -0
  236. claude_mpm/templates/questions/ticket_mgmt.py +394 -0
  237. claude_mpm/tools/__main__.py +8 -8
  238. claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
  239. claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
  240. claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
  241. claude_mpm/tools/code_tree_analyzer/core.py +380 -0
  242. claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
  243. claude_mpm/tools/code_tree_analyzer/events.py +168 -0
  244. claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
  245. claude_mpm/tools/code_tree_analyzer/models.py +39 -0
  246. claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
  247. claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
  248. claude_mpm/utils/agent_dependency_loader.py +80 -13
  249. claude_mpm/utils/dependency_cache.py +3 -1
  250. claude_mpm/utils/gitignore.py +241 -0
  251. claude_mpm/utils/log_cleanup.py +3 -3
  252. claude_mpm/utils/progress.py +383 -0
  253. claude_mpm/utils/robust_installer.py +3 -5
  254. claude_mpm/utils/structured_questions.py +619 -0
  255. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/METADATA +429 -59
  256. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/RECORD +264 -427
  257. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  258. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  259. claude_mpm/agents/templates/agent-manager.json +0 -273
  260. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  261. claude_mpm/agents/templates/api_qa.json +0 -180
  262. claude_mpm/agents/templates/clerk-ops.json +0 -235
  263. claude_mpm/agents/templates/code_analyzer.json +0 -101
  264. claude_mpm/agents/templates/content-agent.json +0 -358
  265. claude_mpm/agents/templates/dart_engineer.json +0 -307
  266. claude_mpm/agents/templates/data_engineer.json +0 -225
  267. claude_mpm/agents/templates/documentation.json +0 -211
  268. claude_mpm/agents/templates/engineer.json +0 -210
  269. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  270. claude_mpm/agents/templates/golang_engineer.json +0 -270
  271. claude_mpm/agents/templates/imagemagick.json +0 -264
  272. claude_mpm/agents/templates/java_engineer.json +0 -346
  273. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  274. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  275. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  276. claude_mpm/agents/templates/memory_manager.json +0 -158
  277. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  278. claude_mpm/agents/templates/ops.json +0 -185
  279. claude_mpm/agents/templates/php-engineer.json +0 -287
  280. claude_mpm/agents/templates/product_owner.json +0 -338
  281. claude_mpm/agents/templates/project_organizer.json +0 -140
  282. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  283. claude_mpm/agents/templates/python_engineer.json +0 -387
  284. claude_mpm/agents/templates/qa.json +0 -242
  285. claude_mpm/agents/templates/react_engineer.json +0 -238
  286. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  287. claude_mpm/agents/templates/research.json +0 -188
  288. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  289. claude_mpm/agents/templates/rust_engineer.json +0 -275
  290. claude_mpm/agents/templates/security.json +0 -202
  291. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  292. claude_mpm/agents/templates/ticketing.json +0 -177
  293. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  294. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  295. claude_mpm/agents/templates/version_control.json +0 -157
  296. claude_mpm/agents/templates/web_qa.json +0 -399
  297. claude_mpm/agents/templates/web_ui.json +0 -189
  298. claude_mpm/commands/mpm-tickets.md +0 -102
  299. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  300. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  301. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  302. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  303. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  304. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  305. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  306. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  307. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  308. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  309. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  310. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  311. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  312. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  313. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  314. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  315. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  316. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  317. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  318. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  319. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  320. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  321. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  322. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  323. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  324. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  325. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  326. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  327. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  328. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  329. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  330. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  331. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  332. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  333. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  334. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  335. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  336. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  337. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  338. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  339. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  340. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  341. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  342. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  343. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  344. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  345. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  346. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  347. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  348. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  349. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  350. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  351. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  352. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  353. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  354. claude_mpm/dashboard/static/built/react/events.js +0 -30
  355. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  356. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  357. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  358. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  359. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  360. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  361. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  362. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  363. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  364. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  365. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  366. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  367. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  368. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  369. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  370. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  371. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  372. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  373. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  374. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  375. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  376. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  377. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  378. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  379. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  380. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  381. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  382. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  383. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  384. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  385. claude_mpm/dashboard/static/events.html +0 -607
  386. claude_mpm/dashboard/static/index.html +0 -635
  387. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  388. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  389. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  390. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  391. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  392. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  393. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  394. claude_mpm/dashboard/static/legacy/files.html +0 -747
  395. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  396. claude_mpm/dashboard/static/monitors.html +0 -431
  397. claude_mpm/dashboard/static/production/events.html +0 -659
  398. claude_mpm/dashboard/static/production/main.html +0 -698
  399. claude_mpm/dashboard/static/production/monitors.html +0 -483
  400. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  401. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  402. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  403. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  404. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  405. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  406. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  407. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  408. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  409. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  410. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  411. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  412. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  413. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  414. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  415. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  416. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  417. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  418. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  419. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  420. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  421. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  422. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  423. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  424. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  425. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  426. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  427. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  428. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  429. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  430. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  431. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  432. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  433. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  434. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  435. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  436. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  437. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  438. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  439. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  440. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  441. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  442. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  443. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  444. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  445. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  446. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  447. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  448. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  449. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  450. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
  451. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
  452. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
  453. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
  454. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
  455. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
  456. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
  457. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
  458. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
  459. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
  460. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
  461. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
  462. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
  463. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  464. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  465. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  466. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  467. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  468. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  469. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  470. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  471. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  472. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  473. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  474. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  475. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  476. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  477. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  478. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  479. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  480. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  481. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  482. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  483. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  484. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  485. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  486. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  487. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  488. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  489. claude_mpm/tools/code_tree_analyzer.py +0 -1825
  490. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  491. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  492. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  493. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  494. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/WHEEL +0 -0
  495. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/entry_points.txt +0 -0
  496. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/licenses/LICENSE +0 -0
  497. {claude_mpm-4.21.0.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