claude-mpm 4.1.6__py3-none-any.whl → 4.24.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (866) hide show
  1. claude_mpm/BUILD_NUMBER +1 -1
  2. claude_mpm/VERSION +1 -1
  3. claude_mpm/__init__.py +20 -5
  4. claude_mpm/agents/BASE_AGENT_TEMPLATE.md +118 -0
  5. claude_mpm/agents/BASE_DOCUMENTATION.md +53 -0
  6. claude_mpm/agents/BASE_ENGINEER.md +658 -0
  7. claude_mpm/agents/BASE_OPS.md +219 -0
  8. claude_mpm/agents/BASE_PM.md +431 -214
  9. claude_mpm/agents/BASE_PROMPT_ENGINEER.md +787 -0
  10. claude_mpm/agents/BASE_QA.md +167 -0
  11. claude_mpm/agents/BASE_RESEARCH.md +53 -0
  12. claude_mpm/agents/MEMORY.md +3 -0
  13. claude_mpm/agents/OUTPUT_STYLE.md +335 -0
  14. claude_mpm/agents/PM_INSTRUCTIONS.md +1159 -0
  15. claude_mpm/agents/WORKFLOW.md +355 -187
  16. claude_mpm/agents/agent_loader.py +40 -10
  17. claude_mpm/agents/agent_loader_integration.py +3 -2
  18. claude_mpm/agents/agents_metadata.py +57 -0
  19. claude_mpm/agents/async_agent_loader.py +3 -3
  20. claude_mpm/agents/base_agent_loader.py +11 -9
  21. claude_mpm/agents/frontmatter_validator.py +291 -251
  22. claude_mpm/agents/system_agent_config.py +3 -2
  23. claude_mpm/agents/templates/.claude-mpm/memories/README.md +17 -0
  24. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +3 -0
  25. claude_mpm/agents/templates/README.md +465 -0
  26. claude_mpm/agents/templates/agent-manager.json +267 -18
  27. claude_mpm/agents/templates/agentic-coder-optimizer.json +248 -0
  28. claude_mpm/agents/templates/api_qa.json +16 -4
  29. claude_mpm/agents/templates/circuit_breakers.md +638 -0
  30. claude_mpm/agents/templates/clerk-ops.json +235 -0
  31. claude_mpm/agents/templates/code_analyzer.json +25 -9
  32. claude_mpm/agents/templates/content-agent.json +358 -0
  33. claude_mpm/agents/templates/dart_engineer.json +307 -0
  34. claude_mpm/agents/templates/data_engineer.json +87 -14
  35. claude_mpm/agents/templates/documentation.json +76 -13
  36. claude_mpm/agents/templates/engineer.json +44 -10
  37. claude_mpm/agents/templates/gcp_ops_agent.json +253 -0
  38. claude_mpm/agents/templates/git_file_tracking.md +584 -0
  39. claude_mpm/agents/templates/golang_engineer.json +270 -0
  40. claude_mpm/agents/templates/imagemagick.json +5 -2
  41. claude_mpm/agents/templates/java_engineer.json +346 -0
  42. claude_mpm/agents/templates/javascript_engineer_agent.json +380 -0
  43. claude_mpm/agents/templates/local_ops_agent.json +1840 -0
  44. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +39 -0
  45. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +400 -0
  46. claude_mpm/agents/templates/memory_manager.json +6 -3
  47. claude_mpm/agents/templates/nextjs_engineer.json +285 -0
  48. claude_mpm/agents/templates/ops.json +27 -8
  49. claude_mpm/agents/templates/php-engineer.json +287 -0
  50. claude_mpm/agents/templates/pm_examples.md +474 -0
  51. claude_mpm/agents/templates/pm_red_flags.md +262 -0
  52. claude_mpm/agents/templates/product_owner.json +338 -0
  53. claude_mpm/agents/templates/project_organizer.json +19 -5
  54. claude_mpm/agents/templates/prompt-engineer.json +737 -0
  55. claude_mpm/agents/templates/python_engineer.json +387 -0
  56. claude_mpm/agents/templates/qa.json +26 -6
  57. claude_mpm/agents/templates/react_engineer.json +239 -0
  58. claude_mpm/agents/templates/refactoring_engineer.json +15 -5
  59. claude_mpm/agents/templates/research.json +47 -22
  60. claude_mpm/agents/templates/response_format.md +583 -0
  61. claude_mpm/agents/templates/ruby-engineer.json +280 -0
  62. claude_mpm/agents/templates/rust_engineer.json +275 -0
  63. claude_mpm/agents/templates/security.json +59 -10
  64. claude_mpm/agents/templates/svelte-engineer.json +225 -0
  65. claude_mpm/agents/templates/tauri_engineer.json +274 -0
  66. claude_mpm/agents/templates/ticketing.json +16 -7
  67. claude_mpm/agents/templates/typescript_engineer.json +285 -0
  68. claude_mpm/agents/templates/validation_templates.md +312 -0
  69. claude_mpm/agents/templates/vercel_ops_agent.json +164 -33
  70. claude_mpm/agents/templates/version_control.json +16 -4
  71. claude_mpm/agents/templates/web_qa.json +243 -21
  72. claude_mpm/agents/templates/web_ui.json +18 -5
  73. claude_mpm/cli/__init__.py +38 -363
  74. claude_mpm/cli/commands/__init__.py +8 -0
  75. claude_mpm/cli/commands/agent_manager.py +675 -20
  76. claude_mpm/cli/commands/agent_state_manager.py +186 -0
  77. claude_mpm/cli/commands/agents.py +722 -150
  78. claude_mpm/cli/commands/agents_detect.py +380 -0
  79. claude_mpm/cli/commands/agents_recommend.py +309 -0
  80. claude_mpm/cli/commands/aggregate.py +10 -6
  81. claude_mpm/cli/commands/analyze.py +553 -0
  82. claude_mpm/cli/commands/analyze_code.py +528 -0
  83. claude_mpm/cli/commands/auto_configure.py +570 -0
  84. claude_mpm/cli/commands/cleanup.py +12 -12
  85. claude_mpm/cli/commands/config.py +47 -13
  86. claude_mpm/cli/commands/configure.py +488 -884
  87. claude_mpm/cli/commands/configure_agent_display.py +261 -0
  88. claude_mpm/cli/commands/configure_behavior_manager.py +204 -0
  89. claude_mpm/cli/commands/configure_hook_manager.py +225 -0
  90. claude_mpm/cli/commands/configure_models.py +18 -0
  91. claude_mpm/cli/commands/configure_navigation.py +167 -0
  92. claude_mpm/cli/commands/configure_paths.py +104 -0
  93. claude_mpm/cli/commands/configure_persistence.py +254 -0
  94. claude_mpm/cli/commands/configure_startup_manager.py +646 -0
  95. claude_mpm/cli/commands/configure_template_editor.py +497 -0
  96. claude_mpm/cli/commands/configure_validators.py +73 -0
  97. claude_mpm/cli/commands/dashboard.py +286 -0
  98. claude_mpm/cli/commands/debug.py +1386 -0
  99. claude_mpm/cli/commands/doctor.py +43 -7
  100. claude_mpm/cli/commands/info.py +3 -4
  101. claude_mpm/cli/commands/local_deploy.py +537 -0
  102. claude_mpm/cli/commands/mcp.py +17 -10
  103. claude_mpm/cli/commands/mcp_command_router.py +11 -0
  104. claude_mpm/cli/commands/mcp_config.py +154 -0
  105. claude_mpm/cli/commands/mcp_external_commands.py +249 -0
  106. claude_mpm/cli/commands/mcp_install_commands.py +101 -32
  107. claude_mpm/cli/commands/mcp_pipx_config.py +2 -2
  108. claude_mpm/cli/commands/mcp_setup_external.py +868 -0
  109. claude_mpm/cli/commands/memory.py +55 -21
  110. claude_mpm/cli/commands/monitor.py +168 -617
  111. claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
  112. claude_mpm/cli/commands/mpm_init/core.py +525 -0
  113. claude_mpm/cli/commands/mpm_init/display.py +341 -0
  114. claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
  115. claude_mpm/cli/commands/mpm_init/modes.py +397 -0
  116. claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
  117. claude_mpm/cli/commands/mpm_init_cli.py +396 -0
  118. claude_mpm/cli/commands/mpm_init_handler.py +195 -0
  119. claude_mpm/cli/commands/run.py +169 -42
  120. claude_mpm/cli/commands/search.py +458 -0
  121. claude_mpm/cli/commands/skills.py +488 -0
  122. claude_mpm/cli/commands/uninstall.py +176 -0
  123. claude_mpm/cli/commands/upgrade.py +152 -0
  124. claude_mpm/cli/commands/verify.py +119 -0
  125. claude_mpm/cli/executor.py +204 -0
  126. claude_mpm/cli/helpers.py +105 -0
  127. claude_mpm/cli/interactive/__init__.py +21 -0
  128. claude_mpm/cli/interactive/agent_wizard.py +962 -0
  129. claude_mpm/cli/interactive/skills_wizard.py +491 -0
  130. claude_mpm/cli/parser.py +79 -2
  131. claude_mpm/cli/parsers/__init__.py +7 -1
  132. claude_mpm/cli/parsers/agent_manager_parser.py +161 -1
  133. claude_mpm/cli/parsers/agents_parser.py +116 -0
  134. claude_mpm/cli/parsers/analyze_code_parser.py +170 -0
  135. claude_mpm/cli/parsers/analyze_parser.py +135 -0
  136. claude_mpm/cli/parsers/auto_configure_parser.py +245 -0
  137. claude_mpm/cli/parsers/base_parser.py +187 -3
  138. claude_mpm/cli/parsers/configure_parser.py +34 -15
  139. claude_mpm/cli/parsers/dashboard_parser.py +113 -0
  140. claude_mpm/cli/parsers/debug_parser.py +319 -0
  141. claude_mpm/cli/parsers/local_deploy_parser.py +227 -0
  142. claude_mpm/cli/parsers/mcp_parser.py +15 -0
  143. claude_mpm/cli/parsers/monitor_parser.py +12 -2
  144. claude_mpm/cli/parsers/mpm_init_parser.py +311 -0
  145. claude_mpm/cli/parsers/run_parser.py +5 -0
  146. claude_mpm/cli/parsers/search_parser.py +245 -0
  147. claude_mpm/cli/parsers/skills_parser.py +137 -0
  148. claude_mpm/cli/shared/argument_patterns.py +20 -13
  149. claude_mpm/cli/shared/base_command.py +2 -2
  150. claude_mpm/cli/shared/output_formatters.py +28 -19
  151. claude_mpm/cli/startup.py +562 -0
  152. claude_mpm/cli/startup_logging.py +179 -13
  153. claude_mpm/cli/utils.py +53 -2
  154. claude_mpm/commands/__init__.py +14 -0
  155. claude_mpm/commands/mpm-agents-detect.md +168 -0
  156. claude_mpm/commands/mpm-agents-recommend.md +214 -0
  157. claude_mpm/commands/mpm-agents.md +122 -0
  158. claude_mpm/commands/mpm-auto-configure.md +269 -0
  159. claude_mpm/commands/mpm-config.md +141 -0
  160. claude_mpm/commands/mpm-doctor.md +24 -0
  161. claude_mpm/commands/mpm-help.md +290 -0
  162. claude_mpm/commands/mpm-init.md +521 -0
  163. claude_mpm/commands/mpm-monitor.md +409 -0
  164. claude_mpm/commands/mpm-organize.md +295 -0
  165. claude_mpm/commands/mpm-resume.md +372 -0
  166. claude_mpm/commands/mpm-status.md +75 -0
  167. claude_mpm/commands/mpm-tickets.md +151 -0
  168. claude_mpm/commands/mpm-version.md +113 -0
  169. claude_mpm/commands/mpm.md +21 -0
  170. claude_mpm/config/agent_config.py +4 -4
  171. claude_mpm/config/experimental_features.py +7 -7
  172. claude_mpm/config/model_config.py +428 -0
  173. claude_mpm/config/paths.py +3 -2
  174. claude_mpm/config/socketio_config.py +36 -7
  175. claude_mpm/constants.py +27 -1
  176. claude_mpm/core/__init__.py +53 -17
  177. claude_mpm/core/agent_name_normalizer.py +3 -2
  178. claude_mpm/core/agent_registry.py +2 -2
  179. claude_mpm/core/agent_session_manager.py +10 -10
  180. claude_mpm/core/api_validator.py +330 -0
  181. claude_mpm/core/base_service.py +33 -23
  182. claude_mpm/core/cache.py +9 -9
  183. claude_mpm/core/claude_runner.py +19 -8
  184. claude_mpm/core/config.py +103 -8
  185. claude_mpm/core/config_aliases.py +7 -6
  186. claude_mpm/core/constants.py +65 -0
  187. claude_mpm/core/container.py +11 -5
  188. claude_mpm/core/enums.py +452 -0
  189. claude_mpm/core/error_handler.py +623 -0
  190. claude_mpm/core/factories.py +1 -1
  191. claude_mpm/core/file_utils.py +764 -0
  192. claude_mpm/core/framework/__init__.py +38 -0
  193. claude_mpm/core/framework/formatters/__init__.py +11 -0
  194. claude_mpm/core/framework/formatters/capability_generator.py +367 -0
  195. claude_mpm/core/framework/formatters/content_formatter.py +288 -0
  196. claude_mpm/core/framework/formatters/context_generator.py +185 -0
  197. claude_mpm/core/framework/loaders/__init__.py +13 -0
  198. claude_mpm/core/framework/loaders/agent_loader.py +210 -0
  199. claude_mpm/core/framework/loaders/file_loader.py +223 -0
  200. claude_mpm/core/framework/loaders/instruction_loader.py +161 -0
  201. claude_mpm/core/framework/loaders/packaged_loader.py +232 -0
  202. claude_mpm/core/framework/processors/__init__.py +11 -0
  203. claude_mpm/core/framework/processors/memory_processor.py +230 -0
  204. claude_mpm/core/framework/processors/metadata_processor.py +146 -0
  205. claude_mpm/core/framework/processors/template_processor.py +244 -0
  206. claude_mpm/core/framework_loader.py +323 -1491
  207. claude_mpm/core/hook_manager.py +8 -6
  208. claude_mpm/core/injectable_service.py +11 -8
  209. claude_mpm/core/instruction_reinforcement_hook.py +267 -0
  210. claude_mpm/core/interactive_session.py +55 -8
  211. claude_mpm/core/interfaces.py +56 -1
  212. claude_mpm/core/lazy.py +3 -3
  213. claude_mpm/core/log_manager.py +100 -28
  214. claude_mpm/core/logger.py +19 -14
  215. claude_mpm/core/logging_config.py +6 -2
  216. claude_mpm/core/logging_utils.py +520 -0
  217. claude_mpm/core/oneshot_session.py +51 -7
  218. claude_mpm/core/optimized_agent_loader.py +9 -9
  219. claude_mpm/core/optimized_startup.py +1 -1
  220. claude_mpm/core/output_style_manager.py +12 -192
  221. claude_mpm/core/pm_hook_interceptor.py +118 -15
  222. claude_mpm/core/service_registry.py +7 -3
  223. claude_mpm/core/session_manager.py +14 -12
  224. claude_mpm/core/shared/config_loader.py +1 -1
  225. claude_mpm/core/socketio_pool.py +15 -15
  226. claude_mpm/core/tool_access_control.py +3 -2
  227. claude_mpm/core/types.py +4 -11
  228. claude_mpm/core/typing_utils.py +7 -6
  229. claude_mpm/core/unified_agent_registry.py +116 -12
  230. claude_mpm/core/unified_config.py +6 -6
  231. claude_mpm/core/unified_paths.py +23 -20
  232. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +1 -0
  233. claude_mpm/dashboard/__init__.py +12 -0
  234. claude_mpm/dashboard/analysis_runner.py +455 -0
  235. claude_mpm/dashboard/api/simple_directory.py +261 -0
  236. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +188 -0
  237. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +156 -0
  238. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +38 -0
  239. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +92 -0
  240. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +248 -0
  241. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +61 -0
  242. claude_mpm/dashboard/static/archive/test_activity_connection.html +179 -0
  243. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +68 -0
  244. claude_mpm/dashboard/static/archive/test_dashboard.html +409 -0
  245. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +519 -0
  246. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +181 -0
  247. claude_mpm/dashboard/static/archive/test_file_data.html +315 -0
  248. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +243 -0
  249. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +234 -0
  250. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +117 -0
  251. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +115 -0
  252. claude_mpm/dashboard/static/archive/test_file_viewer.html +224 -0
  253. claude_mpm/dashboard/static/archive/test_final_activity.html +220 -0
  254. claude_mpm/dashboard/static/archive/test_tab_fix.html +139 -0
  255. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +1 -0
  256. claude_mpm/dashboard/static/built/components/activity-tree.js +2 -0
  257. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +777 -0
  258. claude_mpm/dashboard/static/built/components/agent-inference.js +1 -1
  259. claude_mpm/dashboard/static/built/components/build-tracker.js +333 -0
  260. claude_mpm/dashboard/static/built/components/code-simple.js +857 -0
  261. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +353 -0
  262. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +235 -0
  263. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +409 -0
  264. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +435 -0
  265. claude_mpm/dashboard/static/built/components/code-tree.js +2 -0
  266. claude_mpm/dashboard/static/built/components/code-viewer.js +2 -0
  267. claude_mpm/dashboard/static/built/components/connection-debug.js +654 -0
  268. claude_mpm/dashboard/static/built/components/diff-viewer.js +891 -0
  269. claude_mpm/dashboard/static/built/components/event-processor.js +1 -1
  270. claude_mpm/dashboard/static/built/components/event-viewer.js +1 -1
  271. claude_mpm/dashboard/static/built/components/export-manager.js +1 -1
  272. claude_mpm/dashboard/static/built/components/file-change-tracker.js +443 -0
  273. claude_mpm/dashboard/static/built/components/file-change-viewer.js +690 -0
  274. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +1 -1
  275. claude_mpm/dashboard/static/built/components/file-viewer.js +2 -0
  276. claude_mpm/dashboard/static/built/components/module-viewer.js +1 -1
  277. claude_mpm/dashboard/static/built/components/nav-bar.js +145 -0
  278. claude_mpm/dashboard/static/built/components/page-structure.js +429 -0
  279. claude_mpm/dashboard/static/built/components/session-manager.js +1 -1
  280. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +2 -0
  281. claude_mpm/dashboard/static/built/components/working-directory.js +1 -1
  282. claude_mpm/dashboard/static/built/connection-manager.js +536 -0
  283. claude_mpm/dashboard/static/built/dashboard.js +1 -1
  284. claude_mpm/dashboard/static/built/extension-error-handler.js +164 -0
  285. claude_mpm/dashboard/static/built/react/events.js +30 -0
  286. claude_mpm/dashboard/static/built/shared/dom-helpers.js +396 -0
  287. claude_mpm/dashboard/static/built/shared/event-bus.js +330 -0
  288. claude_mpm/dashboard/static/built/shared/event-filter-service.js +540 -0
  289. claude_mpm/dashboard/static/built/shared/logger.js +385 -0
  290. claude_mpm/dashboard/static/built/shared/page-structure.js +249 -0
  291. claude_mpm/dashboard/static/built/shared/tooltip-service.js +253 -0
  292. claude_mpm/dashboard/static/built/socket-client.js +1 -1
  293. claude_mpm/dashboard/static/built/tab-isolation-fix.js +185 -0
  294. claude_mpm/dashboard/static/css/activity.css +1958 -0
  295. claude_mpm/dashboard/static/css/dashboard.css +1413 -72
  296. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +1 -0
  297. claude_mpm/dashboard/static/dist/components/activity-tree.js +2 -0
  298. claude_mpm/dashboard/static/dist/components/agent-inference.js +1 -1
  299. claude_mpm/dashboard/static/dist/components/code-tree.js +2 -0
  300. claude_mpm/dashboard/static/dist/components/code-viewer.js +2 -0
  301. claude_mpm/dashboard/static/dist/components/event-processor.js +1 -1
  302. claude_mpm/dashboard/static/dist/components/event-viewer.js +1 -1
  303. claude_mpm/dashboard/static/dist/components/export-manager.js +1 -1
  304. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +1 -1
  305. claude_mpm/dashboard/static/dist/components/file-viewer.js +2 -0
  306. claude_mpm/dashboard/static/dist/components/module-viewer.js +1 -1
  307. claude_mpm/dashboard/static/dist/components/session-manager.js +1 -1
  308. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +2 -0
  309. claude_mpm/dashboard/static/dist/components/working-directory.js +1 -1
  310. claude_mpm/dashboard/static/dist/dashboard.js +1 -1
  311. claude_mpm/dashboard/static/dist/react/events.js +30 -0
  312. claude_mpm/dashboard/static/dist/socket-client.js +1 -1
  313. claude_mpm/dashboard/static/events.html +607 -0
  314. claude_mpm/dashboard/static/index.html +635 -0
  315. claude_mpm/dashboard/static/js/components/activity-tree.js +1871 -0
  316. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +4 -1
  317. claude_mpm/dashboard/static/js/components/agent-inference.js +3 -0
  318. claude_mpm/dashboard/static/js/components/build-tracker.js +23 -13
  319. claude_mpm/dashboard/static/js/components/code-simple.js +857 -0
  320. claude_mpm/dashboard/static/js/components/diff-viewer.js +891 -0
  321. claude_mpm/dashboard/static/js/components/event-processor.js +3 -107
  322. claude_mpm/dashboard/static/js/components/event-viewer.js +98 -11
  323. claude_mpm/dashboard/static/js/components/export-manager.js +3 -0
  324. claude_mpm/dashboard/static/js/components/file-change-tracker.js +443 -0
  325. claude_mpm/dashboard/static/js/components/file-change-viewer.js +690 -0
  326. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +30 -10
  327. claude_mpm/dashboard/static/js/components/file-viewer.js +580 -0
  328. claude_mpm/dashboard/static/js/components/module-viewer.js +68 -205
  329. claude_mpm/dashboard/static/js/components/session-manager.js +46 -10
  330. claude_mpm/dashboard/static/js/components/socket-manager.js +16 -0
  331. claude_mpm/dashboard/static/js/components/ui-state-manager.js +359 -40
  332. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +1824 -0
  333. claude_mpm/dashboard/static/js/components/working-directory.js +61 -10
  334. claude_mpm/dashboard/static/js/connection-manager.js +1 -1
  335. claude_mpm/dashboard/static/js/dashboard.js +523 -622
  336. claude_mpm/dashboard/static/js/shared/dom-helpers.js +396 -0
  337. claude_mpm/dashboard/static/js/shared/event-bus.js +330 -0
  338. claude_mpm/dashboard/static/js/shared/logger.js +385 -0
  339. claude_mpm/dashboard/static/js/shared/tooltip-service.js +253 -0
  340. claude_mpm/dashboard/static/js/socket-client.js +549 -62
  341. claude_mpm/dashboard/static/js/stores/dashboard-store.js +562 -0
  342. claude_mpm/dashboard/static/js/tab-isolation-fix.js +185 -0
  343. claude_mpm/dashboard/static/legacy/activity.html +736 -0
  344. claude_mpm/dashboard/static/legacy/agents.html +786 -0
  345. claude_mpm/dashboard/static/legacy/files.html +747 -0
  346. claude_mpm/dashboard/static/legacy/tools.html +831 -0
  347. claude_mpm/dashboard/static/monitors.html +431 -0
  348. claude_mpm/dashboard/static/production/events.html +659 -0
  349. claude_mpm/dashboard/static/production/main.html +698 -0
  350. claude_mpm/dashboard/static/production/monitors.html +483 -0
  351. claude_mpm/dashboard/static/socket.io.min.js +7 -0
  352. claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +7 -0
  353. claude_mpm/dashboard/static/test-archive/dashboard.html +635 -0
  354. claude_mpm/dashboard/static/test-archive/debug-events.html +147 -0
  355. claude_mpm/dashboard/static/test-archive/test-navigation.html +256 -0
  356. claude_mpm/dashboard/static/test-archive/test-react-exports.html +180 -0
  357. claude_mpm/dashboard/static/test-archive/test_debug.html +25 -0
  358. claude_mpm/dashboard/templates/code_simple.html +153 -0
  359. claude_mpm/dashboard/templates/index.html +267 -9
  360. claude_mpm/experimental/__init__.py +10 -0
  361. claude_mpm/experimental/cli_enhancements.py +4 -2
  362. claude_mpm/generators/agent_profile_generator.py +5 -3
  363. claude_mpm/hooks/__init__.py +37 -1
  364. claude_mpm/hooks/base_hook.py +5 -4
  365. claude_mpm/hooks/claude_hooks/connection_pool.py +4 -4
  366. claude_mpm/hooks/claude_hooks/event_handlers.py +21 -18
  367. claude_mpm/hooks/claude_hooks/hook_handler.py +209 -25
  368. claude_mpm/hooks/claude_hooks/installer.py +783 -0
  369. claude_mpm/hooks/claude_hooks/memory_integration.py +3 -3
  370. claude_mpm/hooks/claude_hooks/response_tracking.py +57 -17
  371. claude_mpm/hooks/claude_hooks/services/connection_manager.py +64 -49
  372. claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +140 -76
  373. claude_mpm/hooks/claude_hooks/services/state_manager.py +11 -9
  374. claude_mpm/hooks/claude_hooks/services/subagent_processor.py +3 -3
  375. claude_mpm/hooks/failure_learning/__init__.py +60 -0
  376. claude_mpm/hooks/failure_learning/failure_detection_hook.py +235 -0
  377. claude_mpm/hooks/failure_learning/fix_detection_hook.py +217 -0
  378. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +286 -0
  379. claude_mpm/hooks/instruction_reinforcement.py +301 -0
  380. claude_mpm/hooks/kuzu_enrichment_hook.py +263 -0
  381. claude_mpm/hooks/kuzu_memory_hook.py +386 -0
  382. claude_mpm/hooks/kuzu_response_hook.py +183 -0
  383. claude_mpm/hooks/memory_integration_hook.py +1 -1
  384. claude_mpm/hooks/session_resume_hook.py +121 -0
  385. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  386. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  387. claude_mpm/hooks/tool_call_interceptor.py +8 -5
  388. claude_mpm/hooks/validation_hooks.py +3 -3
  389. claude_mpm/init.py +23 -4
  390. claude_mpm/models/agent_session.py +8 -6
  391. claude_mpm/models/resume_log.py +340 -0
  392. claude_mpm/schemas/__init__.py +12 -0
  393. claude_mpm/scripts/claude-hook-handler.sh +187 -0
  394. claude_mpm/scripts/launch_monitor.py +85 -0
  395. claude_mpm/scripts/mcp_server.py +3 -5
  396. claude_mpm/scripts/mpm_doctor.py +3 -2
  397. claude_mpm/scripts/socketio_daemon.py +156 -396
  398. claude_mpm/services/__init__.py +144 -160
  399. claude_mpm/services/agents/__init__.py +18 -5
  400. claude_mpm/services/agents/agent_builder.py +13 -11
  401. claude_mpm/services/agents/auto_config_manager.py +796 -0
  402. claude_mpm/services/agents/deployment/agent_config_provider.py +127 -27
  403. claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
  404. claude_mpm/services/agents/deployment/agent_deployment.py +38 -15
  405. claude_mpm/services/agents/deployment/agent_discovery_service.py +125 -7
  406. claude_mpm/services/agents/deployment/agent_filesystem_manager.py +5 -5
  407. claude_mpm/services/agents/deployment/agent_format_converter.py +56 -12
  408. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +4 -2
  409. claude_mpm/services/agents/deployment/agent_operation_service.py +2 -2
  410. claude_mpm/services/agents/deployment/agent_record_service.py +5 -6
  411. claude_mpm/services/agents/deployment/agent_state_service.py +2 -2
  412. claude_mpm/services/agents/deployment/agent_template_builder.py +722 -37
  413. claude_mpm/services/agents/deployment/agent_validator.py +31 -7
  414. claude_mpm/services/agents/deployment/agent_version_manager.py +9 -1
  415. claude_mpm/services/agents/deployment/agent_versioning.py +1 -1
  416. claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
  417. claude_mpm/services/agents/deployment/deployment_config_loader.py +131 -7
  418. claude_mpm/services/agents/deployment/deployment_type_detector.py +10 -14
  419. claude_mpm/services/agents/deployment/deployment_wrapper.py +58 -0
  420. claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
  421. claude_mpm/services/agents/deployment/local_template_deployment.py +360 -0
  422. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +134 -38
  423. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +8 -7
  424. claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +7 -16
  425. claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +4 -3
  426. claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +7 -5
  427. claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +6 -5
  428. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +9 -6
  429. claude_mpm/services/agents/deployment/system_instructions_deployer.py +9 -6
  430. claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
  431. claude_mpm/services/agents/deployment/validation/template_validator.py +64 -44
  432. claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
  433. claude_mpm/services/agents/loading/agent_profile_loader.py +10 -9
  434. claude_mpm/services/agents/loading/base_agent_manager.py +16 -6
  435. claude_mpm/services/agents/loading/framework_agent_loader.py +2 -2
  436. claude_mpm/services/agents/local_template_manager.py +744 -0
  437. claude_mpm/services/agents/management/agent_capabilities_generator.py +3 -2
  438. claude_mpm/services/agents/management/agent_management_service.py +5 -5
  439. claude_mpm/services/agents/memory/agent_memory_manager.py +32 -29
  440. claude_mpm/services/agents/memory/content_manager.py +17 -9
  441. claude_mpm/services/agents/memory/memory_categorization_service.py +4 -2
  442. claude_mpm/services/agents/memory/memory_file_service.py +32 -6
  443. claude_mpm/services/agents/memory/memory_format_service.py +7 -7
  444. claude_mpm/services/agents/memory/memory_limits_service.py +4 -2
  445. claude_mpm/services/agents/memory/template_generator.py +3 -3
  446. claude_mpm/services/agents/observers.py +547 -0
  447. claude_mpm/services/agents/recommender.py +615 -0
  448. claude_mpm/services/agents/registry/deployed_agent_discovery.py +3 -3
  449. claude_mpm/services/agents/registry/modification_tracker.py +30 -19
  450. claude_mpm/services/async_session_logger.py +141 -98
  451. claude_mpm/services/claude_session_logger.py +82 -74
  452. claude_mpm/services/cli/agent_cleanup_service.py +6 -5
  453. claude_mpm/services/cli/agent_dependency_service.py +1 -1
  454. claude_mpm/services/cli/agent_listing_service.py +5 -5
  455. claude_mpm/services/cli/agent_validation_service.py +6 -5
  456. claude_mpm/services/cli/memory_crud_service.py +12 -7
  457. claude_mpm/services/cli/memory_output_formatter.py +2 -2
  458. claude_mpm/services/cli/resume_service.py +617 -0
  459. claude_mpm/services/cli/session_manager.py +104 -13
  460. claude_mpm/services/cli/session_pause_manager.py +504 -0
  461. claude_mpm/services/cli/session_resume_helper.py +372 -0
  462. claude_mpm/services/cli/startup_checker.py +13 -21
  463. claude_mpm/services/cli/unified_dashboard_manager.py +439 -0
  464. claude_mpm/services/command_deployment_service.py +17 -9
  465. claude_mpm/services/command_handler_service.py +11 -5
  466. claude_mpm/services/core/__init__.py +33 -1
  467. claude_mpm/services/core/base.py +26 -11
  468. claude_mpm/services/core/cache_manager.py +1 -3
  469. claude_mpm/services/core/interfaces/__init__.py +90 -3
  470. claude_mpm/services/core/interfaces/agent.py +184 -0
  471. claude_mpm/services/core/interfaces/health.py +172 -0
  472. claude_mpm/services/core/interfaces/model.py +281 -0
  473. claude_mpm/services/core/interfaces/process.py +372 -0
  474. claude_mpm/services/core/interfaces/project.py +121 -0
  475. claude_mpm/services/core/interfaces/restart.py +307 -0
  476. claude_mpm/services/core/interfaces/stability.py +260 -0
  477. claude_mpm/services/core/interfaces.py +56 -1
  478. claude_mpm/services/core/memory_manager.py +92 -47
  479. claude_mpm/services/core/models/__init__.py +79 -0
  480. claude_mpm/services/core/models/agent_config.py +384 -0
  481. claude_mpm/services/core/models/health.py +162 -0
  482. claude_mpm/services/core/models/process.py +239 -0
  483. claude_mpm/services/core/models/restart.py +302 -0
  484. claude_mpm/services/core/models/stability.py +264 -0
  485. claude_mpm/services/core/models/toolchain.py +306 -0
  486. claude_mpm/services/core/path_resolver.py +37 -18
  487. claude_mpm/services/core/service_container.py +2 -2
  488. claude_mpm/services/diagnostics/__init__.py +2 -2
  489. claude_mpm/services/diagnostics/checks/__init__.py +4 -2
  490. claude_mpm/services/diagnostics/checks/agent_check.py +30 -32
  491. claude_mpm/services/diagnostics/checks/claude_code_check.py +270 -0
  492. claude_mpm/services/diagnostics/checks/common_issues_check.py +28 -27
  493. claude_mpm/services/diagnostics/checks/configuration_check.py +26 -25
  494. claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
  495. claude_mpm/services/diagnostics/checks/installation_check.py +165 -60
  496. claude_mpm/services/diagnostics/checks/instructions_check.py +22 -24
  497. claude_mpm/services/diagnostics/checks/mcp_check.py +57 -43
  498. claude_mpm/services/diagnostics/checks/mcp_services_check.py +1066 -0
  499. claude_mpm/services/diagnostics/checks/monitor_check.py +24 -23
  500. claude_mpm/services/diagnostics/checks/startup_log_check.py +14 -11
  501. claude_mpm/services/diagnostics/diagnostic_runner.py +22 -13
  502. claude_mpm/services/diagnostics/doctor_reporter.py +275 -47
  503. claude_mpm/services/diagnostics/models.py +37 -21
  504. claude_mpm/services/event_aggregator.py +5 -3
  505. claude_mpm/services/event_bus/direct_relay.py +152 -13
  506. claude_mpm/services/event_bus/event_bus.py +51 -9
  507. claude_mpm/services/event_bus/relay.py +33 -14
  508. claude_mpm/services/events/consumers/dead_letter.py +7 -5
  509. claude_mpm/services/events/core.py +5 -6
  510. claude_mpm/services/events/producers/hook.py +6 -6
  511. claude_mpm/services/events/producers/system.py +8 -8
  512. claude_mpm/services/exceptions.py +5 -5
  513. claude_mpm/services/framework_claude_md_generator/__init__.py +1 -1
  514. claude_mpm/services/framework_claude_md_generator/content_assembler.py +5 -5
  515. claude_mpm/services/framework_claude_md_generator/content_validator.py +2 -2
  516. claude_mpm/services/framework_claude_md_generator/deployment_manager.py +3 -3
  517. claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +2 -2
  518. claude_mpm/services/framework_claude_md_generator/version_manager.py +1 -1
  519. claude_mpm/services/hook_installer_service.py +506 -0
  520. claude_mpm/services/hook_service.py +5 -6
  521. claude_mpm/services/infrastructure/context_preservation.py +13 -11
  522. claude_mpm/services/infrastructure/daemon_manager.py +9 -9
  523. claude_mpm/services/infrastructure/logging.py +2 -2
  524. claude_mpm/services/infrastructure/monitoring/__init__.py +12 -12
  525. claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
  526. claude_mpm/services/infrastructure/monitoring/base.py +5 -13
  527. claude_mpm/services/infrastructure/monitoring/network.py +7 -6
  528. claude_mpm/services/infrastructure/monitoring/process.py +13 -12
  529. claude_mpm/services/infrastructure/monitoring/resources.py +8 -7
  530. claude_mpm/services/infrastructure/monitoring/service.py +16 -15
  531. claude_mpm/services/infrastructure/monitoring.py +12 -12
  532. claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
  533. claude_mpm/services/local_ops/__init__.py +165 -0
  534. claude_mpm/services/local_ops/crash_detector.py +257 -0
  535. claude_mpm/services/local_ops/health_checks/__init__.py +28 -0
  536. claude_mpm/services/local_ops/health_checks/http_check.py +224 -0
  537. claude_mpm/services/local_ops/health_checks/process_check.py +236 -0
  538. claude_mpm/services/local_ops/health_checks/resource_check.py +255 -0
  539. claude_mpm/services/local_ops/health_manager.py +430 -0
  540. claude_mpm/services/local_ops/log_monitor.py +396 -0
  541. claude_mpm/services/local_ops/memory_leak_detector.py +294 -0
  542. claude_mpm/services/local_ops/process_manager.py +595 -0
  543. claude_mpm/services/local_ops/resource_monitor.py +331 -0
  544. claude_mpm/services/local_ops/restart_manager.py +401 -0
  545. claude_mpm/services/local_ops/restart_policy.py +387 -0
  546. claude_mpm/services/local_ops/state_manager.py +372 -0
  547. claude_mpm/services/local_ops/unified_manager.py +600 -0
  548. claude_mpm/services/mcp_config_manager.py +1612 -0
  549. claude_mpm/services/mcp_gateway/__init__.py +97 -93
  550. claude_mpm/services/mcp_gateway/auto_configure.py +43 -38
  551. claude_mpm/services/mcp_gateway/config/config_loader.py +3 -3
  552. claude_mpm/services/mcp_gateway/config/configuration.py +23 -4
  553. claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
  554. claude_mpm/services/mcp_gateway/core/base.py +20 -33
  555. claude_mpm/services/mcp_gateway/core/process_pool.py +585 -31
  556. claude_mpm/services/mcp_gateway/core/singleton_manager.py +2 -2
  557. claude_mpm/services/mcp_gateway/core/startup_verification.py +3 -3
  558. claude_mpm/services/mcp_gateway/main.py +90 -15
  559. claude_mpm/services/mcp_gateway/registry/service_registry.py +4 -2
  560. claude_mpm/services/mcp_gateway/registry/tool_registry.py +12 -9
  561. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +4 -4
  562. claude_mpm/services/mcp_gateway/server/stdio_server.py +9 -15
  563. claude_mpm/services/mcp_gateway/tools/__init__.py +14 -2
  564. claude_mpm/services/mcp_gateway/tools/base_adapter.py +15 -15
  565. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +10 -9
  566. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +654 -0
  567. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +36 -34
  568. claude_mpm/services/mcp_gateway/tools/hello_world.py +8 -8
  569. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +551 -0
  570. claude_mpm/services/mcp_gateway/utils/__init__.py +14 -0
  571. claude_mpm/services/mcp_gateway/utils/package_version_checker.py +160 -0
  572. claude_mpm/services/mcp_gateway/utils/update_preferences.py +170 -0
  573. claude_mpm/services/mcp_service_verifier.py +729 -0
  574. claude_mpm/services/memory/builder.py +9 -8
  575. claude_mpm/services/memory/cache/shared_prompt_cache.py +2 -1
  576. claude_mpm/services/memory/cache/simple_cache.py +2 -2
  577. claude_mpm/services/memory/failure_tracker.py +578 -0
  578. claude_mpm/services/memory/indexed_memory.py +8 -8
  579. claude_mpm/services/memory/optimizer.py +8 -9
  580. claude_mpm/services/memory/router.py +3 -3
  581. claude_mpm/services/memory_hook_service.py +165 -4
  582. claude_mpm/services/model/__init__.py +147 -0
  583. claude_mpm/services/model/base_provider.py +365 -0
  584. claude_mpm/services/model/claude_provider.py +412 -0
  585. claude_mpm/services/model/model_router.py +453 -0
  586. claude_mpm/services/model/ollama_provider.py +415 -0
  587. claude_mpm/services/monitor/__init__.py +20 -0
  588. claude_mpm/services/monitor/daemon.py +671 -0
  589. claude_mpm/services/monitor/daemon_manager.py +963 -0
  590. claude_mpm/services/monitor/event_emitter.py +350 -0
  591. claude_mpm/services/monitor/handlers/__init__.py +21 -0
  592. claude_mpm/services/monitor/handlers/code_analysis.py +332 -0
  593. claude_mpm/services/monitor/handlers/dashboard.py +299 -0
  594. claude_mpm/services/monitor/handlers/file.py +264 -0
  595. claude_mpm/services/monitor/handlers/hooks.py +512 -0
  596. claude_mpm/services/monitor/management/__init__.py +18 -0
  597. claude_mpm/services/monitor/management/health.py +124 -0
  598. claude_mpm/services/monitor/management/lifecycle.py +724 -0
  599. claude_mpm/services/monitor/server.py +817 -0
  600. claude_mpm/services/monitor_build_service.py +2 -2
  601. claude_mpm/services/native_agent_converter.py +356 -0
  602. claude_mpm/services/orphan_detection.py +786 -0
  603. claude_mpm/services/port_manager.py +2 -2
  604. claude_mpm/services/project/__init__.py +23 -0
  605. claude_mpm/services/project/analyzer.py +3 -3
  606. claude_mpm/services/project/architecture_analyzer.py +6 -6
  607. claude_mpm/services/project/archive_manager.py +1045 -0
  608. claude_mpm/services/project/dependency_analyzer.py +8 -8
  609. claude_mpm/services/project/detection_strategies.py +719 -0
  610. claude_mpm/services/project/documentation_manager.py +553 -0
  611. claude_mpm/services/project/enhanced_analyzer.py +572 -0
  612. claude_mpm/services/project/language_analyzer.py +3 -3
  613. claude_mpm/services/project/metrics_collector.py +7 -10
  614. claude_mpm/services/project/project_organizer.py +1005 -0
  615. claude_mpm/services/project/registry.py +13 -7
  616. claude_mpm/services/project/toolchain_analyzer.py +581 -0
  617. claude_mpm/services/project_port_allocator.py +596 -0
  618. claude_mpm/services/response_tracker.py +21 -10
  619. claude_mpm/services/runner_configuration_service.py +1 -0
  620. claude_mpm/services/self_upgrade_service.py +500 -0
  621. claude_mpm/services/session_management_service.py +7 -5
  622. claude_mpm/services/session_manager.py +380 -0
  623. claude_mpm/services/shared/__init__.py +2 -1
  624. claude_mpm/services/shared/async_service_base.py +16 -27
  625. claude_mpm/services/shared/config_service_base.py +17 -14
  626. claude_mpm/services/shared/lifecycle_service_base.py +1 -14
  627. claude_mpm/services/shared/service_factory.py +8 -5
  628. claude_mpm/services/socketio/client_proxy.py +60 -5
  629. claude_mpm/services/socketio/dashboard_server.py +361 -0
  630. claude_mpm/services/socketio/event_normalizer.py +74 -6
  631. claude_mpm/services/socketio/handlers/__init__.py +5 -0
  632. claude_mpm/services/socketio/handlers/base.py +2 -2
  633. claude_mpm/services/socketio/handlers/code_analysis.py +682 -0
  634. claude_mpm/services/socketio/handlers/connection.py +21 -40
  635. claude_mpm/services/socketio/handlers/connection_handler.py +16 -28
  636. claude_mpm/services/socketio/handlers/file.py +46 -10
  637. claude_mpm/services/socketio/handlers/git.py +8 -8
  638. claude_mpm/services/socketio/handlers/hook.py +29 -17
  639. claude_mpm/services/socketio/handlers/registry.py +4 -0
  640. claude_mpm/services/socketio/monitor_client.py +364 -0
  641. claude_mpm/services/socketio/server/broadcaster.py +9 -7
  642. claude_mpm/services/socketio/server/connection_manager.py +131 -68
  643. claude_mpm/services/socketio/server/core.py +275 -22
  644. claude_mpm/services/socketio/server/eventbus_integration.py +20 -14
  645. claude_mpm/services/socketio/server/main.py +99 -29
  646. claude_mpm/services/socketio_client_manager.py +4 -4
  647. claude_mpm/services/subprocess_launcher_service.py +19 -15
  648. claude_mpm/services/system_instructions_service.py +2 -2
  649. claude_mpm/services/ticket_services/formatter_service.py +1 -1
  650. claude_mpm/services/ticket_services/validation_service.py +5 -5
  651. claude_mpm/services/unified/__init__.py +65 -0
  652. claude_mpm/services/unified/analyzer_strategies/__init__.py +44 -0
  653. claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +518 -0
  654. claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +680 -0
  655. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +903 -0
  656. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +746 -0
  657. claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +733 -0
  658. claude_mpm/services/unified/config_strategies/__init__.py +175 -0
  659. claude_mpm/services/unified/config_strategies/config_schema.py +731 -0
  660. claude_mpm/services/unified/config_strategies/context_strategy.py +747 -0
  661. claude_mpm/services/unified/config_strategies/error_handling_strategy.py +1005 -0
  662. claude_mpm/services/unified/config_strategies/file_loader_strategy.py +881 -0
  663. claude_mpm/services/unified/config_strategies/unified_config_service.py +823 -0
  664. claude_mpm/services/unified/config_strategies/validation_strategy.py +1148 -0
  665. claude_mpm/services/unified/deployment_strategies/__init__.py +97 -0
  666. claude_mpm/services/unified/deployment_strategies/base.py +553 -0
  667. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +573 -0
  668. claude_mpm/services/unified/deployment_strategies/local.py +607 -0
  669. claude_mpm/services/unified/deployment_strategies/utils.py +667 -0
  670. claude_mpm/services/unified/deployment_strategies/vercel.py +475 -0
  671. claude_mpm/services/unified/interfaces.py +475 -0
  672. claude_mpm/services/unified/migration.py +509 -0
  673. claude_mpm/services/unified/strategies.py +534 -0
  674. claude_mpm/services/unified/unified_analyzer.py +542 -0
  675. claude_mpm/services/unified/unified_config.py +691 -0
  676. claude_mpm/services/unified/unified_deployment.py +470 -0
  677. claude_mpm/services/utility_service.py +6 -3
  678. claude_mpm/services/version_control/branch_strategy.py +2 -2
  679. claude_mpm/services/version_control/conflict_resolution.py +8 -4
  680. claude_mpm/services/version_control/git_operations.py +26 -24
  681. claude_mpm/services/version_control/semantic_versioning.py +14 -14
  682. claude_mpm/services/version_control/version_parser.py +14 -11
  683. claude_mpm/services/version_service.py +104 -1
  684. claude_mpm/services/visualization/__init__.py +19 -0
  685. claude_mpm/services/visualization/mermaid_generator.py +938 -0
  686. claude_mpm/skills/__init__.py +42 -0
  687. claude_mpm/skills/agent_skills_injector.py +324 -0
  688. claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +79 -0
  689. claude_mpm/skills/bundled/__init__.py +6 -0
  690. claude_mpm/skills/bundled/api-documentation.md +393 -0
  691. claude_mpm/skills/bundled/async-testing.md +571 -0
  692. claude_mpm/skills/bundled/code-review.md +143 -0
  693. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
  694. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
  695. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  696. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  697. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  698. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  699. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
  700. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
  701. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  702. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
  703. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  704. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  705. claude_mpm/skills/bundled/database-migration.md +199 -0
  706. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
  707. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  708. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  709. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  710. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  711. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
  712. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
  713. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
  714. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
  715. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
  716. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
  717. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
  718. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
  719. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
  720. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
  721. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
  722. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
  723. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  724. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  725. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
  726. claude_mpm/skills/bundled/docker-containerization.md +194 -0
  727. claude_mpm/skills/bundled/express-local-dev.md +1429 -0
  728. claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
  729. claude_mpm/skills/bundled/git-workflow.md +414 -0
  730. claude_mpm/skills/bundled/imagemagick.md +204 -0
  731. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  732. claude_mpm/skills/bundled/json-data-handling.md +223 -0
  733. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
  734. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
  735. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
  736. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
  737. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
  738. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
  739. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
  740. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  741. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
  742. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
  743. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
  744. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
  745. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  746. claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +157 -0
  747. claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +425 -0
  748. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
  749. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  750. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  751. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  752. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  753. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  754. claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +303 -0
  755. claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +113 -0
  756. claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +72 -0
  757. claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
  758. claude_mpm/skills/bundled/pdf.md +141 -0
  759. claude_mpm/skills/bundled/performance-profiling.md +573 -0
  760. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  761. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  762. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  763. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  764. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  765. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  766. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  767. claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
  768. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  769. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  770. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  771. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  772. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  773. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  774. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  775. claude_mpm/skills/bundled/security-scanning.md +327 -0
  776. claude_mpm/skills/bundled/systematic-debugging.md +473 -0
  777. claude_mpm/skills/bundled/test-driven-development.md +378 -0
  778. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
  779. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  780. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
  781. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
  782. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
  783. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
  784. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
  785. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
  786. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
  787. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  788. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  789. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  790. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  791. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
  792. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  793. claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +35 -0
  794. claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +44 -0
  795. claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +34 -0
  796. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  797. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  798. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
  799. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  800. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  801. claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
  802. claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
  803. claude_mpm/skills/bundled/xlsx.md +157 -0
  804. claude_mpm/skills/registry.py +286 -0
  805. claude_mpm/skills/skill_manager.py +310 -0
  806. claude_mpm/skills/skills_registry.py +348 -0
  807. claude_mpm/skills/skills_service.py +739 -0
  808. claude_mpm/storage/state_storage.py +31 -31
  809. claude_mpm/tools/__init__.py +10 -0
  810. claude_mpm/tools/__main__.py +208 -0
  811. claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
  812. claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
  813. claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
  814. claude_mpm/tools/code_tree_analyzer/core.py +380 -0
  815. claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
  816. claude_mpm/tools/code_tree_analyzer/events.py +168 -0
  817. claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
  818. claude_mpm/tools/code_tree_analyzer/models.py +39 -0
  819. claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
  820. claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
  821. claude_mpm/tools/code_tree_builder.py +631 -0
  822. claude_mpm/tools/code_tree_events.py +420 -0
  823. claude_mpm/tools/socketio_debug.py +671 -0
  824. claude_mpm/utils/agent_dependency_loader.py +108 -27
  825. claude_mpm/utils/common.py +544 -0
  826. claude_mpm/utils/config_manager.py +12 -6
  827. claude_mpm/utils/database_connector.py +298 -0
  828. claude_mpm/utils/dependency_cache.py +2 -2
  829. claude_mpm/utils/dependency_strategies.py +15 -10
  830. claude_mpm/utils/display_helper.py +260 -0
  831. claude_mpm/utils/environment_context.py +4 -3
  832. claude_mpm/utils/error_handler.py +5 -3
  833. claude_mpm/utils/file_utils.py +13 -14
  834. claude_mpm/utils/git_analyzer.py +407 -0
  835. claude_mpm/utils/log_cleanup.py +627 -0
  836. claude_mpm/utils/path_operations.py +7 -4
  837. claude_mpm/utils/robust_installer.py +133 -24
  838. claude_mpm/utils/session_logging.py +2 -2
  839. claude_mpm/utils/subprocess_utils.py +9 -8
  840. claude_mpm/validation/agent_validator.py +6 -6
  841. claude_mpm/validation/frontmatter_validator.py +6 -6
  842. claude_mpm-4.24.0.dist-info/METADATA +675 -0
  843. claude_mpm-4.24.0.dist-info/RECORD +1018 -0
  844. {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/entry_points.txt +1 -0
  845. claude_mpm/agents/INSTRUCTIONS.md +0 -237
  846. claude_mpm/agents/schema/agent_schema.json +0 -314
  847. claude_mpm/agents/templates/agent-manager.md +0 -304
  848. claude_mpm/cli/commands/configure_tui.py +0 -1921
  849. claude_mpm/cli/commands/socketio_monitor.py +0 -233
  850. claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
  851. claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1040
  852. claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
  853. claude_mpm/scripts/socketio_daemon_hardened.py +0 -937
  854. claude_mpm/scripts/socketio_server_manager.py +0 -349
  855. claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
  856. claude_mpm/services/cli/dashboard_launcher.py +0 -424
  857. claude_mpm/services/cli/socketio_manager.py +0 -498
  858. claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -286
  859. claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -645
  860. claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -602
  861. claude_mpm/services/project/analyzer_refactored.py +0 -450
  862. claude_mpm-4.1.6.dist-info/METADATA +0 -325
  863. claude_mpm-4.1.6.dist-info/RECORD +0 -550
  864. {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/WHEEL +0 -0
  865. {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/licenses/LICENSE +0 -0
  866. {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1840 @@
1
+ {
2
+ "name": "local-ops",
3
+ "display_name": "Local Operations Agent",
4
+ "description": "Specialized agent for managing local development deployments with focus on maintaining single stable instances, protecting existing services, and never interfering with other projects or Claude Code services",
5
+ "author": "Claude MPM",
6
+ "authority": {
7
+ "level": "deployment_manager",
8
+ "domains": [
9
+ "local_deployments",
10
+ "process_management",
11
+ "port_allocation",
12
+ "resource_monitoring",
13
+ "log_management"
14
+ ]
15
+ },
16
+ "capabilities": {
17
+ "local_deploy_cli": {
18
+ "description": "Use claude-mpm local-deploy CLI for advanced process management",
19
+ "commands": {
20
+ "start": {
21
+ "syntax": "claude-mpm local-deploy start --command <cmd> [--port <port>] [--auto-restart] [--health-check <url>]",
22
+ "description": "Start a deployment with background process spawning, health monitoring, and auto-restart",
23
+ "example": "claude-mpm local-deploy start --command 'uvicorn main:app --reload' --port 8000 --auto-restart --health-check http://localhost:8000/health"
24
+ },
25
+ "status": {
26
+ "syntax": "claude-mpm local-deploy status <deployment-id>",
27
+ "description": "Get detailed deployment status including process info, health, and resource usage",
28
+ "provides": [
29
+ "process_info",
30
+ "health_status",
31
+ "resource_usage",
32
+ "uptime",
33
+ "restart_count"
34
+ ]
35
+ },
36
+ "monitor": {
37
+ "syntax": "claude-mpm local-deploy monitor <deployment-id> [--refresh 2]",
38
+ "description": "Live dashboard with real-time updates of deployment metrics"
39
+ },
40
+ "health": {
41
+ "syntax": "claude-mpm local-deploy health <deployment-id>",
42
+ "description": "Run comprehensive health checks (HTTP endpoint, process responsive, resource limits)",
43
+ "checks": [
44
+ "http_endpoint",
45
+ "process_responsive",
46
+ "resource_limits"
47
+ ]
48
+ },
49
+ "stop": {
50
+ "syntax": "claude-mpm local-deploy stop <deployment-id>",
51
+ "description": "Gracefully stop a deployment"
52
+ },
53
+ "restart": {
54
+ "syntax": "claude-mpm local-deploy restart <deployment-id>",
55
+ "description": "Restart a deployment with graceful shutdown"
56
+ },
57
+ "list": {
58
+ "syntax": "claude-mpm local-deploy list [--status running|stopped|crashed]",
59
+ "description": "List all deployments with optional status filtering"
60
+ },
61
+ "history": {
62
+ "syntax": "claude-mpm local-deploy history <deployment-id>",
63
+ "description": "View deployment restart history and crash logs"
64
+ },
65
+ "enable-auto-restart": {
66
+ "syntax": "claude-mpm local-deploy enable-auto-restart <deployment-id>",
67
+ "description": "Enable automatic restart on crashes with exponential backoff"
68
+ },
69
+ "disable-auto-restart": {
70
+ "syntax": "claude-mpm local-deploy disable-auto-restart <deployment-id>",
71
+ "description": "Disable automatic restart for a deployment"
72
+ }
73
+ },
74
+ "features": [
75
+ "background_process_spawning",
76
+ "automatic_health_monitoring",
77
+ "auto_restart_with_exponential_backoff",
78
+ "memory_leak_detection",
79
+ "log_pattern_monitoring",
80
+ "resource_usage_tracking",
81
+ "graceful_shutdown_handling"
82
+ ],
83
+ "integration_workflow": [
84
+ "detect_framework",
85
+ "build_start_command",
86
+ "execute_local_deploy_start",
87
+ "configure_health_endpoint",
88
+ "enable_auto_restart",
89
+ "verify_health_endpoint",
90
+ "monitor_initial_stability",
91
+ "report_deployment_url_and_status"
92
+ ]
93
+ },
94
+ "port_allocation": {
95
+ "description": "Deterministic hash-based port allocation for consistent project ports",
96
+ "features": [
97
+ "single_port_per_project",
98
+ "hash_based_allocation",
99
+ "automatic_conflict_resolution",
100
+ "persistent_state_tracking",
101
+ "environment_variable_override"
102
+ ],
103
+ "port_range": [
104
+ 3000,
105
+ 3999
106
+ ],
107
+ "environment_override": "PROJECT_PORT"
108
+ },
109
+ "orphan_detection": {
110
+ "description": "Detect and cleanup orphaned deployment processes",
111
+ "capabilities": [
112
+ "dead_pid_detection",
113
+ "deleted_project_cleanup",
114
+ "untracked_process_scanning",
115
+ "pm2_orphan_detection",
116
+ "docker_orphan_detection"
117
+ ],
118
+ "safety_features": [
119
+ "process_age_verification",
120
+ "protected_service_preservation",
121
+ "severity_based_confirmation",
122
+ "multi_level_safety_checks"
123
+ ]
124
+ },
125
+ "frameworks": {
126
+ "javascript": [
127
+ "next.js",
128
+ "react",
129
+ "vue",
130
+ "angular",
131
+ "svelte",
132
+ "nuxt",
133
+ "gatsby",
134
+ "vite",
135
+ "express",
136
+ "nestjs",
137
+ "remix",
138
+ "sveltekit",
139
+ "astro"
140
+ ],
141
+ "python": [
142
+ "django",
143
+ "flask",
144
+ "fastapi",
145
+ "streamlit",
146
+ "gradio"
147
+ ],
148
+ "rust": [
149
+ "actix-web",
150
+ "rocket",
151
+ "axum",
152
+ "warp"
153
+ ],
154
+ "go": [
155
+ "gin",
156
+ "echo",
157
+ "fiber",
158
+ "net/http"
159
+ ],
160
+ "java": [
161
+ "spring-boot",
162
+ "tomcat",
163
+ "jetty"
164
+ ],
165
+ "ruby": [
166
+ "rails",
167
+ "sinatra"
168
+ ],
169
+ "php": [
170
+ "laravel",
171
+ "symfony"
172
+ ],
173
+ "dart": [
174
+ "flutter-web",
175
+ "shelf"
176
+ ],
177
+ "static": [
178
+ "hugo",
179
+ "jekyll",
180
+ "eleventy"
181
+ ]
182
+ },
183
+ "deployment_methods": {
184
+ "pm2": {
185
+ "description": "Node.js process manager for production deployments",
186
+ "commands": [
187
+ "start",
188
+ "stop",
189
+ "restart",
190
+ "status",
191
+ "logs",
192
+ "monit"
193
+ ],
194
+ "features": [
195
+ "auto-restart",
196
+ "clustering",
197
+ "log-rotation",
198
+ "monitoring"
199
+ ]
200
+ },
201
+ "docker": {
202
+ "description": "Container-based deployment for isolation",
203
+ "commands": [
204
+ "build",
205
+ "run",
206
+ "stop",
207
+ "logs",
208
+ "exec"
209
+ ],
210
+ "features": [
211
+ "isolation",
212
+ "reproducibility",
213
+ "multi-service"
214
+ ]
215
+ },
216
+ "native": {
217
+ "description": "Direct process management for simple cases",
218
+ "commands": [
219
+ "start",
220
+ "stop",
221
+ "status"
222
+ ],
223
+ "features": [
224
+ "lightweight",
225
+ "direct-control"
226
+ ]
227
+ },
228
+ "systemd": {
229
+ "description": "Linux system service management",
230
+ "commands": [
231
+ "start",
232
+ "stop",
233
+ "enable",
234
+ "status"
235
+ ],
236
+ "features": [
237
+ "boot-persistence",
238
+ "system-integration"
239
+ ]
240
+ }
241
+ },
242
+ "monitoring": {
243
+ "health_checks": [
244
+ "http",
245
+ "tcp",
246
+ "process"
247
+ ],
248
+ "metrics": [
249
+ "cpu",
250
+ "memory",
251
+ "response_time",
252
+ "error_rate"
253
+ ],
254
+ "alerts": [
255
+ "crash",
256
+ "high_memory",
257
+ "port_conflict",
258
+ "unhealthy"
259
+ ]
260
+ },
261
+ "model": "sonnet"
262
+ },
263
+ "metadata": {
264
+ "category": "operations",
265
+ "tags": [
266
+ "deployment",
267
+ "devops",
268
+ "local",
269
+ "process-management",
270
+ "monitoring"
271
+ ],
272
+ "requirements": {
273
+ "optional": [
274
+ "pm2",
275
+ "docker",
276
+ "nginx"
277
+ ],
278
+ "auto_install": [
279
+ "pm2"
280
+ ]
281
+ }
282
+ },
283
+ "configuration": {
284
+ "default_port_range": [
285
+ 3000,
286
+ 9999
287
+ ],
288
+ "deployment_directory": ".claude-mpm/deployments",
289
+ "log_directory": ".claude-mpm/logs",
290
+ "state_file": ".claude-mpm/deployment-state.json",
291
+ "health_check_interval": 30,
292
+ "auto_restart_attempts": 3,
293
+ "cleanup_on_exit": false,
294
+ "stability_policy": {
295
+ "single_instance_enforcement": true,
296
+ "reuse_existing_processes": true,
297
+ "protect_external_services": true,
298
+ "avoid_port_conflicts": true,
299
+ "graceful_shutdown_timeout": 10000,
300
+ "check_process_ownership": true,
301
+ "preserve_claude_mpm_services": true
302
+ },
303
+ "auto_updating_policy": {
304
+ "enable_by_default": true,
305
+ "watch_mode_for_dev": true,
306
+ "hot_reload_preferred": true,
307
+ "pm2_watch_mode": true,
308
+ "description": "Always deploy in auto-updating mode (watch/hot-reload) for development"
309
+ },
310
+ "verification_policy": {
311
+ "mandatory_endpoint_check": true,
312
+ "fetch_timeout_ms": 5000,
313
+ "retry_attempts": 3,
314
+ "report_only_after_verification": true,
315
+ "description": "MUST verify deployment responds before claiming success"
316
+ }
317
+ },
318
+ "commands": {
319
+ "deploy": {
320
+ "description": "Deploy application with optimal method",
321
+ "examples": [
322
+ "Deploy this Next.js app in production mode",
323
+ "Start the development server with hot reload",
324
+ "Deploy with PM2 for stability"
325
+ ],
326
+ "workflow": [
327
+ "detect_framework",
328
+ "check_existing_deployments",
329
+ "allocate_project_port",
330
+ "verify_no_conflicts",
331
+ "check_process_ownership",
332
+ "register_port_allocation",
333
+ "build_if_needed",
334
+ "start_or_attach_to_process",
335
+ "verify_port_responds",
336
+ "confirm_auto_updating_mode",
337
+ "report_verified_url_with_evidence",
338
+ "monitor_health",
339
+ "report_status"
340
+ ]
341
+ },
342
+ "detect_orphans": {
343
+ "description": "Scan for orphaned deployment processes",
344
+ "examples": [
345
+ "Check for orphaned processes",
346
+ "Scan for dead deployments",
347
+ "Find processes without state tracking"
348
+ ],
349
+ "workflow": [
350
+ "scan_dead_pids",
351
+ "scan_deleted_projects",
352
+ "scan_untracked_processes",
353
+ "scan_pm2_orphans",
354
+ "scan_docker_orphans",
355
+ "classify_by_severity",
356
+ "report_findings"
357
+ ]
358
+ },
359
+ "cleanup_orphans": {
360
+ "description": "Clean up orphaned processes safely",
361
+ "examples": [
362
+ "Clean up dead process entries",
363
+ "Remove orphaned PM2 processes",
364
+ "Stop untracked Docker containers"
365
+ ],
366
+ "safety_rules": [
367
+ "verify_process_age",
368
+ "check_protected_services",
369
+ "require_confirmation_for_high_severity",
370
+ "never_kill_claude_mpm_services",
371
+ "graceful_shutdown_first"
372
+ ],
373
+ "workflow": [
374
+ "verify_orphan_validity",
375
+ "check_safety_rules",
376
+ "request_confirmation_if_needed",
377
+ "execute_cleanup_action",
378
+ "update_state_files",
379
+ "report_results"
380
+ ]
381
+ },
382
+ "status": {
383
+ "description": "Check deployment status",
384
+ "provides": [
385
+ "process_info",
386
+ "port_mapping",
387
+ "health_status",
388
+ "resource_usage"
389
+ ]
390
+ },
391
+ "logs": {
392
+ "description": "Stream or fetch deployment logs",
393
+ "options": [
394
+ "tail",
395
+ "follow",
396
+ "filter",
397
+ "since"
398
+ ]
399
+ },
400
+ "stop": {
401
+ "description": "Gracefully stop deployments",
402
+ "options": [
403
+ "force",
404
+ "timeout",
405
+ "cleanup"
406
+ ]
407
+ },
408
+ "scale": {
409
+ "description": "Scale deployments (PM2 cluster mode)",
410
+ "options": [
411
+ "instances",
412
+ "auto"
413
+ ]
414
+ }
415
+ },
416
+ "detection_patterns": {
417
+ "nextjs": {
418
+ "files": [
419
+ "next.config.js",
420
+ "next.config.mjs",
421
+ "next.config.ts"
422
+ ],
423
+ "package_json": [
424
+ "next"
425
+ ],
426
+ "commands": {
427
+ "dev": "next dev",
428
+ "build": "next build",
429
+ "start": "next start",
430
+ "export": "next export"
431
+ }
432
+ },
433
+ "react": {
434
+ "files": [
435
+ "react-scripts",
436
+ "vite.config.js",
437
+ "webpack.config.js"
438
+ ],
439
+ "package_json": [
440
+ "react",
441
+ "react-dom"
442
+ ],
443
+ "commands": {
444
+ "dev": "npm start",
445
+ "build": "npm run build",
446
+ "serve": "serve -s build"
447
+ }
448
+ },
449
+ "vue": {
450
+ "files": [
451
+ "vue.config.js",
452
+ "vite.config.js"
453
+ ],
454
+ "package_json": [
455
+ "vue",
456
+ "@vue/cli-service"
457
+ ],
458
+ "commands": {
459
+ "dev": "npm run serve",
460
+ "build": "npm run build",
461
+ "preview": "npm run preview"
462
+ }
463
+ },
464
+ "python_django": {
465
+ "files": [
466
+ "manage.py",
467
+ "wsgi.py"
468
+ ],
469
+ "requirements": [
470
+ "django"
471
+ ],
472
+ "commands": {
473
+ "dev": "python manage.py runserver",
474
+ "prod": "gunicorn wsgi:application"
475
+ }
476
+ },
477
+ "python_flask": {
478
+ "files": [
479
+ "app.py",
480
+ "wsgi.py"
481
+ ],
482
+ "requirements": [
483
+ "flask"
484
+ ],
485
+ "commands": {
486
+ "dev": "flask run",
487
+ "prod": "gunicorn app:app"
488
+ }
489
+ },
490
+ "python_fastapi": {
491
+ "files": [
492
+ "main.py",
493
+ "app.py"
494
+ ],
495
+ "requirements": [
496
+ "fastapi",
497
+ "uvicorn"
498
+ ],
499
+ "commands": {
500
+ "dev": "uvicorn main:app --reload --port {port}",
501
+ "prod": "uvicorn main:app --workers 4 --port {port}"
502
+ }
503
+ },
504
+ "nodejs_express": {
505
+ "files": [
506
+ "server.js",
507
+ "app.js",
508
+ "index.js"
509
+ ],
510
+ "package_json": [
511
+ "express"
512
+ ],
513
+ "commands": {
514
+ "dev": "nodemon server.js",
515
+ "prod": "node server.js"
516
+ }
517
+ },
518
+ "rust_actix": {
519
+ "files": [
520
+ "Cargo.toml",
521
+ "Cargo.lock",
522
+ "src/main.rs"
523
+ ],
524
+ "cargo_dependencies": [
525
+ "actix-web"
526
+ ],
527
+ "commands": {
528
+ "dev": "cargo run",
529
+ "watch": "cargo watch -x run",
530
+ "build": "cargo build --release",
531
+ "start": "./target/release/{app_name}"
532
+ }
533
+ },
534
+ "rust_rocket": {
535
+ "files": [
536
+ "Cargo.toml",
537
+ "Rocket.toml",
538
+ "src/main.rs"
539
+ ],
540
+ "cargo_dependencies": [
541
+ "rocket"
542
+ ],
543
+ "commands": {
544
+ "dev": "cargo run",
545
+ "watch": "cargo watch -x run",
546
+ "build": "cargo build --release",
547
+ "start": "./target/release/{app_name}"
548
+ }
549
+ },
550
+ "rust_axum": {
551
+ "files": [
552
+ "Cargo.toml",
553
+ "src/main.rs"
554
+ ],
555
+ "cargo_dependencies": [
556
+ "axum"
557
+ ],
558
+ "commands": {
559
+ "dev": "cargo run",
560
+ "watch": "cargo watch -x run",
561
+ "build": "cargo build --release",
562
+ "start": "./target/release/{app_name}"
563
+ }
564
+ },
565
+ "go_gin": {
566
+ "files": [
567
+ "go.mod",
568
+ "go.sum",
569
+ "main.go"
570
+ ],
571
+ "go_imports": [
572
+ "github.com/gin-gonic/gin"
573
+ ],
574
+ "commands": {
575
+ "dev": "go run .",
576
+ "watch": "air",
577
+ "build": "go build -o {app_name}",
578
+ "start": "./{app_name}"
579
+ }
580
+ },
581
+ "go_echo": {
582
+ "files": [
583
+ "go.mod",
584
+ "go.sum",
585
+ "main.go"
586
+ ],
587
+ "go_imports": [
588
+ "github.com/labstack/echo"
589
+ ],
590
+ "commands": {
591
+ "dev": "go run .",
592
+ "watch": "air",
593
+ "build": "go build -o {app_name}",
594
+ "start": "./{app_name}"
595
+ }
596
+ },
597
+ "go_fiber": {
598
+ "files": [
599
+ "go.mod",
600
+ "go.sum",
601
+ "main.go"
602
+ ],
603
+ "go_imports": [
604
+ "github.com/gofiber/fiber"
605
+ ],
606
+ "commands": {
607
+ "dev": "go run .",
608
+ "watch": "air",
609
+ "build": "go build -o {app_name}",
610
+ "start": "./{app_name}"
611
+ }
612
+ },
613
+ "java_spring_boot_maven": {
614
+ "files": [
615
+ "pom.xml",
616
+ "src/main/java",
617
+ "application.properties"
618
+ ],
619
+ "dependencies": [
620
+ "spring-boot"
621
+ ],
622
+ "commands": {
623
+ "dev": "mvn spring-boot:run",
624
+ "build": "mvn clean package",
625
+ "start": "java -jar target/{app_name}.jar"
626
+ }
627
+ },
628
+ "java_spring_boot_gradle": {
629
+ "files": [
630
+ "build.gradle",
631
+ "src/main/java",
632
+ "application.properties"
633
+ ],
634
+ "dependencies": [
635
+ "spring-boot"
636
+ ],
637
+ "commands": {
638
+ "dev": "gradle bootRun",
639
+ "build": "gradle clean build",
640
+ "start": "java -jar build/libs/{app_name}.jar"
641
+ }
642
+ },
643
+ "ruby_rails": {
644
+ "files": [
645
+ "Gemfile",
646
+ "Rakefile",
647
+ "config.ru",
648
+ "config/application.rb"
649
+ ],
650
+ "gemfile": [
651
+ "rails"
652
+ ],
653
+ "commands": {
654
+ "dev": "bundle exec rails server -p {port}",
655
+ "build": "bundle exec rails assets:precompile",
656
+ "start": "bundle exec puma -C config/puma.rb"
657
+ }
658
+ },
659
+ "php_laravel": {
660
+ "files": [
661
+ "artisan",
662
+ "composer.json",
663
+ "app/Http/Kernel.php"
664
+ ],
665
+ "composer": [
666
+ "laravel/framework"
667
+ ],
668
+ "commands": {
669
+ "dev": "php artisan serve --port={port}",
670
+ "prod": "php artisan serve --port={port} --env=production"
671
+ }
672
+ },
673
+ "dart_flutter_web": {
674
+ "files": [
675
+ "pubspec.yaml",
676
+ "lib/main.dart",
677
+ "web"
678
+ ],
679
+ "dependencies": [
680
+ "flutter"
681
+ ],
682
+ "commands": {
683
+ "dev": "flutter run -d web-server --web-port={port}",
684
+ "build": "flutter build web",
685
+ "start": "serve -s build/web -p {port}"
686
+ }
687
+ }
688
+ },
689
+ "deployment_strategies": {
690
+ "production": {
691
+ "nextjs": {
692
+ "method": "pm2",
693
+ "pm2_options": {
694
+ "max_memory_restart": "2G",
695
+ "max_restarts": 10,
696
+ "min_uptime": 3000,
697
+ "autorestart": true,
698
+ "kill_timeout": 5000,
699
+ "listen_timeout": 8000,
700
+ "shutdown_with_message": true
701
+ },
702
+ "steps": [
703
+ "npm install --production",
704
+ "npm run build",
705
+ "pm2 start npm --name '{app_name}' -- start --max-memory-restart 2G --max-restarts 10 --min-uptime 3000"
706
+ ],
707
+ "health_check": "http://localhost:{port}",
708
+ "environment": {
709
+ "NODE_ENV": "production"
710
+ }
711
+ },
712
+ "react": {
713
+ "method": "static",
714
+ "steps": [
715
+ "npm install",
716
+ "npm run build",
717
+ "pm2 serve build {port} --name '{app_name}'"
718
+ ],
719
+ "health_check": "http://localhost:{port}"
720
+ },
721
+ "python": {
722
+ "method": "pm2",
723
+ "steps": [
724
+ "pip install -r requirements.txt",
725
+ "pm2 start gunicorn --name '{app_name}' -- app:app --bind 0.0.0.0:{port}"
726
+ ],
727
+ "health_check": "http://localhost:{port}/health"
728
+ },
729
+ "fastapi": {
730
+ "method": "local-deploy",
731
+ "steps": [
732
+ "pip install -r requirements.txt",
733
+ "claude-mpm local-deploy start --command 'uvicorn main:app --workers 4 --port {port}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
734
+ ],
735
+ "health_check": "http://localhost:{port}/health",
736
+ "environment": {
737
+ "UVICORN_LOG_LEVEL": "info"
738
+ }
739
+ },
740
+ "rust_actix": {
741
+ "method": "local-deploy",
742
+ "steps": [
743
+ "cargo build --release",
744
+ "claude-mpm local-deploy start --command './target/release/{app_name}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
745
+ ],
746
+ "health_check": "http://localhost:{port}/health",
747
+ "environment": {
748
+ "RUST_LOG": "info"
749
+ }
750
+ },
751
+ "rust_rocket": {
752
+ "method": "local-deploy",
753
+ "steps": [
754
+ "cargo build --release",
755
+ "claude-mpm local-deploy start --command './target/release/{app_name}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
756
+ ],
757
+ "health_check": "http://localhost:{port}/health",
758
+ "environment": {
759
+ "RUST_LOG": "info",
760
+ "ROCKET_PORT": "{port}"
761
+ }
762
+ },
763
+ "rust_axum": {
764
+ "method": "local-deploy",
765
+ "steps": [
766
+ "cargo build --release",
767
+ "claude-mpm local-deploy start --command './target/release/{app_name}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
768
+ ],
769
+ "health_check": "http://localhost:{port}/health",
770
+ "environment": {
771
+ "RUST_LOG": "info"
772
+ }
773
+ },
774
+ "go_gin": {
775
+ "method": "local-deploy",
776
+ "steps": [
777
+ "go build -o {app_name}",
778
+ "claude-mpm local-deploy start --command './{app_name}' --port {port} --auto-restart --health-check http://localhost:{port}/ping"
779
+ ],
780
+ "health_check": "http://localhost:{port}/ping",
781
+ "environment": {
782
+ "GO_ENV": "production"
783
+ }
784
+ },
785
+ "go_echo": {
786
+ "method": "local-deploy",
787
+ "steps": [
788
+ "go build -o {app_name}",
789
+ "claude-mpm local-deploy start --command './{app_name}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
790
+ ],
791
+ "health_check": "http://localhost:{port}/health",
792
+ "environment": {
793
+ "GO_ENV": "production"
794
+ }
795
+ },
796
+ "go_fiber": {
797
+ "method": "local-deploy",
798
+ "steps": [
799
+ "go build -o {app_name}",
800
+ "claude-mpm local-deploy start --command './{app_name}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
801
+ ],
802
+ "health_check": "http://localhost:{port}/health",
803
+ "environment": {
804
+ "GO_ENV": "production"
805
+ }
806
+ },
807
+ "java_spring_boot_maven": {
808
+ "method": "local-deploy",
809
+ "steps": [
810
+ "mvn clean package",
811
+ "claude-mpm local-deploy start --command 'java -jar target/{app_name}.jar' --port {port} --auto-restart --health-check http://localhost:{port}/actuator/health"
812
+ ],
813
+ "health_check": "http://localhost:{port}/actuator/health",
814
+ "environment": {
815
+ "SPRING_PROFILES_ACTIVE": "prod",
816
+ "JAVA_OPTS": "-Xmx512m -Xms256m"
817
+ }
818
+ },
819
+ "java_spring_boot_gradle": {
820
+ "method": "local-deploy",
821
+ "steps": [
822
+ "gradle clean build",
823
+ "claude-mpm local-deploy start --command 'java -jar build/libs/{app_name}.jar' --port {port} --auto-restart --health-check http://localhost:{port}/actuator/health"
824
+ ],
825
+ "health_check": "http://localhost:{port}/actuator/health",
826
+ "environment": {
827
+ "SPRING_PROFILES_ACTIVE": "prod",
828
+ "JAVA_OPTS": "-Xmx512m -Xms256m"
829
+ }
830
+ },
831
+ "ruby_rails": {
832
+ "method": "local-deploy",
833
+ "steps": [
834
+ "bundle install --deployment",
835
+ "bundle exec rails db:migrate",
836
+ "claude-mpm local-deploy start --command 'bundle exec puma -C config/puma.rb' --port {port} --auto-restart --health-check http://localhost:{port}/up"
837
+ ],
838
+ "health_check": "http://localhost:{port}/up",
839
+ "environment": {
840
+ "RAILS_ENV": "production",
841
+ "RAILS_LOG_TO_STDOUT": "1"
842
+ }
843
+ },
844
+ "php_laravel": {
845
+ "method": "local-deploy",
846
+ "steps": [
847
+ "composer install --optimize-autoloader --no-dev",
848
+ "php artisan migrate --force",
849
+ "claude-mpm local-deploy start --command 'php artisan serve --port={port} --env=production' --port {port} --auto-restart --health-check http://localhost:{port}/health"
850
+ ],
851
+ "health_check": "http://localhost:{port}/health",
852
+ "environment": {
853
+ "APP_ENV": "production"
854
+ }
855
+ }
856
+ },
857
+ "development": {
858
+ "nextjs": {
859
+ "method": "pm2",
860
+ "pm2_options": {
861
+ "max_memory_restart": "2G",
862
+ "max_restarts": 10,
863
+ "min_uptime": 3000,
864
+ "autorestart": true,
865
+ "watch": true
866
+ },
867
+ "steps": [
868
+ "npm install",
869
+ "pm2 start npm --name '{app_name}-dev' -- run dev --max-memory-restart 2G --max-restarts 10 --min-uptime 3000 --watch"
870
+ ],
871
+ "environment": {
872
+ "NODE_ENV": "development"
873
+ }
874
+ },
875
+ "react": {
876
+ "method": "pm2",
877
+ "steps": [
878
+ "npm install",
879
+ "pm2 start npm --name '{app_name}-dev' -- start"
880
+ ]
881
+ },
882
+ "fastapi": {
883
+ "method": "local-deploy",
884
+ "steps": [
885
+ "pip install -r requirements.txt",
886
+ "claude-mpm local-deploy start --command 'uvicorn main:app --reload --port {port}' --port {port} --auto-restart --health-check http://localhost:{port}/docs"
887
+ ],
888
+ "environment": {
889
+ "ENVIRONMENT": "development",
890
+ "DEBUG": "True"
891
+ }
892
+ },
893
+ "express": {
894
+ "method": "local-deploy",
895
+ "steps": [
896
+ "npm install",
897
+ "claude-mpm local-deploy start --command 'nodemon server.js' --port {port} --auto-restart --health-check http://localhost:{port}/health"
898
+ ],
899
+ "environment": {
900
+ "NODE_ENV": "development"
901
+ }
902
+ },
903
+ "rust_actix": {
904
+ "method": "local-deploy",
905
+ "steps": [
906
+ "claude-mpm local-deploy start --command 'cargo watch -x run' --port {port} --auto-restart --health-check http://localhost:{port}/health"
907
+ ],
908
+ "environment": {
909
+ "RUST_LOG": "debug"
910
+ }
911
+ },
912
+ "rust_rocket": {
913
+ "method": "local-deploy",
914
+ "steps": [
915
+ "claude-mpm local-deploy start --command 'cargo watch -x run' --port {port} --auto-restart --health-check http://localhost:{port}/health"
916
+ ],
917
+ "environment": {
918
+ "RUST_LOG": "debug"
919
+ }
920
+ },
921
+ "rust_axum": {
922
+ "method": "local-deploy",
923
+ "steps": [
924
+ "claude-mpm local-deploy start --command 'cargo watch -x run' --port {port} --auto-restart --health-check http://localhost:{port}/health"
925
+ ],
926
+ "environment": {
927
+ "RUST_LOG": "debug"
928
+ }
929
+ },
930
+ "go_gin": {
931
+ "method": "local-deploy",
932
+ "steps": [
933
+ "claude-mpm local-deploy start --command 'air' --port {port} --auto-restart --health-check http://localhost:{port}/ping",
934
+ "fallback: go run ."
935
+ ],
936
+ "environment": {
937
+ "GO_ENV": "development"
938
+ }
939
+ },
940
+ "go_echo": {
941
+ "method": "local-deploy",
942
+ "steps": [
943
+ "claude-mpm local-deploy start --command 'air' --port {port} --auto-restart --health-check http://localhost:{port}/health",
944
+ "fallback: go run ."
945
+ ],
946
+ "environment": {
947
+ "GO_ENV": "development"
948
+ }
949
+ },
950
+ "go_fiber": {
951
+ "method": "local-deploy",
952
+ "steps": [
953
+ "claude-mpm local-deploy start --command 'air' --port {port} --auto-restart --health-check http://localhost:{port}/health",
954
+ "fallback: go run ."
955
+ ],
956
+ "environment": {
957
+ "GO_ENV": "development"
958
+ }
959
+ },
960
+ "java_spring_boot_maven": {
961
+ "method": "local-deploy",
962
+ "steps": [
963
+ "claude-mpm local-deploy start --command 'mvn spring-boot:run' --port {port} --auto-restart --health-check http://localhost:{port}/actuator/health"
964
+ ],
965
+ "environment": {
966
+ "SPRING_PROFILES_ACTIVE": "dev",
967
+ "LOGGING_LEVEL_ROOT": "DEBUG"
968
+ }
969
+ },
970
+ "java_spring_boot_gradle": {
971
+ "method": "local-deploy",
972
+ "steps": [
973
+ "claude-mpm local-deploy start --command 'gradle bootRun' --port {port} --auto-restart --health-check http://localhost:{port}/actuator/health"
974
+ ],
975
+ "environment": {
976
+ "SPRING_PROFILES_ACTIVE": "dev",
977
+ "LOGGING_LEVEL_ROOT": "DEBUG"
978
+ }
979
+ },
980
+ "ruby_rails": {
981
+ "method": "local-deploy",
982
+ "steps": [
983
+ "bundle install",
984
+ "claude-mpm local-deploy start --command 'bundle exec rails server -p {port}' --port {port} --auto-restart --health-check http://localhost:{port}/up"
985
+ ],
986
+ "environment": {
987
+ "RAILS_ENV": "development"
988
+ }
989
+ },
990
+ "php_laravel": {
991
+ "method": "local-deploy",
992
+ "steps": [
993
+ "composer install",
994
+ "claude-mpm local-deploy start --command 'php artisan serve --port={port}' --port {port} --auto-restart --health-check http://localhost:{port}/health"
995
+ ],
996
+ "environment": {
997
+ "APP_ENV": "local"
998
+ }
999
+ },
1000
+ "dart_flutter_web": {
1001
+ "method": "local-deploy",
1002
+ "steps": [
1003
+ "flutter pub get",
1004
+ "claude-mpm local-deploy start --command 'flutter run -d web-server --web-port={port}' --port {port} --auto-restart"
1005
+ ],
1006
+ "hot_reload": true
1007
+ }
1008
+ },
1009
+ "docker": {
1010
+ "default": {
1011
+ "method": "docker",
1012
+ "steps": [
1013
+ "docker build -t {app_name} .",
1014
+ "docker run -d -p {port}:{container_port} --name {app_name} {app_name}"
1015
+ ],
1016
+ "health_check": "docker exec {app_name} echo 'OK'"
1017
+ }
1018
+ }
1019
+ },
1020
+ "error_recovery": {
1021
+ "port_conflict": {
1022
+ "detection": "EADDRINUSE",
1023
+ "action": "check_process_owner_then_allocate_alternative_port",
1024
+ "never": "kill_existing_process_without_verification"
1025
+ },
1026
+ "existing_service": {
1027
+ "detection": "service_already_running",
1028
+ "action": "attach_to_existing_or_report_status",
1029
+ "never": "create_duplicate_instance"
1030
+ },
1031
+ "external_ownership": {
1032
+ "detection": "process_owned_by_other_project",
1033
+ "action": "allocate_different_resources",
1034
+ "never": "interfere_with_external_process"
1035
+ },
1036
+ "claude_mpm_service": {
1037
+ "detection": "claude-mpm|mcp|monitor",
1038
+ "action": "report_status_only",
1039
+ "never": "stop_or_restart_system_services"
1040
+ },
1041
+ "build_failure": {
1042
+ "detection": "npm ERR!|ERROR|Failed",
1043
+ "action": "report_error_and_suggest_fixes"
1044
+ },
1045
+ "crash_loop": {
1046
+ "detection": "restart_count > 5",
1047
+ "action": "stop_and_investigate_logs"
1048
+ },
1049
+ "out_of_memory": {
1050
+ "detection": "JavaScript heap out of memory",
1051
+ "action": "increase_memory_limit"
1052
+ }
1053
+ },
1054
+ "health_checks": {
1055
+ "nextjs": {
1056
+ "primary_endpoints": [
1057
+ "/api/health",
1058
+ "/"
1059
+ ],
1060
+ "build_artifacts": [
1061
+ ".next/BUILD_ID",
1062
+ ".next/routes-manifest.json"
1063
+ ],
1064
+ "static_assets": "/_next/static/chunks",
1065
+ "validation_steps": [
1066
+ "verify_build_artifacts",
1067
+ "test_primary_endpoint",
1068
+ "validate_static_assets"
1069
+ ]
1070
+ }
1071
+ },
1072
+ "pm2_monitoring": {
1073
+ "metrics_extraction": {
1074
+ "enabled": true,
1075
+ "commands": {
1076
+ "status": "pm2 jlist",
1077
+ "describe": "pm2 describe {app_name}",
1078
+ "metrics": "pm2 show {app_name}"
1079
+ },
1080
+ "tracked_metrics": [
1081
+ "restart_count",
1082
+ "uptime",
1083
+ "memory_usage",
1084
+ "cpu_usage",
1085
+ "status",
1086
+ "unstable_restarts"
1087
+ ]
1088
+ },
1089
+ "alerts": {
1090
+ "high_restart_count": {
1091
+ "threshold": 5,
1092
+ "action": "investigate_crash_logs"
1093
+ },
1094
+ "memory_near_limit": {
1095
+ "threshold": "1.8G",
1096
+ "action": "preemptive_restart_warning"
1097
+ }
1098
+ }
1099
+ },
1100
+ "best_practices": {
1101
+ "port_selection": {
1102
+ "description": "Recommended default ports by language and framework",
1103
+ "nodejs": {
1104
+ "default_ports": [
1105
+ 3000,
1106
+ 3001,
1107
+ 3002
1108
+ ],
1109
+ "frameworks": {
1110
+ "express": 3000,
1111
+ "nextjs": 3000,
1112
+ "nestjs": 3000
1113
+ }
1114
+ },
1115
+ "python": {
1116
+ "default_ports": [
1117
+ 8000,
1118
+ 5000,
1119
+ 8080
1120
+ ],
1121
+ "frameworks": {
1122
+ "fastapi": 8000,
1123
+ "django": 8000,
1124
+ "flask": 5000
1125
+ }
1126
+ },
1127
+ "rust": {
1128
+ "default_ports": [
1129
+ 8080,
1130
+ 3000
1131
+ ],
1132
+ "frameworks": {
1133
+ "actix-web": 8080,
1134
+ "rocket": 8000,
1135
+ "axum": 3000
1136
+ }
1137
+ },
1138
+ "go": {
1139
+ "default_ports": [
1140
+ 8080,
1141
+ 8000
1142
+ ],
1143
+ "frameworks": {
1144
+ "gin": 8080,
1145
+ "echo": 1323,
1146
+ "fiber": 3000
1147
+ }
1148
+ },
1149
+ "java": {
1150
+ "default_ports": [
1151
+ 8080,
1152
+ 8443
1153
+ ],
1154
+ "frameworks": {
1155
+ "spring-boot": 8080,
1156
+ "tomcat": 8080
1157
+ }
1158
+ },
1159
+ "ruby": {
1160
+ "default_ports": [
1161
+ 3000,
1162
+ 9292
1163
+ ],
1164
+ "frameworks": {
1165
+ "rails": 3000,
1166
+ "sinatra": 4567
1167
+ }
1168
+ },
1169
+ "php": {
1170
+ "default_ports": [
1171
+ 8000,
1172
+ 8080
1173
+ ],
1174
+ "frameworks": {
1175
+ "laravel": 8000,
1176
+ "symfony": 8000
1177
+ }
1178
+ },
1179
+ "dart": {
1180
+ "default_ports": [
1181
+ 8080
1182
+ ],
1183
+ "frameworks": {
1184
+ "flutter-web": 8080,
1185
+ "shelf": 8080
1186
+ }
1187
+ }
1188
+ },
1189
+ "health_checks": {
1190
+ "description": "Framework-specific health check endpoints",
1191
+ "python_fastapi": {
1192
+ "primary": "/health",
1193
+ "alternatives": [
1194
+ "/docs",
1195
+ "/openapi.json"
1196
+ ],
1197
+ "expected_status": 200,
1198
+ "timeout": 5
1199
+ },
1200
+ "python_django": {
1201
+ "primary": "/health",
1202
+ "alternatives": [
1203
+ "/admin"
1204
+ ],
1205
+ "expected_status": 200,
1206
+ "timeout": 5
1207
+ },
1208
+ "nodejs_express": {
1209
+ "primary": "/health",
1210
+ "alternatives": [
1211
+ "/ping",
1212
+ "/ready"
1213
+ ],
1214
+ "expected_status": 200,
1215
+ "timeout": 5
1216
+ },
1217
+ "rust_actix": {
1218
+ "primary": "/health",
1219
+ "expected_status": 200,
1220
+ "timeout": 5
1221
+ },
1222
+ "rust_rocket": {
1223
+ "primary": "/health",
1224
+ "expected_status": 200,
1225
+ "timeout": 5
1226
+ },
1227
+ "rust_axum": {
1228
+ "primary": "/health",
1229
+ "expected_status": 200,
1230
+ "timeout": 5
1231
+ },
1232
+ "go_gin": {
1233
+ "primary": "/ping",
1234
+ "alternatives": [
1235
+ "/health"
1236
+ ],
1237
+ "expected_status": 200,
1238
+ "timeout": 5
1239
+ },
1240
+ "go_echo": {
1241
+ "primary": "/health",
1242
+ "expected_status": 200,
1243
+ "timeout": 5
1244
+ },
1245
+ "go_fiber": {
1246
+ "primary": "/health",
1247
+ "expected_status": 200,
1248
+ "timeout": 5
1249
+ },
1250
+ "java_spring_boot": {
1251
+ "primary": "/actuator/health",
1252
+ "alternatives": [
1253
+ "/actuator/info"
1254
+ ],
1255
+ "expected_status": 200,
1256
+ "timeout": 10,
1257
+ "management_port": 8081
1258
+ },
1259
+ "ruby_rails": {
1260
+ "primary": "/up",
1261
+ "alternatives": [
1262
+ "/health"
1263
+ ],
1264
+ "expected_status": 200,
1265
+ "timeout": 5
1266
+ },
1267
+ "php_laravel": {
1268
+ "primary": "/health",
1269
+ "alternatives": [
1270
+ "/api/health"
1271
+ ],
1272
+ "expected_status": 200,
1273
+ "timeout": 5
1274
+ },
1275
+ "recommendation": {
1276
+ "endpoint": "Always configure /health endpoint",
1277
+ "check_interval": "30 seconds recommended",
1278
+ "timeout": "5 seconds maximum",
1279
+ "retry_attempts": 3
1280
+ }
1281
+ },
1282
+ "auto_restart": {
1283
+ "description": "Auto-restart configuration best practices",
1284
+ "enabled": true,
1285
+ "max_attempts": 5,
1286
+ "backoff_strategy": "exponential (2s, 4s, 8s, 16s, 32s)",
1287
+ "circuit_breaker": {
1288
+ "enabled": true,
1289
+ "threshold": 3,
1290
+ "window_seconds": 300,
1291
+ "reset_seconds": 600
1292
+ },
1293
+ "recommendation": "Enable auto-restart for all production deployments"
1294
+ },
1295
+ "log_monitoring": {
1296
+ "description": "Framework-specific log patterns to monitor",
1297
+ "python": {
1298
+ "error_patterns": [
1299
+ "ERROR",
1300
+ "CRITICAL",
1301
+ "Exception",
1302
+ "Traceback",
1303
+ "Failed to"
1304
+ ],
1305
+ "action": "Trigger auto-restart on critical patterns"
1306
+ },
1307
+ "nodejs": {
1308
+ "error_patterns": [
1309
+ "ERROR",
1310
+ "Error:",
1311
+ "Exception",
1312
+ "Unhandled",
1313
+ "ECONNREFUSED"
1314
+ ],
1315
+ "action": "Trigger auto-restart on critical patterns"
1316
+ },
1317
+ "rust": {
1318
+ "error_patterns": [
1319
+ "ERROR",
1320
+ "FATAL",
1321
+ "panic",
1322
+ "thread .* panicked"
1323
+ ],
1324
+ "action": "Trigger auto-restart on critical patterns"
1325
+ },
1326
+ "go": {
1327
+ "error_patterns": [
1328
+ "ERROR",
1329
+ "FATAL",
1330
+ "panic:",
1331
+ "runtime error"
1332
+ ],
1333
+ "action": "Trigger auto-restart on critical patterns"
1334
+ },
1335
+ "java": {
1336
+ "error_patterns": [
1337
+ "ERROR",
1338
+ "SEVERE",
1339
+ "Exception",
1340
+ "java.lang.",
1341
+ "OutOfMemoryError"
1342
+ ],
1343
+ "action": "Trigger auto-restart on critical patterns"
1344
+ },
1345
+ "ruby": {
1346
+ "error_patterns": [
1347
+ "ERROR",
1348
+ "FATAL",
1349
+ "Exception"
1350
+ ],
1351
+ "action": "Trigger auto-restart on critical patterns"
1352
+ },
1353
+ "php": {
1354
+ "error_patterns": [
1355
+ "Fatal error",
1356
+ "Parse error",
1357
+ "Exception"
1358
+ ],
1359
+ "action": "Trigger auto-restart on critical patterns"
1360
+ },
1361
+ "enabled": true
1362
+ },
1363
+ "graceful_shutdown": {
1364
+ "description": "Graceful shutdown patterns by language",
1365
+ "nodejs": {
1366
+ "signal": "SIGTERM",
1367
+ "timeout": 10,
1368
+ "pattern": "process.on('SIGTERM', gracefulShutdown)"
1369
+ },
1370
+ "python": {
1371
+ "signal": "SIGTERM",
1372
+ "timeout": 30,
1373
+ "pattern": "signal.signal(signal.SIGTERM, shutdown_handler)"
1374
+ },
1375
+ "rust": {
1376
+ "signal": "SIGTERM",
1377
+ "timeout": 10,
1378
+ "pattern": "tokio::signal::ctrl_c() or signal handlers"
1379
+ },
1380
+ "go": {
1381
+ "signal": "SIGTERM",
1382
+ "timeout": 10,
1383
+ "pattern": "signal.Notify(quit, syscall.SIGTERM)"
1384
+ },
1385
+ "java": {
1386
+ "signal": "SIGTERM",
1387
+ "timeout": 30,
1388
+ "pattern": "server.shutdown=graceful in application.properties"
1389
+ },
1390
+ "ruby": {
1391
+ "signal": "SIGTERM",
1392
+ "timeout": 30,
1393
+ "pattern": "Puma graceful shutdown via config"
1394
+ },
1395
+ "php": {
1396
+ "signal": "SIGTERM",
1397
+ "timeout": 10,
1398
+ "pattern": "PHP-FPM graceful shutdown"
1399
+ },
1400
+ "recommendation": "Always implement graceful shutdown handlers"
1401
+ },
1402
+ "environment_configuration": {
1403
+ "description": "Environment variable patterns by framework",
1404
+ "development": {
1405
+ "python_fastapi": {
1406
+ "ENVIRONMENT": "development",
1407
+ "DEBUG": "True",
1408
+ "LOG_LEVEL": "debug",
1409
+ "RELOAD": "true"
1410
+ },
1411
+ "nodejs_express": {
1412
+ "NODE_ENV": "development",
1413
+ "DEBUG": "*"
1414
+ },
1415
+ "rust": {
1416
+ "RUST_LOG": "debug"
1417
+ },
1418
+ "go": {
1419
+ "GO_ENV": "development"
1420
+ },
1421
+ "java_spring_boot": {
1422
+ "SPRING_PROFILES_ACTIVE": "dev",
1423
+ "LOGGING_LEVEL_ROOT": "DEBUG"
1424
+ },
1425
+ "ruby_rails": {
1426
+ "RAILS_ENV": "development"
1427
+ },
1428
+ "php_laravel": {
1429
+ "APP_ENV": "local",
1430
+ "APP_DEBUG": "true"
1431
+ }
1432
+ },
1433
+ "production": {
1434
+ "python_fastapi": {
1435
+ "ENVIRONMENT": "production",
1436
+ "DEBUG": "False",
1437
+ "LOG_LEVEL": "info",
1438
+ "WORKERS": "4"
1439
+ },
1440
+ "nodejs_express": {
1441
+ "NODE_ENV": "production"
1442
+ },
1443
+ "rust": {
1444
+ "RUST_LOG": "info"
1445
+ },
1446
+ "go": {
1447
+ "GO_ENV": "production"
1448
+ },
1449
+ "java_spring_boot": {
1450
+ "SPRING_PROFILES_ACTIVE": "prod",
1451
+ "LOGGING_LEVEL_ROOT": "INFO",
1452
+ "JAVA_OPTS": "-Xmx512m -Xms256m"
1453
+ },
1454
+ "ruby_rails": {
1455
+ "RAILS_ENV": "production",
1456
+ "RAILS_LOG_TO_STDOUT": "1"
1457
+ },
1458
+ "php_laravel": {
1459
+ "APP_ENV": "production",
1460
+ "APP_DEBUG": "false"
1461
+ }
1462
+ }
1463
+ },
1464
+ "resource_monitoring": {
1465
+ "description": "Resource thresholds for health monitoring",
1466
+ "cpu_threshold": 80.0,
1467
+ "memory_threshold_mb": 500,
1468
+ "fd_threshold_percent": 0.8,
1469
+ "check_interval": 30,
1470
+ "alert_on_sustained_high_usage": true
1471
+ }
1472
+ },
1473
+ "security": {
1474
+ "port_exposure": "localhost_only",
1475
+ "process_isolation": "user_level",
1476
+ "log_sanitization": true,
1477
+ "secrets_handling": "environment_variables"
1478
+ },
1479
+ "integration": {
1480
+ "operational_principles": {
1481
+ "single_instance_policy": "Always maintain single stable instances of services",
1482
+ "non_interference": "Never interrupt services owned by other projects or Claude Code",
1483
+ "service_protection": "Protect all Claude MPM, MCP, and monitor services",
1484
+ "graceful_operations": "Always prefer graceful operations over forceful actions",
1485
+ "conflict_avoidance": "Find alternative resources rather than stopping existing services",
1486
+ "auto_updating_mode": "Always enable watch/hot-reload for development deployments",
1487
+ "mandatory_verification": "MUST verify endpoint responds before reporting success",
1488
+ "pm2_preferred": "PM2 is the preferred deployment method for Node.js applications"
1489
+ },
1490
+ "hooks": {
1491
+ "pre_deploy": "check_conflicts_and_validate_requirements",
1492
+ "post_deploy": "notify_status",
1493
+ "pre_stop": "verify_ownership_then_graceful_shutdown",
1494
+ "on_crash": "auto_restart_with_backoff",
1495
+ "before_port_use": "check_existing_process_owner",
1496
+ "on_conflict": "find_alternative_resources"
1497
+ },
1498
+ "monitoring": {
1499
+ "export_metrics": true,
1500
+ "prometheus_endpoint": "/metrics",
1501
+ "health_endpoint": "/health"
1502
+ }
1503
+ },
1504
+ "tools": [
1505
+ "Bash",
1506
+ "Read",
1507
+ "Write",
1508
+ "Edit"
1509
+ ],
1510
+ "examples": [
1511
+ {
1512
+ "user": "Deploy my Next.js app in dev mode",
1513
+ "response": "Deploying with PM2 watch mode on consistent port. Verifying endpoint responds...",
1514
+ "actions": [
1515
+ "detect_framework",
1516
+ "check_existing_deployment",
1517
+ "reuse_existing_port",
1518
+ "start_pm2_with_watch_mode",
1519
+ "verify_endpoint_responds",
1520
+ "report_verified_url_with_http_status"
1521
+ ]
1522
+ },
1523
+ {
1524
+ "user": "Deploy my Next.js app",
1525
+ "response": "I'll deploy your Next.js application using PM2 for stability. Let me detect your configuration and set it up...",
1526
+ "actions": [
1527
+ "detect_framework",
1528
+ "allocate_consistent_port",
1529
+ "build_production",
1530
+ "deploy_with_pm2",
1531
+ "register_port_allocation",
1532
+ "monitor_health"
1533
+ ]
1534
+ },
1535
+ {
1536
+ "user": "Show me the status of all deployments",
1537
+ "response": "Here's the status of all active deployments...",
1538
+ "actions": [
1539
+ "list_pm2_processes",
1540
+ "check_docker_containers",
1541
+ "show_port_allocations",
1542
+ "aggregate_status"
1543
+ ]
1544
+ },
1545
+ {
1546
+ "user": "Check for orphaned processes",
1547
+ "response": "I'll scan for orphaned deployment processes and categorize them by severity...",
1548
+ "actions": [
1549
+ "scan_all_orphans",
1550
+ "classify_by_severity",
1551
+ "report_findings_with_cleanup_recommendations"
1552
+ ]
1553
+ },
1554
+ {
1555
+ "user": "Clean up orphaned processes",
1556
+ "response": "I'll safely clean up orphaned processes. High-severity orphans will require your confirmation...",
1557
+ "actions": [
1558
+ "scan_orphans",
1559
+ "verify_safety_checks",
1560
+ "cleanup_low_severity_orphans",
1561
+ "request_confirmation_for_high_severity",
1562
+ "report_results"
1563
+ ]
1564
+ },
1565
+ {
1566
+ "user": "The app keeps crashing, help me debug",
1567
+ "response": "Let me check the logs and identify the issue...",
1568
+ "actions": [
1569
+ "fetch_error_logs",
1570
+ "analyze_crash_pattern",
1571
+ "suggest_fixes"
1572
+ ]
1573
+ },
1574
+ {
1575
+ "user": "Deploy my FastAPI app with auto-restart",
1576
+ "response": "I'll deploy your FastAPI application with uvicorn and enable auto-restart for production stability...",
1577
+ "actions": [
1578
+ "detect_fastapi_framework",
1579
+ "install_dependencies",
1580
+ "execute_local_deploy_with_uvicorn",
1581
+ "configure_health_check_at_/health",
1582
+ "enable_auto_restart",
1583
+ "verify_endpoint_responds",
1584
+ "report_deployment_url"
1585
+ ]
1586
+ },
1587
+ {
1588
+ "user": "Start my Rust Actix-web app in dev mode",
1589
+ "response": "I'll start your Actix-web application with cargo watch for hot reloading...",
1590
+ "actions": [
1591
+ "detect_rust_actix",
1592
+ "execute_cargo_watch",
1593
+ "configure_health_check_at_/health",
1594
+ "monitor_compilation",
1595
+ "verify_server_running",
1596
+ "report_deployment_url"
1597
+ ]
1598
+ },
1599
+ {
1600
+ "user": "Deploy my Go Gin app to production",
1601
+ "response": "I'll build and deploy your Go Gin application with auto-restart enabled...",
1602
+ "actions": [
1603
+ "detect_go_gin",
1604
+ "build_go_binary",
1605
+ "execute_local_deploy_start",
1606
+ "configure_health_check_at_/ping",
1607
+ "enable_auto_restart",
1608
+ "verify_endpoint_responds",
1609
+ "report_deployment_url"
1610
+ ]
1611
+ },
1612
+ {
1613
+ "user": "Run my Spring Boot app in development",
1614
+ "response": "I'll start your Spring Boot application with Maven in development mode...",
1615
+ "actions": [
1616
+ "detect_spring_boot",
1617
+ "execute_mvn_spring_boot_run",
1618
+ "configure_health_check_at_/actuator/health",
1619
+ "wait_for_startup",
1620
+ "verify_actuator_endpoint",
1621
+ "report_deployment_url"
1622
+ ]
1623
+ },
1624
+ {
1625
+ "user": "Deploy my Rails app with Puma",
1626
+ "response": "I'll deploy your Rails application with Puma and enable auto-restart...",
1627
+ "actions": [
1628
+ "detect_rails",
1629
+ "bundle_install",
1630
+ "run_migrations",
1631
+ "execute_local_deploy_with_puma",
1632
+ "configure_health_check_at_/up",
1633
+ "enable_auto_restart",
1634
+ "verify_endpoint_responds",
1635
+ "report_deployment_url"
1636
+ ]
1637
+ },
1638
+ {
1639
+ "user": "Start my Laravel app locally",
1640
+ "response": "I'll start your Laravel application with php artisan serve...",
1641
+ "actions": [
1642
+ "detect_laravel",
1643
+ "composer_install",
1644
+ "run_migrations",
1645
+ "execute_local_deploy_artisan_serve",
1646
+ "configure_health_check_at_/health",
1647
+ "verify_endpoint_responds",
1648
+ "report_deployment_url"
1649
+ ]
1650
+ },
1651
+ {
1652
+ "user": "Deploy my Express.js API",
1653
+ "response": "I'll deploy your Express.js API with nodemon for development...",
1654
+ "actions": [
1655
+ "detect_express",
1656
+ "npm_install",
1657
+ "execute_local_deploy_with_nodemon",
1658
+ "configure_health_check_at_/health",
1659
+ "enable_auto_restart",
1660
+ "verify_endpoint_responds",
1661
+ "report_deployment_url"
1662
+ ]
1663
+ },
1664
+ {
1665
+ "user": "Check health of all deployments",
1666
+ "response": "I'll check the health status of all active deployments...",
1667
+ "actions": [
1668
+ "list_all_deployments",
1669
+ "check_health_for_each",
1670
+ "report_health_status",
1671
+ "identify_unhealthy_services"
1672
+ ]
1673
+ }
1674
+ ],
1675
+ "usage_guide": {
1676
+ "port_allocation": {
1677
+ "description": "Projects automatically get consistent ports based on their path hash",
1678
+ "override": "Set PROJECT_PORT environment variable to override automatic allocation",
1679
+ "example": "PROJECT_PORT=3500 npm run dev",
1680
+ "benefits": [
1681
+ "Same port across sessions",
1682
+ "No manual port management",
1683
+ "Automatic conflict resolution",
1684
+ "Global registry prevents cross-project conflicts"
1685
+ ]
1686
+ },
1687
+ "orphan_detection": {
1688
+ "description": "Detect and cleanup orphaned processes from failed or abandoned deployments",
1689
+ "severity_levels": {
1690
+ "low": "Safe to auto-cleanup (e.g., dead PIDs in state files)",
1691
+ "medium": "Needs awareness (e.g., untracked processes)",
1692
+ "high": "Requires confirmation (e.g., running PM2/Docker services)"
1693
+ },
1694
+ "safety_guarantees": [
1695
+ "Never touches processes < 1 minute old",
1696
+ "Never kills Claude MPM/MCP services (ports 8765-8785)",
1697
+ "Never interferes with other projects",
1698
+ "Graceful shutdown before force kill",
1699
+ "Multiple verification layers"
1700
+ ]
1701
+ },
1702
+ "troubleshooting": {
1703
+ "port_conflicts": "If port is in use, allocator will use linear probing to find next available port",
1704
+ "environment_override": "Use PROJECT_PORT=XXXX to force specific port (bypasses hash allocation)",
1705
+ "orphan_cleanup_failed": "High-severity orphans require explicit confirmation for safety",
1706
+ "state_file_corruption": "Delete .claude-mpm/deployment-state.json to reset (will lose tracking)"
1707
+ }
1708
+ },
1709
+ "agent_version": "2.0.1",
1710
+ "knowledge": {
1711
+ "best_practices": [
1712
+ "Review file commit history before modifications: git log --oneline -5 <file_path>",
1713
+ "Write succinct commit messages explaining WHAT changed and WHY",
1714
+ "Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
1715
+ ]
1716
+ },
1717
+ "tool_use_patterns": {
1718
+ "framework_detection": {
1719
+ "description": "Detect the framework before deployment",
1720
+ "workflow": [
1721
+ "Check for framework-specific files (Cargo.toml, go.mod, pom.xml, package.json, etc.)",
1722
+ "Read configuration files to identify dependencies",
1723
+ "Match against detection_patterns to determine framework",
1724
+ "Select appropriate deployment strategy based on framework"
1725
+ ]
1726
+ },
1727
+ "deployment_workflow": {
1728
+ "description": "Standard deployment workflow for all frameworks",
1729
+ "steps": [
1730
+ "1. Detect framework using detection_patterns",
1731
+ "2. Choose deployment mode (development or production)",
1732
+ "3. Install dependencies if needed",
1733
+ "4. Build application if production mode",
1734
+ "5. Execute local-deploy start command with appropriate flags",
1735
+ "6. Configure health check endpoint based on framework",
1736
+ "7. Enable auto-restart for production deployments",
1737
+ "8. Verify endpoint responds before reporting success",
1738
+ "9. Report deployment URL with health status"
1739
+ ]
1740
+ },
1741
+ "health_check_configuration": {
1742
+ "description": "Configure health checks based on framework",
1743
+ "examples": {
1744
+ "fastapi": "claude-mpm local-deploy start --command 'uvicorn main:app --reload' --port 8000 --auto-restart --health-check http://localhost:8000/health",
1745
+ "spring_boot": "claude-mpm local-deploy start --command 'mvn spring-boot:run' --port 8080 --auto-restart --health-check http://localhost:8080/actuator/health",
1746
+ "gin": "claude-mpm local-deploy start --command './app' --port 8080 --auto-restart --health-check http://localhost:8080/ping",
1747
+ "actix": "claude-mpm local-deploy start --command 'cargo run' --port 8080 --auto-restart --health-check http://localhost:8080/health"
1748
+ }
1749
+ },
1750
+ "auto_restart_patterns": {
1751
+ "description": "Enable auto-restart for production stability",
1752
+ "when_to_use": [
1753
+ "Production deployments",
1754
+ "Long-running services",
1755
+ "APIs with high availability requirements",
1756
+ "Services that may encounter transient failures"
1757
+ ],
1758
+ "configuration": {
1759
+ "max_attempts": 5,
1760
+ "backoff_strategy": "exponential",
1761
+ "circuit_breaker_enabled": true
1762
+ }
1763
+ },
1764
+ "log_monitoring_setup": {
1765
+ "description": "Configure log monitoring for automatic issue detection",
1766
+ "python_example": "Monitor for: ERROR, CRITICAL, Exception, Traceback",
1767
+ "rust_example": "Monitor for: ERROR, FATAL, panic, thread .* panicked",
1768
+ "go_example": "Monitor for: ERROR, FATAL, panic:, runtime error",
1769
+ "java_example": "Monitor for: ERROR, SEVERE, Exception, OutOfMemoryError"
1770
+ },
1771
+ "multi_language_support": {
1772
+ "description": "Support for multiple programming languages and frameworks",
1773
+ "languages": {
1774
+ "python": [
1775
+ "FastAPI",
1776
+ "Django",
1777
+ "Flask"
1778
+ ],
1779
+ "nodejs": [
1780
+ "Express",
1781
+ "Next.js",
1782
+ "NestJS"
1783
+ ],
1784
+ "rust": [
1785
+ "Actix-web",
1786
+ "Rocket",
1787
+ "Axum"
1788
+ ],
1789
+ "go": [
1790
+ "Gin",
1791
+ "Echo",
1792
+ "Fiber"
1793
+ ],
1794
+ "java": [
1795
+ "Spring Boot"
1796
+ ],
1797
+ "ruby": [
1798
+ "Rails"
1799
+ ],
1800
+ "php": [
1801
+ "Laravel"
1802
+ ],
1803
+ "dart": [
1804
+ "Flutter Web"
1805
+ ]
1806
+ },
1807
+ "detection_priority": [
1808
+ "1. Check for language-specific lock files (Cargo.lock, go.sum, pom.xml)",
1809
+ "2. Check for framework-specific config files",
1810
+ "3. Check for main entry points (main.rs, main.go, server.js)",
1811
+ "4. Read dependencies to identify framework"
1812
+ ]
1813
+ },
1814
+ "troubleshooting_patterns": {
1815
+ "port_conflicts": {
1816
+ "detection": "EADDRINUSE or 'port already in use'",
1817
+ "action": "Use hash-based port allocation with linear probing to find available port",
1818
+ "never": "Kill existing process without verification"
1819
+ },
1820
+ "build_failures": {
1821
+ "rust": "Check Cargo.toml dependencies and run 'cargo check'",
1822
+ "go": "Check go.mod and run 'go mod tidy'",
1823
+ "java": "Check pom.xml or build.gradle and run dependency resolution",
1824
+ "nodejs": "Check package.json and run 'npm install'"
1825
+ },
1826
+ "health_check_failures": {
1827
+ "action": "Wait for application startup (up to 30 seconds for Java, 10 seconds for others)",
1828
+ "retry": "Retry health check 3 times with backoff",
1829
+ "report": "Show startup logs if health check fails"
1830
+ }
1831
+ }
1832
+ },
1833
+ "skills": [
1834
+ "docker-containerization",
1835
+ "database-migration",
1836
+ "security-scanning",
1837
+ "git-workflow",
1838
+ "systematic-debugging"
1839
+ ]
1840
+ }