claude-mpm 3.9.11__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 (476) hide show
  1. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/LICENSE +1 -1
  2. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/MANIFEST.in +1 -1
  3. {claude_mpm-3.9.11/src/claude_mpm.egg-info → claude_mpm-4.0.3}/PKG-INFO +27 -1
  4. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/README.md +25 -0
  5. claude_mpm-4.0.3/VERSION +1 -0
  6. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/claude-mpm +2 -2
  7. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/pyproject.toml +13 -1
  8. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/requirements.txt +8 -1
  9. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/scripts/ticket +1 -1
  10. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/__init__.py +2 -2
  13. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/agent_loader_integration.py +45 -45
  17. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/agents_metadata.py +29 -30
  18. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/async_agent_loader.py +156 -138
  19. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/base_agent.json +1 -1
  20. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/base_agent_loader.py +179 -151
  21. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/frontmatter_validator.py +229 -130
  22. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/schema/agent_schema.json +1 -1
  23. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/system_agent_config.py +213 -147
  24. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/__init__.py +13 -13
  25. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/code_analyzer.json +2 -2
  26. {claude_mpm-3.9.11 → 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-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/memory_manager.json +1 -1
  30. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/ops.json +2 -2
  31. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/project_organizer.json +1 -1
  32. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/security.json +1 -1
  36. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/ticketing.json +1 -1
  37. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/version_control.json +1 -1
  38. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/web_qa.json +3 -1
  39. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/web_ui.json +2 -2
  40. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/__init__.py +79 -51
  41. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/__main__.py +3 -2
  42. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/__init__.py +20 -20
  43. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/agents.py +279 -247
  44. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/aggregate.py +138 -157
  45. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/cleanup.py +147 -147
  46. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/config.py +93 -76
  47. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/memory.py +239 -203
  55. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/monitor.py +203 -81
  56. {claude_mpm-3.9.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/ticket_cli.py +7 -3
  71. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/cli/utils.py +55 -37
  72. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/commands.py +79 -70
  75. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/config/agent_config.py +151 -119
  78. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/config/experimental_features.py +71 -73
  79. claude_mpm-4.0.3/src/claude_mpm/config/paths.py +258 -0
  80. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/config/socketio_config.py +84 -73
  81. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/constants.py +35 -18
  82. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/__init__.py +9 -6
  83. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/core/agent_session_manager.py +74 -63
  86. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/base_service.py +116 -87
  87. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/core/config.py +263 -168
  90. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/core/constants.py +57 -99
  93. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/container.py +211 -178
  94. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/exceptions.py +233 -89
  95. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/factories.py +92 -54
  96. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/core/injectable_service.py +61 -55
  100. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/interactive_session.py +165 -155
  101. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/interfaces.py +221 -195
  102. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/lazy.py +96 -96
  103. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/logger.py +133 -107
  104. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/logging_config.py +185 -157
  105. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/minimal_framework_loader.py +20 -15
  106. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/mixins.py +30 -29
  107. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/oneshot_session.py +215 -181
  108. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/optimized_agent_loader.py +134 -138
  109. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/optimized_startup.py +159 -157
  110. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/pm_hook_interceptor.py +85 -72
  111. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/service_registry.py +103 -101
  112. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/session_manager.py +97 -87
  113. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/socketio_pool.py +212 -158
  114. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/tool_access_control.py +58 -51
  115. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/core/types.py +46 -24
  116. {claude_mpm-3.9.11 → 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.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +80 -76
  139. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/event-processor.js +71 -67
  140. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +74 -70
  141. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/export-manager.js +31 -28
  142. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +106 -92
  143. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +11 -11
  144. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +73 -73
  145. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +163 -163
  146. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +305 -233
  147. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/session-manager.js +32 -29
  148. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +27 -20
  149. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +21 -18
  150. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/working-directory.js +74 -71
  151. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/socket-client.js +120 -54
  154. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/templates/index.html +40 -50
  155. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/experimental/cli_enhancements.py +60 -58
  156. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/generators/__init__.py +1 -1
  157. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/generators/agent_profile_generator.py +75 -65
  158. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/hooks/__init__.py +1 -1
  159. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/hooks/base_hook.py +33 -28
  160. {claude_mpm-3.9.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/hooks/memory_integration_hook.py +140 -100
  169. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/hooks/tool_call_interceptor.py +89 -76
  170. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/hooks/validation_hooks.py +57 -49
  171. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/init.py +145 -121
  172. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/models/__init__.py +9 -9
  173. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/models/agent_definition.py +33 -23
  174. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/models/agent_session.py +228 -200
  175. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/scripts/__init__.py +1 -1
  176. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/scripts/start_activity_logging.py +25 -22
  179. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/__init__.py +23 -32
  182. {claude_mpm-3.9.11 → 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.11 → 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.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/__init__.py +2 -2
  245. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +259 -229
  246. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/base_agent_manager.py +90 -81
  247. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +154 -129
  248. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/__init__.py +2 -2
  249. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +72 -58
  250. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/agent_management_service.py +209 -156
  251. {claude_mpm-3.9.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/__init__.py +7 -10
  258. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +122 -97
  259. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/modification_tracker.py +351 -285
  260. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/async_session_logger.py +187 -153
  261. {claude_mpm-3.9.11 → 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.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/event_aggregator.py +208 -170
  273. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/exceptions.py +387 -308
  274. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +75 -79
  275. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +69 -60
  276. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +65 -61
  277. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +68 -49
  278. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +34 -34
  279. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +25 -22
  280. {claude_mpm-3.9.11 → 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.11 → 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.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +6 -5
  285. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +8 -7
  286. {claude_mpm-3.9.11 → 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.11 → 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.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +5 -4
  291. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +28 -27
  292. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +30 -28
  293. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/hook_service.py +106 -114
  294. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/__init__.py +7 -5
  295. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/context_preservation.py +233 -199
  296. claude_mpm-4.0.3/src/claude_mpm/services/infrastructure/daemon_manager.py +279 -0
  297. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/logging.py +83 -76
  298. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/monitoring.py +547 -404
  299. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/__init__.py +30 -13
  300. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/__init__.py +2 -2
  301. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +61 -56
  302. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +50 -41
  303. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/configuration.py +82 -75
  304. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/__init__.py +13 -20
  305. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/base.py +80 -67
  306. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +60 -46
  307. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +87 -84
  308. claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/main.py +506 -0
  309. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +1 -1
  310. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +97 -94
  311. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +135 -126
  312. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/server/__init__.py +2 -2
  313. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +105 -110
  314. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +4 -2
  317. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +109 -119
  318. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +283 -215
  319. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/__init__.py +2 -2
  323. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/builder.py +451 -362
  324. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/__init__.py +2 -2
  325. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +232 -194
  326. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/simple_cache.py +107 -93
  327. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/indexed_memory.py +195 -193
  328. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/project/__init__.py +3 -3
  333. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/project/analyzer.py +451 -305
  334. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/project/registry.py +262 -240
  335. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/recovery_manager.py +287 -231
  336. {claude_mpm-3.9.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/__init__.py +3 -3
  342. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/base.py +44 -30
  343. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/memory.py +4 -4
  348. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/project.py +4 -4
  349. {claude_mpm-3.9.11 → 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.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/__init__.py +18 -21
  361. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/branch_strategy.py +20 -10
  362. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/conflict_resolution.py +37 -13
  363. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/git_operations.py +52 -21
  364. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/semantic_versioning.py +92 -53
  365. {claude_mpm-3.9.11 → 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-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/storage/__init__.py +2 -2
  368. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/storage/state_storage.py +177 -181
  369. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/ticket_wrapper.py +2 -2
  370. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/__init__.py +2 -2
  371. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/agent_dependency_loader.py +453 -243
  372. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/config_manager.py +157 -118
  373. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/console.py +1 -1
  374. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_cache.py +102 -107
  375. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_manager.py +52 -47
  376. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_strategies.py +131 -96
  377. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/environment_context.py +110 -102
  378. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/error_handler.py +75 -55
  379. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/file_utils.py +80 -67
  380. {claude_mpm-3.9.11 → 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.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/imports.py +48 -45
  383. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/path_operations.py +100 -93
  384. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/robust_installer.py +172 -164
  385. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/session_logging.py +30 -23
  386. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/utils/subprocess_utils.py +99 -61
  387. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/validation/__init__.py +1 -1
  388. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/validation/agent_validator.py +151 -111
  389. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/validation/frontmatter_validator.py +92 -71
  390. {claude_mpm-3.9.11 → claude_mpm-4.0.3/src/claude_mpm.egg-info}/PKG-INFO +27 -1
  391. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/SOURCES.txt +129 -34
  392. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/entry_points.txt +1 -0
  393. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/requires.txt +1 -0
  394. claude_mpm-3.9.11/VERSION +0 -1
  395. claude_mpm-3.9.11/scripts/run_mpm.py +0 -21
  396. claude_mpm-3.9.11/src/claude_mpm/VERSION +0 -1
  397. claude_mpm-3.9.11/src/claude_mpm/agents/__init__.py +0 -118
  398. claude_mpm-3.9.11/src/claude_mpm/agents/agent_loader.py +0 -1439
  399. claude_mpm-3.9.11/src/claude_mpm/agents/templates/documentation.json +0 -125
  400. claude_mpm-3.9.11/src/claude_mpm/agents/templates/engineer.json +0 -129
  401. claude_mpm-3.9.11/src/claude_mpm/agents/templates/research.json +0 -88
  402. claude_mpm-3.9.11/src/claude_mpm/cli/commands/mcp.py +0 -967
  403. claude_mpm-3.9.11/src/claude_mpm/cli/commands/run_guarded.py +0 -511
  404. claude_mpm-3.9.11/src/claude_mpm/cli/parser.py +0 -1166
  405. claude_mpm-3.9.11/src/claude_mpm/cli_module/args.py +0 -222
  406. claude_mpm-3.9.11/src/claude_mpm/config/__init__.py +0 -38
  407. claude_mpm-3.9.11/src/claude_mpm/config/memory_guardian_config.py +0 -325
  408. claude_mpm-3.9.11/src/claude_mpm/config/memory_guardian_yaml.py +0 -335
  409. claude_mpm-3.9.11/src/claude_mpm/config/paths.py +0 -372
  410. claude_mpm-3.9.11/src/claude_mpm/core/agent_registry.py +0 -676
  411. claude_mpm-3.9.11/src/claude_mpm/core/claude_runner.py +0 -1488
  412. claude_mpm-3.9.11/src/claude_mpm/core/config_paths.py +0 -150
  413. claude_mpm-3.9.11/src/claude_mpm/core/hook_manager.py +0 -196
  414. claude_mpm-3.9.11/src/claude_mpm/core/memory_aware_runner.py +0 -353
  415. claude_mpm-3.9.11/src/claude_mpm/dashboard/open_dashboard.py +0 -34
  416. claude_mpm-3.9.11/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -4134
  417. claude_mpm-3.9.11/src/claude_mpm/deployment_paths.py +0 -261
  418. claude_mpm-3.9.11/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -1812
  419. claude_mpm-3.9.11/src/claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -454
  420. claude_mpm-3.9.11/src/claude_mpm/models/state_models.py +0 -433
  421. claude_mpm-3.9.11/src/claude_mpm/services/agent/__init__.py +0 -24
  422. claude_mpm-3.9.11/src/claude_mpm/services/agent/deployment.py +0 -2548
  423. claude_mpm-3.9.11/src/claude_mpm/services/agent/management.py +0 -598
  424. claude_mpm-3.9.11/src/claude_mpm/services/agent/registry.py +0 -813
  425. claude_mpm-3.9.11/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -2667
  426. claude_mpm-3.9.11/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -1571
  427. claude_mpm-3.9.11/src/claude_mpm/services/agents/registry/agent_registry.py +0 -813
  428. claude_mpm-3.9.11/src/claude_mpm/services/communication/socketio.py +0 -1935
  429. claude_mpm-3.9.11/src/claude_mpm/services/communication/websocket.py +0 -479
  430. claude_mpm-3.9.11/src/claude_mpm/services/core/__init__.py +0 -123
  431. claude_mpm-3.9.11/src/claude_mpm/services/core/interfaces.py +0 -951
  432. claude_mpm-3.9.11/src/claude_mpm/services/framework_claude_md_generator.py +0 -624
  433. claude_mpm-3.9.11/src/claude_mpm/services/health_monitor.py +0 -893
  434. claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/graceful_degradation.py +0 -616
  435. claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/health_monitor.py +0 -775
  436. claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/memory_dashboard.py +0 -479
  437. claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/memory_guardian.py +0 -944
  438. claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/restart_protection.py +0 -642
  439. claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/state_manager.py +0 -774
  440. claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/main.py +0 -356
  441. claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/manager.py +0 -334
  442. claude_mpm-3.9.11/src/claude_mpm/services/memory/router.py +0 -538
  443. claude_mpm-3.9.11/src/claude_mpm/services/optimized_hook_service.py +0 -542
  444. claude_mpm-3.9.11/src/claude_mpm/services/project_analyzer.py +0 -864
  445. claude_mpm-3.9.11/src/claude_mpm/services/project_registry.py +0 -608
  446. claude_mpm-3.9.11/src/claude_mpm/services/socketio/handlers/file.py +0 -213
  447. claude_mpm-3.9.11/src/claude_mpm/services/socketio/handlers/git.py +0 -723
  448. claude_mpm-3.9.11/src/claude_mpm/services/socketio_server.py +0 -1933
  449. claude_mpm-3.9.11/src/claude_mpm/services/standalone_socketio_server.py +0 -1300
  450. claude_mpm-3.9.11/src/claude_mpm/services/ticket_manager.py +0 -539
  451. claude_mpm-3.9.11/src/claude_mpm/services/ticket_manager_di.py +0 -318
  452. claude_mpm-3.9.11/src/claude_mpm/services/ticketing_service_original.py +0 -510
  453. claude_mpm-3.9.11/src/claude_mpm/utils/import_migration_example.py +0 -80
  454. claude_mpm-3.9.11/src/claude_mpm/utils/paths.py +0 -395
  455. claude_mpm-3.9.11/src/claude_mpm/utils/platform_memory.py +0 -524
  456. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/CLAUDE.md +0 -0
  457. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/setup.cfg +0 -0
  458. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  459. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/BASE_PM.md +0 -0
  460. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
  461. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/MEMORY.md +0 -0
  462. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/WORKFLOW.md +0 -0
  463. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
  464. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  465. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  466. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  467. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  468. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  469. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
  470. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  471. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_memory_efficient.json +0 -0
  472. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  473. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  474. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  475. {claude_mpm-3.9.11 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  476. {claude_mpm-3.9.11 → 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.11
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
@@ -46,6 +46,7 @@ Requires-Dist: pytest-cov; extra == "dev"
46
46
  Requires-Dist: black; extra == "dev"
47
47
  Requires-Dist: flake8; extra == "dev"
48
48
  Requires-Dist: mypy; extra == "dev"
49
+ Requires-Dist: pre-commit; extra == "dev"
49
50
  Provides-Extra: docs
50
51
  Requires-Dist: sphinx>=7.2.0; extra == "docs"
51
52
  Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
@@ -210,9 +211,34 @@ See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/M
210
211
 
211
212
  ## Development
212
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
+
213
234
  ### Contributing
214
235
  Contributions are welcome! Please see our [project structure guide](docs/STRUCTURE.md) and follow the established patterns.
215
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
+
216
242
  ### Project Structure
217
243
  See [docs/STRUCTURE.md](docs/STRUCTURE.md) for codebase organization.
218
244
 
@@ -109,9 +109,34 @@ See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/M
109
109
 
110
110
  ## Development
111
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
+
112
132
  ### Contributing
113
133
  Contributions are welcome! Please see our [project structure guide](docs/STRUCTURE.md) and follow the established patterns.
114
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
+
115
140
  ### Project Structure
116
141
  See [docs/STRUCTURE.md](docs/STRUCTURE.md) for codebase organization.
117
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
@@ -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)