claude-mpm 4.25.10__py3-none-any.whl → 5.1.8__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 (507) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +12 -0
  3. claude_mpm/agents/PM_INSTRUCTIONS.md +1055 -2230
  4. claude_mpm/agents/PM_INSTRUCTIONS_TEACH.md +1322 -0
  5. claude_mpm/agents/WORKFLOW.md +4 -4
  6. claude_mpm/agents/__init__.py +6 -0
  7. claude_mpm/agents/agent_loader.py +1 -4
  8. claude_mpm/agents/base_agent_loader.py +10 -35
  9. claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +576 -66
  10. claude_mpm/agents/templates/context-management-examples.md +544 -0
  11. claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
  12. claude_mpm/agents/templates/research-gate-examples.md +669 -0
  13. claude_mpm/agents/templates/structured-questions-examples.md +615 -0
  14. claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
  15. claude_mpm/agents/templates/ticketing-examples.md +277 -0
  16. claude_mpm/cli/__init__.py +28 -3
  17. claude_mpm/cli/commands/__init__.py +2 -0
  18. claude_mpm/cli/commands/agent_source.py +774 -0
  19. claude_mpm/cli/commands/agent_state_manager.py +188 -30
  20. claude_mpm/cli/commands/agents.py +959 -36
  21. claude_mpm/cli/commands/agents_cleanup.py +210 -0
  22. claude_mpm/cli/commands/agents_discover.py +338 -0
  23. claude_mpm/cli/commands/auto_configure.py +537 -239
  24. claude_mpm/cli/commands/config.py +7 -4
  25. claude_mpm/cli/commands/configure.py +924 -45
  26. claude_mpm/cli/commands/configure_navigation.py +63 -46
  27. claude_mpm/cli/commands/doctor.py +10 -2
  28. claude_mpm/cli/commands/local_deploy.py +1 -4
  29. claude_mpm/cli/commands/postmortem.py +401 -0
  30. claude_mpm/cli/commands/run.py +1 -39
  31. claude_mpm/cli/commands/skill_source.py +694 -0
  32. claude_mpm/cli/commands/skills.py +322 -19
  33. claude_mpm/cli/executor.py +22 -3
  34. claude_mpm/cli/interactive/agent_wizard.py +1028 -43
  35. claude_mpm/cli/parsers/agent_source_parser.py +171 -0
  36. claude_mpm/cli/parsers/agents_parser.py +256 -4
  37. claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
  38. claude_mpm/cli/parsers/base_parser.py +25 -0
  39. claude_mpm/cli/parsers/config_parser.py +96 -43
  40. claude_mpm/cli/parsers/skill_source_parser.py +169 -0
  41. claude_mpm/cli/parsers/skills_parser.py +7 -0
  42. claude_mpm/cli/parsers/source_parser.py +138 -0
  43. claude_mpm/cli/startup.py +456 -103
  44. claude_mpm/cli/startup_display.py +4 -4
  45. claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
  46. claude_mpm/commands/mpm-agents-detect.md +9 -0
  47. claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
  48. claude_mpm/commands/mpm-agents-recommend.md +9 -0
  49. claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
  50. claude_mpm/commands/mpm-doctor.md +9 -0
  51. claude_mpm/commands/mpm-help.md +14 -2
  52. claude_mpm/commands/mpm-init.md +9 -0
  53. claude_mpm/commands/mpm-monitor.md +9 -0
  54. claude_mpm/commands/mpm-postmortem.md +123 -0
  55. claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
  56. claude_mpm/commands/mpm-status.md +9 -0
  57. claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
  58. claude_mpm/commands/mpm-ticket-view.md +552 -0
  59. claude_mpm/commands/mpm-version.md +9 -0
  60. claude_mpm/commands/mpm.md +10 -0
  61. claude_mpm/config/agent_presets.py +488 -0
  62. claude_mpm/config/agent_sources.py +325 -0
  63. claude_mpm/config/skill_presets.py +392 -0
  64. claude_mpm/config/skill_sources.py +590 -0
  65. claude_mpm/constants.py +1 -0
  66. claude_mpm/core/claude_runner.py +5 -34
  67. claude_mpm/core/config.py +16 -0
  68. claude_mpm/core/framework/__init__.py +3 -16
  69. claude_mpm/core/framework/loaders/file_loader.py +54 -101
  70. claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
  71. claude_mpm/core/interactive_session.py +83 -7
  72. claude_mpm/core/oneshot_session.py +71 -8
  73. claude_mpm/core/protocols/__init__.py +23 -0
  74. claude_mpm/core/protocols/runner_protocol.py +103 -0
  75. claude_mpm/core/protocols/session_protocol.py +131 -0
  76. claude_mpm/core/shared/singleton_manager.py +11 -4
  77. claude_mpm/core/system_context.py +38 -0
  78. claude_mpm/core/unified_config.py +22 -0
  79. claude_mpm/experimental/cli_enhancements.py +1 -5
  80. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
  81. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
  82. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
  83. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
  84. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
  85. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
  86. claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
  87. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
  88. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
  89. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
  90. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
  91. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
  92. claude_mpm/hooks/failure_learning/__init__.py +2 -8
  93. claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
  94. claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
  95. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
  96. claude_mpm/hooks/kuzu_response_hook.py +1 -5
  97. claude_mpm/models/git_repository.py +198 -0
  98. claude_mpm/services/agents/agent_builder.py +45 -9
  99. claude_mpm/services/agents/agent_preset_service.py +238 -0
  100. claude_mpm/services/agents/agent_selection_service.py +484 -0
  101. claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
  102. claude_mpm/services/agents/cache_git_manager.py +621 -0
  103. claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
  104. claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
  105. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
  106. claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
  107. claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
  108. claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
  109. claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
  110. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
  111. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
  112. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
  113. claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
  114. claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
  115. claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
  116. claude_mpm/services/agents/git_source_manager.py +629 -0
  117. claude_mpm/services/agents/loading/framework_agent_loader.py +1 -4
  118. claude_mpm/services/agents/local_template_manager.py +47 -9
  119. claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
  120. claude_mpm/services/agents/sources/__init__.py +13 -0
  121. claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
  122. claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
  123. claude_mpm/services/agents/startup_sync.py +239 -0
  124. claude_mpm/services/agents/toolchain_detector.py +474 -0
  125. claude_mpm/services/analysis/__init__.py +25 -0
  126. claude_mpm/services/analysis/postmortem_reporter.py +474 -0
  127. claude_mpm/services/analysis/postmortem_service.py +765 -0
  128. claude_mpm/services/command_deployment_service.py +200 -6
  129. claude_mpm/services/core/base.py +7 -2
  130. claude_mpm/services/core/interfaces/__init__.py +1 -3
  131. claude_mpm/services/core/interfaces/health.py +1 -4
  132. claude_mpm/services/core/models/__init__.py +2 -11
  133. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  134. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  135. claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
  136. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  137. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  138. claude_mpm/services/diagnostics/doctor_reporter.py +34 -6
  139. claude_mpm/services/git/__init__.py +21 -0
  140. claude_mpm/services/git/git_operations_service.py +494 -0
  141. claude_mpm/services/github/__init__.py +21 -0
  142. claude_mpm/services/github/github_cli_service.py +397 -0
  143. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  144. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  145. claude_mpm/services/instructions/__init__.py +9 -0
  146. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  147. claude_mpm/services/local_ops/__init__.py +3 -13
  148. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  149. claude_mpm/services/local_ops/health_manager.py +1 -4
  150. claude_mpm/services/mcp_config_manager.py +75 -145
  151. claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
  152. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  153. claude_mpm/services/mcp_service_verifier.py +6 -3
  154. claude_mpm/services/monitor/daemon.py +28 -8
  155. claude_mpm/services/monitor/daemon_manager.py +96 -19
  156. claude_mpm/services/pr/__init__.py +14 -0
  157. claude_mpm/services/pr/pr_template_service.py +329 -0
  158. claude_mpm/services/project/project_organizer.py +4 -0
  159. claude_mpm/services/runner_configuration_service.py +16 -3
  160. claude_mpm/services/session_management_service.py +16 -4
  161. claude_mpm/services/skills/__init__.py +18 -0
  162. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  163. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  164. claude_mpm/services/socketio/server/core.py +1 -4
  165. claude_mpm/services/socketio/server/main.py +1 -3
  166. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  167. claude_mpm/services/unified/unified_deployment.py +1 -5
  168. claude_mpm/services/visualization/__init__.py +1 -5
  169. claude_mpm/templates/questions/__init__.py +2 -7
  170. claude_mpm/templates/questions/pr_strategy.py +1 -4
  171. claude_mpm/templates/questions/project_init.py +1 -4
  172. claude_mpm/templates/questions/ticket_mgmt.py +1 -4
  173. claude_mpm/utils/agent_dependency_loader.py +77 -10
  174. claude_mpm/utils/agent_filters.py +288 -0
  175. claude_mpm/utils/gitignore.py +3 -0
  176. claude_mpm/utils/migration.py +372 -0
  177. claude_mpm/utils/progress.py +387 -0
  178. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/METADATA +356 -112
  179. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/RECORD +188 -439
  180. claude_mpm/agents/templates/agent-manager.json +0 -273
  181. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  182. claude_mpm/agents/templates/api_qa.json +0 -183
  183. claude_mpm/agents/templates/clerk-ops.json +0 -235
  184. claude_mpm/agents/templates/code_analyzer.json +0 -101
  185. claude_mpm/agents/templates/content-agent.json +0 -358
  186. claude_mpm/agents/templates/dart_engineer.json +0 -307
  187. claude_mpm/agents/templates/data_engineer.json +0 -225
  188. claude_mpm/agents/templates/documentation.json +0 -238
  189. claude_mpm/agents/templates/engineer.json +0 -210
  190. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  191. claude_mpm/agents/templates/golang_engineer.json +0 -270
  192. claude_mpm/agents/templates/imagemagick.json +0 -264
  193. claude_mpm/agents/templates/java_engineer.json +0 -346
  194. claude_mpm/agents/templates/javascript_engineer_agent.json +0 -380
  195. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  196. claude_mpm/agents/templates/memory_manager.json +0 -158
  197. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  198. claude_mpm/agents/templates/ops.json +0 -185
  199. claude_mpm/agents/templates/php-engineer.json +0 -287
  200. claude_mpm/agents/templates/product_owner.json +0 -338
  201. claude_mpm/agents/templates/project_organizer.json +0 -144
  202. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  203. claude_mpm/agents/templates/python_engineer.json +0 -387
  204. claude_mpm/agents/templates/qa.json +0 -243
  205. claude_mpm/agents/templates/react_engineer.json +0 -239
  206. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  207. claude_mpm/agents/templates/research.json +0 -258
  208. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  209. claude_mpm/agents/templates/rust_engineer.json +0 -275
  210. claude_mpm/agents/templates/security.json +0 -202
  211. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  212. claude_mpm/agents/templates/tauri_engineer.json +0 -274
  213. claude_mpm/agents/templates/ticketing.json +0 -181
  214. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  215. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  216. claude_mpm/agents/templates/version_control.json +0 -159
  217. claude_mpm/agents/templates/web_qa.json +0 -400
  218. claude_mpm/agents/templates/web_ui.json +0 -189
  219. claude_mpm/cli/README.md +0 -253
  220. claude_mpm/cli/commands/mcp_install_commands.py.backup +0 -284
  221. claude_mpm/cli/commands/mpm_init/README.md +0 -365
  222. claude_mpm/cli_module/refactoring_guide.md +0 -253
  223. claude_mpm/commands/mpm-tickets.md +0 -151
  224. claude_mpm/config/agent_capabilities.yaml +0 -658
  225. claude_mpm/config/async_logging_config.yaml +0 -145
  226. claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +0 -34
  227. claude_mpm/d2/.gitignore +0 -22
  228. claude_mpm/d2/ARCHITECTURE_COMPARISON.md +0 -273
  229. claude_mpm/d2/FLASK_INTEGRATION.md +0 -156
  230. claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +0 -452
  231. claude_mpm/d2/QUICKSTART.md +0 -186
  232. claude_mpm/d2/README.md +0 -232
  233. claude_mpm/d2/STORE_FIX_SUMMARY.md +0 -167
  234. claude_mpm/d2/SVELTE5_STORES_GUIDE.md +0 -180
  235. claude_mpm/d2/TESTING.md +0 -288
  236. claude_mpm/d2/index.html +0 -118
  237. claude_mpm/d2/package.json +0 -19
  238. claude_mpm/d2/src/App.svelte +0 -110
  239. claude_mpm/d2/src/components/Header.svelte +0 -153
  240. claude_mpm/d2/src/components/MainContent.svelte +0 -74
  241. claude_mpm/d2/src/components/Sidebar.svelte +0 -85
  242. claude_mpm/d2/src/components/tabs/EventsTab.svelte +0 -326
  243. claude_mpm/d2/src/lib/socketio.js +0 -144
  244. claude_mpm/d2/src/main.js +0 -7
  245. claude_mpm/d2/src/stores/events.js +0 -114
  246. claude_mpm/d2/src/stores/socket.js +0 -108
  247. claude_mpm/d2/src/stores/theme.js +0 -65
  248. claude_mpm/d2/svelte.config.js +0 -12
  249. claude_mpm/d2/vite.config.js +0 -15
  250. claude_mpm/dashboard/.claude-mpm/memories/README.md +0 -36
  251. claude_mpm/dashboard/BUILD_NUMBER +0 -1
  252. claude_mpm/dashboard/README.md +0 -121
  253. claude_mpm/dashboard/VERSION +0 -1
  254. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  255. claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +0 -273
  256. claude_mpm/dashboard/react/components/ErrorBoundary.tsx +0 -75
  257. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  258. claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +0 -141
  259. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  260. claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +0 -36
  261. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  262. claude_mpm/dashboard/react/components/shared/FilterBar.tsx +0 -89
  263. claude_mpm/dashboard/react/contexts/DashboardContext.tsx +0 -215
  264. claude_mpm/dashboard/react/entries/events.tsx +0 -165
  265. claude_mpm/dashboard/react/hooks/useEvents.ts +0 -191
  266. claude_mpm/dashboard/react/hooks/useSocket.ts +0 -225
  267. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  268. claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +0 -170
  269. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  270. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  271. claude_mpm/dashboard/static/built/components/activity-tree.js.map +0 -1
  272. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  273. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  274. claude_mpm/dashboard/static/built/components/agent-inference.js.map +0 -1
  275. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  276. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  277. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  278. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  279. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  280. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  281. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  282. claude_mpm/dashboard/static/built/components/code-tree.js.map +0 -1
  283. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  284. claude_mpm/dashboard/static/built/components/code-viewer.js.map +0 -1
  285. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  286. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  287. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  288. claude_mpm/dashboard/static/built/components/event-processor.js.map +0 -1
  289. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  290. claude_mpm/dashboard/static/built/components/event-viewer.js.map +0 -1
  291. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  292. claude_mpm/dashboard/static/built/components/export-manager.js.map +0 -1
  293. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  294. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  295. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  296. claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +0 -1
  297. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  298. claude_mpm/dashboard/static/built/components/file-viewer.js.map +0 -1
  299. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  300. claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +0 -1
  301. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  302. claude_mpm/dashboard/static/built/components/hud-manager.js.map +0 -1
  303. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  304. claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +0 -1
  305. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  306. claude_mpm/dashboard/static/built/components/module-viewer.js.map +0 -1
  307. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  308. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  309. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  310. claude_mpm/dashboard/static/built/components/session-manager.js.map +0 -1
  311. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  312. claude_mpm/dashboard/static/built/components/socket-manager.js.map +0 -1
  313. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  314. claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +0 -1
  315. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  316. claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +0 -1
  317. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  318. claude_mpm/dashboard/static/built/components/working-directory.js.map +0 -1
  319. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  320. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  321. claude_mpm/dashboard/static/built/dashboard.js.map +0 -1
  322. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  323. claude_mpm/dashboard/static/built/react/events.js +0 -30
  324. claude_mpm/dashboard/static/built/react/events.js.map +0 -1
  325. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  326. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  327. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  328. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  329. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  330. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  331. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  332. claude_mpm/dashboard/static/built/socket-client.js.map +0 -1
  333. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  334. claude_mpm/dashboard/static/events.html +0 -607
  335. claude_mpm/dashboard/static/index.html +0 -635
  336. claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +0 -170
  337. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  338. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  339. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  340. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  341. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  342. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  343. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  344. claude_mpm/dashboard/static/legacy/files.html +0 -747
  345. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  346. claude_mpm/dashboard/static/monitors.html +0 -431
  347. claude_mpm/dashboard/static/navigation-test-results.md +0 -118
  348. claude_mpm/dashboard/static/production/events.html +0 -659
  349. claude_mpm/dashboard/static/production/main.html +0 -698
  350. claude_mpm/dashboard/static/production/monitors.html +0 -483
  351. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  352. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  353. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  354. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  355. claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +0 -36
  356. claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +0 -39
  357. claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +0 -38
  358. claude_mpm/hooks/README.md +0 -143
  359. claude_mpm/hooks/templates/README.md +0 -180
  360. claude_mpm/hooks/templates/settings.json.example +0 -147
  361. claude_mpm/schemas/agent_schema.json +0 -596
  362. claude_mpm/schemas/frontmatter_schema.json +0 -165
  363. claude_mpm/services/event_bus/README.md +0 -244
  364. claude_mpm/services/events/README.md +0 -303
  365. claude_mpm/services/framework_claude_md_generator/README.md +0 -119
  366. claude_mpm/services/mcp_gateway/README.md +0 -185
  367. claude_mpm/services/socketio/handlers/connection.py.backup +0 -217
  368. claude_mpm/services/socketio/handlers/hook.py.backup +0 -154
  369. claude_mpm/services/static/.gitkeep +0 -2
  370. claude_mpm/services/version_control/VERSION +0 -1
  371. claude_mpm/skills/bundled/.gitkeep +0 -2
  372. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  373. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  374. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  375. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  376. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  377. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  378. claude_mpm/skills/bundled/collaboration/git-worktrees.md +0 -317
  379. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  380. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  381. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  382. claude_mpm/skills/bundled/collaboration/stacked-prs.md +0 -251
  383. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  384. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  385. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  386. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  387. claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +0 -63
  388. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  389. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  390. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  391. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  392. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  393. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  394. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  395. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  396. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  397. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  398. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  399. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  400. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  401. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  402. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  403. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  404. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  405. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  406. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  407. claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +0 -611
  408. claude_mpm/skills/bundled/infrastructure/env-manager/README.md +0 -596
  409. claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +0 -260
  410. claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +0 -315
  411. claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +0 -436
  412. claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +0 -433
  413. claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +0 -452
  414. claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +0 -404
  415. claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +0 -420
  416. claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +0 -202
  417. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  418. claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +0 -54
  419. claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +0 -322
  420. claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  421. claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +0 -202
  422. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  423. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  424. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  425. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  426. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  427. claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +0 -202
  428. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  429. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  430. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  431. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  432. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  433. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  434. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  435. claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +0 -22
  436. claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +0 -2
  437. claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +0 -202
  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/react/flexlayout-react.md +0 -742
  452. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  453. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  454. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  455. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  456. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  457. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  458. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  459. claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +0 -495
  460. claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +0 -599
  461. claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +0 -535
  462. claude_mpm/skills/bundled/tauri/tauri-error-handling.md +0 -613
  463. claude_mpm/skills/bundled/tauri/tauri-event-system.md +0 -648
  464. claude_mpm/skills/bundled/tauri/tauri-file-system.md +0 -673
  465. claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +0 -767
  466. claude_mpm/skills/bundled/tauri/tauri-performance.md +0 -669
  467. claude_mpm/skills/bundled/tauri/tauri-state-management.md +0 -573
  468. claude_mpm/skills/bundled/tauri/tauri-testing.md +0 -384
  469. claude_mpm/skills/bundled/tauri/tauri-window-management.md +0 -628
  470. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  471. claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +0 -158
  472. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  473. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  474. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  475. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  476. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  477. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  478. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  479. claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +0 -458
  480. claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +0 -411
  481. claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +0 -317
  482. claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +0 -270
  483. claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +0 -436
  484. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  485. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  486. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  487. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  488. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  489. claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +0 -202
  490. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  491. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  492. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  493. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  494. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  495. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  496. claude_mpm/templates/questions/EXAMPLES.md +0 -501
  497. claude_mpm/tools/README_SOCKETIO_DEBUG.md +0 -224
  498. claude_mpm/tools/code_tree_analyzer/README.md +0 -64
  499. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  500. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  501. /claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +0 -0
  502. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  503. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  504. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/WHEEL +0 -0
  505. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/entry_points.txt +0 -0
  506. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/licenses/LICENSE +0 -0
  507. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/top_level.txt +0 -0
@@ -1,284 +0,0 @@
1
- """MCP install command implementations.
2
-
3
- This module provides MCP installation and configuration commands.
4
- Extracted from mcp.py to reduce complexity and improve maintainability.
5
- """
6
-
7
- import subprocess
8
- import sys
9
- from pathlib import Path
10
-
11
-
12
- class MCPInstallCommands:
13
- """Handles MCP install commands."""
14
-
15
- def __init__(self, logger):
16
- """Initialize the MCP install commands handler."""
17
- self.logger = logger
18
-
19
- def install_gateway(self, args):
20
- """Install and configure MCP gateway.
21
-
22
- WHY: This command installs the MCP package dependencies and configures
23
- Claude Code to use the MCP gateway server directly via the CLI command.
24
-
25
- DESIGN DECISION: We handle both package installation and configuration
26
- in one command for user convenience, using the new direct CLI approach.
27
- """
28
- self.logger.info("MCP gateway installation command called")
29
- print("📦 Installing and Configuring MCP Gateway")
30
- print("=" * 50)
31
-
32
- # Step 1: Install MCP package if needed
33
- print("\n1️⃣ Checking MCP package installation...")
34
- try:
35
- import mcp
36
- print("✅ MCP package already installed")
37
- except ImportError:
38
- print("📦 Installing MCP package...")
39
- try:
40
- subprocess.check_call([sys.executable, "-m", "pip", "install", "mcp"])
41
- print("✅ MCP package installed successfully")
42
- except subprocess.CalledProcessError as e:
43
- print(f"❌ Error installing MCP package: {e}")
44
- print("\nPlease install manually with: pip install mcp")
45
- return 1
46
-
47
- # Step 2: Configure Claude Code with the new CLI command
48
- print("\n2️⃣ Configuring Claude Code...")
49
- try:
50
- success = self._configure_claude_desktop(args.force)
51
- if success:
52
- print("✅ Configuration completed successfully")
53
- print("\n🎉 MCP Gateway is ready to use!")
54
- print("\nNext steps:")
55
- print("1. Restart Claude Code")
56
- print("2. Test the server: claude-mpm mcp server --test")
57
- print("3. Check status: claude-mpm mcp status")
58
- return 0
59
- else:
60
- print("❌ Configuration failed")
61
- return 1
62
-
63
- except Exception as e:
64
- print(f"❌ Error during configuration: {e}")
65
- return 1
66
-
67
- def _configure_claude_desktop(self, force=False):
68
- """Configure Claude Code to use the MCP gateway via CLI command.
69
-
70
- Args:
71
- force: Whether to overwrite existing configuration
72
-
73
- Returns:
74
- bool: True if configuration was successful
75
- """
76
- import json
77
- import platform
78
- from pathlib import Path
79
- from datetime import datetime
80
-
81
- # Determine Claude Code config path
82
- config_path = self._get_claude_config_path()
83
- if not config_path:
84
- print("❌ Could not determine Claude Code configuration path")
85
- return False
86
-
87
- print(f" Configuration path: {config_path}")
88
-
89
- # Load existing configuration or create new one
90
- config = self._load_or_create_config(config_path, force)
91
- if config is None:
92
- return False
93
-
94
- # Configure the claude-mpm-gateway server using the CLI command
95
- claude_mpm_path = self._find_claude_mpm_executable()
96
- if not claude_mpm_path:
97
- print("❌ Could not find claude-mpm executable")
98
- return False
99
-
100
- # Determine if we need to use -m claude_mpm or direct command
101
- if claude_mpm_path.endswith(('python', 'python3', 'python.exe', 'python3.exe')):
102
- # Using Python interpreter directly
103
- mcp_config = {
104
- "command": claude_mpm_path,
105
- "args": ["-m", "claude_mpm", "mcp", "server"],
106
- "env": {
107
- "PYTHONPATH": str(Path(__file__).parent.parent.parent.parent),
108
- "MCP_MODE": "production"
109
- }
110
- }
111
- else:
112
- # Using installed claude-mpm command
113
- mcp_config = {
114
- "command": claude_mpm_path,
115
- "args": ["mcp", "server"],
116
- "env": {
117
- "PYTHONPATH": str(Path(__file__).parent.parent.parent.parent),
118
- "MCP_MODE": "production"
119
- }
120
- }
121
-
122
- # Update configuration
123
- if "mcpServers" not in config:
124
- config["mcpServers"] = {}
125
-
126
- config["mcpServers"]["claude-mpm-gateway"] = mcp_config
127
-
128
- print("\n✅ Configured claude-mpm-gateway server:")
129
- print(f" Command: {mcp_config['command']}")
130
- print(f" Args: {mcp_config['args']}")
131
- print(f" Environment variables: {list(mcp_config['env'].keys())}")
132
-
133
- # Save configuration
134
- return self._save_config(config, config_path)
135
-
136
- def _get_claude_config_path(self):
137
- """Get the Claude Code configuration file path.
138
-
139
- Returns:
140
- Path or None: Path to Claude Code config file
141
- """
142
- from pathlib import Path
143
-
144
- # Claude Code uses ~/.claude/settings.local.json regardless of platform
145
- return Path.home() / ".claude" / "settings.local.json"
146
-
147
- def _find_claude_mpm_executable(self):
148
- """Find the claude-mpm executable path.
149
-
150
- WHY: We need to find the installed claude-mpm command to use as the
151
- MCP server command. This ensures we're using the properly installed
152
- version with all dependencies, not a raw Python script.
153
-
154
- DESIGN DECISION: We prioritize in this order:
155
- 1. System-installed claude-mpm (most reliable)
156
- 2. Virtual environment claude-mpm (development)
157
- 3. Python module invocation (fallback)
158
-
159
- Returns:
160
- str or None: Path to claude-mpm executable
161
- """
162
- import shutil
163
- import sys
164
- import os
165
-
166
- # 1. Try to find claude-mpm in PATH (system-wide or venv)
167
- claude_mpm_path = shutil.which("claude-mpm")
168
- if claude_mpm_path:
169
- print(f" Found claude-mpm: {claude_mpm_path}")
170
- return claude_mpm_path
171
-
172
- # 2. Check if we're in a virtual environment
173
- if hasattr(sys, 'real_prefix') or (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix):
174
- # We're in a virtual environment
175
- venv_bin = Path(sys.prefix) / ("Scripts" if sys.platform == "win32" else "bin")
176
- venv_claude_mpm = venv_bin / "claude-mpm"
177
- if venv_claude_mpm.exists():
178
- print(f" Found claude-mpm in venv: {venv_claude_mpm}")
179
- return str(venv_claude_mpm)
180
-
181
- # 3. Check if claude_mpm module is installed and use Python to run it
182
- try:
183
- import claude_mpm
184
- # Return the Python executable - we'll handle the -m args separately
185
- print(f" Using Python module: {sys.executable} -m claude_mpm")
186
- return sys.executable
187
- except ImportError:
188
- pass
189
-
190
- # 4. Last resort: check project's local venv (development mode)
191
- project_root = Path(__file__).parent.parent.parent.parent.parent
192
- local_venv_bin = project_root / "venv" / ("Scripts" if sys.platform == "win32" else "bin")
193
- local_claude_mpm = local_venv_bin / "claude-mpm"
194
- if local_claude_mpm.exists():
195
- print(f" Found claude-mpm in project venv: {local_claude_mpm}")
196
- return str(local_claude_mpm)
197
-
198
- return None
199
-
200
- def _load_or_create_config(self, config_path, force=False):
201
- """Load existing configuration or create a new one.
202
-
203
- Args:
204
- config_path: Path to configuration file
205
- force: Whether to overwrite existing configuration
206
-
207
- Returns:
208
- dict or None: Configuration dictionary
209
- """
210
- import json
211
- from datetime import datetime
212
-
213
- config = {}
214
-
215
- if config_path.exists():
216
- if not force:
217
- # Check if claude-mpm-gateway already exists
218
- try:
219
- with open(config_path, 'r') as f:
220
- existing_config = json.load(f)
221
-
222
- if (existing_config.get("mcpServers", {}).get("claude-mpm-gateway") and
223
- not force):
224
- print("⚠️ claude-mpm-gateway is already configured")
225
- response = input("Do you want to overwrite it? (y/N): ").strip().lower()
226
- if response not in ['y', 'yes']:
227
- print("❌ Configuration cancelled")
228
- return None
229
-
230
- config = existing_config
231
-
232
- except (json.JSONDecodeError, IOError) as e:
233
- print(f"⚠️ Error reading existing config: {e}")
234
- print("Creating backup and starting fresh...")
235
-
236
- # Create backup
237
- backup_path = config_path.with_suffix(f'.backup.{datetime.now().strftime("%Y%m%d_%H%M%S")}.json')
238
- try:
239
- config_path.rename(backup_path)
240
- print(f" Backup created: {backup_path}")
241
- except Exception as backup_error:
242
- print(f" Warning: Could not create backup: {backup_error}")
243
- else:
244
- # Force mode - create backup but proceed
245
- try:
246
- with open(config_path, 'r') as f:
247
- existing_config = json.load(f)
248
- config = existing_config
249
- print(" Force mode: Overwriting existing configuration")
250
- except:
251
- pass # File doesn't exist or is invalid, start fresh
252
-
253
- # Ensure mcpServers section exists
254
- if "mcpServers" not in config:
255
- config["mcpServers"] = {}
256
-
257
- return config
258
-
259
- def _save_config(self, config, config_path):
260
- """Save configuration to file.
261
-
262
- Args:
263
- config: Configuration dictionary
264
- config_path: Path to save configuration
265
-
266
- Returns:
267
- bool: True if successful
268
- """
269
- import json
270
-
271
- try:
272
- # Ensure directory exists
273
- config_path.parent.mkdir(parents=True, exist_ok=True)
274
-
275
- # Write configuration with nice formatting
276
- with open(config_path, 'w') as f:
277
- json.dump(config, f, indent=2)
278
-
279
- print(f"\n✅ Configuration saved to {config_path}")
280
- return True
281
-
282
- except Exception as e:
283
- print(f"❌ Error saving configuration: {e}")
284
- return False
@@ -1,365 +0,0 @@
1
- # MPM-Init Package
2
-
3
- This package provides comprehensive project initialization and update capabilities for Claude Code and Claude MPM.
4
-
5
- ## Package Structure
6
-
7
- ```
8
- mpm_init/
9
- ├── __init__.py # Package initialization and exports
10
- ├── core.py # MPMInitCommand class - main orchestrator
11
- ├── prompts.py # Prompt building functions
12
- ├── display.py # Display and UI helper functions
13
- ├── git_activity.py # Git analysis and activity tracking
14
- ├── modes.py # Operation mode handlers
15
- └── README.md # This file
16
- ```
17
-
18
- ## Module Responsibilities
19
-
20
- ### `__init__.py` - Package Initialization
21
- **Purpose**: Public API exposure and lazy imports
22
-
23
- **Exports**:
24
- - `MPMInitCommand` - Main command class (from core.py)
25
- - `mpm_init` - Click command group (lazy import from mpm_init_cli.py)
26
-
27
- **Key Features**:
28
- - Lazy import via `__getattr__` to avoid circular dependencies
29
- - Clean public API surface
30
- - Internal module re-exports for package-level imports
31
-
32
- ### `core.py` - MPMInitCommand Class
33
- **Purpose**: Main orchestrator for project initialization
34
-
35
- **Key Class**: `MPMInitCommand`
36
-
37
- **Responsibilities**:
38
- - Coordinate initialization workflow
39
- - Manage service components (DocumentationManager, ProjectOrganizer, etc.)
40
- - Build and execute delegation prompts
41
- - Handle subprocess execution via claude-mpm CLI
42
- - Coordinate pre/post initialization tasks
43
-
44
- **Public Methods**:
45
- ```python
46
- def initialize_project(
47
- project_type: Optional[str] = None,
48
- framework: Optional[str] = None,
49
- force: bool = False,
50
- verbose: bool = False,
51
- ast_analysis: bool = True,
52
- update_mode: bool = False,
53
- review_only: bool = False,
54
- organize_files: bool = False,
55
- preserve_custom: bool = True,
56
- skip_archive: bool = False,
57
- dry_run: bool = False,
58
- quick_update: bool = False,
59
- catchup: bool = False,
60
- non_interactive: bool = False,
61
- days: int = 30,
62
- export: Optional[str] = None,
63
- ) -> Dict
64
- ```
65
-
66
- ```python
67
- def handle_context(
68
- session_id: Optional[str] = None,
69
- list_sessions: bool = False,
70
- days: int = 7,
71
- ) -> Dict[str, Any]
72
- ```
73
-
74
- ### `prompts.py` - Prompt Building
75
- **Purpose**: Pure functions for generating agent delegation prompts
76
-
77
- **Functions**:
78
- - `build_initialization_prompt()` - Create new project initialization prompt
79
- - `build_update_prompt()` - Update existing CLAUDE.md prompt
80
- - `build_research_context_prompt()` - Research agent delegation for git analysis
81
-
82
- **Design Pattern**: Pure functions with no side effects or external dependencies
83
-
84
- **Example**:
85
- ```python
86
- from claude_mpm.cli.commands.mpm_init import prompts
87
-
88
- prompt = prompts.build_initialization_prompt(
89
- project_path=Path("/path/to/project"),
90
- project_type="web",
91
- framework="FastAPI",
92
- ast_analysis=True
93
- )
94
- ```
95
-
96
- ### `display.py` - Display Functions
97
- **Purpose**: Pure functions for console output and reporting
98
-
99
- **Functions**:
100
- - `display_documentation_status()` - Show doc analysis
101
- - `display_review_report()` - Comprehensive project review
102
- - `display_catchup()` - Recent commit history
103
- - `display_activity_report()` - Git activity summary
104
- - `display_results()` - Initialization results
105
- - `show_update_plan()` - Update mode plan
106
- - `show_initialization_plan()` - Init mode plan
107
-
108
- **Design Pattern**: All functions accept DisplayHelper/Console as parameters (dependency injection)
109
-
110
- **Example**:
111
- ```python
112
- from claude_mpm.cli.commands.mpm_init import display
113
-
114
- display.display_activity_report(display_helper, activity_report)
115
- ```
116
-
117
- ### `git_activity.py` - Git Analysis
118
- **Purpose**: Git repository analysis and activity tracking
119
-
120
- **Functions**:
121
- - `catchup()` - Get recent commit history for PM context
122
- - `generate_activity_report()` - Comprehensive activity report
123
- - `export_activity_report()` - Export report to markdown
124
- - `append_activity_notes()` - Append activity to CLAUDE.md
125
- - `handle_context()` - Intelligent context for resuming work
126
-
127
- **Use Cases**:
128
- - Quick update mode (`--quick-update`)
129
- - Catchup mode (`--catchup`)
130
- - Context analysis (`/mpm-init --context`)
131
-
132
- **Example**:
133
- ```python
134
- from claude_mpm.cli.commands.mpm_init import git_activity
135
-
136
- # Get recent commits
137
- data = git_activity.catchup(project_path)
138
-
139
- # Generate full activity report
140
- report = git_activity.generate_activity_report(
141
- git_analysis, doc_analysis, days=30
142
- )
143
- ```
144
-
145
- ### `modes.py` - Operation Mode Handlers
146
- **Purpose**: Handle different execution modes
147
-
148
- **Functions**:
149
- - `prompt_update_action()` - Interactive prompt for update decisions
150
- - `run_review_mode()` - Review project without changes
151
- - `run_quick_update_mode()` - Lightweight git-based update
152
- - `run_dry_run_mode()` - Show planned changes without execution
153
- - `handle_update_post_processing()` - Post-update summary
154
-
155
- **Modes Supported**:
156
- - **Review Mode** (`--review-only`): Analyze project state
157
- - **Dry-Run Mode** (`--dry-run`): Preview changes
158
- - **Quick Update** (`--quick-update`): Fast incremental update
159
- - **Update Mode** (`--update`): Smart merge with existing docs
160
-
161
- **Example**:
162
- ```python
163
- from claude_mpm.cli.commands.mpm_init import modes
164
-
165
- result = modes.run_review_mode(
166
- console, display, organizer, doc_manager, analyzer
167
- )
168
- ```
169
-
170
- ## Usage Examples
171
-
172
- ### Programmatic Usage
173
-
174
- ```python
175
- from pathlib import Path
176
- from claude_mpm.cli.commands.mpm_init import MPMInitCommand
177
-
178
- # Initialize command
179
- command = MPMInitCommand(project_path=Path("/path/to/project"))
180
-
181
- # Create new project
182
- result = command.initialize_project(
183
- project_type="web",
184
- framework="FastAPI",
185
- ast_analysis=True
186
- )
187
-
188
- # Update existing project
189
- result = command.initialize_project(
190
- update_mode=True,
191
- preserve_custom=True,
192
- ast_analysis=True
193
- )
194
-
195
- # Quick update based on git activity
196
- result = command.initialize_project(
197
- quick_update=True,
198
- days=30,
199
- export="auto"
200
- )
201
-
202
- # Review only (no changes)
203
- result = command.initialize_project(
204
- review_only=True
205
- )
206
- ```
207
-
208
- ### CLI Usage
209
-
210
- Via the Click command group (defined in parent `mpm_init_cli.py`):
211
-
212
- ```bash
213
- # Create new project
214
- /mpm-init
215
-
216
- # Update existing project
217
- /mpm-init --update
218
-
219
- # Review project state
220
- /mpm-init --review-only
221
-
222
- # Quick update with export
223
- /mpm-init --quick-update --days 30 --export auto
224
-
225
- # Dry-run (preview changes)
226
- /mpm-init --dry-run
227
-
228
- # Catchup (show recent commits)
229
- /mpm-init --catchup
230
-
231
- # Context analysis
232
- /mpm-init --context --days 7
233
- ```
234
-
235
- ## Design Principles
236
-
237
- ### 1. **Separation of Concerns**
238
- Each module has a single, clear responsibility:
239
- - `core.py` - orchestration
240
- - `prompts.py` - prompt building
241
- - `display.py` - UI/output
242
- - `git_activity.py` - git analysis
243
- - `modes.py` - mode handling
244
-
245
- ### 2. **Pure Functions**
246
- `prompts.py` and `display.py` contain pure functions with no side effects or global state.
247
-
248
- ### 3. **Dependency Injection**
249
- Display functions accept `DisplayHelper` and `Console` as parameters rather than creating their own instances.
250
-
251
- ### 4. **Modular Architecture**
252
- Easy to test, maintain, and extend individual components without touching others.
253
-
254
- ### 5. **Lazy Imports**
255
- `__init__.py` uses `__getattr__` to avoid circular dependencies while maintaining clean API.
256
-
257
- ## Service Dependencies
258
-
259
- The package relies on these service components:
260
-
261
- - `DocumentationManager` - CLAUDE.md analysis and management
262
- - `ProjectOrganizer` - Project structure validation
263
- - `ArchiveManager` - Documentation versioning
264
- - `EnhancedProjectAnalyzer` - Git and project state analysis
265
- - `DisplayHelper` - Rich console output formatting
266
-
267
- ## Developer Notes
268
-
269
- ### Adding New Modes
270
-
271
- To add a new operation mode:
272
-
273
- 1. Add mode handler function in `modes.py`:
274
- ```python
275
- def run_new_mode(console, display, ...) -> Dict:
276
- # Implementation
277
- return {"status": OperationResult.SUCCESS, "mode": "new_mode"}
278
- ```
279
-
280
- 2. Add mode detection in `core.py` `initialize_project()`:
281
- ```python
282
- if new_mode_flag:
283
- return self._run_new_mode()
284
- ```
285
-
286
- 3. Add CLI flag in parent `mpm_init_cli.py`
287
-
288
- ### Adding New Prompts
289
-
290
- Add prompt builder in `prompts.py`:
291
-
292
- ```python
293
- def build_new_prompt(project_path: Path, **kwargs) -> str:
294
- """Build prompt for new use case."""
295
- return f"""Your prompt template..."""
296
- ```
297
-
298
- Then call from `core.py`:
299
- ```python
300
- prompt = prompts.build_new_prompt(self.project_path, **kwargs)
301
- ```
302
-
303
- ### Adding Display Functions
304
-
305
- Add display function in `display.py`:
306
-
307
- ```python
308
- def display_new_report(display: DisplayHelper, data: Dict) -> None:
309
- """Display new report type."""
310
- display.display_header("NEW REPORT")
311
- # Rendering logic
312
- ```
313
-
314
- ### Testing Considerations
315
-
316
- - **Unit Tests**: Test pure functions in `prompts.py` and `display.py`
317
- - **Integration Tests**: Test `MPMInitCommand` with mocked services
318
- - **E2E Tests**: Test via CLI commands in parent module
319
-
320
- ### File Size Tracking
321
-
322
- Current module sizes:
323
- - `core.py`: ~525 lines (Main orchestrator - expected to be largest)
324
- - `prompts.py`: ~443 lines (Template generation)
325
- - `git_activity.py`: ~427 lines (Git analysis utilities)
326
- - `modes.py`: ~401 lines (Mode handlers)
327
- - `display.py`: ~360 lines (Display functions)
328
-
329
- All modules are well under the 600-line warning threshold.
330
-
331
- ## Version History
332
-
333
- **Current Version**: Part of claude-mpm 4.20.7
334
-
335
- **Changes from Monolithic `mpm_init.py`**:
336
- - Split 800+ line file into 6 focused modules
337
- - Improved testability through pure functions
338
- - Better separation of concerns
339
- - Easier maintenance and feature additions
340
- - Clearer public API surface
341
-
342
- ## Related Files
343
-
344
- - **Parent CLI**: `../mpm_init_cli.py` - Click command definitions
345
- - **Handler**: `../mpm_init_handler.py` - Legacy compatibility handler
346
- - **Parser**: `../../parsers/mpm_init_parser.py` - Command-line argument parsing
347
- - **Tests**: `../../../../../tests/test_mpm_init_catchup.py` - Unit tests
348
-
349
- ## Contributing
350
-
351
- When modifying this package:
352
-
353
- 1. Maintain pure function approach in `prompts.py` and `display.py`
354
- 2. Keep modules under 600 lines (split if approaching limit)
355
- 3. Add docstrings for all public functions
356
- 4. Update this README with new functionality
357
- 5. Add type hints to all function signatures
358
- 6. Follow existing patterns for consistency
359
-
360
- ## Support
361
-
362
- For issues or questions:
363
- - Check existing documentation in CLAUDE.md
364
- - Review test files for usage examples
365
- - Consult service component documentation