claude-mpm 4.2.7__tar.gz → 4.2.11__tar.gz

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 (658) hide show
  1. claude_mpm-4.2.11/BUILD_NUMBER +1 -0
  2. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/PKG-INFO +1 -1
  3. claude_mpm-4.2.11/VERSION +1 -0
  4. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/pyproject.toml +2 -2
  5. claude_mpm-4.2.11/src/claude_mpm/VERSION +1 -0
  6. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/dashboard.py +62 -120
  7. claude_mpm-4.2.11/src/claude_mpm/cli/commands/monitor.py +178 -0
  8. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/run.py +33 -33
  9. claude_mpm-4.2.11/src/claude_mpm/cli/parser.py +107 -0
  10. claude_mpm-4.2.11/src/claude_mpm/cli/parsers/__init__.py +29 -0
  11. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/css/code-tree.css +16 -4
  12. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/css/dashboard.css +15 -1
  13. claude_mpm-4.2.11/src/claude_mpm/dashboard/static/dist/components/code-tree.js +2 -0
  14. claude_mpm-4.2.11/src/claude_mpm/dashboard/static/dist/components/file-viewer.js +2 -0
  15. claude_mpm-4.2.11/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +2 -0
  16. claude_mpm-4.2.11/src/claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +2 -0
  17. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/dashboard.js +1 -1
  18. claude_mpm-4.2.11/src/claude_mpm/dashboard/static/dist/socket-client.js +2 -0
  19. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/code-tree.js +775 -142
  20. claude_mpm-4.2.11/src/claude_mpm/dashboard/static/js/components/file-viewer.js +538 -0
  21. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +26 -0
  22. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/unified-data-viewer.js +166 -14
  23. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/dashboard.js +108 -91
  24. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/socket-client.js +9 -7
  25. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/templates/index.html +5 -2
  26. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +1 -11
  27. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/services/connection_manager.py +54 -59
  28. claude_mpm-4.2.11/src/claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +230 -0
  29. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_format_converter.py +3 -3
  30. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_template_builder.py +3 -5
  31. claude_mpm-4.2.11/src/claude_mpm/services/cli/unified_dashboard_manager.py +354 -0
  32. claude_mpm-4.2.11/src/claude_mpm/services/monitor/__init__.py +20 -0
  33. claude_mpm-4.2.11/src/claude_mpm/services/monitor/daemon.py +256 -0
  34. claude_mpm-4.2.11/src/claude_mpm/services/monitor/event_emitter.py +279 -0
  35. claude_mpm-4.2.11/src/claude_mpm/services/monitor/handlers/__init__.py +20 -0
  36. claude_mpm-4.2.11/src/claude_mpm/services/monitor/handlers/code_analysis.py +334 -0
  37. claude_mpm-4.2.11/src/claude_mpm/services/monitor/handlers/dashboard.py +298 -0
  38. claude_mpm-4.2.11/src/claude_mpm/services/monitor/handlers/hooks.py +491 -0
  39. claude_mpm-4.2.11/src/claude_mpm/services/monitor/management/__init__.py +18 -0
  40. claude_mpm-4.2.11/src/claude_mpm/services/monitor/management/health.py +124 -0
  41. claude_mpm-4.2.11/src/claude_mpm/services/monitor/management/lifecycle.py +298 -0
  42. claude_mpm-4.2.11/src/claude_mpm/services/monitor/server.py +442 -0
  43. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/client_proxy.py +20 -12
  44. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/dashboard_server.py +4 -4
  45. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/monitor_client.py +4 -6
  46. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/tools/code_tree_analyzer.py +33 -17
  47. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm.egg-info/PKG-INFO +1 -1
  48. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm.egg-info/SOURCES.txt +14 -9
  49. claude_mpm-4.2.7/BUILD_NUMBER +0 -1
  50. claude_mpm-4.2.7/VERSION +0 -1
  51. claude_mpm-4.2.7/src/claude_mpm/VERSION +0 -1
  52. claude_mpm-4.2.7/src/claude_mpm/cli/commands/monitor.py +0 -319
  53. claude_mpm-4.2.7/src/claude_mpm/cli/commands/socketio_monitor.py +0 -233
  54. claude_mpm-4.2.7/src/claude_mpm/cli/parser.py +0 -30
  55. claude_mpm-4.2.7/src/claude_mpm/cli/parsers/__init__.py +0 -0
  56. claude_mpm-4.2.7/src/claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  57. claude_mpm-4.2.7/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  58. claude_mpm-4.2.7/src/claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  59. claude_mpm-4.2.7/src/claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  60. claude_mpm-4.2.7/src/claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +0 -190
  61. claude_mpm-4.2.7/src/claude_mpm/scripts/socketio_daemon.py +0 -571
  62. claude_mpm-4.2.7/src/claude_mpm/scripts/socketio_daemon_hardened.py +0 -937
  63. claude_mpm-4.2.7/src/claude_mpm/scripts/socketio_daemon_wrapper.py +0 -78
  64. claude_mpm-4.2.7/src/claude_mpm/scripts/socketio_server_manager.py +0 -349
  65. claude_mpm-4.2.7/src/claude_mpm/services/cli/dashboard_launcher.py +0 -423
  66. claude_mpm-4.2.7/src/claude_mpm/services/cli/socketio_manager.py +0 -595
  67. claude_mpm-4.2.7/src/claude_mpm/services/dashboard/stable_server.py +0 -962
  68. claude_mpm-4.2.7/src/claude_mpm/services/socketio/monitor_server.py +0 -505
  69. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/CLAUDE.md +0 -0
  70. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/LICENSE +0 -0
  71. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/MANIFEST.in +0 -0
  72. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/README.md +0 -0
  73. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/scripts/ticket +0 -0
  74. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/setup.cfg +0 -0
  75. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/BUILD_NUMBER +0 -0
  76. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/__init__.py +0 -0
  77. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/__main__.py +0 -0
  78. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  79. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_DOCUMENTATION.md +0 -0
  80. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_ENGINEER.md +0 -0
  81. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_OPS.md +0 -0
  82. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_PM.md +0 -0
  83. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_QA.md +0 -0
  84. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/BASE_RESEARCH.md +0 -0
  85. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
  86. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/MEMORY.md +0 -0
  87. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/OUTPUT_STYLE.md +0 -0
  88. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/WORKFLOW.md +0 -0
  89. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/__init__.py +0 -0
  90. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/agent-template.yaml +0 -0
  91. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/agent_loader.py +0 -0
  92. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  93. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/agents_metadata.py +0 -0
  94. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/async_agent_loader.py +0 -0
  95. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/base_agent.json +0 -0
  96. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/base_agent_loader.py +0 -0
  97. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
  98. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/system_agent_config.py +0 -0
  99. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -0
  100. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -0
  101. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/__init__.py +0 -0
  102. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/agent-manager.json +0 -0
  103. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/agent-manager.md +0 -0
  104. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/agentic_coder_optimizer.json +0 -0
  105. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/api_qa.json +0 -0
  106. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/code_analyzer.json +0 -0
  107. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
  108. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/documentation.json +0 -0
  109. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/engineer.json +0 -0
  110. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/gcp_ops_agent.json +0 -0
  111. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/imagemagick.json +0 -0
  112. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -0
  113. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -0
  114. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/memory_manager.json +0 -0
  115. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/ops.json +0 -0
  116. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
  117. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/qa.json +0 -0
  118. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/refactoring_engineer.json +0 -0
  119. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/research.json +0 -0
  120. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/security.json +0 -0
  121. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/test-non-mpm.json +0 -0
  122. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/ticketing.json +0 -0
  123. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/vercel_ops_agent.json +0 -0
  124. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/version_control.json +0 -0
  125. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/web_qa.json +0 -0
  126. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/agents/templates/web_ui.json +0 -0
  127. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/__init__.py +0 -0
  128. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/__main__.py +0 -0
  129. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/__init__.py +0 -0
  130. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/agent_manager.py +0 -0
  131. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/agents.py +0 -0
  132. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/aggregate.py +0 -0
  133. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/analyze.py +0 -0
  134. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/analyze_code.py +0 -0
  135. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/cleanup.py +0 -0
  136. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/cleanup_orphaned_agents.py +0 -0
  137. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/config.py +0 -0
  138. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/configure.py +0 -0
  139. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/configure_tui.py +0 -0
  140. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/debug.py +0 -0
  141. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/doctor.py +0 -0
  142. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/info.py +0 -0
  143. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp.py +0 -0
  144. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp_command_router.py +0 -0
  145. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp_config_commands.py +0 -0
  146. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp_install_commands.py +0 -0
  147. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp_pipx_config.py +0 -0
  148. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp_server_commands.py +0 -0
  149. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mcp_tool_commands.py +0 -0
  150. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/memory.py +0 -0
  151. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mpm_init.py +0 -0
  152. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/mpm_init_handler.py +0 -0
  153. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/commands/tickets.py +0 -0
  154. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/agent_manager_parser.py +0 -0
  155. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/agents_parser.py +0 -0
  156. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/analyze_code_parser.py +0 -0
  157. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/analyze_parser.py +0 -0
  158. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/base_parser.py +0 -0
  159. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/config_parser.py +0 -0
  160. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/configure_parser.py +0 -0
  161. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/dashboard_parser.py +0 -0
  162. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/debug_parser.py +0 -0
  163. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/mcp_parser.py +0 -0
  164. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/memory_parser.py +0 -0
  165. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/monitor_parser.py +0 -0
  166. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/mpm_init_parser.py +0 -0
  167. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/run_parser.py +0 -0
  168. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/parsers/tickets_parser.py +0 -0
  169. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/shared/__init__.py +0 -0
  170. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/shared/argument_patterns.py +0 -0
  171. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/shared/base_command.py +0 -0
  172. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/shared/error_handling.py +0 -0
  173. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/shared/output_formatters.py +0 -0
  174. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/startup_logging.py +0 -0
  175. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/ticket_cli.py +0 -0
  176. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli/utils.py +0 -0
  177. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli_module/__init__.py +0 -0
  178. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli_module/args.py +0 -0
  179. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli_module/commands.py +0 -0
  180. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/cli_module/migration_example.py +0 -0
  181. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/__init__.py +0 -0
  182. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-agents.md +0 -0
  183. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-config.md +0 -0
  184. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-doctor.md +0 -0
  185. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-help.md +0 -0
  186. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-init.md +0 -0
  187. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-status.md +0 -0
  188. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm-tickets.md +0 -0
  189. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/commands/mpm.md +0 -0
  190. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/config/__init__.py +0 -0
  191. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/config/agent_config.py +0 -0
  192. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/config/experimental_features.py +0 -0
  193. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/config/paths.py +0 -0
  194. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/config/socketio_config.py +0 -0
  195. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/constants.py +0 -0
  196. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/__init__.py +0 -0
  197. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  198. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/agent_registry.py +0 -0
  199. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/agent_session_manager.py +0 -0
  200. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/base_service.py +0 -0
  201. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/cache.py +0 -0
  202. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/claude_runner.py +0 -0
  203. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/config.py +0 -0
  204. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/config_aliases.py +0 -0
  205. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/config_constants.py +0 -0
  206. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/constants.py +0 -0
  207. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/container.py +0 -0
  208. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/exceptions.py +0 -0
  209. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/factories.py +0 -0
  210. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/framework_loader.py +0 -0
  211. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/hook_manager.py +0 -0
  212. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/hook_performance_config.py +0 -0
  213. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/injectable_service.py +0 -0
  214. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/instruction_reinforcement_hook.py +0 -0
  215. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/interactive_session.py +0 -0
  216. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/interfaces.py +0 -0
  217. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/lazy.py +0 -0
  218. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/log_manager.py +0 -0
  219. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/logger.py +0 -0
  220. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/logging_config.py +0 -0
  221. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  222. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/mixins.py +0 -0
  223. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/oneshot_session.py +0 -0
  224. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
  225. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/optimized_startup.py +0 -0
  226. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/output_style_manager.py +0 -0
  227. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
  228. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/service_registry.py +0 -0
  229. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/session_manager.py +0 -0
  230. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/shared/__init__.py +0 -0
  231. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/shared/config_loader.py +0 -0
  232. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/shared/path_resolver.py +0 -0
  233. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/shared/singleton_manager.py +0 -0
  234. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/socketio_pool.py +0 -0
  235. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/tool_access_control.py +0 -0
  236. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/types.py +0 -0
  237. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/typing_utils.py +0 -0
  238. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/unified_agent_registry.py +0 -0
  239. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/unified_config.py +0 -0
  240. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/core/unified_paths.py +0 -0
  241. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -0
  242. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/__init__.py +0 -0
  243. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/analysis_runner.py +0 -0
  244. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/api/simple_directory.py +0 -0
  245. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/index.html +0 -0
  246. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
  247. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/activity-tree.js +0 -0
  248. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/agent-inference.js +0 -0
  249. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/code-tree.js +0 -0
  250. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/code-viewer.js +0 -0
  251. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/event-processor.js +0 -0
  252. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/event-viewer.js +0 -0
  253. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/export-manager.js +0 -0
  254. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -0
  255. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -0
  256. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/hud-manager.js +0 -0
  257. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -0
  258. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/module-viewer.js +0 -0
  259. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/session-manager.js +0 -0
  260. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/socket-manager.js +0 -0
  261. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -0
  262. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -0
  263. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/components/working-directory.js +0 -0
  264. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/dashboard.js +0 -0
  265. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/built/socket-client.js +0 -0
  266. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/css/activity.css +0 -0
  267. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/css/connection-status.css +0 -0
  268. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -0
  269. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -0
  270. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -0
  271. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/event-processor.js +0 -0
  272. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -0
  273. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/export-manager.js +0 -0
  274. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -0
  275. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -0
  276. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -0
  277. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -0
  278. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/session-manager.js +0 -0
  279. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -0
  280. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -0
  281. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/dist/components/working-directory.js +0 -0
  282. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/activity-tree.js +0 -0
  283. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/agent-hierarchy.js +0 -0
  284. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
  285. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/build-tracker.js +0 -0
  286. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/code-simple.js +0 -0
  287. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/code-viewer.js +0 -0
  288. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/connection-debug.js +0 -0
  289. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
  290. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
  291. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
  292. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
  293. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
  294. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
  295. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
  296. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
  297. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
  298. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
  299. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
  300. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/connection-manager.js +0 -0
  301. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/js/extension-error-handler.js +0 -0
  302. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/test-simple.html +0 -0
  303. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/static/test_debug.html +0 -0
  304. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/templates/code_simple.html +0 -0
  305. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  306. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/experimental/__init__.py +0 -0
  307. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
  308. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/generators/__init__.py +0 -0
  309. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  310. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/__init__.py +0 -0
  311. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/base_hook.py +0 -0
  312. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  313. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/connection_pool.py +0 -0
  314. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
  315. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -0
  316. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -0
  317. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -0
  318. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  319. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/installer.py +0 -0
  320. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
  321. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
  322. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/services/__init__.py +0 -0
  323. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/services/duplicate_detector.py +0 -0
  324. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/services/state_manager.py +0 -0
  325. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/services/subagent_processor.py +0 -0
  326. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +0 -0
  327. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
  328. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  329. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  330. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/init.py +0 -0
  331. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/models/__init__.py +0 -0
  332. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/models/agent_definition.py +0 -0
  333. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/models/agent_session.py +0 -0
  334. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/schemas/__init__.py +0 -0
  335. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/scripts/__init__.py +0 -0
  336. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/scripts/claude-hook-handler.sh +0 -0
  337. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/scripts/mcp_server.py +0 -0
  338. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/scripts/mcp_wrapper.py +0 -0
  339. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/scripts/mpm_doctor.py +0 -0
  340. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
  341. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/__init__.py +0 -0
  342. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agent_capabilities_service.py +0 -0
  343. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/__init__.py +0 -0
  344. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/agent_builder.py +0 -0
  345. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
  346. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_config_provider.py +0 -0
  347. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +0 -0
  348. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +0 -0
  349. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -0
  350. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +0 -0
  351. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +0 -0
  352. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +0 -0
  353. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +0 -0
  354. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
  355. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -0
  356. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +0 -0
  357. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_operation_service.py +0 -0
  358. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_record_service.py +0 -0
  359. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -0
  360. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_state_service.py +0 -0
  361. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_validator.py +0 -0
  362. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_version_manager.py +0 -0
  363. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
  364. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +0 -0
  365. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
  366. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/base_agent_locator.py +0 -0
  367. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/config/__init__.py +0 -0
  368. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/config/deployment_config.py +0 -0
  369. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +0 -0
  370. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +0 -0
  371. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/deployment_results_manager.py +0 -0
  372. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +0 -0
  373. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/deployment_wrapper.py +0 -0
  374. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/facade/__init__.py +0 -0
  375. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +0 -0
  376. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -0
  377. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +0 -0
  378. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +0 -0
  379. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/interface_adapter.py +0 -0
  380. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +0 -0
  381. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +0 -0
  382. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/multi_source_deployment_service.py +0 -0
  383. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +0 -0
  384. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +0 -0
  385. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +0 -0
  386. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +0 -0
  387. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +0 -0
  388. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +0 -0
  389. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -0
  390. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +0 -0
  391. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +0 -0
  392. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +0 -0
  393. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/processors/__init__.py +0 -0
  394. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +0 -0
  395. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +0 -0
  396. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +0 -0
  397. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +0 -0
  398. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/results/__init__.py +0 -0
  399. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +0 -0
  400. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +0 -0
  401. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/single_agent_deployer.py +0 -0
  402. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/strategies/__init__.py +0 -0
  403. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +0 -0
  404. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +0 -0
  405. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +0 -0
  406. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +0 -0
  407. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +0 -0
  408. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +0 -0
  409. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/validation/__init__.py +0 -0
  410. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +0 -0
  411. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +0 -0
  412. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/validation/template_validator.py +0 -0
  413. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/deployment/validation/validation_result.py +0 -0
  414. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
  415. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
  416. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
  417. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
  418. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/management/__init__.py +0 -0
  419. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
  420. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
  421. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
  422. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
  423. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
  424. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/content_manager.py +0 -0
  425. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/memory_categorization_service.py +0 -0
  426. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/memory_file_service.py +0 -0
  427. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/memory_format_service.py +0 -0
  428. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/memory_limits_service.py +0 -0
  429. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/memory/template_generator.py +0 -0
  430. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
  431. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
  432. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
  433. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/async_session_logger.py +0 -0
  434. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/claude_session_logger.py +0 -0
  435. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/__init__.py +0 -0
  436. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/agent_cleanup_service.py +0 -0
  437. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/agent_dependency_service.py +0 -0
  438. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/agent_listing_service.py +0 -0
  439. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/agent_output_formatter.py +0 -0
  440. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/agent_validation_service.py +0 -0
  441. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/memory_crud_service.py +0 -0
  442. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/memory_output_formatter.py +0 -0
  443. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/session_manager.py +0 -0
  444. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/cli/startup_checker.py +0 -0
  445. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/command_deployment_service.py +0 -0
  446. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/command_handler_service.py +0 -0
  447. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/communication/__init__.py +0 -0
  448. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/__init__.py +0 -0
  449. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/base.py +0 -0
  450. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/cache_manager.py +0 -0
  451. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/interfaces/__init__.py +0 -0
  452. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/interfaces/agent.py +0 -0
  453. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/interfaces/communication.py +0 -0
  454. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/interfaces/infrastructure.py +0 -0
  455. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/interfaces/service.py +0 -0
  456. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/interfaces.py +0 -0
  457. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/memory_manager.py +0 -0
  458. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/path_resolver.py +0 -0
  459. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/service_container.py +0 -0
  460. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/core/service_interfaces.py +0 -0
  461. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/__init__.py +0 -0
  462. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/__init__.py +0 -0
  463. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/agent_check.py +0 -0
  464. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/base_check.py +0 -0
  465. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -0
  466. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/common_issues_check.py +0 -0
  467. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/configuration_check.py +0 -0
  468. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/filesystem_check.py +0 -0
  469. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/installation_check.py +0 -0
  470. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/instructions_check.py +0 -0
  471. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/mcp_check.py +0 -0
  472. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/monitor_check.py +0 -0
  473. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/checks/startup_log_check.py +0 -0
  474. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/diagnostic_runner.py +0 -0
  475. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/doctor_reporter.py +0 -0
  476. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/diagnostics/models.py +0 -0
  477. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/event_aggregator.py +0 -0
  478. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/event_bus/__init__.py +0 -0
  479. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/event_bus/config.py +0 -0
  480. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/event_bus/direct_relay.py +0 -0
  481. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/event_bus/event_bus.py +0 -0
  482. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/event_bus/relay.py +0 -0
  483. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/__init__.py +0 -0
  484. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/consumers/__init__.py +0 -0
  485. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/consumers/dead_letter.py +0 -0
  486. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/consumers/logging.py +0 -0
  487. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/consumers/metrics.py +0 -0
  488. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/consumers/socketio.py +0 -0
  489. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/core.py +0 -0
  490. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/interfaces.py +0 -0
  491. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/producers/__init__.py +0 -0
  492. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/producers/hook.py +0 -0
  493. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/events/producers/system.py +0 -0
  494. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/exceptions.py +0 -0
  495. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  496. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  497. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  498. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  499. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  500. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  501. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  502. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  503. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  504. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  505. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  506. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  507. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  508. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  509. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  510. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  511. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  512. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  513. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  514. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/hook_service.py +0 -0
  515. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
  516. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/context_preservation.py +0 -0
  517. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/daemon_manager.py +0 -0
  518. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/logging.py +0 -0
  519. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/__init__.py +0 -0
  520. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/aggregator.py +0 -0
  521. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/base.py +0 -0
  522. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/legacy.py +0 -0
  523. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/network.py +0 -0
  524. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/process.py +0 -0
  525. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/resources.py +0 -0
  526. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring/service.py +0 -0
  527. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
  528. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/__init__.py +0 -0
  529. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/auto_configure.py +0 -0
  530. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/config/__init__.py +0 -0
  531. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +0 -0
  532. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +0 -0
  533. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/config/configuration.py +0 -0
  534. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/__init__.py +0 -0
  535. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/base.py +0 -0
  536. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +0 -0
  537. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +0 -0
  538. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/process_pool.py +0 -0
  539. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -0
  540. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -0
  541. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/main.py +0 -0
  542. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +0 -0
  543. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -0
  544. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -0
  545. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/server/__init__.py +0 -0
  546. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -0
  547. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -0
  548. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -0
  549. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +0 -0
  550. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -0
  551. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -0
  552. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -0
  553. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -0
  554. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -0
  555. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -0
  556. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/__init__.py +0 -0
  557. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/builder.py +0 -0
  558. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
  559. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
  560. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
  561. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
  562. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/optimizer.py +0 -0
  563. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory/router.py +0 -0
  564. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/memory_hook_service.py +0 -0
  565. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/monitor_build_service.py +0 -0
  566. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/port_manager.py +0 -0
  567. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/__init__.py +0 -0
  568. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/analyzer.py +0 -0
  569. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/analyzer_refactored.py +0 -0
  570. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/analyzer_v2.py +0 -0
  571. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/architecture_analyzer.py +0 -0
  572. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/dependency_analyzer.py +0 -0
  573. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/language_analyzer.py +0 -0
  574. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/metrics_collector.py +0 -0
  575. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/project/registry.py +0 -0
  576. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/recovery_manager.py +0 -0
  577. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/response_tracker.py +0 -0
  578. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/runner_configuration_service.py +0 -0
  579. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/session_management_service.py +0 -0
  580. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/shared/__init__.py +0 -0
  581. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/shared/async_service_base.py +0 -0
  582. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/shared/config_service_base.py +0 -0
  583. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/shared/lifecycle_service_base.py +0 -0
  584. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/shared/manager_base.py +0 -0
  585. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/shared/service_factory.py +0 -0
  586. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/__init__.py +0 -0
  587. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/event_normalizer.py +0 -0
  588. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
  589. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
  590. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/code_analysis.py +0 -0
  591. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
  592. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/connection_handler.py +0 -0
  593. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
  594. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
  595. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/hook.py +0 -0
  596. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
  597. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
  598. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
  599. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/migration_utils.py +0 -0
  600. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/server/__init__.py +0 -0
  601. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/server/broadcaster.py +0 -0
  602. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/server/connection_manager.py +0 -0
  603. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/server/core.py +0 -0
  604. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/server/eventbus_integration.py +0 -0
  605. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio/server/main.py +0 -0
  606. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio_client_manager.py +0 -0
  607. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/socketio_server.py +0 -0
  608. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/subprocess_launcher_service.py +0 -0
  609. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/system_instructions_service.py +0 -0
  610. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_manager.py +0 -0
  611. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_services/__init__.py +0 -0
  612. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_services/crud_service.py +0 -0
  613. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_services/formatter_service.py +0 -0
  614. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_services/search_service.py +0 -0
  615. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_services/validation_service.py +0 -0
  616. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/ticket_services/workflow_service.py +0 -0
  617. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/utility_service.py +0 -0
  618. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_control/__init__.py +0 -0
  619. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  620. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  621. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  622. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  623. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_control/version_parser.py +0 -0
  624. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/version_service.py +0 -0
  625. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/visualization/__init__.py +0 -0
  626. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/services/visualization/mermaid_generator.py +0 -0
  627. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/storage/__init__.py +0 -0
  628. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/storage/state_storage.py +0 -0
  629. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/ticket_wrapper.py +0 -0
  630. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/tools/__init__.py +0 -0
  631. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/tools/__main__.py +0 -0
  632. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/tools/code_tree_builder.py +0 -0
  633. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/tools/code_tree_events.py +0 -0
  634. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/tools/socketio_debug.py +0 -0
  635. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/__init__.py +0 -0
  636. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
  637. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/config_manager.py +0 -0
  638. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/console.py +0 -0
  639. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/dependency_cache.py +0 -0
  640. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/dependency_manager.py +0 -0
  641. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/dependency_strategies.py +0 -0
  642. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/environment_context.py +0 -0
  643. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/error_handler.py +0 -0
  644. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/file_utils.py +0 -0
  645. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/framework_detection.py +0 -0
  646. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/import_migration_example.py +0 -0
  647. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/imports.py +0 -0
  648. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/path_operations.py +0 -0
  649. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/robust_installer.py +0 -0
  650. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/session_logging.py +0 -0
  651. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/utils/subprocess_utils.py +0 -0
  652. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/validation/__init__.py +0 -0
  653. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/validation/agent_validator.py +0 -0
  654. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
  655. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  656. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  657. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm.egg-info/requires.txt +0 -0
  658. {claude_mpm-4.2.7 → claude_mpm-4.2.11}/src/claude_mpm.egg-info/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ 341
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.2.7
3
+ Version: 4.2.11
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -0,0 +1 @@
1
+ 4.2.11
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "claude-mpm"
7
- version = "4.2.7"
7
+ version = "4.2.11"
8
8
  description = "Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -248,7 +248,7 @@ ignore-imports = false
248
248
 
249
249
  [tool.commitizen]
250
250
  name = "cz_conventional_commits"
251
- version = "4.2.7"
251
+ version = "4.2.11"
252
252
  version_files = [
253
253
  "VERSION",
254
254
  "src/claude_mpm/VERSION",
@@ -0,0 +1 @@
1
+ 4.2.11
@@ -5,21 +5,20 @@ WHY: This module provides CLI commands for managing the web dashboard interface,
5
5
  allowing users to start, stop, check status, and open the dashboard in a browser.
6
6
 
7
7
  DESIGN DECISIONS:
8
- - Use DashboardLauncher service for consistent dashboard management
8
+ - Use UnifiedMonitorDaemon for integrated dashboard and monitoring
9
9
  - Support both foreground and background operation modes
10
- - Integrate with SocketIO server for real-time event streaming
10
+ - Integrate with EventBus for real-time event streaming
11
11
  - Provide browser auto-opening functionality
12
12
  """
13
13
 
14
14
  import signal
15
15
  import sys
16
- import time
17
16
  from typing import Optional
18
17
 
19
18
  from ...constants import DashboardCommands
20
- from ...services.cli.dashboard_launcher import DashboardLauncher
19
+ from ...services.cli.unified_dashboard_manager import UnifiedDashboardManager
20
+ from ...services.monitor.daemon import UnifiedMonitorDaemon
21
21
  from ...services.port_manager import PortManager
22
- from ...services.socketio.dashboard_server import DashboardServer
23
22
  from ..shared import BaseCommand, CommandResult
24
23
 
25
24
 
@@ -28,7 +27,7 @@ class DashboardCommand(BaseCommand):
28
27
 
29
28
  def __init__(self):
30
29
  super().__init__("dashboard")
31
- self.dashboard_launcher = DashboardLauncher(self.logger)
30
+ self.dashboard_manager = UnifiedDashboardManager(self.logger)
32
31
  self.port_manager = PortManager()
33
32
  self.server = None
34
33
 
@@ -79,20 +78,20 @@ class DashboardCommand(BaseCommand):
79
78
  )
80
79
 
81
80
  # Check if dashboard is already running
82
- if self.dashboard_launcher.is_dashboard_running(port):
83
- dashboard_url = self.dashboard_launcher.get_dashboard_url(port)
81
+ if self.dashboard_manager.is_dashboard_running(port):
82
+ dashboard_url = self.dashboard_manager.get_dashboard_url(port)
84
83
  return CommandResult.success_result(
85
84
  f"Dashboard already running at {dashboard_url}",
86
85
  data={"url": dashboard_url, "port": port},
87
86
  )
88
87
 
89
88
  if background:
90
- # Use the dashboard launcher for background mode
91
- success, browser_opened = self.dashboard_launcher.launch_dashboard(
92
- port=port, monitor_mode=True
89
+ # Use the unified dashboard manager for background mode
90
+ success, browser_opened = self.dashboard_manager.start_dashboard(
91
+ port=port, background=True, open_browser=True
93
92
  )
94
93
  if success:
95
- dashboard_url = self.dashboard_launcher.get_dashboard_url(port)
94
+ dashboard_url = self.dashboard_manager.get_dashboard_url(port)
96
95
  return CommandResult.success_result(
97
96
  f"Dashboard started at {dashboard_url}",
98
97
  data={
@@ -102,102 +101,45 @@ class DashboardCommand(BaseCommand):
102
101
  },
103
102
  )
104
103
  return CommandResult.error_result("Failed to start dashboard in background")
105
-
106
- # Run in foreground mode
107
- server_started = False
108
-
109
- # Try stable server first (or if explicitly requested)
110
- if use_stable:
111
- try:
112
- self.logger.info("Starting stable dashboard server (no monitor dependency)...")
113
- print(f"Starting stable dashboard server on {host}:{port}...")
114
- print("Press Ctrl+C to stop the server")
115
- print("\n✅ Using stable server - works without monitor service\n")
116
-
117
- # Create and run the stable server
118
- from ...services.dashboard.stable_server import StableDashboardServer
119
- stable_server = StableDashboardServer(host=host, port=port, debug=debug)
120
-
121
- # Set up signal handlers for graceful shutdown
122
- def signal_handler(signum, frame):
123
- print("\nShutting down dashboard server...")
124
- sys.exit(0)
125
-
126
- signal.signal(signal.SIGINT, signal_handler)
127
- signal.signal(signal.SIGTERM, signal_handler)
128
-
129
- # Run the server (blocking)
130
- result = stable_server.run()
131
- if result:
132
- # Server ran successfully and stopped normally
133
- server_started = True
134
- return CommandResult.success_result("Dashboard server stopped")
135
- else:
136
- # Server failed to start (e.g., couldn't find templates)
137
- server_started = False
138
- self.logger.warning("Stable server failed to start, trying advanced server...")
139
-
140
- except KeyboardInterrupt:
141
- print("\nDashboard server stopped by user")
142
- return CommandResult.success_result("Dashboard server stopped")
143
- except Exception as e:
144
- self.logger.warning(f"Stable server failed: {e}")
145
- if not getattr(args, "no_fallback", False):
146
- print(f"\n⚠️ Stable server failed: {e}")
147
- print("Attempting fallback to advanced server...")
148
- else:
149
- return CommandResult.error_result(f"Failed to start stable dashboard: {e}")
150
-
151
- # Fallback to advanced DashboardServer if stable server failed or not requested
152
- if not server_started and not getattr(args, "stable_only", False):
153
- try:
154
- self.logger.info("Attempting to start advanced dashboard server with monitor...")
155
- print(f"\nStarting advanced dashboard server on {host}:{port}...")
156
- print("Note: This requires monitor service on port 8766")
157
- print("Press Ctrl+C to stop the server")
158
-
159
- # Create and start the Dashboard server (with monitor client)
160
- self.server = DashboardServer(host=host, port=port)
161
-
162
- # Set up signal handlers for graceful shutdown
163
- def signal_handler(signum, frame):
164
- print("\nShutting down dashboard server...")
165
- if self.server:
166
- self.server.stop_sync()
167
- sys.exit(0)
168
-
169
- signal.signal(signal.SIGINT, signal_handler)
170
- signal.signal(signal.SIGTERM, signal_handler)
171
-
172
- # Start the server (this starts in background thread)
173
- self.server.start_sync()
174
-
175
- # Keep the main thread alive while server is running
176
- # The server runs in a background thread, so we need to block here
177
- try:
178
- while self.server.is_running():
179
- time.sleep(1)
180
- except KeyboardInterrupt:
181
- # Ctrl+C pressed, stop the server
182
- pass
183
-
184
- # Server has stopped or user interrupted
185
- if self.server:
186
- self.server.stop_sync()
187
-
188
- return CommandResult.success_result("Dashboard server stopped")
189
-
190
- except KeyboardInterrupt:
191
- print("\nDashboard server stopped by user")
192
- return CommandResult.success_result("Dashboard server stopped")
193
- except Exception as e:
194
- # If both servers fail, provide helpful error message
195
- error_msg = f"Failed to start dashboard: {e}\n\n"
196
- error_msg += "💡 Troubleshooting tips:\n"
197
- error_msg += f" - Check if port {port} is already in use\n"
198
- error_msg += " - Try running with --stable flag for standalone mode\n"
199
- error_msg += " - Use --debug flag for more details\n"
200
- return CommandResult.error_result(error_msg)
104
+
105
+ # Run in foreground mode using unified monitor daemon
106
+ try:
107
+ self.logger.info("Starting unified monitor daemon with dashboard...")
108
+ print(f"Starting unified dashboard and monitor on {host}:{port}...")
109
+ print("Press Ctrl+C to stop the server")
110
+ print(
111
+ "\n✅ Using unified daemon - includes dashboard, monitoring, and EventBus integration\n"
112
+ )
113
+
114
+ # Create and start the unified monitor daemon
115
+ daemon = UnifiedMonitorDaemon(host=host, port=port, daemon_mode=False)
116
+
117
+ # Set up signal handlers for graceful shutdown
118
+ def signal_handler(signum, frame):
119
+ print("\nShutting down unified monitor daemon...")
120
+ daemon.stop()
121
+ sys.exit(0)
122
+
123
+ signal.signal(signal.SIGINT, signal_handler)
124
+ signal.signal(signal.SIGTERM, signal_handler)
125
+
126
+ # Start the daemon (blocking in foreground mode)
127
+ success = daemon.start()
128
+ if success:
129
+ return CommandResult.success_result("Unified monitor daemon stopped")
130
+ return CommandResult.error_result("Failed to start unified monitor daemon")
131
+
132
+ except KeyboardInterrupt:
133
+ print("\nUnified monitor daemon stopped by user")
134
+ return CommandResult.success_result("Unified monitor daemon stopped")
135
+ except Exception as e:
136
+ self.logger.error(f"Unified monitor daemon failed: {e}")
137
+ error_msg = f"Failed to start unified monitor daemon: {e}\n\n"
138
+ error_msg += "💡 Troubleshooting tips:\n"
139
+ error_msg += f" - Check if port {port} is already in use\n"
140
+ error_msg += " - Use --debug flag for more details\n"
141
+ error_msg += " - Check that all dependencies are installed\n"
142
+ return CommandResult.error_result(error_msg)
201
143
 
202
144
  def _stop_dashboard(self, args) -> CommandResult:
203
145
  """Stop the dashboard server."""
@@ -205,10 +147,10 @@ class DashboardCommand(BaseCommand):
205
147
 
206
148
  self.logger.info(f"Stopping dashboard on port {port}")
207
149
 
208
- if not self.dashboard_launcher.is_dashboard_running(port):
150
+ if not self.dashboard_manager.is_dashboard_running(port):
209
151
  return CommandResult.success_result(f"No dashboard running on port {port}")
210
152
 
211
- if self.dashboard_launcher.stop_dashboard(port):
153
+ if self.dashboard_manager.stop_dashboard(port):
212
154
  return CommandResult.success_result(f"Dashboard stopped on port {port}")
213
155
 
214
156
  return CommandResult.error_result(f"Failed to stop dashboard on port {port}")
@@ -220,7 +162,7 @@ class DashboardCommand(BaseCommand):
220
162
 
221
163
  # Check default port first
222
164
  default_port = 8765
223
- dashboard_running = self.dashboard_launcher.is_dashboard_running(default_port)
165
+ dashboard_running = self.dashboard_manager.is_dashboard_running(default_port)
224
166
 
225
167
  status_data = {
226
168
  "running": dashboard_running,
@@ -228,17 +170,17 @@ class DashboardCommand(BaseCommand):
228
170
  }
229
171
 
230
172
  if dashboard_running:
231
- status_data["url"] = self.dashboard_launcher.get_dashboard_url(default_port)
173
+ status_data["url"] = self.dashboard_manager.get_dashboard_url(default_port)
232
174
 
233
175
  # Check all ports if requested
234
176
  if show_ports:
235
177
  port_status = {}
236
178
  for port in range(8765, 8786):
237
- is_running = self.dashboard_launcher.is_dashboard_running(port)
179
+ is_running = self.dashboard_manager.is_dashboard_running(port)
238
180
  port_status[port] = {
239
181
  "running": is_running,
240
182
  "url": (
241
- self.dashboard_launcher.get_dashboard_url(port)
183
+ self.dashboard_manager.get_dashboard_url(port)
242
184
  if is_running
243
185
  else None
244
186
  ),
@@ -271,14 +213,14 @@ class DashboardCommand(BaseCommand):
271
213
  port = getattr(args, "port", 8765)
272
214
 
273
215
  # Check if dashboard is running
274
- if not self.dashboard_launcher.is_dashboard_running(port):
216
+ if not self.dashboard_manager.is_dashboard_running(port):
275
217
  self.logger.info("Dashboard not running, starting it first...")
276
218
  # Start dashboard in background
277
- success, browser_opened = self.dashboard_launcher.launch_dashboard(
278
- port=port, monitor_mode=True
219
+ success, browser_opened = self.dashboard_manager.start_dashboard(
220
+ port=port, background=True, open_browser=True
279
221
  )
280
222
  if success:
281
- dashboard_url = self.dashboard_launcher.get_dashboard_url(port)
223
+ dashboard_url = self.dashboard_manager.get_dashboard_url(port)
282
224
  return CommandResult.success_result(
283
225
  f"Dashboard started and opened at {dashboard_url}",
284
226
  data={
@@ -289,8 +231,8 @@ class DashboardCommand(BaseCommand):
289
231
  )
290
232
  return CommandResult.error_result("Failed to start and open dashboard")
291
233
  # Dashboard already running, just open browser
292
- dashboard_url = self.dashboard_launcher.get_dashboard_url(port)
293
- if self.dashboard_launcher._open_browser(dashboard_url):
234
+ dashboard_url = self.dashboard_manager.get_dashboard_url(port)
235
+ if self.dashboard_manager.open_browser(dashboard_url):
294
236
  return CommandResult.success_result(
295
237
  f"Opened dashboard at {dashboard_url}",
296
238
  data={"url": dashboard_url, "port": port},
@@ -0,0 +1,178 @@
1
+ """
2
+ Monitor command implementation for claude-mpm.
3
+
4
+ WHY: This module provides CLI commands for managing the unified monitoring daemon,
5
+ providing a single stable way to launch all monitoring functionality including
6
+ HTTP dashboard, Socket.IO events, real AST analysis, and Claude Code hook ingestion.
7
+
8
+ DESIGN DECISIONS:
9
+ - Use UnifiedMonitorDaemon for single stable monitoring service
10
+ - Single port (8765) for all functionality
11
+ - Support both foreground and daemon modes
12
+ - Real AST analysis using CodeTreeAnalyzer
13
+ - Integrated dashboard and Socket.IO server
14
+ """
15
+
16
+ from typing import Optional
17
+
18
+ from ...constants import MonitorCommands
19
+ from ...services.monitor.daemon import UnifiedMonitorDaemon
20
+ from ..shared import BaseCommand, CommandResult
21
+
22
+
23
+ class MonitorCommand(BaseCommand):
24
+ """Monitor command for managing the unified monitoring daemon."""
25
+
26
+ def __init__(self):
27
+ super().__init__("monitor")
28
+ self.daemon = None
29
+
30
+ def validate_args(self, args) -> Optional[str]:
31
+ """Validate command arguments."""
32
+ # Monitor command allows no subcommand (defaults to status)
33
+ if hasattr(args, "monitor_command") and args.monitor_command:
34
+ valid_commands = [cmd.value for cmd in MonitorCommands]
35
+ if args.monitor_command not in valid_commands:
36
+ return f"Unknown monitor command: {args.monitor_command}. Valid commands: {', '.join(valid_commands)}"
37
+
38
+ return None
39
+
40
+ def run(self, args) -> CommandResult:
41
+ """Execute the monitor command using unified monitoring daemon."""
42
+ try:
43
+ self.logger.info("Monitor command using unified monitoring daemon")
44
+
45
+ # Handle default case (no subcommand) - default to status
46
+ if not hasattr(args, "monitor_command") or not args.monitor_command:
47
+ return self._status_monitor(args)
48
+
49
+ # Route to specific monitor commands
50
+ if args.monitor_command == MonitorCommands.START.value:
51
+ return self._start_monitor(args)
52
+ if args.monitor_command == MonitorCommands.STOP.value:
53
+ return self._stop_monitor(args)
54
+ if args.monitor_command == MonitorCommands.RESTART.value:
55
+ return self._restart_monitor(args)
56
+ if args.monitor_command == MonitorCommands.STATUS.value:
57
+ return self._status_monitor(args)
58
+
59
+ return CommandResult.error_result(
60
+ f"Unknown monitor command: {args.monitor_command}"
61
+ )
62
+
63
+ except Exception as e:
64
+ self.logger.error(f"Error executing monitor command: {e}", exc_info=True)
65
+ return CommandResult.error_result(f"Error executing monitor command: {e}")
66
+
67
+ def _start_monitor(self, args) -> CommandResult:
68
+ """Start the unified monitor daemon."""
69
+ port = getattr(args, "port", None)
70
+ if port is None:
71
+ port = 8765 # Default to 8765 for unified monitor
72
+ host = getattr(args, "host", "localhost")
73
+ daemon_mode = getattr(args, "daemon", False) # Default to foreground
74
+
75
+ self.logger.info(
76
+ f"Starting unified monitor daemon on {host}:{port} (daemon: {daemon_mode})"
77
+ )
78
+
79
+ # Create unified monitor daemon
80
+ self.daemon = UnifiedMonitorDaemon(
81
+ host=host, port=port, daemon_mode=daemon_mode
82
+ )
83
+
84
+ # Check if already running
85
+ if self.daemon.lifecycle.is_running():
86
+ existing_pid = self.daemon.lifecycle.get_pid()
87
+ return CommandResult.success_result(
88
+ f"Unified monitor daemon already running with PID {existing_pid}",
89
+ data={
90
+ "url": f"http://{host}:{port}",
91
+ "port": port,
92
+ "pid": existing_pid,
93
+ },
94
+ )
95
+
96
+ # Start the daemon
97
+ if self.daemon.start():
98
+ return CommandResult.success_result(
99
+ f"Unified monitor daemon started on {host}:{port}",
100
+ data={"url": f"http://{host}:{port}", "port": port},
101
+ )
102
+ return CommandResult.error_result("Failed to start unified monitor daemon")
103
+
104
+ def _stop_monitor(self, args) -> CommandResult:
105
+ """Stop the unified monitor daemon."""
106
+ self.logger.info("Stopping unified monitor daemon")
107
+
108
+ # Create daemon instance to check status and stop
109
+ daemon = UnifiedMonitorDaemon()
110
+
111
+ if not daemon.lifecycle.is_running():
112
+ return CommandResult.success_result("No unified monitor daemon running")
113
+
114
+ # Stop the daemon
115
+ if daemon.stop():
116
+ return CommandResult.success_result("Unified monitor daemon stopped")
117
+ return CommandResult.error_result("Failed to stop unified monitor daemon")
118
+
119
+ def _restart_monitor(self, args) -> CommandResult:
120
+ """Restart the unified monitor daemon."""
121
+ self.logger.info("Restarting unified monitor daemon")
122
+
123
+ # Create daemon instance
124
+ daemon = UnifiedMonitorDaemon()
125
+
126
+ # Restart the daemon
127
+ if daemon.restart():
128
+ return CommandResult.success_result("Unified monitor daemon restarted")
129
+ return CommandResult.error_result("Failed to restart unified monitor daemon")
130
+
131
+ def _status_monitor(self, args) -> CommandResult:
132
+ """Get unified monitor daemon status."""
133
+ verbose = getattr(args, "verbose", False)
134
+
135
+ # Create daemon instance to check status
136
+ daemon = UnifiedMonitorDaemon()
137
+ status_data = daemon.status()
138
+
139
+ # Format output message
140
+ if status_data["running"]:
141
+ message = f"Unified monitor daemon is running at http://{status_data['host']}:{status_data['port']}"
142
+ if status_data.get("pid"):
143
+ message += f" (PID: {status_data['pid']})"
144
+ else:
145
+ message = "Unified monitor daemon is not running"
146
+
147
+ return CommandResult.success_result(message, data=status_data)
148
+
149
+
150
+ def manage_monitor(args):
151
+ """
152
+ Main entry point for monitor command.
153
+
154
+ The monitor command manages the unified monitoring daemon that provides
155
+ a single stable way to launch all monitoring functionality including
156
+ HTTP dashboard, Socket.IO events, real AST analysis, and Claude Code hooks.
157
+ """
158
+ command = MonitorCommand()
159
+ error = command.validate_args(args)
160
+
161
+ if error:
162
+ command.logger.error(error)
163
+ print(f"Error: {error}")
164
+ return 1
165
+
166
+ result = command.run(args)
167
+
168
+ if result.success:
169
+ if result.message:
170
+ print(result.message)
171
+ if result.data and getattr(args, "verbose", False):
172
+ import json
173
+
174
+ print(json.dumps(result.data, indent=2))
175
+ return 0
176
+ if result.message:
177
+ print(f"Error: {result.message}")
178
+ return 1
@@ -21,10 +21,11 @@ from typing import Optional
21
21
  from ...constants import LogLevel
22
22
  from ...core.logger import get_logger
23
23
  from ...core.unified_paths import get_scripts_dir
24
- from ...services.cli.dashboard_launcher import DashboardLauncher
25
24
  from ...services.cli.session_manager import SessionManager
26
- from ...services.cli.socketio_manager import SocketIOManager
25
+
26
+ # SocketIOManager functionality now provided by UnifiedDashboardManager
27
27
  from ...services.cli.startup_checker import StartupCheckerService
28
+ from ...services.cli.unified_dashboard_manager import UnifiedDashboardManager
28
29
  from ..shared import BaseCommand, CommandResult
29
30
  from ..startup_logging import (
30
31
  cleanup_old_startup_logs,
@@ -423,16 +424,16 @@ class RunCommand(BaseCommand):
423
424
  self.logger.warning(f"Dependency check failed: {e}")
424
425
 
425
426
  def _setup_monitoring(self, args):
426
- """Setup monitoring configuration using SocketIOManager."""
427
+ """Setup monitoring configuration using UnifiedDashboardManager."""
427
428
  monitor_mode = getattr(args, "monitor", False)
428
429
  websocket_port = 8765 # Default port
429
430
 
430
431
  if monitor_mode:
431
- # Use SocketIOManager for server management
432
- socketio_manager = SocketIOManager(self.logger)
432
+ # Use UnifiedDashboardManager for server management
433
+ dashboard_manager = UnifiedDashboardManager(self.logger)
433
434
 
434
435
  # Check dependencies
435
- deps_ok, error_msg = socketio_manager.ensure_dependencies()
436
+ deps_ok, error_msg = dashboard_manager.ensure_dependencies()
436
437
  if not deps_ok:
437
438
  self.logger.warning(
438
439
  f"Socket.IO dependencies not available: {error_msg}, disabling monitor mode"
@@ -440,8 +441,8 @@ class RunCommand(BaseCommand):
440
441
  monitor_mode = False
441
442
  else:
442
443
  # Find available port and start server
443
- websocket_port = socketio_manager.find_available_port(8765)
444
- success, server_info = socketio_manager.start_server(
444
+ websocket_port = dashboard_manager.find_available_port(8765)
445
+ success, server_info = dashboard_manager.start_server(
445
446
  port=websocket_port
446
447
  )
447
448
 
@@ -451,12 +452,12 @@ class RunCommand(BaseCommand):
451
452
  )
452
453
  monitor_mode = False
453
454
  else:
454
- # Use DashboardLauncher for browser opening only
455
- dashboard_launcher = DashboardLauncher(self.logger)
456
- monitor_url = dashboard_launcher.get_dashboard_url(websocket_port)
455
+ # Use UnifiedDashboardManager for browser opening only
456
+ dashboard_manager = UnifiedDashboardManager(self.logger)
457
+ monitor_url = dashboard_manager.get_dashboard_url(websocket_port)
457
458
 
458
459
  # Try to open browser
459
- browser_opened = dashboard_launcher._open_browser(monitor_url)
460
+ browser_opened = dashboard_manager.open_browser(monitor_url)
460
461
  args._browser_opened_by_cli = browser_opened
461
462
 
462
463
  if not browser_opened:
@@ -855,12 +856,12 @@ def run_session_legacy(args):
855
856
 
856
857
  # Display Socket.IO server info if enabled
857
858
  if enable_websocket:
858
- # Use SocketIOManager for server management
859
- socketio_manager = SocketIOManager(logger)
859
+ # Use UnifiedDashboardManager for server management
860
+ dashboard_manager = UnifiedDashboardManager(logger)
860
861
 
861
862
  # Check dependencies
862
863
  print("🔧 Checking Socket.IO dependencies...")
863
- deps_ok, error_msg = socketio_manager.ensure_dependencies()
864
+ deps_ok, error_msg = dashboard_manager.ensure_dependencies()
864
865
 
865
866
  if not deps_ok:
866
867
  print(f"❌ Failed to install Socket.IO dependencies: {error_msg}")
@@ -874,8 +875,8 @@ def run_session_legacy(args):
874
875
 
875
876
  # Find available port and start server if in monitor mode
876
877
  if monitor_mode:
877
- websocket_port = socketio_manager.find_available_port(websocket_port)
878
- success, server_info = socketio_manager.start_server(
878
+ websocket_port = dashboard_manager.find_available_port(websocket_port)
879
+ success, server_info = dashboard_manager.start_server(
879
880
  port=websocket_port
880
881
  )
881
882
 
@@ -886,10 +887,10 @@ def run_session_legacy(args):
886
887
  " Note: Socket.IO monitoring using exec mode with Claude Code hooks"
887
888
  )
888
889
 
889
- # Use DashboardLauncher for browser opening
890
- dashboard_launcher = DashboardLauncher(logger)
891
- monitor_url = dashboard_launcher.get_dashboard_url(websocket_port)
892
- browser_opened = dashboard_launcher._open_browser(monitor_url)
890
+ # Use UnifiedDashboardManager for browser opening
891
+ dashboard_manager = UnifiedDashboardManager(logger)
892
+ monitor_url = dashboard_manager.get_dashboard_url(websocket_port)
893
+ browser_opened = dashboard_manager.open_browser(monitor_url)
893
894
  args._browser_opened_by_cli = browser_opened
894
895
 
895
896
  if not browser_opened:
@@ -971,16 +972,15 @@ def run_session_legacy(args):
971
972
  runner.run_interactive(context)
972
973
 
973
974
 
974
- # Legacy helper functions - now delegating to SocketIOManager
975
+ # Legacy helper functions - now delegating to UnifiedDashboardManager
975
976
  def launch_socketio_monitor(port, logger):
976
977
  """Launch the Socket.IO monitoring dashboard (legacy compatibility)."""
977
- socketio_manager = SocketIOManager(logger)
978
- success, server_info = socketio_manager.start_server(port=port)
978
+ dashboard_manager = UnifiedDashboardManager(logger)
979
+ success, server_info = dashboard_manager.start_server(port=port)
979
980
 
980
981
  if success:
981
- # Open browser using DashboardLauncher
982
- launcher = DashboardLauncher(logger)
983
- browser_opened = launcher._open_browser(server_info.url)
982
+ # Open browser using UnifiedDashboardManager
983
+ browser_opened = dashboard_manager.open_browser(server_info.url)
984
984
  return success, browser_opened
985
985
 
986
986
  return False, False
@@ -988,21 +988,21 @@ def launch_socketio_monitor(port, logger):
988
988
 
989
989
  def _check_socketio_server_running(port, logger):
990
990
  """Check if a Socket.IO server is running on the specified port (legacy compatibility)."""
991
- socketio_manager = SocketIOManager(logger)
992
- return socketio_manager.is_server_running(port)
991
+ dashboard_manager = UnifiedDashboardManager(logger)
992
+ return dashboard_manager.is_server_running(port)
993
993
 
994
994
 
995
995
  def _start_standalone_socketio_server(port, logger):
996
996
  """Start a standalone Socket.IO server (legacy compatibility)."""
997
- socketio_manager = SocketIOManager(logger)
998
- success, _ = socketio_manager.start_server(port=port)
997
+ dashboard_manager = UnifiedDashboardManager(logger)
998
+ success, _ = dashboard_manager.start_server(port=port)
999
999
  return success
1000
1000
 
1001
1001
 
1002
1002
  def open_in_browser_tab(url, logger):
1003
1003
  """Open URL in browser, attempting to reuse existing tabs when possible."""
1004
- launcher = DashboardLauncher(logger)
1005
- return launcher._open_browser(url)
1004
+ manager = UnifiedDashboardManager(logger)
1005
+ return manager.open_browser(url)
1006
1006
 
1007
1007
 
1008
1008
  def _check_claude_json_memory(args, logger):