claude-mpm 4.21.0__py3-none-any.whl → 5.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +12 -0
  3. claude_mpm/agents/OUTPUT_STYLE.md +3 -48
  4. claude_mpm/agents/PM_INSTRUCTIONS.md +632 -334
  5. claude_mpm/agents/WORKFLOW.md +75 -2
  6. claude_mpm/agents/__init__.py +6 -0
  7. claude_mpm/agents/agent_loader.py +1 -4
  8. claude_mpm/agents/base_agent.json +6 -3
  9. claude_mpm/agents/frontmatter_validator.py +1 -1
  10. claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +370 -3
  11. claude_mpm/agents/templates/context-management-examples.md +544 -0
  12. claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
  13. claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
  14. claude_mpm/agents/templates/research-gate-examples.md +669 -0
  15. claude_mpm/agents/templates/structured-questions-examples.md +615 -0
  16. claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
  17. claude_mpm/agents/templates/ticketing-examples.md +277 -0
  18. claude_mpm/cli/__init__.py +38 -2
  19. claude_mpm/cli/commands/agent_source.py +774 -0
  20. claude_mpm/cli/commands/agent_state_manager.py +125 -20
  21. claude_mpm/cli/commands/agents.py +684 -13
  22. claude_mpm/cli/commands/agents_cleanup.py +210 -0
  23. claude_mpm/cli/commands/agents_discover.py +338 -0
  24. claude_mpm/cli/commands/aggregate.py +1 -1
  25. claude_mpm/cli/commands/analyze.py +3 -3
  26. claude_mpm/cli/commands/auto_configure.py +2 -6
  27. claude_mpm/cli/commands/cleanup.py +1 -1
  28. claude_mpm/cli/commands/config.py +7 -4
  29. claude_mpm/cli/commands/configure.py +478 -44
  30. claude_mpm/cli/commands/configure_agent_display.py +4 -4
  31. claude_mpm/cli/commands/configure_navigation.py +63 -46
  32. claude_mpm/cli/commands/debug.py +12 -12
  33. claude_mpm/cli/commands/doctor.py +10 -2
  34. claude_mpm/cli/commands/hook_errors.py +277 -0
  35. claude_mpm/cli/commands/local_deploy.py +1 -4
  36. claude_mpm/cli/commands/mcp_install_commands.py +1 -1
  37. claude_mpm/cli/commands/mpm_init/core.py +50 -2
  38. claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
  39. claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
  40. claude_mpm/cli/commands/run.py +124 -128
  41. claude_mpm/cli/commands/skill_source.py +694 -0
  42. claude_mpm/cli/commands/skills.py +435 -1
  43. claude_mpm/cli/executor.py +78 -3
  44. claude_mpm/cli/interactive/agent_wizard.py +919 -41
  45. claude_mpm/cli/parsers/agent_source_parser.py +171 -0
  46. claude_mpm/cli/parsers/agents_parser.py +173 -4
  47. claude_mpm/cli/parsers/base_parser.py +49 -0
  48. claude_mpm/cli/parsers/config_parser.py +96 -43
  49. claude_mpm/cli/parsers/skill_source_parser.py +169 -0
  50. claude_mpm/cli/parsers/skills_parser.py +138 -0
  51. claude_mpm/cli/parsers/source_parser.py +138 -0
  52. claude_mpm/cli/startup.py +499 -84
  53. claude_mpm/cli/startup_display.py +480 -0
  54. claude_mpm/cli/utils.py +1 -1
  55. claude_mpm/cli_module/commands.py +1 -1
  56. claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
  57. claude_mpm/commands/mpm-agents-detect.md +9 -0
  58. claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
  59. claude_mpm/commands/mpm-agents-recommend.md +9 -0
  60. claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
  61. claude_mpm/commands/mpm-doctor.md +9 -0
  62. claude_mpm/commands/mpm-help.md +14 -2
  63. claude_mpm/commands/mpm-init.md +27 -2
  64. claude_mpm/commands/mpm-monitor.md +9 -0
  65. claude_mpm/commands/mpm-session-resume.md +381 -0
  66. claude_mpm/commands/mpm-status.md +9 -0
  67. claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
  68. claude_mpm/commands/mpm-ticket-view.md +552 -0
  69. claude_mpm/commands/mpm-version.md +9 -0
  70. claude_mpm/commands/mpm.md +11 -0
  71. claude_mpm/config/agent_presets.py +258 -0
  72. claude_mpm/config/agent_sources.py +325 -0
  73. claude_mpm/config/skill_sources.py +590 -0
  74. claude_mpm/constants.py +12 -0
  75. claude_mpm/core/api_validator.py +1 -1
  76. claude_mpm/core/claude_runner.py +17 -10
  77. claude_mpm/core/config.py +24 -0
  78. claude_mpm/core/constants.py +1 -1
  79. claude_mpm/core/framework/__init__.py +3 -16
  80. claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
  81. claude_mpm/core/framework/processors/metadata_processor.py +1 -1
  82. claude_mpm/core/hook_error_memory.py +381 -0
  83. claude_mpm/core/hook_manager.py +41 -2
  84. claude_mpm/core/interactive_session.py +112 -5
  85. claude_mpm/core/logger.py +3 -1
  86. claude_mpm/core/oneshot_session.py +94 -4
  87. claude_mpm/dashboard/static/css/activity.css +69 -69
  88. claude_mpm/dashboard/static/css/connection-status.css +10 -10
  89. claude_mpm/dashboard/static/css/dashboard.css +15 -15
  90. claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
  91. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
  92. claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
  93. claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
  94. claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
  95. claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
  96. claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
  97. claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
  98. claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
  99. claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
  100. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
  101. claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
  102. claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
  103. claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
  104. claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
  105. claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
  106. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
  107. claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
  108. claude_mpm/dashboard/static/js/connection-manager.js +76 -76
  109. claude_mpm/dashboard/static/js/dashboard.js +76 -58
  110. claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
  111. claude_mpm/dashboard/static/js/socket-client.js +138 -121
  112. claude_mpm/dashboard/templates/code_simple.html +23 -23
  113. claude_mpm/dashboard/templates/index.html +18 -18
  114. claude_mpm/experimental/cli_enhancements.py +1 -5
  115. claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
  116. claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
  117. claude_mpm/hooks/claude_hooks/installer.py +45 -0
  118. claude_mpm/hooks/failure_learning/__init__.py +2 -8
  119. claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
  120. claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
  121. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
  122. claude_mpm/hooks/kuzu_response_hook.py +1 -5
  123. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  124. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  125. claude_mpm/models/git_repository.py +198 -0
  126. claude_mpm/scripts/claude-hook-handler.sh +3 -3
  127. claude_mpm/scripts/start_activity_logging.py +3 -1
  128. claude_mpm/services/agents/agent_builder.py +45 -9
  129. claude_mpm/services/agents/agent_preset_service.py +238 -0
  130. claude_mpm/services/agents/agent_selection_service.py +484 -0
  131. claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
  132. claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
  133. claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
  134. claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
  135. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
  136. claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
  137. claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
  138. claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
  139. claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
  140. claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
  141. claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
  142. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
  143. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
  144. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
  145. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
  146. claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
  147. claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
  148. claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
  149. claude_mpm/services/agents/git_source_manager.py +629 -0
  150. claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
  151. claude_mpm/services/agents/local_template_manager.py +50 -10
  152. claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
  153. claude_mpm/services/agents/sources/__init__.py +13 -0
  154. claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
  155. claude_mpm/services/agents/sources/git_source_sync_service.py +1055 -0
  156. claude_mpm/services/agents/startup_sync.py +239 -0
  157. claude_mpm/services/agents/toolchain_detector.py +474 -0
  158. claude_mpm/services/cli/session_pause_manager.py +1 -1
  159. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  160. claude_mpm/services/command_deployment_service.py +92 -1
  161. claude_mpm/services/core/base.py +26 -11
  162. claude_mpm/services/core/interfaces/__init__.py +1 -3
  163. claude_mpm/services/core/interfaces/health.py +1 -4
  164. claude_mpm/services/core/models/__init__.py +2 -11
  165. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  166. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  167. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  168. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  169. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  170. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  171. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  172. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  173. claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
  174. claude_mpm/services/event_bus/direct_relay.py +3 -3
  175. claude_mpm/services/event_bus/event_bus.py +36 -3
  176. claude_mpm/services/event_bus/relay.py +23 -7
  177. claude_mpm/services/events/consumers/logging.py +1 -2
  178. claude_mpm/services/git/__init__.py +21 -0
  179. claude_mpm/services/git/git_operations_service.py +494 -0
  180. claude_mpm/services/github/__init__.py +21 -0
  181. claude_mpm/services/github/github_cli_service.py +397 -0
  182. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  183. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  184. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  185. claude_mpm/services/instructions/__init__.py +9 -0
  186. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  187. claude_mpm/services/local_ops/__init__.py +3 -13
  188. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  189. claude_mpm/services/local_ops/health_manager.py +1 -4
  190. claude_mpm/services/local_ops/process_manager.py +1 -1
  191. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  192. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  193. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  194. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  195. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  196. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  197. claude_mpm/services/memory/failure_tracker.py +19 -4
  198. claude_mpm/services/memory/optimizer.py +1 -1
  199. claude_mpm/services/model/model_router.py +8 -9
  200. claude_mpm/services/monitor/daemon.py +1 -1
  201. claude_mpm/services/monitor/server.py +2 -2
  202. claude_mpm/services/native_agent_converter.py +356 -0
  203. claude_mpm/services/port_manager.py +1 -1
  204. claude_mpm/services/pr/__init__.py +14 -0
  205. claude_mpm/services/pr/pr_template_service.py +329 -0
  206. claude_mpm/services/project/documentation_manager.py +2 -1
  207. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  208. claude_mpm/services/runner_configuration_service.py +1 -0
  209. claude_mpm/services/self_upgrade_service.py +165 -7
  210. claude_mpm/services/skills/__init__.py +18 -0
  211. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  212. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  213. claude_mpm/services/skills_config.py +547 -0
  214. claude_mpm/services/skills_deployer.py +955 -0
  215. claude_mpm/services/socketio/handlers/connection.py +1 -1
  216. claude_mpm/services/socketio/handlers/git.py +2 -2
  217. claude_mpm/services/socketio/server/core.py +1 -4
  218. claude_mpm/services/socketio/server/main.py +1 -3
  219. claude_mpm/services/system_instructions_service.py +1 -3
  220. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  221. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  222. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  223. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  224. claude_mpm/services/unified/unified_deployment.py +1 -5
  225. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  226. claude_mpm/services/visualization/__init__.py +1 -5
  227. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  228. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  229. claude_mpm/skills/bundled/performance-profiling.md +6 -0
  230. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
  231. claude_mpm/skills/skills_registry.py +0 -1
  232. claude_mpm/templates/questions/__init__.py +38 -0
  233. claude_mpm/templates/questions/base.py +193 -0
  234. claude_mpm/templates/questions/pr_strategy.py +311 -0
  235. claude_mpm/templates/questions/project_init.py +385 -0
  236. claude_mpm/templates/questions/ticket_mgmt.py +394 -0
  237. claude_mpm/tools/__main__.py +8 -8
  238. claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
  239. claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
  240. claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
  241. claude_mpm/tools/code_tree_analyzer/core.py +380 -0
  242. claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
  243. claude_mpm/tools/code_tree_analyzer/events.py +168 -0
  244. claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
  245. claude_mpm/tools/code_tree_analyzer/models.py +39 -0
  246. claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
  247. claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
  248. claude_mpm/utils/agent_dependency_loader.py +80 -13
  249. claude_mpm/utils/dependency_cache.py +3 -1
  250. claude_mpm/utils/gitignore.py +241 -0
  251. claude_mpm/utils/log_cleanup.py +3 -3
  252. claude_mpm/utils/progress.py +383 -0
  253. claude_mpm/utils/robust_installer.py +3 -5
  254. claude_mpm/utils/structured_questions.py +619 -0
  255. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/METADATA +429 -59
  256. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/RECORD +264 -427
  257. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  258. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  259. claude_mpm/agents/templates/agent-manager.json +0 -273
  260. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  261. claude_mpm/agents/templates/api_qa.json +0 -180
  262. claude_mpm/agents/templates/clerk-ops.json +0 -235
  263. claude_mpm/agents/templates/code_analyzer.json +0 -101
  264. claude_mpm/agents/templates/content-agent.json +0 -358
  265. claude_mpm/agents/templates/dart_engineer.json +0 -307
  266. claude_mpm/agents/templates/data_engineer.json +0 -225
  267. claude_mpm/agents/templates/documentation.json +0 -211
  268. claude_mpm/agents/templates/engineer.json +0 -210
  269. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  270. claude_mpm/agents/templates/golang_engineer.json +0 -270
  271. claude_mpm/agents/templates/imagemagick.json +0 -264
  272. claude_mpm/agents/templates/java_engineer.json +0 -346
  273. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  274. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  275. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  276. claude_mpm/agents/templates/memory_manager.json +0 -158
  277. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  278. claude_mpm/agents/templates/ops.json +0 -185
  279. claude_mpm/agents/templates/php-engineer.json +0 -287
  280. claude_mpm/agents/templates/product_owner.json +0 -338
  281. claude_mpm/agents/templates/project_organizer.json +0 -140
  282. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  283. claude_mpm/agents/templates/python_engineer.json +0 -387
  284. claude_mpm/agents/templates/qa.json +0 -242
  285. claude_mpm/agents/templates/react_engineer.json +0 -238
  286. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  287. claude_mpm/agents/templates/research.json +0 -188
  288. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  289. claude_mpm/agents/templates/rust_engineer.json +0 -275
  290. claude_mpm/agents/templates/security.json +0 -202
  291. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  292. claude_mpm/agents/templates/ticketing.json +0 -177
  293. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  294. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  295. claude_mpm/agents/templates/version_control.json +0 -157
  296. claude_mpm/agents/templates/web_qa.json +0 -399
  297. claude_mpm/agents/templates/web_ui.json +0 -189
  298. claude_mpm/commands/mpm-tickets.md +0 -102
  299. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  300. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  301. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  302. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  303. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  304. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  305. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  306. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  307. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  308. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  309. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  310. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  311. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  312. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  313. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  314. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  315. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  316. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  317. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  318. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  319. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  320. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  321. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  322. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  323. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  324. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  325. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  326. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  327. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  328. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  329. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  330. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  331. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  332. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  333. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  334. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  335. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  336. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  337. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  338. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  339. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  340. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  341. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  342. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  343. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  344. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  345. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  346. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  347. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  348. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  349. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  350. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  351. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  352. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  353. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  354. claude_mpm/dashboard/static/built/react/events.js +0 -30
  355. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  356. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  357. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  358. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  359. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  360. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  361. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  362. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  363. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  364. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  365. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  366. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  367. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  368. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  369. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  370. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  371. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  372. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  373. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  374. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  375. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  376. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  377. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  378. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  379. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  380. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  381. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  382. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  383. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  384. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  385. claude_mpm/dashboard/static/events.html +0 -607
  386. claude_mpm/dashboard/static/index.html +0 -635
  387. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  388. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  389. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  390. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  391. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  392. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  393. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  394. claude_mpm/dashboard/static/legacy/files.html +0 -747
  395. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  396. claude_mpm/dashboard/static/monitors.html +0 -431
  397. claude_mpm/dashboard/static/production/events.html +0 -659
  398. claude_mpm/dashboard/static/production/main.html +0 -698
  399. claude_mpm/dashboard/static/production/monitors.html +0 -483
  400. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  401. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  402. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  403. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  404. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  405. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  406. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  407. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  408. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  409. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  410. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  411. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  412. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  413. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  414. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  415. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  416. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  417. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  418. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  419. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  420. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  421. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  422. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  423. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  424. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  425. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  426. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  427. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  428. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  429. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  430. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  431. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  432. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  433. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  434. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  435. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  436. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  437. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  438. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  439. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  440. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  441. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  442. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  443. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  444. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  445. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  446. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  447. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  448. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  449. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  450. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
  451. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
  452. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
  453. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
  454. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
  455. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
  456. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
  457. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
  458. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
  459. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
  460. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
  461. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
  462. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
  463. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  464. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  465. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  466. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  467. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  468. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  469. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  470. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  471. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  472. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  473. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  474. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  475. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  476. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  477. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  478. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  479. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  480. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  481. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  482. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  483. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  484. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  485. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  486. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  487. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  488. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  489. claude_mpm/tools/code_tree_analyzer.py +0 -1825
  490. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  491. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  492. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  493. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  494. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/WHEEL +0 -0
  495. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/entry_points.txt +0 -0
  496. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/licenses/LICENSE +0 -0
  497. {claude_mpm-4.21.0.dist-info → claude_mpm-5.0.2.dist-info}/top_level.txt +0 -0
@@ -85,8 +85,8 @@ class InteractiveSession:
85
85
  self.logger.warning(f"WebSocket initialization failed: {error}")
86
86
  # Continue without WebSocket - not a fatal error
87
87
 
88
- # Display welcome message
89
- self._display_welcome_message()
88
+ # Banner now displayed in CLI startup - see startup_display.py
89
+ # Removed duplicate _display_welcome_message() to consolidate with main banner
90
90
 
91
91
  # Log session start
92
92
  if self.runner.project_logger:
@@ -293,7 +293,12 @@ class InteractiveSession:
293
293
  return False, f"Unexpected error with Socket.IO: {e}"
294
294
 
295
295
  def _display_welcome_message(self) -> None:
296
- """Display the interactive session welcome message."""
296
+ """Display the interactive session welcome message.
297
+
298
+ DEPRECATED: This method is kept for backward compatibility with tests.
299
+ The main banner is now displayed in startup_display.py during CLI startup.
300
+ This consolidated approach prevents duplicate banners.
301
+ """
297
302
  version_str = self.runner._get_version()
298
303
 
299
304
  # Get output style status
@@ -383,12 +388,82 @@ class InteractiveSession:
383
388
  self.logger.debug(f"Raw claude_args received: {self.runner.claude_args}")
384
389
  cmd.extend(self.runner.claude_args)
385
390
 
386
- # Add system instructions
391
+ # Add --agents flag if native agents mode is enabled
392
+ if getattr(self.runner, "use_native_agents", False):
393
+ agents_flag = self._build_agents_flag()
394
+ if agents_flag:
395
+ # Add --agents JSON directly (already properly formatted)
396
+ cmd.extend(agents_flag)
397
+ self.logger.info("✓ Native agents mode: Using --agents CLI flag")
398
+
399
+ # Add system instructions with file-based caching
387
400
  from claude_mpm.core.claude_runner import create_simple_context
401
+ from claude_mpm.services.instructions.instruction_cache_service import (
402
+ InstructionCacheService,
403
+ )
388
404
 
389
405
  system_prompt = self.runner._create_system_prompt()
390
406
  if system_prompt and system_prompt != create_simple_context():
391
- cmd.extend(["--append-system-prompt", system_prompt])
407
+ # Try to use cached instruction file for better performance
408
+ try:
409
+ # Initialize cache service with project root
410
+ if "CLAUDE_MPM_USER_PWD" in os.environ:
411
+ project_root = Path(os.environ["CLAUDE_MPM_USER_PWD"])
412
+ else:
413
+ project_root = Path.cwd()
414
+
415
+ # Instruction Caching (1M-446)
416
+ # Cache assembled instructions to file to avoid ARG_MAX limits on Linux/Windows.
417
+ # - Linux: 128 KB limit, instructions are ~152 KB (exceeds by 19.1%)
418
+ # - Windows: 32 KB limit (exceeds by 476%)
419
+ # Cache updates only when content hash changes (hash-based invalidation).
420
+ # Fallback to inline instruction if cache fails (graceful degradation).
421
+ cache_service = InstructionCacheService(project_root=project_root)
422
+
423
+ # Update cache with assembled instruction content
424
+ cache_result = cache_service.update_cache(
425
+ instruction_content=system_prompt
426
+ )
427
+
428
+ # Use cache file if available
429
+ if (
430
+ cache_result.get("updated")
431
+ or cache_service.get_cache_path().exists()
432
+ ):
433
+ cache_file = cache_service.get_cache_path()
434
+
435
+ # Log cache operation
436
+ if cache_result.get("updated"):
437
+ self.logger.info(
438
+ f"Instruction cache updated: {cache_result.get('reason', 'unknown')}"
439
+ )
440
+ self.logger.debug(
441
+ f"Cache hash: {cache_result.get('content_hash', 'N/A')[:8]}..."
442
+ )
443
+ self.logger.debug(
444
+ f"Cache size: {cache_result.get('content_size_kb', 'N/A')} KB"
445
+ )
446
+ else:
447
+ self.logger.debug(
448
+ f"Using cached instructions: {cache_result.get('reason', 'unknown')}"
449
+ )
450
+
451
+ # Use file-based loading for better performance
452
+ cmd.extend(["--system-prompt-file", str(cache_file)])
453
+ self.logger.info(
454
+ f"✓ Using file-based instruction loading: {cache_file}"
455
+ )
456
+ else:
457
+ # Fallback to inline if cache file doesn't exist
458
+ self.logger.warning(
459
+ "Cache file not available, falling back to inline instruction"
460
+ )
461
+ cmd.extend(["--append-system-prompt", system_prompt])
462
+
463
+ except Exception as e:
464
+ # Graceful fallback - cache failures don't break deployment
465
+ self.logger.warning(f"Failed to cache instructions, using inline: {e}")
466
+ cmd.extend(["--append-system-prompt", system_prompt])
392
467
 
393
468
  # Final command verification
394
469
  # self.logger.info(f"Final Claude command built: {' '.join(cmd)}")
@@ -402,6 +477,38 @@ class InteractiveSession:
402
477
 
403
478
  return cmd
404
479
 
480
+ def _build_agents_flag(self) -> Optional[list]:
481
+ """Build --agents flag with all MPM agents.
482
+
483
+ Returns:
484
+ List with ["--agents", "<json>"] or None if conversion fails
485
+ """
486
+ try:
487
+ from claude_mpm.services.native_agent_converter import NativeAgentConverter
488
+
489
+ converter = NativeAgentConverter()
490
+ agents = converter.load_agents_from_templates()
491
+
492
+ if not agents:
493
+ self.logger.warning("No agents loaded for native mode")
494
+ return None
495
+
496
+ # Generate JSON for --agents flag
497
+ agents_json = converter.generate_agents_json(agents)
498
+ summary = converter.get_conversion_summary(agents)
499
+
500
+ self.logger.info(
501
+ f"Native agents: {summary['total_agents']} agents, "
502
+ f"{summary['json_size_kb']} KB JSON"
503
+ )
504
+
505
+ # Return as list: ["--agents", "<json>"]
506
+ return ["--agents", agents_json]
507
+
508
+ except Exception as e:
509
+ self.logger.error(f"Failed to build --agents flag: {e}", exc_info=True)
510
+ return None
511
+
405
512
  def _prepare_environment(self) -> dict:
406
513
  """Prepare clean environment variables for Claude."""
407
514
  clean_env = os.environ.copy()
claude_mpm/core/logger.py CHANGED
@@ -225,7 +225,9 @@ def setup_logging(
225
225
 
226
226
  # Use rotating file handler
227
227
  file_handler = logging.handlers.RotatingFileHandler(
228
- log_file, maxBytes=10 * 1024 * 1024, backupCount=5 # 10 MB
228
+ log_file,
229
+ maxBytes=10 * 1024 * 1024,
230
+ backupCount=5, # 10 MB
229
231
  )
230
232
  else:
231
233
  # Use default log directory
@@ -7,6 +7,7 @@ breaking down the monolithic run_oneshot method into focused, testable component
7
7
  import contextlib
8
8
  import os
9
9
  import subprocess
10
+ import tempfile
10
11
  import time
11
12
  import uuid
12
13
  from pathlib import Path
@@ -37,6 +38,7 @@ class OneshotSession:
37
38
  self.start_time = None
38
39
  self.session_id = None
39
40
  self.original_cwd = None
41
+ self.temp_system_prompt_file = None
40
42
 
41
43
  def initialize_session(self, prompt: str) -> Tuple[bool, Optional[str]]:
42
44
  """Initialize the oneshot session.
@@ -134,7 +136,13 @@ class OneshotSession:
134
136
  def _build_final_command(
135
137
  self, prompt: str, context: Optional[str], infrastructure: Dict[str, Any]
136
138
  ) -> list:
137
- """Build the final command with prompt and system instructions."""
139
+ """Build the final command with prompt and system instructions.
140
+
141
+ Uses file-based caching to avoid Linux ARG_MAX limits:
142
+ - Linux MAX_ARG_STRLEN: 128 KB per argument
143
+ - System prompt size: ~138.7 KB (exceeds limit by 7.7 KB)
144
+ - Solution: Write to temp file, pass file path (~60 bytes)
145
+ """
138
146
  full_prompt = f"{context}\n\n{prompt}" if context else prompt
139
147
  cmd = infrastructure["cmd"] + ["--print", full_prompt]
140
148
 
@@ -148,9 +156,38 @@ class OneshotSession:
148
156
  self.logger.warning("System prompt contains Python code references!")
149
157
 
150
158
  if system_prompt and system_prompt != self._get_simple_context():
151
- # The problem might be with insert positioning
152
- # Let's add system prompt differently
153
- cmd.extend(["--append-system-prompt", system_prompt])
159
+ # Use file-based loading to avoid ARG_MAX limits (1M-485)
160
+ # Create temp file for system prompt
161
+ try:
162
+ # Create temp file in system temp directory
163
+ temp_fd, temp_path = tempfile.mkstemp(
164
+ suffix=".md", prefix="claude_mpm_system_prompt_"
165
+ )
166
+
167
+ # Write system prompt to temp file
168
+ with os.fdopen(temp_fd, "w", encoding="utf-8") as f:
169
+ f.write(system_prompt)
170
+
171
+ # Store temp file path for cleanup
172
+ self.temp_system_prompt_file = temp_path
173
+
174
+ # Use --system-prompt-file flag (matches interactive mode pattern)
175
+ cmd.extend(["--system-prompt-file", temp_path])
176
+
177
+ # User-visible notification
178
+ print(f"📄 Reading system prompt from: {temp_path}")
179
+
180
+ self.logger.info(
181
+ f"Using file-based system prompt loading: {temp_path} "
182
+ f"({len(system_prompt) / 1024:.1f} KB)"
183
+ )
184
+
185
+ except Exception as e:
186
+ # Fallback to inline if file creation fails
187
+ self.logger.warning(
188
+ f"Failed to create temp file for system prompt, using inline: {e}"
189
+ )
190
+ cmd.extend(["--append-system-prompt", system_prompt])
154
191
 
155
192
  return cmd
156
193
 
@@ -203,6 +240,20 @@ class OneshotSession:
203
240
 
204
241
  def cleanup_session(self) -> None:
205
242
  """Clean up the session and restore state."""
243
+ # Clean up temp system prompt file
244
+ if self.temp_system_prompt_file:
245
+ try:
246
+ temp_file_path = Path(self.temp_system_prompt_file)
247
+ if temp_file_path.exists():
248
+ temp_file_path.unlink()
249
+ self.logger.debug(
250
+ f"Cleaned up temp system prompt file: {self.temp_system_prompt_file}"
251
+ )
252
+ except Exception as e:
253
+ self.logger.warning(f"Failed to clean up temp system prompt file: {e}")
254
+ finally:
255
+ self.temp_system_prompt_file = None
256
+
206
257
  # Restore original working directory
207
258
  if self.original_cwd:
208
259
  with contextlib.suppress(Exception):
@@ -268,8 +319,47 @@ class OneshotSession:
268
319
  if self.runner.claude_args:
269
320
  cmd.extend(self.runner.claude_args)
270
321
 
322
+ # Add --agents flag if native agents mode is enabled
323
+ if getattr(self.runner, "use_native_agents", False):
324
+ agents_flag = self._build_agents_flag()
325
+ if agents_flag:
326
+ cmd.extend(agents_flag)
327
+ self.logger.info("✓ Native agents mode: Using --agents CLI flag")
328
+
271
329
  return cmd
272
330
 
331
+ def _build_agents_flag(self) -> Optional[list]:
332
+ """Build --agents flag with all MPM agents.
333
+
334
+ Returns:
335
+ List with ["--agents", "<json>"] or None if conversion fails
336
+ """
337
+ try:
338
+ from claude_mpm.services.native_agent_converter import NativeAgentConverter
339
+
340
+ converter = NativeAgentConverter()
341
+ agents = converter.load_agents_from_templates()
342
+
343
+ if not agents:
344
+ self.logger.warning("No agents loaded for native mode")
345
+ return None
346
+
347
+ # Generate JSON for --agents flag
348
+ agents_json = converter.generate_agents_json(agents)
349
+ summary = converter.get_conversion_summary(agents)
350
+
351
+ self.logger.info(
352
+ f"Native agents: {summary['total_agents']} agents, "
353
+ f"{summary['json_size_kb']} KB JSON"
354
+ )
355
+
356
+ # Return as list: ["--agents", "<json>"]
357
+ return ["--agents", agents_json]
358
+
359
+ except Exception as e:
360
+ self.logger.error(f"Failed to build --agents flag: {e}", exc_info=True)
361
+ return None
362
+
273
363
  def _handle_successful_response(self, response: str, prompt: str) -> None:
274
364
  """Process a successful Claude response."""
275
365
  print(response)
@@ -607,13 +607,13 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
607
607
  }
608
608
 
609
609
  @keyframes pulse-todo {
610
- 0% {
610
+ 0% {
611
611
  background: #ebf8ff;
612
612
  }
613
- 50% {
613
+ 50% {
614
614
  background: #bee3f8;
615
615
  }
616
- 100% {
616
+ 100% {
617
617
  background: #ebf8ff;
618
618
  }
619
619
  }
@@ -648,14 +648,14 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
648
648
 
649
649
  /* Status Animation */
650
650
  @keyframes pulse-status {
651
- 0% {
652
- opacity: 1;
651
+ 0% {
652
+ opacity: 1;
653
653
  }
654
- 50% {
655
- opacity: 0.7;
654
+ 50% {
655
+ opacity: 0.7;
656
656
  }
657
- 100% {
658
- opacity: 1;
657
+ 100% {
658
+ opacity: 1;
659
659
  }
660
660
  }
661
661
 
@@ -1059,23 +1059,23 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
1059
1059
  flex-direction: column;
1060
1060
  gap: 15px;
1061
1061
  }
1062
-
1062
+
1063
1063
  .activity-controls {
1064
1064
  width: 100%;
1065
1065
  flex-wrap: wrap;
1066
1066
  justify-content: center;
1067
1067
  }
1068
-
1068
+
1069
1069
  .tree-legend {
1070
1070
  position: static;
1071
1071
  margin-top: 15px;
1072
1072
  max-width: 300px;
1073
1073
  }
1074
-
1074
+
1075
1075
  .tree-params {
1076
1076
  max-width: 150px;
1077
1077
  }
1078
-
1078
+
1079
1079
  .activity-controls input {
1080
1080
  width: 150px;
1081
1081
  }
@@ -1085,35 +1085,35 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
1085
1085
  .activity-container {
1086
1086
  padding: 10px;
1087
1087
  }
1088
-
1088
+
1089
1089
  .activity-tree-container {
1090
1090
  padding: 0;
1091
1091
  }
1092
-
1092
+
1093
1093
  .linear-tree {
1094
1094
  padding: 10px;
1095
1095
  }
1096
-
1096
+
1097
1097
  .tree-node[data-level="1"] {
1098
1098
  margin-left: 15px;
1099
1099
  }
1100
-
1100
+
1101
1101
  .tree-node[data-level="2"] {
1102
1102
  margin-left: 30px;
1103
1103
  }
1104
-
1104
+
1105
1105
  .tree-node[data-level="3"] {
1106
1106
  margin-left: 45px;
1107
1107
  }
1108
-
1108
+
1109
1109
  .tree-node[data-level="4"] {
1110
1110
  margin-left: 60px;
1111
1111
  }
1112
-
1112
+
1113
1113
  .tree-params {
1114
1114
  max-width: 100px;
1115
1115
  }
1116
-
1116
+
1117
1117
  .stat-item {
1118
1118
  flex-direction: column;
1119
1119
  gap: 2px;
@@ -1127,188 +1127,188 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
1127
1127
  background: #1a202c;
1128
1128
  color: #e2e8f0;
1129
1129
  }
1130
-
1130
+
1131
1131
  /* D3 Dark Mode Styles */
1132
1132
  #activity-tree-svg {
1133
1133
  background: #1a202c;
1134
1134
  }
1135
-
1135
+
1136
1136
  .node-label {
1137
1137
  fill: #e2e8f0;
1138
1138
  }
1139
-
1139
+
1140
1140
  .node:hover .node-label {
1141
1141
  fill: #63b3ed;
1142
1142
  }
1143
-
1143
+
1144
1144
  .link {
1145
1145
  stroke: #4a5568;
1146
1146
  }
1147
-
1147
+
1148
1148
  .node:hover .link {
1149
1149
  stroke: #63b3ed;
1150
1150
  }
1151
-
1151
+
1152
1152
  .d3-tooltip {
1153
1153
  background: rgba(45, 55, 72, 0.95) !important;
1154
1154
  color: #e2e8f0 !important;
1155
1155
  border: 1px solid #4a5568;
1156
1156
  }
1157
-
1157
+
1158
1158
  .activity-header {
1159
1159
  background: #2d3748;
1160
1160
  }
1161
-
1161
+
1162
1162
  .activity-controls select,
1163
1163
  .activity-controls input {
1164
1164
  background: #2d3748;
1165
1165
  color: #e2e8f0;
1166
1166
  border-color: #4a5568;
1167
1167
  }
1168
-
1168
+
1169
1169
  .stat-label {
1170
1170
  color: #a0aec0;
1171
1171
  }
1172
-
1172
+
1173
1173
  .stat-value {
1174
1174
  color: #e2e8f0;
1175
1175
  }
1176
-
1176
+
1177
1177
  .tree-legend {
1178
1178
  background: rgba(45, 55, 72, 0.95);
1179
1179
  border-color: #4a5568;
1180
1180
  }
1181
-
1181
+
1182
1182
  .legend-item {
1183
1183
  color: #e2e8f0;
1184
1184
  }
1185
-
1185
+
1186
1186
  .tree-node:hover {
1187
1187
  background-color: #2d3748;
1188
1188
  }
1189
-
1189
+
1190
1190
  .tree-node-content:hover {
1191
1191
  background-color: #4a5568;
1192
1192
  }
1193
-
1193
+
1194
1194
  .tree-label {
1195
1195
  color: #e2e8f0;
1196
1196
  }
1197
-
1197
+
1198
1198
  .tree-meta {
1199
1199
  color: #a0aec0;
1200
1200
  }
1201
-
1201
+
1202
1202
  .tree-node.project-root {
1203
1203
  background: linear-gradient(135deg, #4299e1 0%, #553c9a 100%);
1204
1204
  }
1205
-
1205
+
1206
1206
  .tree-node.session {
1207
1207
  background: #2d3748;
1208
1208
  border-color: #4a5568;
1209
1209
  }
1210
-
1210
+
1211
1211
  .tree-node.session .tree-label {
1212
1212
  color: #e2e8f0;
1213
1213
  }
1214
-
1214
+
1215
1215
  .tree-children {
1216
1216
  border-left-color: #4a5568;
1217
1217
  }
1218
-
1218
+
1219
1219
  .tree-label.clickable:hover {
1220
1220
  background-color: rgba(74, 85, 104, 0.5);
1221
1221
  color: #e2e8f0;
1222
1222
  }
1223
-
1223
+
1224
1224
  .module-item-details {
1225
1225
  color: #e2e8f0;
1226
1226
  }
1227
-
1227
+
1228
1228
  .module-item-header {
1229
1229
  border-bottom-color: #4a5568;
1230
1230
  }
1231
-
1231
+
1232
1232
  .module-item-header h6 {
1233
1233
  color: #e2e8f0;
1234
1234
  }
1235
-
1235
+
1236
1236
  .detail-label {
1237
1237
  color: #a0aec0;
1238
1238
  }
1239
-
1239
+
1240
1240
  .detail-value {
1241
1241
  color: #e2e8f0;
1242
1242
  }
1243
-
1243
+
1244
1244
  .detail-section {
1245
1245
  border-top-color: #4a5568;
1246
1246
  }
1247
-
1247
+
1248
1248
  .detail-section-title {
1249
1249
  color: #a0aec0;
1250
1250
  }
1251
-
1251
+
1252
1252
  .tools-list, .params-list {
1253
1253
  background: #2d3748;
1254
1254
  border-color: #4a5568;
1255
1255
  }
1256
-
1256
+
1257
1257
  .tool-summary {
1258
1258
  background: #4a5568;
1259
1259
  border-color: #718096;
1260
1260
  color: #e2e8f0;
1261
1261
  }
1262
-
1262
+
1263
1263
  .tool-params-expanded {
1264
1264
  background: #2d3748;
1265
1265
  border-color: #4a5568;
1266
1266
  color: #e2e8f0;
1267
1267
  }
1268
-
1268
+
1269
1269
  .param-line .param-key,
1270
1270
  .param-key {
1271
1271
  color: #9f7aea;
1272
1272
  }
1273
-
1273
+
1274
1274
  .param-line .param-value,
1275
1275
  .param-value {
1276
1276
  color: #e2e8f0;
1277
1277
  }
1278
-
1278
+
1279
1279
  .param-item {
1280
1280
  border-bottom-color: #4a5568;
1281
1281
  }
1282
-
1282
+
1283
1283
  .param-text-short {
1284
1284
  background: #2d3748;
1285
1285
  border-color: #4a5568;
1286
1286
  color: #e2e8f0;
1287
1287
  }
1288
-
1288
+
1289
1289
  .param-text,
1290
1290
  .param-text-long {
1291
1291
  background: #2d3748;
1292
1292
  border-color: #4a5568;
1293
1293
  color: #e2e8f0;
1294
1294
  }
1295
-
1295
+
1296
1296
  .param-json {
1297
1297
  background: #1a202c;
1298
1298
  border-color: #4a5568;
1299
1299
  color: #e2e8f0;
1300
1300
  }
1301
-
1301
+
1302
1302
  .param-primitive {
1303
1303
  background: #4a5568;
1304
1304
  color: #e2e8f0;
1305
1305
  }
1306
-
1306
+
1307
1307
  .param-error {
1308
1308
  background: #742a2a;
1309
1309
  color: #feb2b2;
1310
1310
  }
1311
-
1311
+
1312
1312
  .tool-result {
1313
1313
  background: #1a202c;
1314
1314
  border-color: #4a5568;
@@ -1548,20 +1548,20 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
1548
1548
  flex-direction: column;
1549
1549
  gap: 8px;
1550
1550
  }
1551
-
1551
+
1552
1552
  .summary-item {
1553
1553
  min-width: auto;
1554
1554
  }
1555
-
1555
+
1556
1556
  .todo-checklist-item {
1557
1557
  padding: 6px;
1558
1558
  }
1559
-
1559
+
1560
1560
  .todo-checkbox {
1561
1561
  width: 20px;
1562
1562
  height: 20px;
1563
1563
  }
1564
-
1564
+
1565
1565
  .checkbox-icon {
1566
1566
  font-size: 12px;
1567
1567
  }
@@ -1572,21 +1572,21 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
1572
1572
  .activity-header {
1573
1573
  display: none;
1574
1574
  }
1575
-
1575
+
1576
1576
  .tree-legend {
1577
1577
  position: static;
1578
1578
  margin-bottom: 20px;
1579
1579
  }
1580
-
1580
+
1581
1581
  .activity-tree-container {
1582
1582
  box-shadow: none;
1583
1583
  border: 1px solid #000;
1584
1584
  }
1585
-
1585
+
1586
1586
  .tree-node {
1587
1587
  break-inside: avoid;
1588
1588
  }
1589
-
1589
+
1590
1590
  .tree-status {
1591
1591
  border: 1px solid #000;
1592
1592
  background: transparent !important;