claude-mpm 3.9.11__py3-none-any.whl → 4.0.4__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 (434) 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 +2 -2
  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 +330 -86
  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 +363 -220
  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 +124 -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/built/components/agent-inference.js +2 -0
  113. claude_mpm/dashboard/static/built/components/event-processor.js +2 -0
  114. claude_mpm/dashboard/static/built/components/event-viewer.js +2 -0
  115. claude_mpm/dashboard/static/built/components/export-manager.js +2 -0
  116. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +2 -0
  117. claude_mpm/dashboard/static/built/components/hud-library-loader.js +2 -0
  118. claude_mpm/dashboard/static/built/components/hud-manager.js +2 -0
  119. claude_mpm/dashboard/static/built/components/hud-visualizer.js +2 -0
  120. claude_mpm/dashboard/static/built/components/module-viewer.js +2 -0
  121. claude_mpm/dashboard/static/built/components/session-manager.js +2 -0
  122. claude_mpm/dashboard/static/built/components/socket-manager.js +2 -0
  123. claude_mpm/dashboard/static/built/components/ui-state-manager.js +2 -0
  124. claude_mpm/dashboard/static/built/components/working-directory.js +2 -0
  125. claude_mpm/dashboard/static/built/dashboard.js +2 -0
  126. claude_mpm/dashboard/static/built/socket-client.js +2 -0
  127. claude_mpm/dashboard/static/css/dashboard.css +27 -8
  128. claude_mpm/dashboard/static/dist/components/agent-inference.js +2 -0
  129. claude_mpm/dashboard/static/dist/components/event-processor.js +2 -0
  130. claude_mpm/dashboard/static/dist/components/event-viewer.js +2 -0
  131. claude_mpm/dashboard/static/dist/components/export-manager.js +2 -0
  132. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +2 -0
  133. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +2 -0
  134. claude_mpm/dashboard/static/dist/components/hud-manager.js +2 -0
  135. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +2 -0
  136. claude_mpm/dashboard/static/dist/components/module-viewer.js +2 -0
  137. claude_mpm/dashboard/static/dist/components/session-manager.js +2 -0
  138. claude_mpm/dashboard/static/dist/components/socket-manager.js +2 -0
  139. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +2 -0
  140. claude_mpm/dashboard/static/dist/components/working-directory.js +2 -0
  141. claude_mpm/dashboard/static/dist/dashboard.js +2 -0
  142. claude_mpm/dashboard/static/dist/socket-client.js +2 -0
  143. claude_mpm/dashboard/static/js/components/agent-inference.js +80 -76
  144. claude_mpm/dashboard/static/js/components/event-processor.js +71 -67
  145. claude_mpm/dashboard/static/js/components/event-viewer.js +93 -72
  146. claude_mpm/dashboard/static/js/components/export-manager.js +31 -28
  147. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +110 -96
  148. claude_mpm/dashboard/static/js/components/hud-library-loader.js +11 -11
  149. claude_mpm/dashboard/static/js/components/hud-manager.js +73 -73
  150. claude_mpm/dashboard/static/js/components/hud-visualizer.js +163 -163
  151. claude_mpm/dashboard/static/js/components/module-viewer.js +305 -233
  152. claude_mpm/dashboard/static/js/components/session-manager.js +32 -29
  153. claude_mpm/dashboard/static/js/components/socket-manager.js +27 -20
  154. claude_mpm/dashboard/static/js/components/ui-state-manager.js +21 -18
  155. claude_mpm/dashboard/static/js/components/working-directory.js +74 -71
  156. claude_mpm/dashboard/static/js/dashboard.js +178 -453
  157. claude_mpm/dashboard/static/js/extension-error-handler.js +164 -0
  158. claude_mpm/dashboard/static/js/socket-client.js +133 -53
  159. claude_mpm/dashboard/templates/index.html +40 -50
  160. claude_mpm/experimental/cli_enhancements.py +60 -58
  161. claude_mpm/generators/__init__.py +1 -1
  162. claude_mpm/generators/agent_profile_generator.py +75 -65
  163. claude_mpm/hooks/__init__.py +1 -1
  164. claude_mpm/hooks/base_hook.py +33 -28
  165. claude_mpm/hooks/claude_hooks/__init__.py +1 -1
  166. claude_mpm/hooks/claude_hooks/connection_pool.py +120 -0
  167. claude_mpm/hooks/claude_hooks/event_handlers.py +743 -0
  168. claude_mpm/hooks/claude_hooks/hook_handler.py +415 -1331
  169. claude_mpm/hooks/claude_hooks/hook_wrapper.sh +4 -4
  170. claude_mpm/hooks/claude_hooks/memory_integration.py +221 -0
  171. claude_mpm/hooks/claude_hooks/response_tracking.py +348 -0
  172. claude_mpm/hooks/claude_hooks/tool_analysis.py +230 -0
  173. claude_mpm/hooks/memory_integration_hook.py +140 -100
  174. claude_mpm/hooks/tool_call_interceptor.py +89 -76
  175. claude_mpm/hooks/validation_hooks.py +57 -49
  176. claude_mpm/init.py +145 -121
  177. claude_mpm/models/__init__.py +9 -9
  178. claude_mpm/models/agent_definition.py +33 -23
  179. claude_mpm/models/agent_session.py +228 -200
  180. claude_mpm/scripts/__init__.py +1 -1
  181. claude_mpm/scripts/socketio_daemon.py +192 -75
  182. claude_mpm/scripts/socketio_server_manager.py +328 -0
  183. claude_mpm/scripts/start_activity_logging.py +25 -22
  184. claude_mpm/services/__init__.py +68 -43
  185. claude_mpm/services/agent_capabilities_service.py +271 -0
  186. claude_mpm/services/agents/__init__.py +23 -32
  187. claude_mpm/services/agents/deployment/__init__.py +3 -3
  188. claude_mpm/services/agents/deployment/agent_config_provider.py +310 -0
  189. claude_mpm/services/agents/deployment/agent_configuration_manager.py +359 -0
  190. claude_mpm/services/agents/deployment/agent_definition_factory.py +84 -0
  191. claude_mpm/services/agents/deployment/agent_deployment.py +415 -2113
  192. claude_mpm/services/agents/deployment/agent_discovery_service.py +387 -0
  193. claude_mpm/services/agents/deployment/agent_environment_manager.py +293 -0
  194. claude_mpm/services/agents/deployment/agent_filesystem_manager.py +387 -0
  195. claude_mpm/services/agents/deployment/agent_format_converter.py +453 -0
  196. claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +161 -0
  197. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +345 -495
  198. claude_mpm/services/agents/deployment/agent_metrics_collector.py +279 -0
  199. claude_mpm/services/agents/deployment/agent_restore_handler.py +88 -0
  200. claude_mpm/services/agents/deployment/agent_template_builder.py +406 -0
  201. claude_mpm/services/agents/deployment/agent_validator.py +352 -0
  202. claude_mpm/services/agents/deployment/agent_version_manager.py +313 -0
  203. claude_mpm/services/agents/deployment/agent_versioning.py +6 -9
  204. claude_mpm/services/agents/deployment/agents_directory_resolver.py +79 -0
  205. claude_mpm/services/agents/deployment/async_agent_deployment.py +298 -234
  206. claude_mpm/services/agents/deployment/config/__init__.py +13 -0
  207. claude_mpm/services/agents/deployment/config/deployment_config.py +182 -0
  208. claude_mpm/services/agents/deployment/config/deployment_config_manager.py +200 -0
  209. claude_mpm/services/agents/deployment/deployment_config_loader.py +54 -0
  210. claude_mpm/services/agents/deployment/deployment_type_detector.py +124 -0
  211. claude_mpm/services/agents/deployment/facade/__init__.py +18 -0
  212. claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +159 -0
  213. claude_mpm/services/agents/deployment/facade/deployment_executor.py +73 -0
  214. claude_mpm/services/agents/deployment/facade/deployment_facade.py +270 -0
  215. claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +178 -0
  216. claude_mpm/services/agents/deployment/interface_adapter.py +227 -0
  217. claude_mpm/services/agents/deployment/lifecycle_health_checker.py +85 -0
  218. claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +100 -0
  219. claude_mpm/services/agents/deployment/pipeline/__init__.py +32 -0
  220. claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +158 -0
  221. claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +159 -0
  222. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +169 -0
  223. claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +19 -0
  224. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +195 -0
  225. claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +119 -0
  226. claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +79 -0
  227. claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +90 -0
  228. claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +100 -0
  229. claude_mpm/services/agents/deployment/processors/__init__.py +15 -0
  230. claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +98 -0
  231. claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +235 -0
  232. claude_mpm/services/agents/deployment/processors/agent_processor.py +258 -0
  233. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +318 -0
  234. claude_mpm/services/agents/deployment/results/__init__.py +13 -0
  235. claude_mpm/services/agents/deployment/results/deployment_metrics.py +200 -0
  236. claude_mpm/services/agents/deployment/results/deployment_result_builder.py +249 -0
  237. claude_mpm/services/agents/deployment/strategies/__init__.py +25 -0
  238. claude_mpm/services/agents/deployment/strategies/base_strategy.py +119 -0
  239. claude_mpm/services/agents/deployment/strategies/project_strategy.py +150 -0
  240. claude_mpm/services/agents/deployment/strategies/strategy_selector.py +117 -0
  241. claude_mpm/services/agents/deployment/strategies/system_strategy.py +116 -0
  242. claude_mpm/services/agents/deployment/strategies/user_strategy.py +137 -0
  243. claude_mpm/services/agents/deployment/system_instructions_deployer.py +108 -0
  244. claude_mpm/services/agents/deployment/validation/__init__.py +19 -0
  245. claude_mpm/services/agents/deployment/validation/agent_validator.py +323 -0
  246. claude_mpm/services/agents/deployment/validation/deployment_validator.py +238 -0
  247. claude_mpm/services/agents/deployment/validation/template_validator.py +299 -0
  248. claude_mpm/services/agents/deployment/validation/validation_result.py +226 -0
  249. claude_mpm/services/agents/loading/__init__.py +2 -2
  250. claude_mpm/services/agents/loading/agent_profile_loader.py +259 -229
  251. claude_mpm/services/agents/loading/base_agent_manager.py +90 -81
  252. claude_mpm/services/agents/loading/framework_agent_loader.py +154 -129
  253. claude_mpm/services/agents/management/__init__.py +2 -2
  254. claude_mpm/services/agents/management/agent_capabilities_generator.py +72 -58
  255. claude_mpm/services/agents/management/agent_management_service.py +209 -156
  256. claude_mpm/services/agents/memory/__init__.py +9 -6
  257. claude_mpm/services/agents/memory/agent_memory_manager.py +218 -1152
  258. claude_mpm/services/agents/memory/agent_persistence_service.py +20 -16
  259. claude_mpm/services/agents/memory/analyzer.py +430 -0
  260. claude_mpm/services/agents/memory/content_manager.py +376 -0
  261. claude_mpm/services/agents/memory/template_generator.py +468 -0
  262. claude_mpm/services/agents/registry/__init__.py +7 -10
  263. claude_mpm/services/agents/registry/deployed_agent_discovery.py +122 -97
  264. claude_mpm/services/agents/registry/modification_tracker.py +351 -285
  265. claude_mpm/services/async_session_logger.py +187 -153
  266. claude_mpm/services/claude_session_logger.py +87 -72
  267. claude_mpm/services/command_handler_service.py +217 -0
  268. claude_mpm/services/communication/__init__.py +3 -2
  269. claude_mpm/services/core/__init__.py +50 -97
  270. claude_mpm/services/core/base.py +60 -53
  271. claude_mpm/services/core/interfaces/__init__.py +188 -0
  272. claude_mpm/services/core/interfaces/agent.py +351 -0
  273. claude_mpm/services/core/interfaces/communication.py +343 -0
  274. claude_mpm/services/core/interfaces/infrastructure.py +413 -0
  275. claude_mpm/services/core/interfaces/service.py +434 -0
  276. claude_mpm/services/core/interfaces.py +19 -944
  277. claude_mpm/services/event_aggregator.py +208 -170
  278. claude_mpm/services/exceptions.py +387 -308
  279. claude_mpm/services/framework_claude_md_generator/__init__.py +75 -79
  280. claude_mpm/services/framework_claude_md_generator/content_assembler.py +69 -60
  281. claude_mpm/services/framework_claude_md_generator/content_validator.py +65 -61
  282. claude_mpm/services/framework_claude_md_generator/deployment_manager.py +68 -49
  283. claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +34 -34
  284. claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +25 -22
  285. claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +10 -10
  286. claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +4 -3
  287. claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +4 -3
  288. claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +4 -3
  289. claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +6 -5
  290. claude_mpm/services/framework_claude_md_generator/section_generators/header.py +8 -7
  291. claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +4 -3
  292. claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +6 -5
  293. claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +9 -8
  294. claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +4 -3
  295. claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +5 -4
  296. claude_mpm/services/framework_claude_md_generator/section_manager.py +28 -27
  297. claude_mpm/services/framework_claude_md_generator/version_manager.py +30 -28
  298. claude_mpm/services/hook_service.py +106 -114
  299. claude_mpm/services/infrastructure/__init__.py +7 -5
  300. claude_mpm/services/infrastructure/context_preservation.py +233 -199
  301. claude_mpm/services/infrastructure/daemon_manager.py +279 -0
  302. claude_mpm/services/infrastructure/logging.py +83 -76
  303. claude_mpm/services/infrastructure/monitoring.py +547 -404
  304. claude_mpm/services/mcp_gateway/__init__.py +30 -13
  305. claude_mpm/services/mcp_gateway/config/__init__.py +2 -2
  306. claude_mpm/services/mcp_gateway/config/config_loader.py +61 -56
  307. claude_mpm/services/mcp_gateway/config/config_schema.py +50 -41
  308. claude_mpm/services/mcp_gateway/config/configuration.py +82 -75
  309. claude_mpm/services/mcp_gateway/core/__init__.py +13 -20
  310. claude_mpm/services/mcp_gateway/core/base.py +80 -67
  311. claude_mpm/services/mcp_gateway/core/exceptions.py +60 -46
  312. claude_mpm/services/mcp_gateway/core/interfaces.py +87 -84
  313. claude_mpm/services/mcp_gateway/main.py +287 -137
  314. claude_mpm/services/mcp_gateway/registry/__init__.py +1 -1
  315. claude_mpm/services/mcp_gateway/registry/service_registry.py +97 -94
  316. claude_mpm/services/mcp_gateway/registry/tool_registry.py +135 -126
  317. claude_mpm/services/mcp_gateway/server/__init__.py +2 -2
  318. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +105 -110
  319. claude_mpm/services/mcp_gateway/server/stdio_handler.py +105 -107
  320. claude_mpm/services/mcp_gateway/server/stdio_server.py +691 -0
  321. claude_mpm/services/mcp_gateway/tools/__init__.py +4 -2
  322. claude_mpm/services/mcp_gateway/tools/base_adapter.py +109 -119
  323. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +283 -215
  324. claude_mpm/services/mcp_gateway/tools/hello_world.py +122 -120
  325. claude_mpm/services/mcp_gateway/tools/ticket_tools.py +652 -0
  326. claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +606 -0
  327. claude_mpm/services/memory/__init__.py +2 -2
  328. claude_mpm/services/memory/builder.py +451 -362
  329. claude_mpm/services/memory/cache/__init__.py +2 -2
  330. claude_mpm/services/memory/cache/shared_prompt_cache.py +232 -194
  331. claude_mpm/services/memory/cache/simple_cache.py +107 -93
  332. claude_mpm/services/memory/indexed_memory.py +195 -193
  333. claude_mpm/services/memory/optimizer.py +267 -234
  334. claude_mpm/services/memory/router.py +571 -263
  335. claude_mpm/services/memory_hook_service.py +237 -0
  336. claude_mpm/services/port_manager.py +575 -0
  337. claude_mpm/services/project/__init__.py +3 -3
  338. claude_mpm/services/project/analyzer.py +451 -305
  339. claude_mpm/services/project/registry.py +262 -240
  340. claude_mpm/services/recovery_manager.py +287 -231
  341. claude_mpm/services/response_tracker.py +87 -67
  342. claude_mpm/services/runner_configuration_service.py +587 -0
  343. claude_mpm/services/session_management_service.py +304 -0
  344. claude_mpm/services/socketio/__init__.py +4 -4
  345. claude_mpm/services/socketio/client_proxy.py +174 -0
  346. claude_mpm/services/socketio/handlers/__init__.py +3 -3
  347. claude_mpm/services/socketio/handlers/base.py +44 -30
  348. claude_mpm/services/socketio/handlers/connection.py +166 -64
  349. claude_mpm/services/socketio/handlers/file.py +123 -108
  350. claude_mpm/services/socketio/handlers/git.py +607 -373
  351. claude_mpm/services/socketio/handlers/hook.py +185 -0
  352. claude_mpm/services/socketio/handlers/memory.py +4 -4
  353. claude_mpm/services/socketio/handlers/project.py +4 -4
  354. claude_mpm/services/socketio/handlers/registry.py +53 -38
  355. claude_mpm/services/socketio/server/__init__.py +18 -0
  356. claude_mpm/services/socketio/server/broadcaster.py +252 -0
  357. claude_mpm/services/socketio/server/core.py +399 -0
  358. claude_mpm/services/socketio/server/main.py +323 -0
  359. claude_mpm/services/socketio_client_manager.py +160 -133
  360. claude_mpm/services/socketio_server.py +36 -1885
  361. claude_mpm/services/subprocess_launcher_service.py +316 -0
  362. claude_mpm/services/system_instructions_service.py +258 -0
  363. claude_mpm/services/ticket_manager.py +19 -533
  364. claude_mpm/services/utility_service.py +285 -0
  365. claude_mpm/services/version_control/__init__.py +18 -21
  366. claude_mpm/services/version_control/branch_strategy.py +20 -10
  367. claude_mpm/services/version_control/conflict_resolution.py +37 -13
  368. claude_mpm/services/version_control/git_operations.py +52 -21
  369. claude_mpm/services/version_control/semantic_versioning.py +92 -53
  370. claude_mpm/services/version_control/version_parser.py +145 -125
  371. claude_mpm/services/version_service.py +270 -0
  372. claude_mpm/storage/__init__.py +2 -2
  373. claude_mpm/storage/state_storage.py +177 -181
  374. claude_mpm/ticket_wrapper.py +2 -2
  375. claude_mpm/utils/__init__.py +2 -2
  376. claude_mpm/utils/agent_dependency_loader.py +453 -243
  377. claude_mpm/utils/config_manager.py +157 -118
  378. claude_mpm/utils/console.py +1 -1
  379. claude_mpm/utils/dependency_cache.py +102 -107
  380. claude_mpm/utils/dependency_manager.py +52 -47
  381. claude_mpm/utils/dependency_strategies.py +131 -96
  382. claude_mpm/utils/environment_context.py +110 -102
  383. claude_mpm/utils/error_handler.py +75 -55
  384. claude_mpm/utils/file_utils.py +80 -67
  385. claude_mpm/utils/framework_detection.py +12 -11
  386. claude_mpm/utils/import_migration_example.py +12 -60
  387. claude_mpm/utils/imports.py +48 -45
  388. claude_mpm/utils/path_operations.py +100 -93
  389. claude_mpm/utils/robust_installer.py +172 -164
  390. claude_mpm/utils/session_logging.py +30 -23
  391. claude_mpm/utils/subprocess_utils.py +99 -61
  392. claude_mpm/validation/__init__.py +1 -1
  393. claude_mpm/validation/agent_validator.py +151 -111
  394. claude_mpm/validation/frontmatter_validator.py +92 -71
  395. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.4.dist-info}/METADATA +90 -22
  396. claude_mpm-4.0.4.dist-info/RECORD +417 -0
  397. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.4.dist-info}/entry_points.txt +1 -0
  398. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.4.dist-info}/licenses/LICENSE +1 -1
  399. claude_mpm/cli/commands/run_guarded.py +0 -511
  400. claude_mpm/config/memory_guardian_config.py +0 -325
  401. claude_mpm/config/memory_guardian_yaml.py +0 -335
  402. claude_mpm/core/config_paths.py +0 -150
  403. claude_mpm/core/memory_aware_runner.py +0 -353
  404. claude_mpm/dashboard/static/js/dashboard-original.js +0 -4134
  405. claude_mpm/deployment_paths.py +0 -261
  406. claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -454
  407. claude_mpm/models/state_models.py +0 -433
  408. claude_mpm/services/agent/__init__.py +0 -24
  409. claude_mpm/services/agent/deployment.py +0 -2548
  410. claude_mpm/services/agent/management.py +0 -598
  411. claude_mpm/services/agent/registry.py +0 -813
  412. claude_mpm/services/agents/registry/agent_registry.py +0 -813
  413. claude_mpm/services/communication/socketio.py +0 -1935
  414. claude_mpm/services/communication/websocket.py +0 -479
  415. claude_mpm/services/framework_claude_md_generator.py +0 -624
  416. claude_mpm/services/health_monitor.py +0 -893
  417. claude_mpm/services/infrastructure/graceful_degradation.py +0 -616
  418. claude_mpm/services/infrastructure/health_monitor.py +0 -775
  419. claude_mpm/services/infrastructure/memory_dashboard.py +0 -479
  420. claude_mpm/services/infrastructure/memory_guardian.py +0 -944
  421. claude_mpm/services/infrastructure/restart_protection.py +0 -642
  422. claude_mpm/services/infrastructure/state_manager.py +0 -774
  423. claude_mpm/services/mcp_gateway/manager.py +0 -334
  424. claude_mpm/services/optimized_hook_service.py +0 -542
  425. claude_mpm/services/project_analyzer.py +0 -864
  426. claude_mpm/services/project_registry.py +0 -608
  427. claude_mpm/services/standalone_socketio_server.py +0 -1300
  428. claude_mpm/services/ticket_manager_di.py +0 -318
  429. claude_mpm/services/ticketing_service_original.py +0 -510
  430. claude_mpm/utils/paths.py +0 -395
  431. claude_mpm/utils/platform_memory.py +0 -524
  432. claude_mpm-3.9.11.dist-info/RECORD +0 -306
  433. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.4.dist-info}/WHEEL +0 -0
  434. {claude_mpm-3.9.11.dist-info → claude_mpm-4.0.4.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,5 @@
1
+ from pathlib import Path
2
+
1
3
  """
2
4
  Agents section generator for framework CLAUDE.md.
3
5
 
@@ -5,13 +7,14 @@ This is the largest section generator, containing all agent definitions,
5
7
  hierarchy, delegation patterns, and registry integration documentation.
6
8
  """
7
9
 
8
- from typing import Dict, Any
10
+ from typing import Any, Dict
11
+
9
12
  from . import BaseSectionGenerator
10
13
 
11
14
 
12
15
  class AgentsGenerator(BaseSectionGenerator):
13
16
  """Generates the comprehensive Agents section."""
14
-
17
+
15
18
  def generate(self, data: Dict[str, Any]) -> str:
16
19
  """Generate the agents section."""
17
20
  return """
@@ -251,7 +254,7 @@ TEMPORAL CONTEXT: Today is [current date]. Apply date awareness to:
251
254
  **Dynamic Agent Selection Pattern:**
252
255
  ```python
253
256
  # Enhanced delegation with registry discovery
254
- registry = AgentRegistry()
257
+ registry = get_agent_registry()
255
258
 
256
259
  # Task-specific agent discovery
257
260
  task_type = "performance_optimization"
@@ -356,10 +359,10 @@ TEMPORAL CONTEXT: Today is [date]. Apply date awareness to data operations.
356
359
 
357
360
  **Comprehensive Agent Discovery API:**
358
361
  ```python
359
- from claude_pm.core.agent_registry import AgentRegistry
362
+ from claude_mpm.core.agent_registry import AgentRegistry
360
363
 
361
364
  # Initialize registry with directory precedence
362
- registry = AgentRegistry()
365
+ registry = get_agent_registry()
363
366
 
364
367
  # List all available agents with metadata
365
368
  agents = registry.list_agents()
@@ -400,7 +403,7 @@ $PWD/.claude-mpm/agents/user-agents/
400
403
  **Discovery Implementation:**
401
404
  ```python
402
405
  # Orchestrator pattern for agent discovery
403
- registry = AgentRegistry()
406
+ registry = get_agent_registry()
404
407
 
405
408
  # Discover all agents
406
409
  all_agents = registry.list_agents()
@@ -428,7 +431,7 @@ performance_agents = {k: v for k, v in all_agents.items() if 'performance' in v.
428
431
  architecture_agents = {k: v for k, v in all_agents.items() if 'architecture' in v.get('specializations', [])}
429
432
 
430
433
  # Multi-specialization discovery
431
- multi_spec = {k: v for k, v in all_agents.items()
434
+ multi_spec = {k: v for k, v in all_agents.items()
432
435
  if any(spec in v.get('specializations', []) for spec in ['integration', 'performance'])}
433
436
  ```
434
437
 
@@ -437,13 +440,13 @@ multi_spec = {k: v for k, v in all_agents.items()
437
440
  **Orchestrator Workflow with Modification Tracking:**
438
441
  ```python
439
442
  # Track agent changes for workflow optimization
440
- registry = AgentRegistry()
443
+ registry = get_agent_registry()
441
444
 
442
445
  # Get all agents (modification timestamps are included by default)
443
446
  agents_with_tracking = registry.list_agents()
444
447
 
445
448
  # Filter agents modified since last orchestration manually
446
- recent_agents = {k: v for k, v in agents_with_tracking.items()
449
+ recent_agents = {k: v for k, v in agents_with_tracking.items()
447
450
  if v.get('last_modified', 0) > since_timestamp}
448
451
 
449
452
  # Update orchestration based on agent modifications
@@ -457,7 +460,7 @@ for agent_id, metadata in recent_agents.items():
457
460
 
458
461
  **99.7% Performance Improvement Integration:**
459
462
  ```python
460
- from claude_pm.services.shared_prompt_cache import SharedPromptCache
463
+ from claude_mpm.services.shared_prompt_cache import SharedPromptCache
461
464
 
462
465
  # Initialize registry with caching
463
466
  cache = SharedPromptCache()
@@ -483,18 +486,18 @@ for agent_id in ['researcher', 'security', 'ops']:
483
486
  ```python
484
487
  # Example: Dynamic agent selection based on task requirements
485
488
  def select_optimal_agent(task_type, specialization_requirements):
486
- registry = AgentRegistry()
487
-
489
+ registry = get_agent_registry()
490
+
488
491
  # Find agents matching requirements
489
492
  all_agents = registry.list_agents()
490
- matching_agents = {k: v for k, v in all_agents.items()
491
- if any(spec in v.get('specializations', [])
493
+ matching_agents = {k: v for k, v in all_agents.items()
494
+ if any(spec in v.get('specializations', [])
492
495
  for spec in specialization_requirements)}
493
-
496
+
494
497
  # Select highest precedence agent
495
498
  if matching_agents:
496
499
  return registry.selectOptimalAgent(matching_agents, task_type)
497
-
500
+
498
501
  # Fallback to core agents
499
502
  return registry.getCoreAgent(task_type)
500
503
 
@@ -517,7 +520,7 @@ optimal_agent = select_optimal_agent(
517
520
 
518
521
  TEMPORAL CONTEXT: Today is [date]. Using agent registry for optimal agent selection.
519
522
 
520
- **Agent Discovery**:
523
+ **Agent Discovery**:
521
524
  - Registry scan: Find agents with specialization {required_spec}
522
525
  - Selected agent: {optimal_agent_id} (precedence: {agent_precedence})
523
526
  - Capabilities: {agent_metadata['specializations']}
@@ -559,18 +562,18 @@ TEMPORAL CONTEXT: Today is [date]. Using agent registry for optimal agent select
559
562
  ```python
560
563
  # Enhanced orchestration with registry integration
561
564
  def orchestrate_with_registry(task_description, requirements):
562
- registry = AgentRegistry()
563
-
565
+ registry = get_agent_registry()
566
+
564
567
  # Discover optimal agents
565
568
  all_agents = registry.list_agents()
566
569
  # Filter by requirements
567
570
  agents = {k: v for k, v in all_agents.items()
568
571
  if any(spec in v.get('specializations', [])
569
572
  for spec in requirements.get('specializations', []))}
570
-
573
+
571
574
  # Create Task Tool subprocess with optimal agent
572
575
  selected_agent = registry.selectOptimalAgent(agents, task_description)
573
-
576
+
574
577
  return create_task_tool_subprocess(
575
578
  agent=selected_agent,
576
579
  task=task_description,
@@ -579,4 +582,4 @@ def orchestrate_with_registry(task_description, requirements):
579
582
  )
580
583
  ```
581
584
 
582
- ---"""
585
+ ---"""
@@ -2,13 +2,14 @@
2
2
  Claude-PM Init section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class ClaudePmInitGenerator(BaseSectionGenerator):
10
11
  """Generates the Claude-PM Init section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the claude-pm init section."""
14
15
  return """
@@ -43,22 +44,22 @@ claude-pm init --verify
43
44
 
44
45
  3. **MANDATORY: Core System Health Check**:
45
46
  ```bash
46
- python -c "from claude_pm.core import validate_core_system; validate_core_system()"
47
+ python -c "from claude_mpm.core import validate_core_system; validate_core_system()"
47
48
  ```
48
49
 
49
50
  4. **MANDATORY: Agent Registry Health Check**:
50
51
  ```bash
51
- python -c "from claude_pm.core.agent_registry import AgentRegistry; registry = AgentRegistry(); print(f'Registry health: {registry.health_check()}')"
52
+ python -c "from claude_mpm.core.agent_registry import AgentRegistry; registry = get_agent_registry(); print(f'Registry health: {registry.health_check()}')"
52
53
  ```
53
54
 
54
55
  5. **MANDATORY: Initialize Core Agents with Registry Discovery**:
55
56
  ```
56
57
  Agent Registry: Discover available agents and build capability mapping across all directories
57
-
58
+
58
59
  Documentation Agent: Scan project documentation patterns and build operational understanding.
59
-
60
+
60
61
  Version Control Agent: Confirm availability and provide Git status summary.
61
-
62
+
62
63
  Data Engineer Agent: Verify data store connectivity and AI API availability.
63
64
  ```
64
65
 
@@ -88,10 +89,9 @@ claude-pm init --verify
88
89
  **Framework Health Monitoring:**
89
90
  ```bash
90
91
  # Check framework protection status
91
- python -c "from claude_pm.services.health_monitor import HealthMonitor; HealthMonitor().check_framework_health()"
92
+ python -c "from claude_mpm.services.health_monitor import HealthMonitor; HealthMonitor().check_framework_health()"
92
93
 
93
94
  # Validate agent hierarchy
94
95
  claude-pm init --verify
95
96
 
96
-
97
- ---"""
97
+ ---"""
@@ -2,13 +2,14 @@
2
2
  Core responsibilities section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class CoreResponsibilitiesGenerator(BaseSectionGenerator):
10
11
  """Generates the Core Responsibilities section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the core responsibilities section."""
14
15
  return """
@@ -24,4 +25,4 @@ class CoreResponsibilitiesGenerator(BaseSectionGenerator):
24
25
  9. **Precedence-Aware Delegation**: Respect directory precedence (project → user → system) when selecting agents
25
26
  10. **Temporal Context Integration**: Apply current date awareness to sprint planning, release scheduling, and priority assessment
26
27
  11. **Operation Tracking**: Ensure ALL agents provide operational insights and project patterns
27
- 12. **Agent Modification Tracking**: Monitor agent changes and adapt orchestration patterns accordingly"""
28
+ 12. **Agent Modification Tracking**: Monitor agent changes and adapt orchestration patterns accordingly"""
@@ -2,13 +2,14 @@
2
2
  Delegation constraints section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class DelegationConstraintsGenerator(BaseSectionGenerator):
10
11
  """Generates the Critical Delegation Constraints section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the delegation constraints section."""
14
15
  return """
@@ -20,4 +21,4 @@ class DelegationConstraintsGenerator(BaseSectionGenerator):
20
21
  - **Configuration**: NEVER modify config files - delegate to Ops Agent
21
22
  - **Testing**: NEVER write tests - delegate to QA Agent
22
23
  - **Documentation Operations**: ALL documentation tasks must be delegated to Documentation Agent
23
- - **Ticket Operations**: ALL ticket operations must be delegated to Ticketing Agent"""
24
+ - **Ticket Operations**: ALL ticket operations must be delegated to Ticketing Agent"""
@@ -2,13 +2,14 @@
2
2
  Environment configuration section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class EnvironmentConfigGenerator(BaseSectionGenerator):
10
11
  """Generates the Environment Configuration section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the environment configuration section."""
14
15
  return """
@@ -20,4 +21,4 @@ class EnvironmentConfigGenerator(BaseSectionGenerator):
20
21
  - **Framework Import**: `import claude_pm`
21
22
 
22
23
  ### Platform-Specific Notes
23
- {{PLATFORM_NOTES}}"""
24
+ {{PLATFORM_NOTES}}"""
@@ -2,19 +2,20 @@
2
2
  Footer section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class FooterGenerator(BaseSectionGenerator):
10
11
  """Generates the footer section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the footer section."""
14
- deployment_id = data.get('deployment_id', '{{DEPLOYMENT_ID}}')
15
+ deployment_id = data.get("deployment_id", "{{DEPLOYMENT_ID}}")
15
16
  timestamp = self.get_timestamp()
16
-
17
+
17
18
  return f"""
18
19
  **Framework Version**: {self.framework_version}
19
20
  **Deployment ID**: {deployment_id}
20
- **Last Updated**: {timestamp}"""
21
+ **Last Updated**: {timestamp}"""
@@ -2,25 +2,26 @@
2
2
  Header section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class HeaderGenerator(BaseSectionGenerator):
10
11
  """Generates the header section with version metadata."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the header section."""
14
- version = data.get('version', f"{self.framework_version}-001")
15
+ version = data.get("version", f"{self.framework_version}-001")
15
16
  timestamp = self.get_timestamp()
16
- content_hash = data.get('content_hash', 'pending')
17
-
17
+ content_hash = data.get("content_hash", "pending")
18
+
18
19
  return f"""# Claude PM Framework Configuration - Deployment
19
20
 
20
- <!--
21
+ <!--
21
22
  CLAUDE_MD_VERSION: {version}
22
23
  FRAMEWORK_VERSION: {self.framework_version}
23
24
  DEPLOYMENT_DATE: {timestamp}
24
25
  LAST_UPDATED: {timestamp}
25
26
  CONTENT_HASH: {content_hash}
26
- -->"""
27
+ -->"""
@@ -2,13 +2,14 @@
2
2
  Orchestration principles section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class OrchestrationPrinciplesGenerator(BaseSectionGenerator):
10
11
  """Generates the Core Orchestration Principles section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the orchestration principles section."""
14
15
  return """
@@ -27,4 +28,4 @@ class OrchestrationPrinciplesGenerator(BaseSectionGenerator):
27
28
  11. **Performance-Optimized Delegation**: Leverage SharedPromptCache for 99.7% faster agent loading and orchestration
28
29
  12. **Specialization-Based Routing**: Route tasks to agents with appropriate specializations beyond core 9 types using registry discovery
29
30
 
30
- ---"""
31
+ ---"""
@@ -2,17 +2,18 @@
2
2
  Role designation section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class RoleDesignationGenerator(BaseSectionGenerator):
10
11
  """Generates the AI Assistant Role Designation section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the role designation section."""
14
- deployment_date = data.get('deployment_date', self.get_timestamp())
15
-
15
+ deployment_date = data.get("deployment_date", self.get_timestamp())
16
+
16
17
  return f"""
17
18
  ## 🤖 AI ASSISTANT ROLE DESIGNATION
18
19
 
@@ -34,4 +35,4 @@ Your primary role is operating as a multi-agent orchestrator. Your job is to orc
34
35
  - **Core System**: 🔧 Framework orchestration and agent coordination
35
36
  - **Performance**: ⚡ <15 second health monitoring (77% improvement)
36
37
 
37
- ---"""
38
+ ---"""
@@ -2,13 +2,14 @@
2
2
  Subprocess validation section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class SubprocessValidationGenerator(BaseSectionGenerator):
10
11
  """Generates the Subprocess Validation Protocol section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the subprocess validation section."""
14
15
  return """
@@ -35,13 +36,13 @@ class SubprocessValidationGenerator(BaseSectionGenerator):
35
36
  # MANDATORY: Test actual CLI commands, not just code existence
36
37
  claude-pm --version # Verify actual version numbers
37
38
  claude-pm init # Test real initialization
38
- python3 -c "import claude_pm; print(claude_pm.__version__)" # Verify imports
39
+ python3 -c "import claude_mpm; print(claude_mpm.__version__)" # Verify imports
39
40
  ```
40
41
 
41
42
  2. **🚨 REAL IMPORT VALIDATION** - NEVER trust subprocess claims about imports:
42
43
  ```bash
43
44
  # MANDATORY: Test actual imports that will be used
44
- python3 -c "from claude_pm.services.core import unified_core_service"
45
+ python3 -c "from claude_mpm.services.core import unified_core_service"
45
46
  python3 -c "import asyncio; asyncio.run(test_function())"
46
47
  ```
47
48
 
@@ -96,16 +97,16 @@ claude-pm --version
96
97
  claude-pm --help
97
98
 
98
99
  # Test actual imports
99
- python3 -c "import claude_pm; print('✅ Basic import works')"
100
- python3 -c "from claude_pm.services.core import [specific_function]; print('✅ Specific import works')"
100
+ python3 -c "import claude_mpm; print('✅ Basic import works')"
101
+ python3 -c "from claude_mpm.services.core import [specific_function]; print('✅ Specific import works')"
101
102
 
102
103
  # Test version consistency
103
104
  echo "📋 VERSION VERIFICATION:"
104
105
  echo "Package.json: $(grep '"version"' package.json)"
105
106
  echo "CLI Output: $(claude-pm --version 2>/dev/null || echo 'CLI FAILED')"
106
- echo "Python Module: $(python3 -c 'import claude_pm; print(claude_pm.__version__)' 2>/dev/null || echo 'IMPORT FAILED')"
107
+ echo "Python Module: $(python3 -c 'import claude_mpm; print(claude_mpm.__version__)' 2>/dev/null || echo 'IMPORT FAILED')"
107
108
 
108
109
  # If ANY of the above fail, IMMEDIATELY inform user and fix issues
109
110
  ```
110
111
 
111
- ---"""
112
+ ---"""
@@ -2,13 +2,14 @@
2
2
  Todo and Task Tools section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class TodoTaskToolsGenerator(BaseSectionGenerator):
10
11
  """Generates the Todo and Task Tools section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the todo and task tools section."""
14
15
  return """
@@ -107,4 +108,4 @@ Task(description="Apply semantic version bump and create release tags", subagent
107
108
  # Update TodoWrite status based on agent completions
108
109
  ```
109
110
 
110
- ---"""
111
+ ---"""
@@ -2,13 +2,14 @@
2
2
  Troubleshooting section generator for framework CLAUDE.md.
3
3
  """
4
4
 
5
- from typing import Dict, Any
5
+ from typing import Any, Dict
6
+
6
7
  from . import BaseSectionGenerator
7
8
 
8
9
 
9
10
  class TroubleshootingGenerator(BaseSectionGenerator):
10
11
  """Generates the Troubleshooting section."""
11
-
12
+
12
13
  def generate(self, data: Dict[str, Any]) -> str:
13
14
  """Generate the troubleshooting section."""
14
15
  return """
@@ -30,10 +31,10 @@ class TroubleshootingGenerator(BaseSectionGenerator):
30
31
  9. **Core System Performance Issues**: Implement system optimization
31
32
 
32
33
  ### Agent Registry Issues
33
- 10. **Agent Registry Discovery Failures**: Run `python -c "from claude_pm.core.agent_registry import AgentRegistry; AgentRegistry().health_check()"`
34
+ 10. **Agent Registry Discovery Failures**: Run `python -c "from claude_mpm.core.agent_registry import AgentRegistry; get_agent_registry().health_check()"`
34
35
  11. **Agent Precedence Problems**: Verify directory structure with `claude-pm init --verify`
35
36
  12. **Specialization Discovery Issues**: Check agent metadata and specialization tags
36
37
  13. **Performance Cache Problems**: Clear SharedPromptCache and reinitialize registry
37
38
  14. **Agent Modification Tracking Errors**: Verify agent file permissions and timestamps
38
39
  15. **Custom Agent Loading Issues**: Verify user-agents directory structure and agent file format
39
- 16. **Directory Precedence Problems**: Check user-agents directory hierarchy and parent directory traversal"""
40
+ 16. **Directory Precedence Problems**: Check user-agents directory hierarchy and parent directory traversal"""
@@ -4,63 +4,64 @@ Section management for framework CLAUDE.md templates.
4
4
  Manages section registration, ordering, and updates.
5
5
  """
6
6
 
7
- from typing import Dict, List, Optional, Callable, Any
8
7
  from collections import OrderedDict
8
+ from typing import Any, Callable, Dict, List, Optional
9
9
 
10
10
 
11
11
  class SectionManager:
12
12
  """Manages sections for framework CLAUDE.md generation."""
13
-
13
+
14
14
  def __init__(self):
15
15
  """Initialize section manager."""
16
16
  self.sections = OrderedDict()
17
-
18
- def register_section(self,
19
- name: str,
20
- generator: Callable[[Dict[str, Any]], str],
21
- data: Optional[Dict[str, Any]] = None):
17
+
18
+ def register_section(
19
+ self,
20
+ name: str,
21
+ generator: Callable[[Dict[str, Any]], str],
22
+ data: Optional[Dict[str, Any]] = None,
23
+ ):
22
24
  """
23
25
  Register a section generator.
24
-
26
+
25
27
  Args:
26
28
  name: Section name
27
29
  generator: Function that generates section content
28
30
  data: Optional data to pass to generator
29
31
  """
30
32
  self.sections[name] = (generator, data or {})
31
-
33
+
32
34
  def update_section(self, section_name: str, content: str) -> bool:
33
35
  """
34
36
  Update a specific section's generator to return custom content.
35
-
37
+
36
38
  Args:
37
39
  section_name: Name of section to update
38
40
  content: New content for the section
39
-
41
+
40
42
  Returns:
41
43
  bool: Success status
42
44
  """
43
45
  if section_name not in self.sections:
44
46
  return False
45
-
47
+
46
48
  # Create a lambda that returns the custom content
47
49
  self.sections[section_name] = (lambda data: content, {})
48
50
  return True
49
-
50
- def add_custom_section(self,
51
- section_name: str,
52
- content: str,
53
- after: Optional[str] = None):
51
+
52
+ def add_custom_section(
53
+ self, section_name: str, content: str, after: Optional[str] = None
54
+ ):
54
55
  """
55
56
  Add a custom section to the generator.
56
-
57
+
57
58
  Args:
58
59
  section_name: Name for the new section
59
60
  content: Content for the section
60
61
  after: Section name to insert after (None = append at end)
61
62
  """
62
63
  new_section = (lambda data: content, {})
63
-
64
+
64
65
  if after is None or after not in self.sections:
65
66
  self.sections[section_name] = new_section
66
67
  else:
@@ -71,36 +72,36 @@ class SectionManager:
71
72
  if key == after:
72
73
  new_sections[section_name] = new_section
73
74
  self.sections = new_sections
74
-
75
+
75
76
  def get_section_list(self) -> List[str]:
76
77
  """
77
78
  Get list of all section names in order.
78
-
79
+
79
80
  Returns:
80
81
  List of section names
81
82
  """
82
83
  return list(self.sections.keys())
83
-
84
+
84
85
  def get_sections(self) -> OrderedDict:
85
86
  """
86
87
  Get all sections.
87
-
88
+
88
89
  Returns:
89
90
  OrderedDict of section definitions
90
91
  """
91
92
  return self.sections
92
-
93
+
93
94
  def remove_section(self, section_name: str) -> bool:
94
95
  """
95
96
  Remove a section.
96
-
97
+
97
98
  Args:
98
99
  section_name: Name of section to remove
99
-
100
+
100
101
  Returns:
101
102
  bool: Success status
102
103
  """
103
104
  if section_name in self.sections:
104
105
  del self.sections[section_name]
105
106
  return True
106
- return False
107
+ return False