claude-mpm 3.9.11__py3-none-any.whl → 4.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/__init__.py +2 -2
  3. claude_mpm/__main__.py +3 -2
  4. claude_mpm/agents/__init__.py +85 -79
  5. claude_mpm/agents/agent_loader.py +464 -1003
  6. claude_mpm/agents/agent_loader_integration.py +45 -45
  7. claude_mpm/agents/agents_metadata.py +29 -30
  8. claude_mpm/agents/async_agent_loader.py +156 -138
  9. claude_mpm/agents/base_agent.json +1 -1
  10. claude_mpm/agents/base_agent_loader.py +179 -151
  11. claude_mpm/agents/frontmatter_validator.py +229 -130
  12. claude_mpm/agents/schema/agent_schema.json +1 -1
  13. claude_mpm/agents/system_agent_config.py +213 -147
  14. claude_mpm/agents/templates/__init__.py +13 -13
  15. claude_mpm/agents/templates/code_analyzer.json +2 -2
  16. claude_mpm/agents/templates/data_engineer.json +1 -1
  17. claude_mpm/agents/templates/documentation.json +23 -11
  18. claude_mpm/agents/templates/engineer.json +22 -6
  19. claude_mpm/agents/templates/memory_manager.json +1 -1
  20. claude_mpm/agents/templates/ops.json +2 -2
  21. claude_mpm/agents/templates/project_organizer.json +1 -1
  22. claude_mpm/agents/templates/qa.json +1 -1
  23. claude_mpm/agents/templates/refactoring_engineer.json +222 -0
  24. claude_mpm/agents/templates/research.json +20 -14
  25. claude_mpm/agents/templates/security.json +1 -1
  26. claude_mpm/agents/templates/ticketing.json +1 -1
  27. claude_mpm/agents/templates/version_control.json +1 -1
  28. claude_mpm/agents/templates/web_qa.json +3 -1
  29. claude_mpm/agents/templates/web_ui.json +2 -2
  30. claude_mpm/cli/__init__.py +79 -51
  31. claude_mpm/cli/__main__.py +3 -2
  32. claude_mpm/cli/commands/__init__.py +20 -20
  33. claude_mpm/cli/commands/agents.py +279 -247
  34. claude_mpm/cli/commands/aggregate.py +138 -157
  35. claude_mpm/cli/commands/cleanup.py +147 -147
  36. claude_mpm/cli/commands/config.py +93 -76
  37. claude_mpm/cli/commands/info.py +17 -16
  38. claude_mpm/cli/commands/mcp.py +140 -905
  39. claude_mpm/cli/commands/mcp_command_router.py +139 -0
  40. claude_mpm/cli/commands/mcp_config_commands.py +20 -0
  41. claude_mpm/cli/commands/mcp_install_commands.py +20 -0
  42. claude_mpm/cli/commands/mcp_server_commands.py +175 -0
  43. claude_mpm/cli/commands/mcp_tool_commands.py +34 -0
  44. claude_mpm/cli/commands/memory.py +239 -203
  45. claude_mpm/cli/commands/monitor.py +203 -81
  46. claude_mpm/cli/commands/run.py +380 -429
  47. claude_mpm/cli/commands/run_config_checker.py +160 -0
  48. claude_mpm/cli/commands/socketio_monitor.py +235 -0
  49. claude_mpm/cli/commands/tickets.py +305 -197
  50. claude_mpm/cli/parser.py +24 -1156
  51. claude_mpm/cli/parsers/__init__.py +29 -0
  52. claude_mpm/cli/parsers/agents_parser.py +136 -0
  53. claude_mpm/cli/parsers/base_parser.py +331 -0
  54. claude_mpm/cli/parsers/config_parser.py +85 -0
  55. claude_mpm/cli/parsers/mcp_parser.py +152 -0
  56. claude_mpm/cli/parsers/memory_parser.py +138 -0
  57. claude_mpm/cli/parsers/monitor_parser.py +104 -0
  58. claude_mpm/cli/parsers/run_parser.py +147 -0
  59. claude_mpm/cli/parsers/tickets_parser.py +203 -0
  60. claude_mpm/cli/ticket_cli.py +7 -3
  61. claude_mpm/cli/utils.py +55 -37
  62. claude_mpm/cli_module/__init__.py +6 -6
  63. claude_mpm/cli_module/args.py +188 -140
  64. claude_mpm/cli_module/commands.py +79 -70
  65. claude_mpm/cli_module/migration_example.py +38 -60
  66. claude_mpm/config/__init__.py +32 -25
  67. claude_mpm/config/agent_config.py +151 -119
  68. claude_mpm/config/experimental_features.py +71 -73
  69. claude_mpm/config/paths.py +94 -208
  70. claude_mpm/config/socketio_config.py +84 -73
  71. claude_mpm/constants.py +35 -18
  72. claude_mpm/core/__init__.py +9 -6
  73. claude_mpm/core/agent_name_normalizer.py +68 -71
  74. claude_mpm/core/agent_registry.py +372 -521
  75. claude_mpm/core/agent_session_manager.py +74 -63
  76. claude_mpm/core/base_service.py +116 -87
  77. claude_mpm/core/cache.py +119 -153
  78. claude_mpm/core/claude_runner.py +425 -1120
  79. claude_mpm/core/config.py +263 -168
  80. claude_mpm/core/config_aliases.py +69 -61
  81. claude_mpm/core/config_constants.py +292 -0
  82. claude_mpm/core/constants.py +57 -99
  83. claude_mpm/core/container.py +211 -178
  84. claude_mpm/core/exceptions.py +233 -89
  85. claude_mpm/core/factories.py +92 -54
  86. claude_mpm/core/framework_loader.py +378 -220
  87. claude_mpm/core/hook_manager.py +198 -83
  88. claude_mpm/core/hook_performance_config.py +136 -0
  89. claude_mpm/core/injectable_service.py +61 -55
  90. claude_mpm/core/interactive_session.py +165 -155
  91. claude_mpm/core/interfaces.py +221 -195
  92. claude_mpm/core/lazy.py +96 -96
  93. claude_mpm/core/logger.py +133 -107
  94. claude_mpm/core/logging_config.py +185 -157
  95. claude_mpm/core/minimal_framework_loader.py +20 -15
  96. claude_mpm/core/mixins.py +30 -29
  97. claude_mpm/core/oneshot_session.py +215 -181
  98. claude_mpm/core/optimized_agent_loader.py +134 -138
  99. claude_mpm/core/optimized_startup.py +159 -157
  100. claude_mpm/core/pm_hook_interceptor.py +85 -72
  101. claude_mpm/core/service_registry.py +103 -101
  102. claude_mpm/core/session_manager.py +97 -87
  103. claude_mpm/core/socketio_pool.py +212 -158
  104. claude_mpm/core/tool_access_control.py +58 -51
  105. claude_mpm/core/types.py +46 -24
  106. claude_mpm/core/typing_utils.py +166 -82
  107. claude_mpm/core/unified_agent_registry.py +721 -0
  108. claude_mpm/core/unified_config.py +550 -0
  109. claude_mpm/core/unified_paths.py +549 -0
  110. claude_mpm/dashboard/index.html +1 -1
  111. claude_mpm/dashboard/open_dashboard.py +51 -17
  112. claude_mpm/dashboard/static/css/dashboard.css +27 -8
  113. claude_mpm/dashboard/static/dist/components/agent-inference.js +2 -0
  114. claude_mpm/dashboard/static/dist/components/event-processor.js +2 -0
  115. claude_mpm/dashboard/static/dist/components/event-viewer.js +2 -0
  116. claude_mpm/dashboard/static/dist/components/export-manager.js +2 -0
  117. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +2 -0
  118. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +2 -0
  119. claude_mpm/dashboard/static/dist/components/hud-manager.js +2 -0
  120. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +2 -0
  121. claude_mpm/dashboard/static/dist/components/module-viewer.js +2 -0
  122. claude_mpm/dashboard/static/dist/components/session-manager.js +2 -0
  123. claude_mpm/dashboard/static/dist/components/socket-manager.js +2 -0
  124. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +2 -0
  125. claude_mpm/dashboard/static/dist/components/working-directory.js +2 -0
  126. claude_mpm/dashboard/static/dist/dashboard.js +2 -0
  127. claude_mpm/dashboard/static/dist/socket-client.js +2 -0
  128. claude_mpm/dashboard/static/js/components/agent-inference.js +80 -76
  129. claude_mpm/dashboard/static/js/components/event-processor.js +71 -67
  130. claude_mpm/dashboard/static/js/components/event-viewer.js +74 -70
  131. claude_mpm/dashboard/static/js/components/export-manager.js +31 -28
  132. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +106 -92
  133. claude_mpm/dashboard/static/js/components/hud-library-loader.js +11 -11
  134. claude_mpm/dashboard/static/js/components/hud-manager.js +73 -73
  135. claude_mpm/dashboard/static/js/components/hud-visualizer.js +163 -163
  136. claude_mpm/dashboard/static/js/components/module-viewer.js +305 -233
  137. claude_mpm/dashboard/static/js/components/session-manager.js +32 -29
  138. claude_mpm/dashboard/static/js/components/socket-manager.js +27 -20
  139. claude_mpm/dashboard/static/js/components/ui-state-manager.js +21 -18
  140. claude_mpm/dashboard/static/js/components/working-directory.js +74 -71
  141. claude_mpm/dashboard/static/js/dashboard.js +178 -453
  142. claude_mpm/dashboard/static/js/extension-error-handler.js +164 -0
  143. claude_mpm/dashboard/static/js/socket-client.js +120 -54
  144. claude_mpm/dashboard/templates/index.html +40 -50
  145. claude_mpm/experimental/cli_enhancements.py +60 -58
  146. claude_mpm/generators/__init__.py +1 -1
  147. claude_mpm/generators/agent_profile_generator.py +75 -65
  148. claude_mpm/hooks/__init__.py +1 -1
  149. claude_mpm/hooks/base_hook.py +33 -28
  150. claude_mpm/hooks/claude_hooks/__init__.py +1 -1
  151. claude_mpm/hooks/claude_hooks/connection_pool.py +120 -0
  152. claude_mpm/hooks/claude_hooks/event_handlers.py +743 -0
  153. claude_mpm/hooks/claude_hooks/hook_handler.py +415 -1331
  154. claude_mpm/hooks/claude_hooks/hook_wrapper.sh +4 -4
  155. claude_mpm/hooks/claude_hooks/memory_integration.py +221 -0
  156. claude_mpm/hooks/claude_hooks/response_tracking.py +348 -0
  157. claude_mpm/hooks/claude_hooks/tool_analysis.py +230 -0
  158. claude_mpm/hooks/memory_integration_hook.py +140 -100
  159. claude_mpm/hooks/tool_call_interceptor.py +89 -76
  160. claude_mpm/hooks/validation_hooks.py +57 -49
  161. claude_mpm/init.py +145 -121
  162. claude_mpm/models/__init__.py +9 -9
  163. claude_mpm/models/agent_definition.py +33 -23
  164. claude_mpm/models/agent_session.py +228 -200
  165. claude_mpm/scripts/__init__.py +1 -1
  166. claude_mpm/scripts/socketio_daemon.py +192 -75
  167. claude_mpm/scripts/socketio_server_manager.py +328 -0
  168. claude_mpm/scripts/start_activity_logging.py +25 -22
  169. claude_mpm/services/__init__.py +68 -43
  170. claude_mpm/services/agent_capabilities_service.py +271 -0
  171. claude_mpm/services/agents/__init__.py +23 -32
  172. claude_mpm/services/agents/deployment/__init__.py +3 -3
  173. claude_mpm/services/agents/deployment/agent_config_provider.py +310 -0
  174. claude_mpm/services/agents/deployment/agent_configuration_manager.py +359 -0
  175. claude_mpm/services/agents/deployment/agent_definition_factory.py +84 -0
  176. claude_mpm/services/agents/deployment/agent_deployment.py +415 -2113
  177. claude_mpm/services/agents/deployment/agent_discovery_service.py +387 -0
  178. claude_mpm/services/agents/deployment/agent_environment_manager.py +293 -0
  179. claude_mpm/services/agents/deployment/agent_filesystem_manager.py +387 -0
  180. claude_mpm/services/agents/deployment/agent_format_converter.py +453 -0
  181. claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +161 -0
  182. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +345 -495
  183. claude_mpm/services/agents/deployment/agent_metrics_collector.py +279 -0
  184. claude_mpm/services/agents/deployment/agent_restore_handler.py +88 -0
  185. claude_mpm/services/agents/deployment/agent_template_builder.py +406 -0
  186. claude_mpm/services/agents/deployment/agent_validator.py +352 -0
  187. claude_mpm/services/agents/deployment/agent_version_manager.py +313 -0
  188. claude_mpm/services/agents/deployment/agent_versioning.py +6 -9
  189. claude_mpm/services/agents/deployment/agents_directory_resolver.py +79 -0
  190. claude_mpm/services/agents/deployment/async_agent_deployment.py +298 -234
  191. claude_mpm/services/agents/deployment/config/__init__.py +13 -0
  192. claude_mpm/services/agents/deployment/config/deployment_config.py +182 -0
  193. claude_mpm/services/agents/deployment/config/deployment_config_manager.py +200 -0
  194. claude_mpm/services/agents/deployment/deployment_config_loader.py +54 -0
  195. claude_mpm/services/agents/deployment/deployment_type_detector.py +124 -0
  196. claude_mpm/services/agents/deployment/facade/__init__.py +18 -0
  197. claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +159 -0
  198. claude_mpm/services/agents/deployment/facade/deployment_executor.py +73 -0
  199. claude_mpm/services/agents/deployment/facade/deployment_facade.py +270 -0
  200. claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +178 -0
  201. claude_mpm/services/agents/deployment/interface_adapter.py +227 -0
  202. claude_mpm/services/agents/deployment/lifecycle_health_checker.py +85 -0
  203. claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +100 -0
  204. claude_mpm/services/agents/deployment/pipeline/__init__.py +32 -0
  205. claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +158 -0
  206. claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +159 -0
  207. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +169 -0
  208. claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +19 -0
  209. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +195 -0
  210. claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +119 -0
  211. claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +79 -0
  212. claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +90 -0
  213. claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +100 -0
  214. claude_mpm/services/agents/deployment/processors/__init__.py +15 -0
  215. claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +98 -0
  216. claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +235 -0
  217. claude_mpm/services/agents/deployment/processors/agent_processor.py +258 -0
  218. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +318 -0
  219. claude_mpm/services/agents/deployment/results/__init__.py +13 -0
  220. claude_mpm/services/agents/deployment/results/deployment_metrics.py +200 -0
  221. claude_mpm/services/agents/deployment/results/deployment_result_builder.py +249 -0
  222. claude_mpm/services/agents/deployment/strategies/__init__.py +25 -0
  223. claude_mpm/services/agents/deployment/strategies/base_strategy.py +119 -0
  224. claude_mpm/services/agents/deployment/strategies/project_strategy.py +150 -0
  225. claude_mpm/services/agents/deployment/strategies/strategy_selector.py +117 -0
  226. claude_mpm/services/agents/deployment/strategies/system_strategy.py +116 -0
  227. claude_mpm/services/agents/deployment/strategies/user_strategy.py +137 -0
  228. claude_mpm/services/agents/deployment/system_instructions_deployer.py +108 -0
  229. claude_mpm/services/agents/deployment/validation/__init__.py +19 -0
  230. claude_mpm/services/agents/deployment/validation/agent_validator.py +323 -0
  231. claude_mpm/services/agents/deployment/validation/deployment_validator.py +238 -0
  232. claude_mpm/services/agents/deployment/validation/template_validator.py +299 -0
  233. claude_mpm/services/agents/deployment/validation/validation_result.py +226 -0
  234. claude_mpm/services/agents/loading/__init__.py +2 -2
  235. claude_mpm/services/agents/loading/agent_profile_loader.py +259 -229
  236. claude_mpm/services/agents/loading/base_agent_manager.py +90 -81
  237. claude_mpm/services/agents/loading/framework_agent_loader.py +154 -129
  238. claude_mpm/services/agents/management/__init__.py +2 -2
  239. claude_mpm/services/agents/management/agent_capabilities_generator.py +72 -58
  240. claude_mpm/services/agents/management/agent_management_service.py +209 -156
  241. claude_mpm/services/agents/memory/__init__.py +9 -6
  242. claude_mpm/services/agents/memory/agent_memory_manager.py +218 -1152
  243. claude_mpm/services/agents/memory/agent_persistence_service.py +20 -16
  244. claude_mpm/services/agents/memory/analyzer.py +430 -0
  245. claude_mpm/services/agents/memory/content_manager.py +376 -0
  246. claude_mpm/services/agents/memory/template_generator.py +468 -0
  247. claude_mpm/services/agents/registry/__init__.py +7 -10
  248. claude_mpm/services/agents/registry/deployed_agent_discovery.py +122 -97
  249. claude_mpm/services/agents/registry/modification_tracker.py +351 -285
  250. claude_mpm/services/async_session_logger.py +187 -153
  251. claude_mpm/services/claude_session_logger.py +87 -72
  252. claude_mpm/services/command_handler_service.py +217 -0
  253. claude_mpm/services/communication/__init__.py +3 -2
  254. claude_mpm/services/core/__init__.py +50 -97
  255. claude_mpm/services/core/base.py +60 -53
  256. claude_mpm/services/core/interfaces/__init__.py +188 -0
  257. claude_mpm/services/core/interfaces/agent.py +351 -0
  258. claude_mpm/services/core/interfaces/communication.py +343 -0
  259. claude_mpm/services/core/interfaces/infrastructure.py +413 -0
  260. claude_mpm/services/core/interfaces/service.py +434 -0
  261. claude_mpm/services/core/interfaces.py +19 -944
  262. claude_mpm/services/event_aggregator.py +208 -170
  263. claude_mpm/services/exceptions.py +387 -308
  264. claude_mpm/services/framework_claude_md_generator/__init__.py +75 -79
  265. claude_mpm/services/framework_claude_md_generator/content_assembler.py +69 -60
  266. claude_mpm/services/framework_claude_md_generator/content_validator.py +65 -61
  267. claude_mpm/services/framework_claude_md_generator/deployment_manager.py +68 -49
  268. claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +34 -34
  269. claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +25 -22
  270. claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +10 -10
  271. claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +4 -3
  272. claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +4 -3
  273. claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +4 -3
  274. claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +6 -5
  275. claude_mpm/services/framework_claude_md_generator/section_generators/header.py +8 -7
  276. claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +4 -3
  277. claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +6 -5
  278. claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +9 -8
  279. claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +4 -3
  280. claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +5 -4
  281. claude_mpm/services/framework_claude_md_generator/section_manager.py +28 -27
  282. claude_mpm/services/framework_claude_md_generator/version_manager.py +30 -28
  283. claude_mpm/services/hook_service.py +106 -114
  284. claude_mpm/services/infrastructure/__init__.py +7 -5
  285. claude_mpm/services/infrastructure/context_preservation.py +233 -199
  286. claude_mpm/services/infrastructure/daemon_manager.py +279 -0
  287. claude_mpm/services/infrastructure/logging.py +83 -76
  288. claude_mpm/services/infrastructure/monitoring.py +547 -404
  289. claude_mpm/services/mcp_gateway/__init__.py +30 -13
  290. claude_mpm/services/mcp_gateway/config/__init__.py +2 -2
  291. claude_mpm/services/mcp_gateway/config/config_loader.py +61 -56
  292. claude_mpm/services/mcp_gateway/config/config_schema.py +50 -41
  293. claude_mpm/services/mcp_gateway/config/configuration.py +82 -75
  294. claude_mpm/services/mcp_gateway/core/__init__.py +13 -20
  295. claude_mpm/services/mcp_gateway/core/base.py +80 -67
  296. claude_mpm/services/mcp_gateway/core/exceptions.py +60 -46
  297. claude_mpm/services/mcp_gateway/core/interfaces.py +87 -84
  298. claude_mpm/services/mcp_gateway/main.py +287 -137
  299. claude_mpm/services/mcp_gateway/registry/__init__.py +1 -1
  300. claude_mpm/services/mcp_gateway/registry/service_registry.py +97 -94
  301. claude_mpm/services/mcp_gateway/registry/tool_registry.py +135 -126
  302. claude_mpm/services/mcp_gateway/server/__init__.py +2 -2
  303. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +105 -110
  304. claude_mpm/services/mcp_gateway/server/stdio_handler.py +105 -107
  305. claude_mpm/services/mcp_gateway/server/stdio_server.py +691 -0
  306. claude_mpm/services/mcp_gateway/tools/__init__.py +4 -2
  307. claude_mpm/services/mcp_gateway/tools/base_adapter.py +109 -119
  308. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +283 -215
  309. claude_mpm/services/mcp_gateway/tools/hello_world.py +122 -120
  310. claude_mpm/services/mcp_gateway/tools/ticket_tools.py +652 -0
  311. claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +606 -0
  312. claude_mpm/services/memory/__init__.py +2 -2
  313. claude_mpm/services/memory/builder.py +451 -362
  314. claude_mpm/services/memory/cache/__init__.py +2 -2
  315. claude_mpm/services/memory/cache/shared_prompt_cache.py +232 -194
  316. claude_mpm/services/memory/cache/simple_cache.py +107 -93
  317. claude_mpm/services/memory/indexed_memory.py +195 -193
  318. claude_mpm/services/memory/optimizer.py +267 -234
  319. claude_mpm/services/memory/router.py +571 -263
  320. claude_mpm/services/memory_hook_service.py +237 -0
  321. claude_mpm/services/port_manager.py +223 -0
  322. claude_mpm/services/project/__init__.py +3 -3
  323. claude_mpm/services/project/analyzer.py +451 -305
  324. claude_mpm/services/project/registry.py +262 -240
  325. claude_mpm/services/recovery_manager.py +287 -231
  326. claude_mpm/services/response_tracker.py +87 -67
  327. claude_mpm/services/runner_configuration_service.py +587 -0
  328. claude_mpm/services/session_management_service.py +304 -0
  329. claude_mpm/services/socketio/__init__.py +4 -4
  330. claude_mpm/services/socketio/client_proxy.py +174 -0
  331. claude_mpm/services/socketio/handlers/__init__.py +3 -3
  332. claude_mpm/services/socketio/handlers/base.py +44 -30
  333. claude_mpm/services/socketio/handlers/connection.py +145 -65
  334. claude_mpm/services/socketio/handlers/file.py +123 -108
  335. claude_mpm/services/socketio/handlers/git.py +607 -373
  336. claude_mpm/services/socketio/handlers/hook.py +170 -0
  337. claude_mpm/services/socketio/handlers/memory.py +4 -4
  338. claude_mpm/services/socketio/handlers/project.py +4 -4
  339. claude_mpm/services/socketio/handlers/registry.py +53 -38
  340. claude_mpm/services/socketio/server/__init__.py +18 -0
  341. claude_mpm/services/socketio/server/broadcaster.py +252 -0
  342. claude_mpm/services/socketio/server/core.py +399 -0
  343. claude_mpm/services/socketio/server/main.py +323 -0
  344. claude_mpm/services/socketio_client_manager.py +160 -133
  345. claude_mpm/services/socketio_server.py +36 -1885
  346. claude_mpm/services/subprocess_launcher_service.py +316 -0
  347. claude_mpm/services/system_instructions_service.py +258 -0
  348. claude_mpm/services/ticket_manager.py +19 -533
  349. claude_mpm/services/utility_service.py +285 -0
  350. claude_mpm/services/version_control/__init__.py +18 -21
  351. claude_mpm/services/version_control/branch_strategy.py +20 -10
  352. claude_mpm/services/version_control/conflict_resolution.py +37 -13
  353. claude_mpm/services/version_control/git_operations.py +52 -21
  354. claude_mpm/services/version_control/semantic_versioning.py +92 -53
  355. claude_mpm/services/version_control/version_parser.py +145 -125
  356. claude_mpm/services/version_service.py +270 -0
  357. claude_mpm/storage/__init__.py +2 -2
  358. claude_mpm/storage/state_storage.py +177 -181
  359. claude_mpm/ticket_wrapper.py +2 -2
  360. claude_mpm/utils/__init__.py +2 -2
  361. claude_mpm/utils/agent_dependency_loader.py +453 -243
  362. claude_mpm/utils/config_manager.py +157 -118
  363. claude_mpm/utils/console.py +1 -1
  364. claude_mpm/utils/dependency_cache.py +102 -107
  365. claude_mpm/utils/dependency_manager.py +52 -47
  366. claude_mpm/utils/dependency_strategies.py +131 -96
  367. claude_mpm/utils/environment_context.py +110 -102
  368. claude_mpm/utils/error_handler.py +75 -55
  369. claude_mpm/utils/file_utils.py +80 -67
  370. claude_mpm/utils/framework_detection.py +12 -11
  371. claude_mpm/utils/import_migration_example.py +12 -60
  372. claude_mpm/utils/imports.py +48 -45
  373. claude_mpm/utils/path_operations.py +100 -93
  374. claude_mpm/utils/robust_installer.py +172 -164
  375. claude_mpm/utils/session_logging.py +30 -23
  376. claude_mpm/utils/subprocess_utils.py +99 -61
  377. claude_mpm/validation/__init__.py +1 -1
  378. claude_mpm/validation/agent_validator.py +151 -111
  379. claude_mpm/validation/frontmatter_validator.py +92 -71
  380. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.3.dist-info}/METADATA +27 -1
  381. claude_mpm-4.0.3.dist-info/RECORD +402 -0
  382. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.3.dist-info}/entry_points.txt +1 -0
  383. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.3.dist-info}/licenses/LICENSE +1 -1
  384. claude_mpm/cli/commands/run_guarded.py +0 -511
  385. claude_mpm/config/memory_guardian_config.py +0 -325
  386. claude_mpm/config/memory_guardian_yaml.py +0 -335
  387. claude_mpm/core/config_paths.py +0 -150
  388. claude_mpm/core/memory_aware_runner.py +0 -353
  389. claude_mpm/dashboard/static/js/dashboard-original.js +0 -4134
  390. claude_mpm/deployment_paths.py +0 -261
  391. claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -454
  392. claude_mpm/models/state_models.py +0 -433
  393. claude_mpm/services/agent/__init__.py +0 -24
  394. claude_mpm/services/agent/deployment.py +0 -2548
  395. claude_mpm/services/agent/management.py +0 -598
  396. claude_mpm/services/agent/registry.py +0 -813
  397. claude_mpm/services/agents/registry/agent_registry.py +0 -813
  398. claude_mpm/services/communication/socketio.py +0 -1935
  399. claude_mpm/services/communication/websocket.py +0 -479
  400. claude_mpm/services/framework_claude_md_generator.py +0 -624
  401. claude_mpm/services/health_monitor.py +0 -893
  402. claude_mpm/services/infrastructure/graceful_degradation.py +0 -616
  403. claude_mpm/services/infrastructure/health_monitor.py +0 -775
  404. claude_mpm/services/infrastructure/memory_dashboard.py +0 -479
  405. claude_mpm/services/infrastructure/memory_guardian.py +0 -944
  406. claude_mpm/services/infrastructure/restart_protection.py +0 -642
  407. claude_mpm/services/infrastructure/state_manager.py +0 -774
  408. claude_mpm/services/mcp_gateway/manager.py +0 -334
  409. claude_mpm/services/optimized_hook_service.py +0 -542
  410. claude_mpm/services/project_analyzer.py +0 -864
  411. claude_mpm/services/project_registry.py +0 -608
  412. claude_mpm/services/standalone_socketio_server.py +0 -1300
  413. claude_mpm/services/ticket_manager_di.py +0 -318
  414. claude_mpm/services/ticketing_service_original.py +0 -510
  415. claude_mpm/utils/paths.py +0 -395
  416. claude_mpm/utils/platform_memory.py +0 -524
  417. claude_mpm-3.9.11.dist-info/RECORD +0 -306
  418. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.3.dist-info}/WHEEL +0 -0
  419. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.3.dist-info}/top_level.txt +0 -0
@@ -8,55 +8,52 @@ Provides backward compatibility while enabling advanced features.
8
8
  """
9
9
 
10
10
  import logging
11
- from typing import Optional, Dict, Any
11
+ from typing import Any, Dict, Optional
12
12
 
13
- from .agent_loader import (
14
- load_agent_prompt_from_md,
15
- get_agent_prompt
16
- )
17
- from ..services import AgentManager
18
13
  from ..models.agent_definition import AgentDefinition
14
+ from ..services import AgentManager
15
+ from .agent_loader import get_agent_prompt, load_agent_prompt_from_md
19
16
 
20
17
  logger = logging.getLogger(__name__)
21
18
 
22
19
 
23
20
  class EnhancedAgentLoader:
24
21
  """Enhanced agent loader with management capabilities."""
25
-
22
+
26
23
  def __init__(self):
27
24
  """Initialize enhanced loader."""
28
25
  self.manager = AgentManager()
29
-
26
+
30
27
  def get_agent_definition(self, agent_name: str) -> Optional[AgentDefinition]:
31
28
  """
32
29
  Get full agent definition with structured data.
33
-
30
+
34
31
  Args:
35
32
  agent_name: Agent name (e.g., 'documentation', 'ticketing')
36
-
33
+
37
34
  Returns:
38
35
  AgentDefinition or None
39
36
  """
40
37
  # Map from old naming to new naming if needed
41
38
  # Since AGENT_MAPPINGS no longer exists, use direct naming
42
39
  agent_file_name = agent_name
43
-
40
+
44
41
  return self.manager.read_agent(agent_file_name)
45
-
42
+
46
43
  def get_agent_metadata(self, agent_name: str) -> Optional[Dict[str, Any]]:
47
44
  """
48
45
  Get agent metadata only.
49
-
46
+
50
47
  Args:
51
48
  agent_name: Agent name
52
-
49
+
53
50
  Returns:
54
51
  Metadata dict or None
55
52
  """
56
53
  agent_def = self.get_agent_definition(agent_name)
57
54
  if not agent_def:
58
55
  return None
59
-
56
+
60
57
  return {
61
58
  "name": agent_def.name,
62
59
  "title": agent_def.title,
@@ -64,80 +61,83 @@ class EnhancedAgentLoader:
64
61
  "type": agent_def.metadata.type.value,
65
62
  "model_preference": agent_def.metadata.model_preference,
66
63
  "specializations": agent_def.metadata.specializations,
67
- "last_updated": agent_def.metadata.last_updated.isoformat()
68
- if agent_def.metadata.last_updated else None
64
+ "last_updated": (
65
+ agent_def.metadata.last_updated.isoformat()
66
+ if agent_def.metadata.last_updated
67
+ else None
68
+ ),
69
69
  }
70
-
70
+
71
71
  def get_agent_capabilities(self, agent_name: str) -> Optional[Dict[str, Any]]:
72
72
  """
73
73
  Get agent capabilities and permissions.
74
-
74
+
75
75
  Args:
76
76
  agent_name: Agent name
77
-
77
+
78
78
  Returns:
79
79
  Capabilities dict or None
80
80
  """
81
81
  agent_def = self.get_agent_definition(agent_name)
82
82
  if not agent_def:
83
83
  return None
84
-
84
+
85
85
  return {
86
86
  "capabilities": agent_def.capabilities,
87
87
  "authority": {
88
88
  "write_access": agent_def.authority.exclusive_write_access,
89
89
  "forbidden": agent_def.authority.forbidden_operations,
90
- "read_access": agent_def.authority.read_access
90
+ "read_access": agent_def.authority.read_access,
91
91
  },
92
92
  "workflows": [w.name for w in agent_def.workflows],
93
- "tools_available": bool(agent_def.tools_commands)
93
+ "tools_available": bool(agent_def.tools_commands),
94
94
  }
95
-
95
+
96
96
  def get_agent_selection_criteria(self, agent_name: str) -> Optional[Dict[str, Any]]:
97
97
  """
98
98
  Get agent selection criteria for routing.
99
-
99
+
100
100
  Args:
101
101
  agent_name: Agent name
102
-
102
+
103
103
  Returns:
104
104
  Selection criteria dict or None
105
105
  """
106
106
  agent_def = self.get_agent_definition(agent_name)
107
107
  if not agent_def:
108
108
  return None
109
-
109
+
110
110
  return {
111
111
  "when_to_select": agent_def.when_to_use.get("select", []),
112
112
  "when_not_to_select": agent_def.when_to_use.get("do_not_select", []),
113
113
  "specializations": agent_def.metadata.specializations,
114
114
  "dependencies": agent_def.dependencies,
115
- "escalation_triggers": agent_def.escalation_triggers
115
+ "escalation_triggers": agent_def.escalation_triggers,
116
116
  }
117
-
117
+
118
118
  def update_agent_version(self, agent_name: str) -> bool:
119
119
  """
120
120
  Increment agent version (serial).
121
-
121
+
122
122
  Args:
123
123
  agent_name: Agent name
124
-
124
+
125
125
  Returns:
126
126
  True if updated, False otherwise
127
127
  """
128
128
  # Map name - since AGENT_MAPPINGS no longer exists, use direct naming
129
129
  agent_file_name = agent_name
130
-
130
+
131
131
  result = self.manager.update_agent(agent_file_name, {}, increment_version=True)
132
132
  return result is not None
133
-
133
+
134
134
  def refresh_agent_prompt(self, agent_name: str) -> str:
135
135
  """
136
136
  Force refresh agent prompt from file.
137
-
137
+
138
138
  Args:
139
139
  agent_name: Agent name
140
-
140
+
141
141
  Returns:
142
142
  Agent prompt with base instructions
143
143
  """
@@ -174,7 +174,7 @@ def check_agent_capability(agent_name: str, capability_keyword: str) -> bool:
174
174
  caps = get_enhanced_loader().get_agent_capabilities(agent_name)
175
175
  if not caps:
176
176
  return False
177
-
177
+
178
178
  # Check in capabilities list
179
179
  for cap in caps["capabilities"]:
180
180
  if capability_keyword.lower() in cap.lower():
@@ -185,42 +185,42 @@ def check_agent_capability(agent_name: str, capability_keyword: str) -> bool:
185
185
  def should_select_agent(agent_name: str, task_description: str) -> Dict[str, Any]:
186
186
  """
187
187
  Determine if an agent should be selected for a task.
188
-
188
+
189
189
  Args:
190
190
  agent_name: Agent name
191
191
  task_description: Task description
192
-
192
+
193
193
  Returns:
194
194
  Dict with selection recommendation and reasons
195
195
  """
196
196
  criteria = get_enhanced_loader().get_agent_selection_criteria(agent_name)
197
197
  if not criteria:
198
198
  return {"should_select": False, "reason": "Agent not found"}
199
-
199
+
200
200
  task_lower = task_description.lower()
201
-
201
+
202
202
  # Check positive matches
203
203
  positive_matches = []
204
204
  for criterion in criteria["when_to_select"]:
205
205
  # Extract keywords from criterion
206
206
  if "Keywords:" in criterion:
207
207
  keywords = criterion.split("Keywords:")[1].strip()
208
- for keyword in keywords.split(','):
208
+ for keyword in keywords.split(","):
209
209
  keyword = keyword.strip().strip('"').strip("'")
210
210
  if keyword.lower() in task_lower:
211
211
  positive_matches.append(f"Keyword match: {keyword}")
212
212
  elif any(word in task_lower for word in criterion.lower().split()):
213
213
  positive_matches.append(f"Criterion match: {criterion[:50]}...")
214
-
214
+
215
215
  # Check negative matches
216
216
  negative_matches = []
217
217
  for criterion in criteria["when_not_to_select"]:
218
218
  if any(word in task_lower for word in criterion.lower().split()[:5]):
219
219
  negative_matches.append(f"Exclusion: {criterion[:50]}...")
220
-
220
+
221
221
  return {
222
222
  "should_select": len(positive_matches) > 0 and len(negative_matches) == 0,
223
223
  "positive_matches": positive_matches,
224
224
  "negative_matches": negative_matches,
225
- "specializations": criteria["specializations"]
226
- }
225
+ "specializations": criteria["specializations"],
226
+ }
@@ -19,17 +19,16 @@ DOCUMENTATION_CONFIG = {
19
19
  "api_documentation",
20
20
  "version_documentation",
21
21
  "operational_docs",
22
- "quality_assurance"
22
+ "quality_assurance",
23
23
  ],
24
24
  "primary_interface": "documentation_management",
25
25
  "performance_targets": {
26
26
  "changelog_generation": "5m",
27
27
  "documentation_update": "24h",
28
- "coverage_target": "90%"
29
- }
28
+ "coverage_target": "90%",
29
+ },
30
30
  }
31
31
 
32
-
33
32
  # Version Control Agent Metadata
34
33
  VERSION_CONTROL_CONFIG = {
35
34
  "name": "version_control_agent",
@@ -42,15 +41,15 @@ VERSION_CONTROL_CONFIG = {
42
41
  "semantic_versioning",
43
42
  "tag_management",
44
43
  "release_coordination",
45
- "version_file_updates"
44
+ "version_file_updates",
46
45
  ],
47
46
  "primary_interface": "git_cli",
48
47
  "performance_targets": {
49
48
  "branch_creation": "5s",
50
49
  "merge_operation": "30s",
51
50
  "version_bump": "10s",
52
- "conflict_resolution": "5m"
53
- }
51
+ "conflict_resolution": "5m",
52
+ },
54
53
  }
55
54
 
56
55
  # QA Agent Metadata
@@ -65,15 +64,15 @@ QA_CONFIG = {
65
64
  "performance_testing",
66
65
  "security_testing",
67
66
  "regression_testing",
68
- "test_automation"
67
+ "test_automation",
69
68
  ],
70
69
  "primary_interface": "testing_framework",
71
70
  "performance_targets": {
72
71
  "unit_test_suite": "5m",
73
72
  "integration_tests": "15m",
74
73
  "full_test_suite": "30m",
75
- "coverage_target": "80%"
76
- }
74
+ "coverage_target": "80%",
75
+ },
77
76
  }
78
77
 
79
78
  # Research Agent Metadata
@@ -88,14 +87,14 @@ RESEARCH_CONFIG = {
88
87
  "performance_analysis",
89
88
  "security_research",
90
89
  "market_analysis",
91
- "feasibility_studies"
90
+ "feasibility_studies",
92
91
  ],
93
92
  "primary_interface": "research_tools",
94
93
  "performance_targets": {
95
94
  "quick_research": "15m",
96
95
  "deep_analysis": "2h",
97
- "comprehensive_report": "24h"
98
- }
96
+ "comprehensive_report": "24h",
97
+ },
99
98
  }
100
99
 
101
100
  # Ops Agent Metadata
@@ -110,15 +109,15 @@ OPS_CONFIG = {
110
109
  "ci_cd_pipeline",
111
110
  "containerization",
112
111
  "cloud_services",
113
- "performance_optimization"
112
+ "performance_optimization",
114
113
  ],
115
114
  "primary_interface": "deployment_tools",
116
115
  "performance_targets": {
117
116
  "deployment": "10m",
118
117
  "rollback": "5m",
119
118
  "infrastructure_update": "30m",
120
- "monitoring_setup": "1h"
121
- }
119
+ "monitoring_setup": "1h",
120
+ },
122
121
  }
123
122
 
124
123
  # Security Agent Metadata
@@ -133,15 +132,15 @@ SECURITY_CONFIG = {
133
132
  "code_security_review",
134
133
  "dependency_scanning",
135
134
  "security_patching",
136
- "compliance_checking"
135
+ "compliance_checking",
137
136
  ],
138
137
  "primary_interface": "security_tools",
139
138
  "performance_targets": {
140
139
  "quick_scan": "10m",
141
140
  "full_audit": "2h",
142
141
  "penetration_test": "4h",
143
- "dependency_scan": "30m"
144
- }
142
+ "dependency_scan": "30m",
143
+ },
145
144
  }
146
145
 
147
146
  # Engineer Agent Metadata
@@ -156,15 +155,15 @@ ENGINEER_CONFIG = {
156
155
  "code_refactoring",
157
156
  "performance_optimization",
158
157
  "api_development",
159
- "database_design"
158
+ "database_design",
160
159
  ],
161
160
  "primary_interface": "development_tools",
162
161
  "performance_targets": {
163
162
  "feature_implementation": "4h",
164
163
  "bug_fix": "1h",
165
164
  "code_review": "30m",
166
- "refactoring": "2h"
167
- }
165
+ "refactoring": "2h",
166
+ },
168
167
  }
169
168
 
170
169
  # Data Engineer Agent Metadata
@@ -180,15 +179,15 @@ DATA_ENGINEER_CONFIG = {
180
179
  "data_migration",
181
180
  "api_key_management",
182
181
  "data_analytics",
183
- "schema_design"
182
+ "schema_design",
184
183
  ],
185
184
  "primary_interface": "data_management_tools",
186
185
  "performance_targets": {
187
186
  "pipeline_setup": "2h",
188
187
  "data_migration": "4h",
189
188
  "api_integration": "1h",
190
- "schema_update": "30m"
191
- }
189
+ "schema_update": "30m",
190
+ },
192
191
  }
193
192
 
194
193
  # Project Organizer Agent Metadata
@@ -203,15 +202,15 @@ PROJECT_ORGANIZER_CONFIG = {
203
202
  "convention_enforcement",
204
203
  "batch_reorganization",
205
204
  "framework_recognition",
206
- "documentation_maintenance"
205
+ "documentation_maintenance",
207
206
  ],
208
207
  "primary_interface": "organization_tools",
209
208
  "performance_targets": {
210
209
  "structure_analysis": "2m",
211
210
  "file_placement": "10s",
212
211
  "validation_scan": "5m",
213
- "batch_reorganization": "15m"
214
- }
212
+ "batch_reorganization": "15m",
213
+ },
215
214
  }
216
215
 
217
216
  # Aggregate all configs for easy access
@@ -224,5 +223,5 @@ ALL_AGENT_CONFIGS = {
224
223
  "security": SECURITY_CONFIG,
225
224
  "engineer": ENGINEER_CONFIG,
226
225
  "data_engineer": DATA_ENGINEER_CONFIG,
227
- "project_organizer": PROJECT_ORGANIZER_CONFIG
228
- }
226
+ "project_organizer": PROJECT_ORGANIZER_CONFIG,
227
+ }