claude-mpm 3.9.9__tar.gz → 4.0.3__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 (468) hide show
  1. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/LICENSE +1 -1
  2. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/MANIFEST.in +1 -1
  3. {claude_mpm-3.9.9/src/claude_mpm.egg-info → claude_mpm-4.0.3}/PKG-INFO +51 -2
  4. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/README.md +48 -1
  5. claude_mpm-4.0.3/VERSION +1 -0
  6. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/claude-mpm +2 -2
  7. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/pyproject.toml +14 -2
  8. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/requirements.txt +8 -1
  9. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/scripts/ticket +1 -1
  10. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/setup.py +66 -25
  11. claude_mpm-4.0.3/src/claude_mpm/VERSION +1 -0
  12. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/__init__.py +2 -2
  13. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/__main__.py +3 -2
  14. claude_mpm-4.0.3/src/claude_mpm/agents/__init__.py +124 -0
  15. claude_mpm-4.0.3/src/claude_mpm/agents/agent_loader.py +900 -0
  16. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/agent_loader_integration.py +45 -45
  17. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/agents_metadata.py +29 -30
  18. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/async_agent_loader.py +156 -138
  19. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/base_agent.json +1 -1
  20. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/base_agent_loader.py +179 -151
  21. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/frontmatter_validator.py +229 -130
  22. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/schema/agent_schema.json +1 -1
  23. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/system_agent_config.py +213 -147
  24. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/__init__.py +13 -13
  25. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/code_analyzer.json +2 -2
  26. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/data_engineer.json +1 -1
  27. claude_mpm-4.0.3/src/claude_mpm/agents/templates/documentation.json +137 -0
  28. claude_mpm-4.0.3/src/claude_mpm/agents/templates/engineer.json +145 -0
  29. claude_mpm-4.0.3/src/claude_mpm/agents/templates/memory_manager.json +155 -0
  30. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/ops.json +2 -2
  31. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/project_organizer.json +1 -1
  32. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/qa.json +1 -1
  33. claude_mpm-4.0.3/src/claude_mpm/agents/templates/refactoring_engineer.json +222 -0
  34. claude_mpm-4.0.3/src/claude_mpm/agents/templates/research.json +94 -0
  35. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/security.json +1 -1
  36. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/ticketing.json +1 -1
  37. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/version_control.json +1 -1
  38. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/web_qa.json +3 -1
  39. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/web_ui.json +2 -2
  40. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/__init__.py +90 -49
  41. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/__main__.py +3 -2
  42. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/__init__.py +21 -18
  43. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/agents.py +279 -247
  44. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/aggregate.py +138 -157
  45. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/cleanup.py +147 -147
  46. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/config.py +93 -76
  47. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/info.py +17 -16
  48. claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp.py +202 -0
  49. claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_command_router.py +139 -0
  50. claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_config_commands.py +20 -0
  51. claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_install_commands.py +20 -0
  52. claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_server_commands.py +175 -0
  53. claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_tool_commands.py +34 -0
  54. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/memory.py +239 -203
  55. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/monitor.py +203 -81
  56. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/run.py +380 -429
  57. claude_mpm-4.0.3/src/claude_mpm/cli/commands/run_config_checker.py +160 -0
  58. claude_mpm-4.0.3/src/claude_mpm/cli/commands/socketio_monitor.py +235 -0
  59. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/tickets.py +305 -197
  60. claude_mpm-4.0.3/src/claude_mpm/cli/parser.py +34 -0
  61. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/__init__.py +29 -0
  62. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/agents_parser.py +136 -0
  63. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/base_parser.py +331 -0
  64. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/config_parser.py +85 -0
  65. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/mcp_parser.py +152 -0
  66. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/memory_parser.py +138 -0
  67. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/monitor_parser.py +104 -0
  68. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/run_parser.py +147 -0
  69. claude_mpm-4.0.3/src/claude_mpm/cli/parsers/tickets_parser.py +203 -0
  70. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/ticket_cli.py +7 -3
  71. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/utils.py +55 -37
  72. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/__init__.py +6 -6
  73. claude_mpm-4.0.3/src/claude_mpm/cli_module/args.py +270 -0
  74. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/commands.py +79 -70
  75. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/migration_example.py +38 -60
  76. claude_mpm-4.0.3/src/claude_mpm/config/__init__.py +45 -0
  77. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/config/agent_config.py +151 -119
  78. claude_mpm-4.0.3/src/claude_mpm/config/experimental_features.py +217 -0
  79. claude_mpm-4.0.3/src/claude_mpm/config/paths.py +258 -0
  80. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/config/socketio_config.py +84 -73
  81. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/constants.py +36 -18
  82. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/__init__.py +9 -6
  83. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/agent_name_normalizer.py +68 -71
  84. claude_mpm-4.0.3/src/claude_mpm/core/agent_registry.py +527 -0
  85. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/agent_session_manager.py +74 -63
  86. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/base_service.py +116 -87
  87. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/cache.py +119 -153
  88. claude_mpm-4.0.3/src/claude_mpm/core/claude_runner.py +793 -0
  89. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/config.py +263 -168
  90. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/config_aliases.py +69 -61
  91. claude_mpm-4.0.3/src/claude_mpm/core/config_constants.py +292 -0
  92. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/constants.py +57 -99
  93. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/container.py +211 -178
  94. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/exceptions.py +233 -89
  95. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/factories.py +92 -54
  96. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/framework_loader.py +378 -220
  97. claude_mpm-4.0.3/src/claude_mpm/core/hook_manager.py +311 -0
  98. claude_mpm-4.0.3/src/claude_mpm/core/hook_performance_config.py +136 -0
  99. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/injectable_service.py +61 -55
  100. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/interactive_session.py +165 -155
  101. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/interfaces.py +221 -195
  102. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/lazy.py +96 -96
  103. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/logger.py +133 -107
  104. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/logging_config.py +185 -157
  105. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/minimal_framework_loader.py +20 -15
  106. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/mixins.py +30 -29
  107. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/oneshot_session.py +215 -181
  108. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/optimized_agent_loader.py +134 -138
  109. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/optimized_startup.py +159 -157
  110. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/pm_hook_interceptor.py +85 -72
  111. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/service_registry.py +103 -101
  112. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/session_manager.py +97 -87
  113. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/socketio_pool.py +212 -158
  114. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/tool_access_control.py +58 -51
  115. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/types.py +46 -24
  116. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/typing_utils.py +166 -82
  117. claude_mpm-4.0.3/src/claude_mpm/core/unified_agent_registry.py +721 -0
  118. claude_mpm-4.0.3/src/claude_mpm/core/unified_config.py +550 -0
  119. claude_mpm-4.0.3/src/claude_mpm/core/unified_paths.py +549 -0
  120. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/index.html +1 -1
  121. claude_mpm-4.0.3/src/claude_mpm/dashboard/open_dashboard.py +68 -0
  122. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/css/dashboard.css +27 -8
  123. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +2 -0
  124. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/event-processor.js +2 -0
  125. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +2 -0
  126. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/export-manager.js +2 -0
  127. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +2 -0
  128. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +2 -0
  129. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +2 -0
  130. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +2 -0
  131. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +2 -0
  132. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/session-manager.js +2 -0
  133. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +2 -0
  134. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +2 -0
  135. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/working-directory.js +2 -0
  136. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/dashboard.js +2 -0
  137. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/socket-client.js +2 -0
  138. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +80 -76
  139. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/event-processor.js +71 -67
  140. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +74 -70
  141. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/export-manager.js +31 -28
  142. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +106 -92
  143. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +11 -11
  144. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +73 -73
  145. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +163 -163
  146. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +305 -233
  147. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/session-manager.js +32 -29
  148. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +27 -20
  149. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +21 -18
  150. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/working-directory.js +74 -71
  151. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/dashboard.js +178 -453
  152. claude_mpm-4.0.3/src/claude_mpm/dashboard/static/js/extension-error-handler.js +164 -0
  153. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/socket-client.js +120 -54
  154. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/templates/index.html +40 -50
  155. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/experimental/cli_enhancements.py +60 -58
  156. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/generators/__init__.py +1 -1
  157. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/generators/agent_profile_generator.py +75 -65
  158. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/__init__.py +1 -1
  159. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/base_hook.py +33 -28
  160. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/claude_hooks/__init__.py +1 -1
  161. claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/connection_pool.py +120 -0
  162. claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/event_handlers.py +743 -0
  163. claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/hook_handler.py +896 -0
  164. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +4 -4
  165. claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/memory_integration.py +221 -0
  166. claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/response_tracking.py +348 -0
  167. claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +230 -0
  168. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/memory_integration_hook.py +140 -100
  169. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/tool_call_interceptor.py +89 -76
  170. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/validation_hooks.py +57 -49
  171. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/init.py +145 -121
  172. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/models/__init__.py +9 -9
  173. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/models/agent_definition.py +33 -23
  174. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/models/agent_session.py +228 -200
  175. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/scripts/__init__.py +1 -1
  176. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/scripts/socketio_daemon.py +192 -75
  177. claude_mpm-4.0.3/src/claude_mpm/scripts/socketio_server_manager.py +328 -0
  178. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/scripts/start_activity_logging.py +25 -22
  179. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/__init__.py +68 -43
  180. claude_mpm-4.0.3/src/claude_mpm/services/agent_capabilities_service.py +271 -0
  181. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/__init__.py +23 -32
  182. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/__init__.py +3 -3
  183. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_config_provider.py +310 -0
  184. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +359 -0
  185. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +84 -0
  186. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_deployment.py +969 -0
  187. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +387 -0
  188. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +293 -0
  189. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +387 -0
  190. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_format_converter.py +453 -0
  191. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +161 -0
  192. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +345 -495
  193. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +279 -0
  194. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +88 -0
  195. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_template_builder.py +406 -0
  196. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_validator.py +352 -0
  197. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_version_manager.py +313 -0
  198. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/agent_versioning.py +6 -9
  199. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +79 -0
  200. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +298 -234
  201. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/config/__init__.py +13 -0
  202. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/config/deployment_config.py +182 -0
  203. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +200 -0
  204. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +54 -0
  205. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +124 -0
  206. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/__init__.py +18 -0
  207. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +159 -0
  208. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +73 -0
  209. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +270 -0
  210. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +178 -0
  211. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/interface_adapter.py +227 -0
  212. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +85 -0
  213. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +100 -0
  214. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +32 -0
  215. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +158 -0
  216. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +159 -0
  217. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +169 -0
  218. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +19 -0
  219. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +195 -0
  220. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +119 -0
  221. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +79 -0
  222. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +90 -0
  223. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +100 -0
  224. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/__init__.py +15 -0
  225. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +98 -0
  226. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +235 -0
  227. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +258 -0
  228. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +318 -0
  229. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/results/__init__.py +13 -0
  230. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +200 -0
  231. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +249 -0
  232. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/__init__.py +25 -0
  233. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +119 -0
  234. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +150 -0
  235. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +117 -0
  236. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +116 -0
  237. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +137 -0
  238. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +108 -0
  239. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/__init__.py +19 -0
  240. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +323 -0
  241. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +238 -0
  242. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/template_validator.py +299 -0
  243. claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/validation_result.py +226 -0
  244. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/__init__.py +2 -2
  245. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +259 -229
  246. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/base_agent_manager.py +90 -81
  247. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +154 -129
  248. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/__init__.py +2 -2
  249. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +72 -58
  250. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/agent_management_service.py +209 -156
  251. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/memory/__init__.py +9 -6
  252. claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/agent_memory_manager.py +637 -0
  253. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +20 -16
  254. claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/analyzer.py +430 -0
  255. claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/content_manager.py +376 -0
  256. claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/template_generator.py +468 -0
  257. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/__init__.py +7 -10
  258. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +122 -97
  259. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/modification_tracker.py +351 -285
  260. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/async_session_logger.py +187 -153
  261. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/claude_session_logger.py +87 -72
  262. claude_mpm-4.0.3/src/claude_mpm/services/command_handler_service.py +217 -0
  263. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/communication/__init__.py +3 -2
  264. claude_mpm-4.0.3/src/claude_mpm/services/core/__init__.py +76 -0
  265. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/core/base.py +60 -53
  266. claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/__init__.py +188 -0
  267. claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/agent.py +351 -0
  268. claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/communication.py +343 -0
  269. claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/infrastructure.py +413 -0
  270. claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/service.py +434 -0
  271. claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces.py +26 -0
  272. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/event_aggregator.py +208 -170
  273. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/exceptions.py +387 -308
  274. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +75 -79
  275. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +69 -60
  276. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +65 -61
  277. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +68 -49
  278. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +34 -34
  279. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +25 -22
  280. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +10 -10
  281. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +4 -3
  282. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +4 -3
  283. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +4 -3
  284. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +6 -5
  285. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +8 -7
  286. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +4 -3
  287. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +6 -5
  288. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +9 -8
  289. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +4 -3
  290. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +5 -4
  291. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +28 -27
  292. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +30 -28
  293. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/hook_service.py +106 -114
  294. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/__init__.py +7 -5
  295. claude_mpm-4.0.3/src/claude_mpm/services/infrastructure/context_preservation.py +571 -0
  296. claude_mpm-4.0.3/src/claude_mpm/services/infrastructure/daemon_manager.py +279 -0
  297. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/logging.py +83 -76
  298. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/monitoring.py +547 -404
  299. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/__init__.py +40 -23
  300. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/__init__.py +2 -2
  301. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +61 -56
  302. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +50 -41
  303. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/configuration.py +82 -75
  304. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/__init__.py +14 -21
  305. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/base.py +80 -67
  306. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +60 -46
  307. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +97 -93
  308. claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/main.py +506 -0
  309. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +1 -1
  310. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +100 -101
  311. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +135 -126
  312. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/server/__init__.py +4 -4
  313. claude_mpm-3.9.9/src/claude_mpm/services/mcp_gateway/server/mcp_server.py → claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +149 -153
  314. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +105 -107
  315. claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +691 -0
  316. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +4 -2
  317. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +110 -121
  318. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +283 -215
  319. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +122 -120
  320. claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +652 -0
  321. claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +606 -0
  322. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/__init__.py +2 -2
  323. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/builder.py +451 -362
  324. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/__init__.py +2 -2
  325. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +232 -194
  326. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/simple_cache.py +107 -93
  327. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/indexed_memory.py +195 -193
  328. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/optimizer.py +267 -234
  329. claude_mpm-4.0.3/src/claude_mpm/services/memory/router.py +846 -0
  330. claude_mpm-4.0.3/src/claude_mpm/services/memory_hook_service.py +237 -0
  331. claude_mpm-4.0.3/src/claude_mpm/services/port_manager.py +223 -0
  332. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/project/__init__.py +3 -3
  333. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/project/analyzer.py +451 -305
  334. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/project/registry.py +262 -240
  335. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/recovery_manager.py +287 -231
  336. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/response_tracker.py +87 -67
  337. claude_mpm-4.0.3/src/claude_mpm/services/runner_configuration_service.py +587 -0
  338. claude_mpm-4.0.3/src/claude_mpm/services/session_management_service.py +304 -0
  339. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/__init__.py +4 -4
  340. claude_mpm-4.0.3/src/claude_mpm/services/socketio/client_proxy.py +174 -0
  341. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/__init__.py +3 -3
  342. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/base.py +44 -30
  343. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/connection.py +145 -65
  344. claude_mpm-4.0.3/src/claude_mpm/services/socketio/handlers/file.py +228 -0
  345. claude_mpm-4.0.3/src/claude_mpm/services/socketio/handlers/git.py +957 -0
  346. claude_mpm-4.0.3/src/claude_mpm/services/socketio/handlers/hook.py +170 -0
  347. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/memory.py +4 -4
  348. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/project.py +4 -4
  349. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/registry.py +53 -38
  350. claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/__init__.py +18 -0
  351. claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/broadcaster.py +252 -0
  352. claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/core.py +399 -0
  353. claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/main.py +323 -0
  354. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio_client_manager.py +160 -133
  355. claude_mpm-4.0.3/src/claude_mpm/services/socketio_server.py +84 -0
  356. claude_mpm-4.0.3/src/claude_mpm/services/subprocess_launcher_service.py +316 -0
  357. claude_mpm-4.0.3/src/claude_mpm/services/system_instructions_service.py +258 -0
  358. claude_mpm-4.0.3/src/claude_mpm/services/ticket_manager.py +25 -0
  359. claude_mpm-4.0.3/src/claude_mpm/services/utility_service.py +285 -0
  360. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/__init__.py +18 -21
  361. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/branch_strategy.py +20 -10
  362. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/conflict_resolution.py +37 -13
  363. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/git_operations.py +52 -21
  364. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/semantic_versioning.py +92 -53
  365. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/version_parser.py +145 -125
  366. claude_mpm-4.0.3/src/claude_mpm/services/version_service.py +270 -0
  367. claude_mpm-4.0.3/src/claude_mpm/storage/__init__.py +9 -0
  368. claude_mpm-4.0.3/src/claude_mpm/storage/state_storage.py +552 -0
  369. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/ticket_wrapper.py +2 -2
  370. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/__init__.py +2 -2
  371. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/agent_dependency_loader.py +453 -243
  372. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/config_manager.py +157 -118
  373. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/console.py +1 -1
  374. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_cache.py +102 -107
  375. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_manager.py +52 -47
  376. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_strategies.py +131 -96
  377. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/environment_context.py +110 -102
  378. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/error_handler.py +75 -55
  379. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/file_utils.py +80 -67
  380. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/framework_detection.py +12 -11
  381. claude_mpm-4.0.3/src/claude_mpm/utils/import_migration_example.py +32 -0
  382. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/imports.py +48 -45
  383. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/path_operations.py +100 -93
  384. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/robust_installer.py +172 -164
  385. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/session_logging.py +30 -23
  386. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/subprocess_utils.py +99 -61
  387. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/validation/__init__.py +1 -1
  388. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/validation/agent_validator.py +151 -111
  389. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/validation/frontmatter_validator.py +92 -71
  390. {claude_mpm-3.9.9 → claude_mpm-4.0.3/src/claude_mpm.egg-info}/PKG-INFO +51 -2
  391. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/SOURCES.txt +135 -27
  392. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/entry_points.txt +1 -0
  393. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/requires.txt +2 -0
  394. claude_mpm-3.9.9/VERSION +0 -1
  395. claude_mpm-3.9.9/scripts/run_mpm.py +0 -21
  396. claude_mpm-3.9.9/src/claude_mpm/VERSION +0 -1
  397. claude_mpm-3.9.9/src/claude_mpm/agents/__init__.py +0 -118
  398. claude_mpm-3.9.9/src/claude_mpm/agents/agent_loader.py +0 -1439
  399. claude_mpm-3.9.9/src/claude_mpm/agents/templates/documentation.json +0 -125
  400. claude_mpm-3.9.9/src/claude_mpm/agents/templates/engineer.json +0 -129
  401. claude_mpm-3.9.9/src/claude_mpm/agents/templates/research.json +0 -88
  402. claude_mpm-3.9.9/src/claude_mpm/cli/commands/mcp.py +0 -821
  403. claude_mpm-3.9.9/src/claude_mpm/cli/parser.py +0 -1160
  404. claude_mpm-3.9.9/src/claude_mpm/cli_module/args.py +0 -222
  405. claude_mpm-3.9.9/src/claude_mpm/config/__init__.py +0 -38
  406. claude_mpm-3.9.9/src/claude_mpm/config/memory_guardian_config.py +0 -325
  407. claude_mpm-3.9.9/src/claude_mpm/config/paths.py +0 -372
  408. claude_mpm-3.9.9/src/claude_mpm/core/agent_registry.py +0 -676
  409. claude_mpm-3.9.9/src/claude_mpm/core/claude_runner.py +0 -1488
  410. claude_mpm-3.9.9/src/claude_mpm/core/config_paths.py +0 -150
  411. claude_mpm-3.9.9/src/claude_mpm/core/hook_manager.py +0 -196
  412. claude_mpm-3.9.9/src/claude_mpm/dashboard/open_dashboard.py +0 -34
  413. claude_mpm-3.9.9/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -4134
  414. claude_mpm-3.9.9/src/claude_mpm/deployment_paths.py +0 -261
  415. claude_mpm-3.9.9/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -1812
  416. claude_mpm-3.9.9/src/claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -454
  417. claude_mpm-3.9.9/src/claude_mpm/models/state_models.py +0 -433
  418. claude_mpm-3.9.9/src/claude_mpm/services/agent/__init__.py +0 -24
  419. claude_mpm-3.9.9/src/claude_mpm/services/agent/deployment.py +0 -2548
  420. claude_mpm-3.9.9/src/claude_mpm/services/agent/management.py +0 -598
  421. claude_mpm-3.9.9/src/claude_mpm/services/agent/registry.py +0 -813
  422. claude_mpm-3.9.9/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -2667
  423. claude_mpm-3.9.9/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -1571
  424. claude_mpm-3.9.9/src/claude_mpm/services/agents/registry/agent_registry.py +0 -813
  425. claude_mpm-3.9.9/src/claude_mpm/services/communication/socketio.py +0 -1935
  426. claude_mpm-3.9.9/src/claude_mpm/services/communication/websocket.py +0 -479
  427. claude_mpm-3.9.9/src/claude_mpm/services/core/__init__.py +0 -123
  428. claude_mpm-3.9.9/src/claude_mpm/services/core/interfaces.py +0 -951
  429. claude_mpm-3.9.9/src/claude_mpm/services/framework_claude_md_generator.py +0 -624
  430. claude_mpm-3.9.9/src/claude_mpm/services/health_monitor.py +0 -893
  431. claude_mpm-3.9.9/src/claude_mpm/services/infrastructure/memory_guardian.py +0 -770
  432. claude_mpm-3.9.9/src/claude_mpm/services/mcp_gateway/main.py +0 -326
  433. claude_mpm-3.9.9/src/claude_mpm/services/mcp_gateway/server/mcp_server_simple.py +0 -444
  434. claude_mpm-3.9.9/src/claude_mpm/services/memory/router.py +0 -538
  435. claude_mpm-3.9.9/src/claude_mpm/services/optimized_hook_service.py +0 -542
  436. claude_mpm-3.9.9/src/claude_mpm/services/project_analyzer.py +0 -864
  437. claude_mpm-3.9.9/src/claude_mpm/services/project_registry.py +0 -608
  438. claude_mpm-3.9.9/src/claude_mpm/services/socketio/handlers/file.py +0 -213
  439. claude_mpm-3.9.9/src/claude_mpm/services/socketio/handlers/git.py +0 -723
  440. claude_mpm-3.9.9/src/claude_mpm/services/socketio_server.py +0 -1933
  441. claude_mpm-3.9.9/src/claude_mpm/services/standalone_socketio_server.py +0 -1300
  442. claude_mpm-3.9.9/src/claude_mpm/services/ticket_manager.py +0 -539
  443. claude_mpm-3.9.9/src/claude_mpm/services/ticket_manager_di.py +0 -318
  444. claude_mpm-3.9.9/src/claude_mpm/services/ticketing_service_original.py +0 -510
  445. claude_mpm-3.9.9/src/claude_mpm/utils/import_migration_example.py +0 -80
  446. claude_mpm-3.9.9/src/claude_mpm/utils/paths.py +0 -395
  447. claude_mpm-3.9.9/src/claude_mpm/utils/platform_memory.py +0 -524
  448. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/CLAUDE.md +0 -0
  449. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/setup.cfg +0 -0
  450. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  451. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/BASE_PM.md +0 -0
  452. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
  453. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/MEMORY.md +0 -0
  454. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/WORKFLOW.md +0 -0
  455. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
  456. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  457. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  458. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  459. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  460. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  461. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
  462. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  463. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_memory_efficient.json +0 -0
  464. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  465. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  466. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  467. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  468. {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/top_level.txt +0 -0
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
@@ -41,4 +41,4 @@ global-exclude __pycache__
41
41
  global-exclude *.py[co]
42
42
  global-exclude .DS_Store
43
43
  recursive-exclude tests *
44
- recursive-exclude docs *
44
+ recursive-exclude docs *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 3.9.9
3
+ Version: 4.0.3
4
4
  Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
5
5
  Home-page: https://github.com/bobmatnyc/claude-mpm
6
6
  Author: Claude MPM Team
@@ -38,6 +38,7 @@ Requires-Dist: python-frontmatter>=1.0.0
38
38
  Requires-Dist: mistune>=3.0.0
39
39
  Requires-Dist: aiofiles>=23.0.0
40
40
  Requires-Dist: mcp>=0.1.0
41
+ Requires-Dist: ijson>=3.2.0
41
42
  Provides-Extra: dev
42
43
  Requires-Dist: pytest>=7.0; extra == "dev"
43
44
  Requires-Dist: pytest-asyncio; extra == "dev"
@@ -45,6 +46,7 @@ Requires-Dist: pytest-cov; extra == "dev"
45
46
  Requires-Dist: black; extra == "dev"
46
47
  Requires-Dist: flake8; extra == "dev"
47
48
  Requires-Dist: mypy; extra == "dev"
49
+ Requires-Dist: pre-commit; extra == "dev"
48
50
  Provides-Extra: docs
49
51
  Requires-Dist: sphinx>=7.2.0; extra == "docs"
50
52
  Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
@@ -110,6 +112,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
110
112
  - 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
111
113
  - 🔄 **Session Management**: Resume previous sessions with `--resume`
112
114
  - 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
115
+ - 🛡️ **Memory Guardian (Experimental)**: Automatic memory monitoring and intelligent restarts to prevent crashes
113
116
  - 📁 **Multi-Project Support**: Per-session working directories
114
117
  - 🔍 **Git Integration**: View diffs and track changes across projects
115
118
  - 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
@@ -130,6 +133,9 @@ claude-mpm
130
133
 
131
134
  # Start with monitoring dashboard
132
135
  claude-mpm run --monitor
136
+
137
+ # Start with memory protection (prevents crashes from large conversations)
138
+ claude-mpm run-guarded
133
139
  ```
134
140
 
135
141
  See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
@@ -149,10 +155,25 @@ The PM agent automatically delegates work to specialized agents including Resear
149
155
  ### Agent Memory System
150
156
  Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
151
157
 
158
+ ### Memory Guardian System (Experimental)
159
+ **⚠️ Beta Feature** - Prevents memory-related crashes through intelligent monitoring and automatic restarts with state preservation.
160
+
161
+ ```bash
162
+ # Start with memory protection (recommended for long sessions)
163
+ claude-mpm run-guarded --accept-experimental
164
+
165
+ # Custom memory threshold for your system
166
+ claude-mpm run-guarded --memory-threshold 16000 --accept-experimental # 16GB
167
+ ```
168
+
169
+ **Why Memory Guardian?** Large conversation histories can consume 2GB+ of memory, causing system instability. The Memory Guardian monitors memory usage and performs controlled restarts while preserving your conversation context and work progress.
170
+
171
+ **Note:** This is an experimental feature in beta. Use `--accept-experimental` to suppress warnings.
172
+
152
173
  ### Real-Time Monitoring
153
174
  The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
154
175
 
155
- See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
176
+ See [docs/MEMORY.md](docs/MEMORY.md), [docs/USER_GUIDE_MEMORY_GUARDIAN.md](docs/USER_GUIDE_MEMORY_GUARDIAN.md), and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
156
177
 
157
178
 
158
179
  ## Documentation
@@ -162,12 +183,15 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
162
183
  - **[Installation Guide](docs/user/installation.md)** - Complete installation options
163
184
  - **[User Guide](docs/user/)** - Detailed usage documentation
164
185
  - **[Memory System](docs/MEMORY.md)** - Agent memory documentation
186
+ - **[Memory Guardian Guide](docs/USER_GUIDE_MEMORY_GUARDIAN.md)** - Comprehensive memory protection documentation
165
187
  - **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
166
188
 
167
189
  ### Developer Documentation
168
190
  - **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
169
191
  - **[API Reference](docs/api/)** - Complete API documentation with Sphinx
170
192
  - **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
193
+ - **[Memory Guardian Technical](docs/MEMORY_GUARDIAN_TECHNICAL.md)** - Technical architecture and implementation details
194
+ - **[Memory Guardian Configuration](docs/MEMORY_GUARDIAN_CONFIG.md)** - Complete configuration reference
171
195
  - **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
172
196
  - **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
173
197
  - **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
@@ -187,9 +211,34 @@ See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/M
187
211
 
188
212
  ## Development
189
213
 
214
+ ### Quick Development Setup
215
+ ```bash
216
+ # Complete development setup with code formatting and quality tools
217
+ make dev-complete
218
+
219
+ # Or step by step:
220
+ make setup-dev # Install in development mode
221
+ make setup-pre-commit # Set up automated code formatting
222
+ ```
223
+
224
+ ### Code Quality & Formatting
225
+ The project uses automated code formatting and quality checks:
226
+ - **Black** for code formatting
227
+ - **isort** for import sorting
228
+ - **flake8** for linting
229
+ - **mypy** for type checking
230
+ - **Pre-commit hooks** for automatic enforcement
231
+
232
+ See [docs/developer/CODE_FORMATTING.md](docs/developer/CODE_FORMATTING.md) for details.
233
+
190
234
  ### Contributing
191
235
  Contributions are welcome! Please see our [project structure guide](docs/STRUCTURE.md) and follow the established patterns.
192
236
 
237
+ **Development Workflow**:
238
+ 1. Run `make dev-complete` to set up your environment
239
+ 2. Code formatting happens automatically on commit
240
+ 3. All code must pass quality checks before merging
241
+
193
242
  ### Project Structure
194
243
  See [docs/STRUCTURE.md](docs/STRUCTURE.md) for codebase organization.
195
244
 
@@ -10,6 +10,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
10
10
  - 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
11
11
  - 🔄 **Session Management**: Resume previous sessions with `--resume`
12
12
  - 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
13
+ - 🛡️ **Memory Guardian (Experimental)**: Automatic memory monitoring and intelligent restarts to prevent crashes
13
14
  - 📁 **Multi-Project Support**: Per-session working directories
14
15
  - 🔍 **Git Integration**: View diffs and track changes across projects
15
16
  - 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
@@ -30,6 +31,9 @@ claude-mpm
30
31
 
31
32
  # Start with monitoring dashboard
32
33
  claude-mpm run --monitor
34
+
35
+ # Start with memory protection (prevents crashes from large conversations)
36
+ claude-mpm run-guarded
33
37
  ```
34
38
 
35
39
  See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
@@ -49,10 +53,25 @@ The PM agent automatically delegates work to specialized agents including Resear
49
53
  ### Agent Memory System
50
54
  Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
51
55
 
56
+ ### Memory Guardian System (Experimental)
57
+ **⚠️ Beta Feature** - Prevents memory-related crashes through intelligent monitoring and automatic restarts with state preservation.
58
+
59
+ ```bash
60
+ # Start with memory protection (recommended for long sessions)
61
+ claude-mpm run-guarded --accept-experimental
62
+
63
+ # Custom memory threshold for your system
64
+ claude-mpm run-guarded --memory-threshold 16000 --accept-experimental # 16GB
65
+ ```
66
+
67
+ **Why Memory Guardian?** Large conversation histories can consume 2GB+ of memory, causing system instability. The Memory Guardian monitors memory usage and performs controlled restarts while preserving your conversation context and work progress.
68
+
69
+ **Note:** This is an experimental feature in beta. Use `--accept-experimental` to suppress warnings.
70
+
52
71
  ### Real-Time Monitoring
53
72
  The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
54
73
 
55
- See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
74
+ See [docs/MEMORY.md](docs/MEMORY.md), [docs/USER_GUIDE_MEMORY_GUARDIAN.md](docs/USER_GUIDE_MEMORY_GUARDIAN.md), and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
56
75
 
57
76
 
58
77
  ## Documentation
@@ -62,12 +81,15 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
62
81
  - **[Installation Guide](docs/user/installation.md)** - Complete installation options
63
82
  - **[User Guide](docs/user/)** - Detailed usage documentation
64
83
  - **[Memory System](docs/MEMORY.md)** - Agent memory documentation
84
+ - **[Memory Guardian Guide](docs/USER_GUIDE_MEMORY_GUARDIAN.md)** - Comprehensive memory protection documentation
65
85
  - **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
66
86
 
67
87
  ### Developer Documentation
68
88
  - **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
69
89
  - **[API Reference](docs/api/)** - Complete API documentation with Sphinx
70
90
  - **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
91
+ - **[Memory Guardian Technical](docs/MEMORY_GUARDIAN_TECHNICAL.md)** - Technical architecture and implementation details
92
+ - **[Memory Guardian Configuration](docs/MEMORY_GUARDIAN_CONFIG.md)** - Complete configuration reference
71
93
  - **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
72
94
  - **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
73
95
  - **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
@@ -87,9 +109,34 @@ See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/M
87
109
 
88
110
  ## Development
89
111
 
112
+ ### Quick Development Setup
113
+ ```bash
114
+ # Complete development setup with code formatting and quality tools
115
+ make dev-complete
116
+
117
+ # Or step by step:
118
+ make setup-dev # Install in development mode
119
+ make setup-pre-commit # Set up automated code formatting
120
+ ```
121
+
122
+ ### Code Quality & Formatting
123
+ The project uses automated code formatting and quality checks:
124
+ - **Black** for code formatting
125
+ - **isort** for import sorting
126
+ - **flake8** for linting
127
+ - **mypy** for type checking
128
+ - **Pre-commit hooks** for automatic enforcement
129
+
130
+ See [docs/developer/CODE_FORMATTING.md](docs/developer/CODE_FORMATTING.md) for details.
131
+
90
132
  ### Contributing
91
133
  Contributions are welcome! Please see our [project structure guide](docs/STRUCTURE.md) and follow the established patterns.
92
134
 
135
+ **Development Workflow**:
136
+ 1. Run `make dev-complete` to set up your environment
137
+ 2. Code formatting happens automatically on commit
138
+ 3. All code must pass quality checks before merging
139
+
93
140
  ### Project Structure
94
141
  See [docs/STRUCTURE.md](docs/STRUCTURE.md) for codebase organization.
95
142
 
@@ -0,0 +1 @@
1
+ 4.0.3
@@ -26,7 +26,7 @@ elif command -v claude-mpm &> /dev/null; then
26
26
  FOUND_CLAUDE_MPM=$(command -v claude-mpm)
27
27
  RESOLVED_CLAUDE_MPM=$(readlink -f "$FOUND_CLAUDE_MPM" 2>/dev/null || echo "$FOUND_CLAUDE_MPM")
28
28
  THIS_SCRIPT=$(readlink -f "$0" 2>/dev/null || echo "$0")
29
-
29
+
30
30
  if [ "$RESOLVED_CLAUDE_MPM" = "$THIS_SCRIPT" ]; then
31
31
  # The found claude-mpm is actually this script, use the scripts version
32
32
  if [ -f "$SCRIPT_DIR/scripts/claude-mpm" ]; then
@@ -42,4 +42,4 @@ elif command -v claude-mpm &> /dev/null; then
42
42
  else
43
43
  echo "Error: claude-mpm not found. Please run ./install.sh"
44
44
  exit 1
45
- fi
45
+ fi
@@ -10,7 +10,7 @@ readme = "README.md"
10
10
  requires-python = ">=3.8"
11
11
  keywords = [ "claude", "orchestration", "multi-agent", "ticket-management",]
12
12
  classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12",]
13
- dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.7.0,<0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0", "mcp>=0.1.0",]
13
+ dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.7.0,<0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0", "mcp>=0.1.0", "ijson>=3.2.0",]
14
14
  [[project.authors]]
15
15
  name = "Claude MPM Team"
16
16
 
@@ -18,7 +18,7 @@ name = "Claude MPM Team"
18
18
  text = "MIT"
19
19
 
20
20
  [project.optional-dependencies]
21
- dev = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]
21
+ dev = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy", "pre-commit",]
22
22
  docs = [ "sphinx>=7.2.0", "sphinx-rtd-theme>=1.3.0", "sphinx-autobuild>=2021.3.14",]
23
23
  monitor = []
24
24
  # Pure Python agent dependencies - no compilation required
@@ -31,6 +31,7 @@ ticket = "claude_mpm.cli.ticket_cli:main"
31
31
  claude-mpm-version = "claude_mpm.scripts.manage_version:main"
32
32
  claude-mpm-monitor = "claude_mpm.scripts.launch_monitor:main"
33
33
  claude-mpm-socketio = "claude_mpm.scripts.socketio_daemon:main"
34
+ claude-mpm-mcp = "claude_mpm.services.mcp_gateway.server.stdio_server:main_sync"
34
35
 
35
36
  [tool.uv]
36
37
  dev-dependencies = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]
@@ -54,3 +55,14 @@ claude_mpm = [ "VERSION", "scripts/*", "dashboard/*.html", "dashboard/templates/
54
55
 
55
56
  [tool.setuptools.packages.find]
56
57
  where = [ "src",]
58
+
59
+ [tool.commitizen]
60
+ name = "cz_conventional_commits"
61
+ version = "4.0.3"
62
+ version_files = [
63
+ "VERSION",
64
+ "package.json:version"
65
+ ]
66
+ tag_format = "v$version"
67
+ update_changelog_on_bump = true
68
+ changelog_incremental = true
@@ -12,7 +12,14 @@ watchdog>=3.0.0
12
12
  websockets>=12.0
13
13
  python-frontmatter>=1.0.0
14
14
  mistune>=3.0.0
15
+ pydantic>=2.0.0
16
+ pydantic-settings>=2.0.0
15
17
 
16
18
  # Build and dependency management dependencies
17
19
  toml>=0.10.2
18
- packaging>=21.0
20
+ packaging>=21.0
21
+
22
+ # Development and type checking dependencies
23
+ mypy>=1.0.0
24
+ types-PyYAML>=6.0.0
25
+ types-requests>=2.25.0
@@ -35,4 +35,4 @@ if [ $# -eq 0 ] || [ "$1" = "help" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];
35
35
  else
36
36
  # Pass all arguments to claude-mpm tickets
37
37
  exec "$CLAUDE_MPM" tickets "$@"
38
- fi
38
+ fi
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env python3
2
2
  """Setup script for claude-mpm."""
3
3
 
4
- from setuptools import setup, find_packages
5
- from setuptools.command.install import install
6
- from setuptools.command.develop import develop
7
4
  import os
8
- import sys
9
5
  import shutil
10
6
  import subprocess
7
+ import sys
11
8
  from pathlib import Path
12
9
 
10
+ from setuptools import find_packages, setup
11
+ from setuptools.command.develop import develop
12
+ from setuptools.command.install import install
13
+
13
14
  # Read version from VERSION file - single source of truth
14
15
  version_file = Path(__file__).parent / "VERSION"
15
16
  if version_file.exists():
@@ -17,11 +18,14 @@ if version_file.exists():
17
18
  else:
18
19
  # Default version if VERSION file is missing
19
20
  __version__ = "0.0.0"
20
- print("WARNING: VERSION file not found, using default version 0.0.0", file=sys.stderr)
21
+ print(
22
+ "WARNING: VERSION file not found, using default version 0.0.0", file=sys.stderr
23
+ )
21
24
 
22
25
 
23
26
  class PostInstallCommand(install):
24
27
  """Post-installation for installation mode."""
28
+
25
29
  def run(self):
26
30
  install.run(self)
27
31
  self.execute(self._post_install, [], msg="Running post-installation setup...")
@@ -31,27 +35,30 @@ class PostInstallCommand(install):
31
35
  # Create user .claude-mpm directory
32
36
  user_dir = Path.home() / ".claude-mpm"
33
37
  user_dir.mkdir(exist_ok=True)
34
-
38
+
35
39
  # Create subdirectories
36
40
  (user_dir / "agents" / "user-defined").mkdir(parents=True, exist_ok=True)
37
41
  (user_dir / "logs").mkdir(exist_ok=True)
38
42
  (user_dir / "config").mkdir(exist_ok=True)
39
-
43
+
44
+ # Build dashboard assets
45
+ build_dashboard_assets()
46
+
40
47
  # Install ticket command
41
48
  self._install_ticket_command()
42
-
49
+
43
50
  def _install_ticket_command(self):
44
51
  """Install ticket command wrapper."""
45
52
  import site
46
-
53
+
47
54
  # Get the scripts directory
48
- if hasattr(site, 'USER_BASE'):
55
+ if hasattr(site, "USER_BASE"):
49
56
  scripts_dir = Path(site.USER_BASE) / "bin"
50
57
  else:
51
58
  scripts_dir = Path(sys.prefix) / "bin"
52
-
59
+
53
60
  scripts_dir.mkdir(exist_ok=True)
54
-
61
+
55
62
  # Create ticket wrapper script
56
63
  ticket_script = scripts_dir / "ticket"
57
64
  ticket_content = '''#!/usr/bin/env python3
@@ -68,6 +75,7 @@ if __name__ == "__main__":
68
75
 
69
76
  class PostDevelopCommand(develop):
70
77
  """Post-installation for development mode."""
78
+
71
79
  def run(self):
72
80
  develop.run(self)
73
81
  self.execute(self._post_develop, [], msg="Running post-development setup...")
@@ -77,17 +85,44 @@ class PostDevelopCommand(develop):
77
85
  PostInstallCommand._post_install(self)
78
86
 
79
87
 
88
+ def build_dashboard_assets():
89
+ """Build dashboard assets using Vite if Node.js is available."""
90
+ try:
91
+ build_script = Path(__file__).parent / "scripts" / "build-dashboard.sh"
92
+ if build_script.exists():
93
+ print("Building dashboard assets...")
94
+ result = subprocess.run(
95
+ ["bash", str(build_script)],
96
+ capture_output=True,
97
+ text=True,
98
+ cwd=Path(__file__).parent,
99
+ )
100
+ if result.returncode != 0:
101
+ print(f"Warning: Dashboard build failed: {result.stderr}")
102
+ print(
103
+ "Dashboard will use individual script files instead of optimized bundles."
104
+ )
105
+ else:
106
+ print("Dashboard assets built successfully")
107
+ else:
108
+ print("Dashboard build script not found, skipping...")
109
+ except Exception as e:
110
+ print(f"Warning: Failed to build dashboard assets: {e}")
111
+
112
+
80
113
  def aggregate_agent_dependencies():
81
114
  """Run agent dependency aggregation script."""
82
115
  try:
83
- script_path = Path(__file__).parent / "scripts" / "aggregate_agent_dependencies.py"
116
+ script_path = (
117
+ Path(__file__).parent / "scripts" / "aggregate_agent_dependencies.py"
118
+ )
84
119
  if script_path.exists():
85
120
  print("Aggregating agent dependencies...")
86
121
  result = subprocess.run(
87
122
  [sys.executable, str(script_path)],
88
123
  capture_output=True,
89
124
  text=True,
90
- cwd=Path(__file__).parent
125
+ cwd=Path(__file__).parent,
91
126
  )
92
127
  if result.returncode != 0:
93
128
  print(f"Warning: Agent dependency aggregation failed: {result.stderr}")
@@ -103,8 +138,10 @@ def read_requirements():
103
138
  """Read requirements from requirements.txt if it exists."""
104
139
  req_file = Path(__file__).parent / "requirements.txt"
105
140
  if req_file.exists():
106
- with open(req_file, 'r') as f:
107
- return [line.strip() for line in f if line.strip() and not line.startswith('#')]
141
+ with open(req_file, "r") as f:
142
+ return [
143
+ line.strip() for line in f if line.strip() and not line.startswith("#")
144
+ ]
108
145
  return []
109
146
 
110
147
 
@@ -116,19 +153,22 @@ def read_optional_dependencies():
116
153
  # Try different TOML libraries based on Python version
117
154
  if sys.version_info >= (3, 11):
118
155
  import tomllib
119
- with open(pyproject_path, 'rb') as f:
156
+
157
+ with open(pyproject_path, "rb") as f:
120
158
  data = tomllib.load(f)
121
159
  else:
122
160
  try:
123
161
  import tomli as tomllib
124
- with open(pyproject_path, 'rb') as f:
162
+
163
+ with open(pyproject_path, "rb") as f:
125
164
  data = tomllib.load(f)
126
165
  except ImportError:
127
166
  import toml
128
- with open(pyproject_path, 'r') as f:
167
+
168
+ with open(pyproject_path, "r") as f:
129
169
  data = toml.load(f)
130
-
131
- optional_deps = data.get('project', {}).get('optional-dependencies', {})
170
+
171
+ optional_deps = data.get("project", {}).get("optional-dependencies", {})
132
172
  return optional_deps
133
173
  return {}
134
174
  except ImportError:
@@ -156,7 +196,8 @@ setup(
156
196
  package_dir={"": "src"},
157
197
  packages=find_packages(where="src"),
158
198
  include_package_data=True,
159
- install_requires=read_requirements() or [
199
+ install_requires=read_requirements()
200
+ or [
160
201
  "ai-trackdown-pytools>=1.4.0",
161
202
  "pyyaml>=6.0",
162
203
  "python-dotenv>=0.19.0",
@@ -181,8 +222,8 @@ setup(
181
222
  ],
182
223
  },
183
224
  cmdclass={
184
- 'install': PostInstallCommand,
185
- 'develop': PostDevelopCommand,
225
+ "install": PostInstallCommand,
226
+ "develop": PostDevelopCommand,
186
227
  },
187
228
  classifiers=[
188
229
  "Development Status :: 3 - Alpha",
@@ -197,4 +238,4 @@ setup(
197
238
  "Programming Language :: Python :: 3.12",
198
239
  ],
199
240
  keywords="claude ai orchestration multi-agent project-management",
200
- )
241
+ )
@@ -0,0 +1 @@
1
+ 4.0.2
@@ -40,6 +40,6 @@ MPMOrchestrator = ClaudeRunner
40
40
 
41
41
  __all__ = [
42
42
  "ClaudeRunner",
43
- "MPMOrchestrator",
43
+ "MPMOrchestrator",
44
44
  "TicketManager",
45
- ]
45
+ ]
@@ -1,3 +1,5 @@
1
+ from pathlib import Path
2
+
1
3
  """
2
4
  Main entry point for claude-mpm package.
3
5
 
@@ -9,7 +11,6 @@ keeping this file minimal and focused on its single responsibility.
9
11
  """
10
12
 
11
13
  import sys
12
- from pathlib import Path
13
14
 
14
15
  # Add parent directory to path to ensure proper imports
15
16
  sys.path.insert(0, str(Path(__file__).parent.parent))
@@ -18,4 +19,4 @@ sys.path.insert(0, str(Path(__file__).parent.parent))
18
19
  from claude_mpm.cli import main
19
20
 
20
21
  if __name__ == "__main__":
21
- sys.exit(main())
22
+ sys.exit(main())
@@ -0,0 +1,124 @@
1
+ """
2
+ Claude PM Framework Agents Package
3
+
4
+ System-level agent implementations with Task Tool integration.
5
+ These agents provide specialized prompts and capabilities for PM orchestration.
6
+
7
+ Uses unified agent loader to load prompts from JSON templates in agents/templates/
8
+ for better structure and maintainability.
9
+ """
10
+
11
+ # Import from unified agent loader
12
+ from .agent_loader import (
13
+ clear_agent_cache,
14
+ get_agent_prompt,
15
+ list_available_agents,
16
+ validate_agent_files,
17
+ )
18
+
19
+ # Import agent metadata (previously AGENT_CONFIG)
20
+ from .agents_metadata import (
21
+ ALL_AGENT_CONFIGS,
22
+ DATA_ENGINEER_CONFIG,
23
+ DOCUMENTATION_CONFIG,
24
+ ENGINEER_CONFIG,
25
+ OPS_CONFIG,
26
+ QA_CONFIG,
27
+ RESEARCH_CONFIG,
28
+ SECURITY_CONFIG,
29
+ VERSION_CONTROL_CONFIG,
30
+ )
31
+
32
+ # Available system agents
33
+ __all__ = [
34
+ # Generic agent interface
35
+ "get_agent_prompt",
36
+ # Agent utility functions
37
+ "list_available_agents",
38
+ "clear_agent_cache",
39
+ "validate_agent_files",
40
+ # Agent configs
41
+ "DOCUMENTATION_CONFIG",
42
+ "VERSION_CONTROL_CONFIG",
43
+ "QA_CONFIG",
44
+ "RESEARCH_CONFIG",
45
+ "OPS_CONFIG",
46
+ "SECURITY_CONFIG",
47
+ "ENGINEER_CONFIG",
48
+ "DATA_ENGINEER_CONFIG",
49
+ "ALL_AGENT_CONFIGS",
50
+ # System registry
51
+ "SYSTEM_AGENTS",
52
+ ]
53
+
54
+ # System agent registry - using generic agent loading
55
+ SYSTEM_AGENTS = {
56
+ "documentation": {
57
+ "agent_id": "documentation-agent",
58
+ "config": DOCUMENTATION_CONFIG,
59
+ "version": "2.0.0",
60
+ "integration": "claude_pm_framework",
61
+ },
62
+ "version_control": {
63
+ "agent_id": "version-control-agent",
64
+ "config": VERSION_CONTROL_CONFIG,
65
+ "version": "2.0.0",
66
+ "integration": "claude_pm_framework",
67
+ },
68
+ "qa": {
69
+ "agent_id": "qa-agent",
70
+ "config": QA_CONFIG,
71
+ "version": "2.0.0",
72
+ "integration": "claude_pm_framework",
73
+ },
74
+ "research": {
75
+ "agent_id": "research-agent",
76
+ "config": RESEARCH_CONFIG,
77
+ "version": "2.0.0",
78
+ "integration": "claude_pm_framework",
79
+ },
80
+ "ops": {
81
+ "agent_id": "ops-agent",
82
+ "config": OPS_CONFIG,
83
+ "version": "2.0.0",
84
+ "integration": "claude_pm_framework",
85
+ },
86
+ "security": {
87
+ "agent_id": "security-agent",
88
+ "config": SECURITY_CONFIG,
89
+ "version": "2.0.0",
90
+ "integration": "claude_pm_framework",
91
+ },
92
+ "engineer": {
93
+ "agent_id": "engineer-agent",
94
+ "config": ENGINEER_CONFIG,
95
+ "version": "2.0.0",
96
+ "integration": "claude_pm_framework",
97
+ },
98
+ "data_engineer": {
99
+ "agent_id": "data-engineer-agent",
100
+ "config": DATA_ENGINEER_CONFIG,
101
+ "version": "2.0.0",
102
+ "integration": "claude_pm_framework",
103
+ },
104
+ }
105
+
106
+
107
+ def get_system_agent_prompt(agent_type: str) -> str:
108
+ """
109
+ Get system agent prompt using the generic interface.
110
+
111
+ Args:
112
+ agent_type: Agent type (e.g., "documentation", "qa", "engineer")
113
+
114
+ Returns:
115
+ Agent prompt string
116
+
117
+ Raises:
118
+ ValueError: If agent type is not found
119
+ """
120
+ if agent_type not in SYSTEM_AGENTS:
121
+ raise ValueError(f"Unknown agent type: {agent_type}")
122
+
123
+ agent_id = SYSTEM_AGENTS[agent_type]["agent_id"]
124
+ return get_agent_prompt(agent_id)