claude-mpm 4.0.20__tar.gz → 4.0.23__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 (460) hide show
  1. claude_mpm-4.0.23/BUILD_NUMBER +1 -0
  2. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/PKG-INFO +1 -1
  3. claude_mpm-4.0.23/VERSION +1 -0
  4. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/pyproject.toml +1 -1
  5. claude_mpm-4.0.23/src/claude_mpm/BUILD_NUMBER +1 -0
  6. claude_mpm-4.0.23/src/claude_mpm/VERSION +1 -0
  7. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/INSTRUCTIONS.md +74 -0
  8. claude_mpm-4.0.23/src/claude_mpm/agents/WORKFLOW.md +440 -0
  9. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/agents_metadata.py +52 -0
  10. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/base_agent_loader.py +75 -19
  11. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/__init__.py +4 -0
  12. claude_mpm-4.0.23/src/claude_mpm/agents/templates/api_qa.json +206 -0
  13. claude_mpm-4.0.23/src/claude_mpm/agents/templates/code_analyzer.json +103 -0
  14. claude_mpm-4.0.23/src/claude_mpm/agents/templates/data_engineer.json +123 -0
  15. claude_mpm-4.0.23/src/claude_mpm/agents/templates/documentation.json +164 -0
  16. claude_mpm-4.0.23/src/claude_mpm/agents/templates/engineer.json +145 -0
  17. claude_mpm-4.0.23/src/claude_mpm/agents/templates/ops.json +120 -0
  18. claude_mpm-4.0.23/src/claude_mpm/agents/templates/qa.json +139 -0
  19. claude_mpm-4.0.23/src/claude_mpm/agents/templates/refactoring_engineer.json +244 -0
  20. claude_mpm-4.0.23/src/claude_mpm/agents/templates/research.json +102 -0
  21. claude_mpm-4.0.23/src/claude_mpm/agents/templates/security.json +126 -0
  22. claude_mpm-4.0.23/src/claude_mpm/agents/templates/ticketing.json +169 -0
  23. claude_mpm-4.0.23/src/claude_mpm/agents/templates/vercel_ops_agent.json +281 -0
  24. claude_mpm-4.0.23/src/claude_mpm/agents/templates/vercel_ops_instructions.md +582 -0
  25. claude_mpm-4.0.23/src/claude_mpm/agents/templates/version_control.json +121 -0
  26. claude_mpm-4.0.23/src/claude_mpm/agents/templates/web_ui.json +176 -0
  27. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/mcp_command_router.py +87 -1
  28. claude_mpm-4.0.23/src/claude_mpm/cli/commands/mcp_install_commands.py +258 -0
  29. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/mcp_parser.py +23 -0
  30. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/constants.py +1 -0
  31. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/base_service.py +7 -1
  32. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/config.py +64 -39
  33. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/framework_loader.py +100 -37
  34. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/interactive_session.py +28 -17
  35. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/scripts/socketio_daemon.py +67 -7
  36. claude_mpm-4.0.23/src/claude_mpm/scripts/socketio_daemon_hardened.py +897 -0
  37. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_deployment.py +65 -3
  38. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +65 -1
  39. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +42 -203
  40. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory_hook_service.py +62 -4
  41. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/runner_configuration_service.py +5 -9
  42. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/server/broadcaster.py +32 -1
  43. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/server/core.py +4 -0
  44. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/server/main.py +23 -4
  45. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm.egg-info/PKG-INFO +1 -1
  46. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm.egg-info/SOURCES.txt +4 -0
  47. claude_mpm-4.0.20/BUILD_NUMBER +0 -1
  48. claude_mpm-4.0.20/VERSION +0 -1
  49. claude_mpm-4.0.20/src/claude_mpm/BUILD_NUMBER +0 -1
  50. claude_mpm-4.0.20/src/claude_mpm/VERSION +0 -1
  51. claude_mpm-4.0.20/src/claude_mpm/agents/WORKFLOW.md +0 -136
  52. claude_mpm-4.0.20/src/claude_mpm/agents/templates/code_analyzer.json +0 -103
  53. claude_mpm-4.0.20/src/claude_mpm/agents/templates/data_engineer.json +0 -123
  54. claude_mpm-4.0.20/src/claude_mpm/agents/templates/documentation.json +0 -137
  55. claude_mpm-4.0.20/src/claude_mpm/agents/templates/engineer.json +0 -145
  56. claude_mpm-4.0.20/src/claude_mpm/agents/templates/ops.json +0 -120
  57. claude_mpm-4.0.20/src/claude_mpm/agents/templates/qa.json +0 -139
  58. claude_mpm-4.0.20/src/claude_mpm/agents/templates/refactoring_engineer.json +0 -222
  59. claude_mpm-4.0.20/src/claude_mpm/agents/templates/research.json +0 -94
  60. claude_mpm-4.0.20/src/claude_mpm/agents/templates/security.json +0 -126
  61. claude_mpm-4.0.20/src/claude_mpm/agents/templates/ticketing.json +0 -156
  62. claude_mpm-4.0.20/src/claude_mpm/agents/templates/version_control.json +0 -121
  63. claude_mpm-4.0.20/src/claude_mpm/agents/templates/web_ui.json +0 -176
  64. claude_mpm-4.0.20/src/claude_mpm/cli/commands/mcp_install_commands.py +0 -77
  65. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/CLAUDE.md +0 -0
  66. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/LICENSE +0 -0
  67. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/MANIFEST.in +0 -0
  68. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/README.md +0 -0
  69. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/requirements.txt +0 -0
  70. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/scripts/ticket +0 -0
  71. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/setup.cfg +0 -0
  72. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/setup.py +0 -0
  73. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/__init__.py +0 -0
  74. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/__main__.py +0 -0
  75. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  76. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/BASE_PM.md +0 -0
  77. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/MEMORY.md +0 -0
  78. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/OUTPUT_STYLE.md +0 -0
  79. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/__init__.py +0 -0
  80. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/agent-template.yaml +0 -0
  81. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/agent_loader.py +0 -0
  82. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  83. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/async_agent_loader.py +0 -0
  84. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
  85. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/base_agent.json +0 -0
  86. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
  87. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
  88. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/system_agent_config.py +0 -0
  89. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  90. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  91. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  92. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  93. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  94. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
  95. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  96. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/research_memory_efficient.json +0 -0
  97. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  98. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  99. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/memory_manager.json +0 -0
  100. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
  101. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/agents/templates/web_qa.json +0 -0
  102. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/__init__.py +0 -0
  103. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/__main__.py +0 -0
  104. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/__init__.py +0 -0
  105. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/agents.py +0 -0
  106. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/aggregate.py +0 -0
  107. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/cleanup.py +0 -0
  108. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/config.py +0 -0
  109. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/info.py +0 -0
  110. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/mcp.py +0 -0
  111. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/mcp_config_commands.py +0 -0
  112. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/mcp_server_commands.py +0 -0
  113. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/mcp_tool_commands.py +0 -0
  114. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/memory.py +0 -0
  115. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/monitor.py +0 -0
  116. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/run.py +0 -0
  117. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/run_config_checker.py +0 -0
  118. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/socketio_monitor.py +0 -0
  119. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/commands/tickets.py +0 -0
  120. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parser.py +0 -0
  121. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/__init__.py +0 -0
  122. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/agents_parser.py +0 -0
  123. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/base_parser.py +0 -0
  124. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/config_parser.py +0 -0
  125. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/memory_parser.py +0 -0
  126. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/monitor_parser.py +0 -0
  127. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/run_parser.py +0 -0
  128. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/parsers/tickets_parser.py +0 -0
  129. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/ticket_cli.py +0 -0
  130. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli/utils.py +0 -0
  131. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli_module/__init__.py +0 -0
  132. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli_module/args.py +0 -0
  133. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli_module/commands.py +0 -0
  134. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/cli_module/migration_example.py +0 -0
  135. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/config/__init__.py +0 -0
  136. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/config/agent_config.py +0 -0
  137. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/config/experimental_features.py +0 -0
  138. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/config/paths.py +0 -0
  139. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/config/socketio_config.py +0 -0
  140. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/__init__.py +0 -0
  141. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  142. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/agent_registry.py +0 -0
  143. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/agent_session_manager.py +0 -0
  144. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/cache.py +0 -0
  145. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/claude_runner.py +0 -0
  146. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/config_aliases.py +0 -0
  147. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/config_constants.py +0 -0
  148. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/constants.py +0 -0
  149. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/container.py +0 -0
  150. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/exceptions.py +0 -0
  151. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/factories.py +0 -0
  152. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/hook_manager.py +0 -0
  153. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/hook_performance_config.py +0 -0
  154. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/injectable_service.py +0 -0
  155. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/interfaces.py +0 -0
  156. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/lazy.py +0 -0
  157. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/logger.py +0 -0
  158. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/logging_config.py +0 -0
  159. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  160. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/mixins.py +0 -0
  161. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/oneshot_session.py +0 -0
  162. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
  163. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/optimized_startup.py +0 -0
  164. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/output_style_manager.py +0 -0
  165. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
  166. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/service_registry.py +0 -0
  167. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/session_manager.py +0 -0
  168. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/socketio_pool.py +0 -0
  169. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/tool_access_control.py +0 -0
  170. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/types.py +0 -0
  171. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/typing_utils.py +0 -0
  172. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/unified_agent_registry.py +0 -0
  173. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/unified_config.py +0 -0
  174. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/core/unified_paths.py +0 -0
  175. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/index.html +0 -0
  176. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
  177. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/agent-inference.js +0 -0
  178. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/event-processor.js +0 -0
  179. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/event-viewer.js +0 -0
  180. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/export-manager.js +0 -0
  181. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -0
  182. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -0
  183. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/hud-manager.js +0 -0
  184. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -0
  185. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/module-viewer.js +0 -0
  186. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/session-manager.js +0 -0
  187. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/socket-manager.js +0 -0
  188. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -0
  189. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/components/working-directory.js +0 -0
  190. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/dashboard.js +0 -0
  191. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/built/socket-client.js +0 -0
  192. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
  193. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -0
  194. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/event-processor.js +0 -0
  195. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -0
  196. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/export-manager.js +0 -0
  197. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -0
  198. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -0
  199. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -0
  200. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -0
  201. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -0
  202. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/session-manager.js +0 -0
  203. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -0
  204. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -0
  205. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/components/working-directory.js +0 -0
  206. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/dashboard.js +0 -0
  207. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/dist/socket-client.js +0 -0
  208. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
  209. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
  210. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
  211. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
  212. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
  213. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
  214. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
  215. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
  216. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
  217. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
  218. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
  219. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
  220. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
  221. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
  222. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/extension-error-handler.js +0 -0
  223. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
  224. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/templates/index.html +0 -0
  225. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  226. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
  227. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/generators/__init__.py +0 -0
  228. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  229. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/__init__.py +0 -0
  230. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/base_hook.py +0 -0
  231. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  232. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/connection_pool.py +0 -0
  233. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
  234. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  235. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  236. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
  237. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
  238. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +0 -0
  239. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
  240. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  241. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  242. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/init.py +0 -0
  243. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/models/__init__.py +0 -0
  244. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/models/agent_definition.py +0 -0
  245. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/models/agent_session.py +0 -0
  246. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/scripts/__init__.py +0 -0
  247. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/scripts/mcp_server.py +0 -0
  248. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/scripts/mcp_wrapper.py +0 -0
  249. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/scripts/socketio_server_manager.py +0 -0
  250. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
  251. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/__init__.py +0 -0
  252. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agent_capabilities_service.py +0 -0
  253. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/__init__.py +0 -0
  254. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
  255. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_config_provider.py +0 -0
  256. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +0 -0
  257. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +0 -0
  258. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +0 -0
  259. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +0 -0
  260. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +0 -0
  261. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_format_converter.py +0 -0
  262. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +0 -0
  263. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
  264. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +0 -0
  265. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -0
  266. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_template_builder.py +0 -0
  267. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_validator.py +0 -0
  268. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_version_manager.py +0 -0
  269. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
  270. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +0 -0
  271. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/config/__init__.py +0 -0
  272. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/config/deployment_config.py +0 -0
  273. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +0 -0
  274. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +0 -0
  275. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +0 -0
  276. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/facade/__init__.py +0 -0
  277. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +0 -0
  278. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -0
  279. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +0 -0
  280. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +0 -0
  281. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/interface_adapter.py +0 -0
  282. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +0 -0
  283. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +0 -0
  284. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/multi_source_deployment_service.py +0 -0
  285. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +0 -0
  286. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +0 -0
  287. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +0 -0
  288. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +0 -0
  289. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +0 -0
  290. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +0 -0
  291. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -0
  292. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +0 -0
  293. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +0 -0
  294. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +0 -0
  295. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/processors/__init__.py +0 -0
  296. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +0 -0
  297. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +0 -0
  298. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +0 -0
  299. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +0 -0
  300. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/results/__init__.py +0 -0
  301. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +0 -0
  302. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +0 -0
  303. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/strategies/__init__.py +0 -0
  304. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +0 -0
  305. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +0 -0
  306. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +0 -0
  307. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +0 -0
  308. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +0 -0
  309. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +0 -0
  310. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/validation/__init__.py +0 -0
  311. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +0 -0
  312. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +0 -0
  313. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/validation/template_validator.py +0 -0
  314. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/deployment/validation/validation_result.py +0 -0
  315. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
  316. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
  317. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
  318. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
  319. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/management/__init__.py +0 -0
  320. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
  321. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
  322. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
  323. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
  324. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/memory/content_manager.py +0 -0
  325. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/memory/template_generator.py +0 -0
  326. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
  327. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
  328. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
  329. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/async_session_logger.py +0 -0
  330. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/claude_session_logger.py +0 -0
  331. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/command_handler_service.py +0 -0
  332. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/communication/__init__.py +0 -0
  333. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/__init__.py +0 -0
  334. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/base.py +0 -0
  335. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/interfaces/__init__.py +0 -0
  336. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/interfaces/agent.py +0 -0
  337. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/interfaces/communication.py +0 -0
  338. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/interfaces/infrastructure.py +0 -0
  339. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/interfaces/service.py +0 -0
  340. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/core/interfaces.py +0 -0
  341. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/event_aggregator.py +0 -0
  342. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/exceptions.py +0 -0
  343. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  344. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  345. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  346. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  347. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  348. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  349. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  350. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  351. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  352. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  353. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  354. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  355. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  356. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  357. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  358. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  359. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  360. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  361. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  362. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/hook_service.py +0 -0
  363. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
  364. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/infrastructure/context_preservation.py +0 -0
  365. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/infrastructure/daemon_manager.py +0 -0
  366. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/infrastructure/logging.py +0 -0
  367. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
  368. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/__init__.py +0 -0
  369. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/config/__init__.py +0 -0
  370. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +0 -0
  371. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +0 -0
  372. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/config/configuration.py +0 -0
  373. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/core/__init__.py +0 -0
  374. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/core/base.py +0 -0
  375. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +0 -0
  376. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +0 -0
  377. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -0
  378. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -0
  379. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/main.py +0 -0
  380. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +0 -0
  381. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -0
  382. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -0
  383. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/server/__init__.py +0 -0
  384. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -0
  385. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -0
  386. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -0
  387. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +0 -0
  388. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -0
  389. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -0
  390. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -0
  391. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -0
  392. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -0
  393. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -0
  394. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/__init__.py +0 -0
  395. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/builder.py +0 -0
  396. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
  397. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
  398. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
  399. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
  400. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/optimizer.py +0 -0
  401. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/memory/router.py +0 -0
  402. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/port_manager.py +0 -0
  403. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/project/__init__.py +0 -0
  404. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/project/analyzer.py +0 -0
  405. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/project/registry.py +0 -0
  406. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/recovery_manager.py +0 -0
  407. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/response_tracker.py +0 -0
  408. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/session_management_service.py +0 -0
  409. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/__init__.py +0 -0
  410. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/client_proxy.py +0 -0
  411. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
  412. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
  413. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
  414. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
  415. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
  416. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/hook.py +0 -0
  417. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
  418. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
  419. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
  420. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio/server/__init__.py +0 -0
  421. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio_client_manager.py +0 -0
  422. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/socketio_server.py +0 -0
  423. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/subprocess_launcher_service.py +0 -0
  424. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/system_instructions_service.py +0 -0
  425. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/ticket_manager.py +0 -0
  426. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/utility_service.py +0 -0
  427. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_control/__init__.py +0 -0
  428. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  429. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  430. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  431. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  432. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_control/version_parser.py +0 -0
  433. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/services/version_service.py +0 -0
  434. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/storage/__init__.py +0 -0
  435. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/storage/state_storage.py +0 -0
  436. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/ticket_wrapper.py +0 -0
  437. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/__init__.py +0 -0
  438. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
  439. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/config_manager.py +0 -0
  440. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/console.py +0 -0
  441. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/dependency_cache.py +0 -0
  442. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/dependency_manager.py +0 -0
  443. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/dependency_strategies.py +0 -0
  444. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/environment_context.py +0 -0
  445. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/error_handler.py +0 -0
  446. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/file_utils.py +0 -0
  447. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/framework_detection.py +0 -0
  448. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/import_migration_example.py +0 -0
  449. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/imports.py +0 -0
  450. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/path_operations.py +0 -0
  451. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/robust_installer.py +0 -0
  452. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/session_logging.py +0 -0
  453. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/utils/subprocess_utils.py +0 -0
  454. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/validation/__init__.py +0 -0
  455. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/validation/agent_validator.py +0 -0
  456. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
  457. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  458. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  459. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm.egg-info/requires.txt +0 -0
  460. {claude_mpm-4.0.20 → claude_mpm-4.0.23}/src/claude_mpm.egg-info/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ 291
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.0.20
3
+ Version: 4.0.23
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
@@ -0,0 +1 @@
1
+ 4.0.23
@@ -119,7 +119,7 @@ asyncio_mode = "auto"
119
119
 
120
120
  [tool.commitizen]
121
121
  name = "cz_conventional_commits"
122
- version = "4.0.19"
122
+ version = "4.0.23"
123
123
  version_files = [
124
124
  "VERSION",
125
125
  "src/claude_mpm/VERSION",
@@ -0,0 +1 @@
1
+ 290
@@ -0,0 +1 @@
1
+ 4.0.23
@@ -177,6 +177,80 @@ PM: "Understood. Since you've explicitly requested I handle this directly, I'll
177
177
  *Now PM can use implementation tools*
178
178
  ```
179
179
 
180
+ ## Intelligent QA Agent Selection
181
+
182
+ When entering Phase 3 (Quality Assurance), analyze the implementation context to select the appropriate QA agent:
183
+
184
+ ### QA Type Detection Protocol
185
+
186
+ **Analyze implementation context for QA routing**:
187
+
188
+ 1. **Backend/API Indicators → Use API QA Agent**:
189
+ - Keywords: API, endpoint, route, REST, GraphQL, server, backend, auth, database
190
+ - Files: `/api`, `/routes`, `/controllers`, `/services` directories
191
+ - Extensions: `.py` (FastAPI/Flask), `.js` (Express), `.go`, `.java`
192
+ - Patterns: Database models, auth middleware, API documentation
193
+
194
+ 2. **Frontend/Web Indicators → Use Web QA Agent**:
195
+ - Keywords: web, UI, page, frontend, browser, component, responsive, accessibility
196
+ - Files: `/components`, `/pages`, `/views`, `/public` directories
197
+ - Extensions: `.jsx`, `.tsx`, `.vue`, `.svelte`, `.html`, `.css`
198
+ - Patterns: React/Vue components, CSS changes, static assets
199
+
200
+ 3. **Mixed Implementation → Sequential QA**:
201
+ - Run API QA first for backend validation
202
+ - Then Web QA for frontend integration
203
+ - Finally coordinate results for full coverage
204
+
205
+ 4. **Neither → Use General QA Agent**:
206
+ - CLI tools, libraries, utilities, scripts
207
+ - Non-web, non-API code changes
208
+
209
+ ### QA Handoff Patterns
210
+
211
+ **Engineer → API QA**:
212
+ ```
213
+ Engineer: "Implemented REST API endpoints for user management with JWT authentication"
214
+ PM: "I'll delegate to the API QA agent to validate the REST endpoints and authentication flow."
215
+ Task to API QA: "Test the newly implemented user management REST API endpoints including JWT authentication, CRUD operations, and error handling."
216
+ ```
217
+
218
+ **Web UI → Web QA**:
219
+ ```
220
+ Web UI: "Created responsive checkout flow with form validation"
221
+ PM: "I'll delegate to the Web QA agent to test the checkout flow across browsers."
222
+ Task to Web QA: "Validate the responsive checkout flow including form validation, browser compatibility, and accessibility compliance."
223
+ ```
224
+
225
+ **Engineer → API QA → Web QA (Full-stack)**:
226
+ ```
227
+ Engineer: "Implemented complete user authentication with backend API and React frontend"
228
+ PM: "I'll coordinate testing with both API QA and Web QA agents sequentially."
229
+ Task to API QA: "Test authentication API endpoints, JWT flow, and database operations."
230
+ [After API QA completion]
231
+ Task to Web QA: "Test login UI, form validation, and session management in browsers."
232
+ ```
233
+
234
+ ### TodoWrite Patterns for QA Coordination
235
+
236
+ **API Testing Tasks**:
237
+ - `[PM] Route to API QA for REST endpoint validation`
238
+ - `[API QA] Test user management REST endpoints for CRUD operations`
239
+ - `[API QA] Validate JWT authentication and authorization flow`
240
+ - `[API QA] Load test payment processing endpoints`
241
+
242
+ **Web Testing Tasks**:
243
+ - `[PM] Route to Web QA for browser-based testing`
244
+ - `[Web QA] Test responsive checkout flow in Chrome/Firefox/Safari`
245
+ - `[Web QA] Validate WCAG 2.1 accessibility compliance`
246
+ - `[Web QA] Test React component rendering and state management`
247
+
248
+ **Full-Stack Testing Tasks**:
249
+ - `[PM] Coordinate sequential QA for authentication feature`
250
+ - `[API QA] Validate backend auth API (Phase 1 of 2)`
251
+ - `[Web QA] Test frontend login UI (Phase 2 of 2)`
252
+ - `[PM] Synthesize QA results from API and Web testing`
253
+
180
254
  ## Memory-Conscious Delegation
181
255
 
182
256
  <!-- MEMORY WARNING: Claude Code retains all file contents read during execution -->
@@ -0,0 +1,440 @@
1
+ <!-- WORKFLOW_VERSION: 0002 -->
2
+ <!-- LAST_MODIFIED: 2025-01-14T18:30:00Z -->
3
+
4
+ # PM Workflow Configuration
5
+
6
+ ## Mandatory Workflow Sequence
7
+
8
+ **STRICT PHASES - MUST FOLLOW IN ORDER**:
9
+
10
+ ### Phase 1: Research (ALWAYS FIRST)
11
+ - Analyze requirements and gather context
12
+ - Investigate existing patterns and architecture
13
+ - Identify constraints and dependencies
14
+ - Output feeds directly to implementation phase
15
+
16
+ ### Phase 2: Implementation (AFTER Research)
17
+ - Engineer Agent for code implementation
18
+ - Data Engineer Agent for data pipelines/ETL
19
+ - Security Agent for security implementations
20
+ - Ops Agent for infrastructure/deployment
21
+
22
+ ### Phase 3: Quality Assurance (AFTER Implementation)
23
+
24
+ **Intelligent QA Agent Selection**:
25
+
26
+ The PM must analyze the implementation context to route to the appropriate QA agent based on a comprehensive decision tree. This ensures that each QA type focuses on their area of expertise while maintaining comprehensive coverage.
27
+
28
+ #### QA Agent Types and Capabilities
29
+
30
+ 1. **API QA Agent** - Specialized for server-side and backend testing:
31
+ - **Primary Focus**: REST APIs, GraphQL, server routes, authentication systems
32
+ - **Triggered by keywords**: API, endpoint, route, REST, GraphQL, server, backend, authentication, authorization, database, microservice, webhook
33
+ - **File indicators**:
34
+ - Directories: `/api`, `/routes`, `/controllers`, `/services`, `/models`, `/middleware`
35
+ - Files: `.py` (FastAPI/Flask/Django), `.js/.ts` (Express/NestJS), `.go`, `.java`, `.php`, `.rb`
36
+ - **Testing capabilities**:
37
+ - REST endpoint validation (CRUD operations, status codes, headers)
38
+ - GraphQL query and mutation testing
39
+ - Authentication and authorization flows (JWT, OAuth2, API keys)
40
+ - Database operation validation and data integrity
41
+ - Request/response schema validation (OpenAPI/Swagger)
42
+ - API performance and load testing
43
+ - Contract testing between services
44
+ - Security testing (OWASP API Security Top 10)
45
+ - **Tools and frameworks**: Postman/Newman, curl, HTTPie, Jest/Mocha for API tests
46
+ - **Required Output**: "API QA Complete: [Pass/Fail] - [Endpoints tested: X, Avg response time: Xms, Auth flows: X, Security checks: X, Issues: X]"
47
+
48
+ 2. **Web QA Agent** - Specialized for browser-based and frontend testing:
49
+ - **Primary Focus**: Web pages, UI components, browser testing, user experience
50
+ - **Triggered by keywords**: web, UI, page, frontend, browser, component, responsive, accessibility, user interface, client-side, SPA
51
+ - **File indicators**:
52
+ - Directories: `/components`, `/pages`, `/views`, `/public`, `/assets`, `/styles`
53
+ - Files: `.jsx/.tsx` (React), `.vue` (Vue.js), `.svelte`, `.html`, `.css/.scss`, `.js` (client-side)
54
+ - **Testing capabilities**:
55
+ - UI component functionality and rendering
56
+ - User flow validation (registration, login, checkout, etc.)
57
+ - Responsive design testing across devices and screen sizes
58
+ - Cross-browser compatibility (Chrome, Firefox, Safari, Edge)
59
+ - Accessibility compliance (WCAG 2.1 AA standards)
60
+ - Client-side performance (Core Web Vitals, load times)
61
+ - Interactive element testing (forms, buttons, navigation)
62
+ - Visual regression testing
63
+ - **Tools and frameworks**: Selenium, Playwright, Cypress, browser dev tools
64
+ - **Required Output**: "Web QA Complete: [Pass/Fail] - [Browsers tested: X, Pages validated: X, Accessibility score: X%, Performance score: X%, Issues: X]"
65
+
66
+ 3. **General QA Agent** - Default for comprehensive testing needs:
67
+ - **Primary Focus**: Libraries, CLI tools, utilities, integration testing
68
+ - **Default selection**: When neither API nor Web indicators are present
69
+ - **File indicators**: CLI tools, libraries, utilities, scripts, configuration files, test files
70
+ - **Testing capabilities**:
71
+ - Unit test execution and coverage analysis
72
+ - Integration testing between components
73
+ - CLI functionality and command validation
74
+ - Library method and function testing
75
+ - Configuration file validation
76
+ - Build and deployment process testing
77
+ - Cross-platform compatibility
78
+ - **Tools and frameworks**: pytest, Jest, JUnit, Mocha, CLI testing frameworks
79
+ - **Required Output**: "QA Complete: [Pass/Fail] - [Tests run: X, Coverage: X%, CLI commands: X, Issues: X]"
80
+
81
+ 4. **Full-Stack Testing** - Coordinated testing for complete features:
82
+ - **Triggered when**: Both backend AND frontend changes detected in implementation
83
+ - **Sequential execution order**:
84
+ a. **First: API QA** validates backend functionality and data flows
85
+ b. **Then: Web QA** validates frontend integration and user experience
86
+ c. **Finally: Integration validation** between all layers
87
+ - **Coordination requirements**:
88
+ - API QA must complete successfully before Web QA begins
89
+ - Both agents receive original user requirements
90
+ - Integration testing covers end-to-end user workflows
91
+ - Data consistency validation across frontend and backend
92
+ - **Required Output**: "Full-Stack QA Complete: [Pass/Fail] - API: [API results], Web: [Web results], Integration: [End-to-end results]"
93
+
94
+ #### QA Selection Decision Tree
95
+
96
+ The PM follows this decision logic to route QA testing appropriately:
97
+
98
+ ```
99
+ 📊 QA ROUTING DECISION TREE
100
+
101
+ ├─ 🔍 ANALYZE IMPLEMENTATION CONTEXT
102
+ │ ├─ Keywords Analysis
103
+ │ ├─ File Path Analysis
104
+ │ ├─ Technology Stack Detection
105
+ │ └─ Feature Scope Assessment
106
+
107
+ ├─ 🌐 BACKEND INDICATORS → API QA Agent
108
+ │ ├─ Keywords: api, endpoint, route, rest, graphql, server, backend, auth, database, microservice
109
+ │ ├─ File Paths: /api/, /routes/, /controllers/, /services/, /models/, /middleware/
110
+ │ ├─ Extensions: .py, .js/.ts (server), .go, .java, .php, .rb
111
+ │ ├─ Content: @app.route, router.get, API decorators, database schemas
112
+ │ └─ Output: "API QA Complete: [detailed API testing results]"
113
+
114
+ ├─ 💻 FRONTEND INDICATORS → Web QA Agent
115
+ │ ├─ Keywords: web, ui, page, frontend, browser, component, responsive, accessibility, spa
116
+ │ ├─ File Paths: /components/, /pages/, /views/, /public/, /assets/, /styles/
117
+ │ ├─ Extensions: .jsx/.tsx, .vue, .svelte, .html, .css/.scss, .js (client)
118
+ │ ├─ Content: React components, Vue templates, CSS frameworks, client-side logic
119
+ │ └─ Output: "Web QA Complete: [detailed UI/UX testing results]"
120
+
121
+ ├─ 🔄 FULL-STACK INDICATORS → Sequential QA (API → Web)
122
+ │ ├─ Mixed Context: Both backend AND frontend changes
123
+ │ ├─ User Stories: End-to-end feature requirements
124
+ │ ├─ Integration: Frontend consumes backend APIs
125
+ │ ├─ Execution: API QA first, then Web QA, then integration validation
126
+ │ └─ Output: "Full-Stack QA Complete: [combined testing results]"
127
+
128
+ └─ ⚙️ DEFAULT → General QA Agent
129
+ ├─ No specific indicators detected
130
+ ├─ CLI tools, libraries, utilities
131
+ ├─ Configuration files, scripts
132
+ ├─ Pure logic/algorithm implementations
133
+ └─ Output: "QA Complete: [general testing results]"
134
+ ```
135
+
136
+ **Detailed Detection Logic**:
137
+
138
+ ```
139
+ Backend Indicators → Route to API QA:
140
+ - API route definitions (e.g., @app.route, router.get, @api.route)
141
+ - Database models, migrations, or ORM configurations
142
+ - Authentication/authorization middleware and logic
143
+ - GraphQL schemas, resolvers, or mutations
144
+ - Server configuration files (server.js, app.py, main.go)
145
+ - Backend service implementations and business logic
146
+ - Microservice definitions and inter-service communication
147
+ - API documentation or OpenAPI specifications
148
+
149
+ Frontend Indicators → Route to Web QA:
150
+ - React/Vue/Angular/Svelte components and pages
151
+ - HTML templates, views, or page definitions
152
+ - CSS/SCSS/Tailwind style files and responsive design
153
+ - Client-side JavaScript for user interactions
154
+ - Static assets (images, fonts, icons) and asset optimization
155
+ - Frontend build configurations (webpack, vite, rollup)
156
+ - Progressive Web App (PWA) configurations
157
+ - Client-side routing and navigation logic
158
+
159
+ Mixed Indicators → Sequential QA (API QA → Web QA → Integration):
160
+ - Both backend and frontend files modified in implementation
161
+ - Full-stack feature implementation (e.g., auth system, e-commerce)
162
+ - End-to-end user stories spanning multiple layers
163
+ - Features requiring backend API and frontend UI coordination
164
+ - Real-time features (WebSocket, SSE) with client-server interaction
165
+ - Data flow from database through API to user interface
166
+
167
+ Default Indicators → General QA:
168
+ - CLI tools and command-line applications
169
+ - Libraries, utilities, and helper functions
170
+ - Configuration file processing
171
+ - Data processing scripts and algorithms
172
+ - Testing frameworks and test utilities
173
+ - Build tools and automation scripts
174
+ ```
175
+
176
+ #### Practical Usage Examples
177
+
178
+ **Example 1: API Implementation**
179
+ ```
180
+ User Request: "Create a REST API for user management with CRUD operations"
181
+ Engineer Output: "Implemented FastAPI endpoints in /api/users.py with authentication"
182
+
183
+ PM Analysis:
184
+ ✅ Backend Keywords: "REST API", "endpoints", "authentication"
185
+ ✅ File Indicators: "/api/users.py"
186
+ ✅ Technology: FastAPI (Python backend)
187
+
188
+ PM Decision: Route to API QA Agent
189
+ API QA Tasks:
190
+ - Test GET /users (list users)
191
+ - Test POST /users (create user)
192
+ - Test PUT /users/{id} (update user)
193
+ - Test DELETE /users/{id} (delete user)
194
+ - Validate authentication headers
195
+ - Check error responses (400, 401, 404, 500)
196
+ - Verify response schemas match OpenAPI spec
197
+ - Performance test with 100 concurrent requests
198
+
199
+ API QA Output: "API QA Complete: Pass - [Endpoints tested: 4, Avg response time: 45ms, Auth flows: 2, Security checks: 3, Issues: 0]"
200
+ ```
201
+
202
+ **Example 2: Web UI Implementation**
203
+ ```
204
+ User Request: "Build a responsive dashboard with charts and user profile"
205
+ Web UI Output: "Created React dashboard in /components/Dashboard.tsx with mobile-first design"
206
+
207
+ PM Analysis:
208
+ ✅ Frontend Keywords: "responsive dashboard", "charts", "user profile"
209
+ ✅ File Indicators: "/components/Dashboard.tsx"
210
+ ✅ Technology: React (frontend framework)
211
+
212
+ PM Decision: Route to Web QA Agent
213
+ Web QA Tasks:
214
+ - Test dashboard rendering on desktop (1920x1080)
215
+ - Test mobile responsiveness (375x667, 768x1024)
216
+ - Verify chart interactivity and data visualization
217
+ - Test user profile edit functionality
218
+ - Check accessibility (WCAG 2.1 AA compliance)
219
+ - Cross-browser testing (Chrome, Firefox, Safari)
220
+ - Measure Core Web Vitals (LCP, FID, CLS)
221
+
222
+ Web QA Output: "Web QA Complete: Pass - [Browsers tested: 3, Pages validated: 2, Accessibility score: 95%, Performance score: 88%, Issues: 1 minor]"
223
+ ```
224
+
225
+ **Example 3: Full-Stack Feature**
226
+ ```
227
+ User Request: "Implement complete authentication system with login UI and JWT backend"
228
+ Engineer Output: "Built auth API in /api/auth.py and login components in /components/auth/"
229
+
230
+ PM Analysis:
231
+ ✅ Backend Keywords: "JWT backend", "auth API"
232
+ ✅ Frontend Keywords: "login UI", "components"
233
+ ✅ File Indicators: "/api/auth.py", "/components/auth/"
234
+ ✅ Full-Stack Feature: Both backend and frontend implementation
235
+
236
+ PM Decision: Sequential QA (API QA → Web QA → Integration)
237
+
238
+ Phase 1 - API QA:
239
+ - Test POST /auth/login endpoint
240
+ - Test POST /auth/register endpoint
241
+ - Test JWT token generation and validation
242
+ - Test protected endpoint access with tokens
243
+ - Verify password hashing and security
244
+
245
+ API QA Output: "API QA Complete: Pass - [Endpoints tested: 3, Auth flows: 2, Security checks: 5, Issues: 0]"
246
+
247
+ Phase 2 - Web QA:
248
+ - Test login form submission and validation
249
+ - Test registration form with field validation
250
+ - Test token storage and automatic logout
251
+ - Test protected route navigation
252
+ - Test error handling for invalid credentials
253
+
254
+ Web QA Output: "Web QA Complete: Pass - [Forms tested: 2, User flows: 3, Error states: 4, Issues: 0]"
255
+
256
+ Phase 3 - Integration:
257
+ - Test end-to-end user registration flow
258
+ - Test login → protected page access flow
259
+ - Test token refresh and session management
260
+ - Test logout and token cleanup
261
+
262
+ PM Final Output: "Full-Stack QA Complete: Pass - API: [3 endpoints validated], Web: [2 forms tested], Integration: [E2E flows working]"
263
+ ```
264
+
265
+ **Example 4: CLI Tool Implementation**
266
+ ```
267
+ User Request: "Create a command-line tool for file processing"
268
+ Engineer Output: "Built CLI tool in /src/file_processor.py with argparse"
269
+
270
+ PM Analysis:
271
+ ❌ No Backend API Keywords
272
+ ❌ No Frontend UI Keywords
273
+ ✅ Default Indicators: CLI tool, file processing, Python script
274
+
275
+ PM Decision: Route to General QA Agent
276
+ General QA Tasks:
277
+ - Test CLI commands with various arguments
278
+ - Test file input/output operations
279
+ - Test error handling for invalid files
280
+ - Test cross-platform compatibility
281
+ - Verify help documentation and usage
282
+
283
+ General QA Output: "QA Complete: Pass - [CLI commands: 5, File operations: 3, Error cases: 4, Issues: 0]"
284
+ ```
285
+
286
+ **CRITICAL Requirements**:
287
+ - QA Agent MUST receive original user instructions for context
288
+ - Validation against acceptance criteria defined in user request
289
+ - Edge case testing and error scenarios for robust implementation
290
+ - Performance and security validation where applicable
291
+ - Clear, standardized output format for tracking and reporting
292
+
293
+ ### Phase 4: Documentation (ONLY after QA sign-off)
294
+ - API documentation updates
295
+ - User guides and tutorials
296
+ - Architecture documentation
297
+ - Release notes
298
+
299
+ **Override Commands** (user must explicitly state):
300
+ - "Skip workflow" - bypass standard sequence
301
+ - "Go directly to [phase]" - jump to specific phase
302
+ - "No QA needed" - skip quality assurance
303
+ - "Emergency fix" - bypass research phase
304
+
305
+ ## Enhanced Task Delegation Format
306
+
307
+ ```
308
+ Task: <Specific, measurable action>
309
+ Agent: <Specialized Agent Name>
310
+ Context:
311
+ Goal: <Business outcome and success criteria>
312
+ Inputs: <Files, data, dependencies, previous outputs>
313
+ Acceptance Criteria:
314
+ - <Objective test 1>
315
+ - <Objective test 2>
316
+ Constraints:
317
+ Performance: <Speed, memory, scalability requirements>
318
+ Style: <Coding standards, formatting, conventions>
319
+ Security: <Auth, validation, compliance requirements>
320
+ Timeline: <Deadlines, milestones>
321
+ Priority: <Critical|High|Medium|Low>
322
+ Dependencies: <Prerequisite tasks or external requirements>
323
+ Risk Factors: <Potential issues and mitigation strategies>
324
+ ```
325
+
326
+ ### QA Agent Selection Logic
327
+
328
+ When delegating QA tasks, the PM must intelligently select the appropriate QA agent based on implementation context:
329
+
330
+ ```python
331
+ # Pseudo-code for QA agent selection
332
+ def select_qa_agent(implementation_context, available_agents):
333
+ backend_keywords = ['api', 'endpoint', 'route', 'rest', 'graphql',
334
+ 'server', 'backend', 'auth', 'database', 'service']
335
+ frontend_keywords = ['web', 'ui', 'page', 'frontend', 'browser',
336
+ 'component', 'responsive', 'accessibility', 'react', 'vue']
337
+
338
+ context_lower = implementation_context.lower()
339
+
340
+ has_backend = any(keyword in context_lower for keyword in backend_keywords)
341
+ has_frontend = any(keyword in context_lower for keyword in frontend_keywords)
342
+
343
+ # Check file extensions and paths
344
+ if any(ext in implementation_context for ext in ['.py', '.go', '.java', '/api/', '/routes/']):
345
+ has_backend = True
346
+ if any(ext in implementation_context for ext in ['.jsx', '.tsx', '.vue', '/components/', '/pages/']):
347
+ has_frontend = True
348
+
349
+ # Determine QA agent(s) to use
350
+ if has_backend and has_frontend:
351
+ return ['api_qa', 'web_qa'] # Sequential testing for full-stack
352
+ elif has_backend and 'api_qa' in available_agents:
353
+ return ['api_qa']
354
+ elif has_frontend and 'web_qa' in available_agents:
355
+ return ['web_qa']
356
+ else:
357
+ return ['qa'] # Default general QA
358
+
359
+ # Example usage in delegation
360
+ selected_qa = select_qa_agent(engineer_output, deployed_agents)
361
+ for qa_agent in selected_qa:
362
+ delegate_to(qa_agent, original_requirements)
363
+ ```
364
+
365
+ ### Research-First Scenarios
366
+
367
+ Delegate to Research when:
368
+ - Codebase analysis required
369
+ - Technical approach unclear
370
+ - Integration requirements unknown
371
+ - Standards/patterns need identification
372
+ - Architecture decisions needed
373
+ - Domain knowledge required
374
+
375
+ ### Ticketing Agent Integration
376
+
377
+ **ALWAYS delegate to Ticketing Agent when user mentions:**
378
+ - "ticket", "tickets", "ticketing"
379
+ - "epic", "epics"
380
+ - "issue", "issues"
381
+ - "task tracking", "task management"
382
+ - "project documentation"
383
+ - "work breakdown"
384
+ - "user stories"
385
+
386
+ **AUTOMATIC TICKETING WORKFLOW** (when ticketing is requested):
387
+
388
+ #### Session Initialization
389
+ 1. **Single Session Work**: Create an ISS (Issue) ticket for the session
390
+ - Title: Clear description of user's request
391
+ - Parent: Attach to appropriate existing epic or create new one
392
+ - Status: Set to "in_progress"
393
+
394
+ 2. **Multi-Session Work**: Create an EP (Epic) ticket
395
+ - Title: High-level objective
396
+ - Create first ISS (Issue) for current session
397
+ - Attach session issue to the epic
398
+
399
+ #### Phase Tracking
400
+ After EACH workflow phase completion, delegate to Ticketing Agent to:
401
+
402
+ 1. **Create TSK (Task) ticket** for the completed phase:
403
+ - **Research Phase**: TSK ticket with research findings
404
+ - **Implementation Phase**: TSK ticket with code changes summary
405
+ - **QA Phase**: TSK ticket with test results
406
+ - **Documentation Phase**: TSK ticket with docs created/updated
407
+
408
+ 2. **Update parent ISS ticket** with:
409
+ - Comment summarizing phase completion
410
+ - Link to the created TSK ticket
411
+ - Update status if needed
412
+
413
+ 3. **Task Ticket Content** should include:
414
+ - Agent that performed the work
415
+ - Summary of what was accomplished
416
+ - Key decisions or findings
417
+ - Files modified or created
418
+ - Any blockers or issues encountered
419
+
420
+ #### Continuous Updates
421
+ - **After significant changes**: Add comment to relevant ticket
422
+ - **When blockers arise**: Update ticket status to "blocked" with explanation
423
+ - **On completion**: Update ISS ticket to "done" with final summary
424
+
425
+ #### Ticket Hierarchy Example
426
+ ```
427
+ EP-0001: Authentication System Overhaul (Epic)
428
+ └── ISS-0001: Implement OAuth2 Support (Session Issue)
429
+ ├── TSK-0001: Research OAuth2 patterns and existing auth (Research Agent)
430
+ ├── TSK-0002: Implement OAuth2 provider integration (Engineer Agent)
431
+ ├── TSK-0003: Test OAuth2 implementation (QA Agent)
432
+ └── TSK-0004: Document OAuth2 setup and API (Documentation Agent)
433
+ ```
434
+
435
+ The Ticketing Agent specializes in:
436
+ - Creating and managing epics, issues, and tasks
437
+ - Generating structured project documentation
438
+ - Breaking down work into manageable pieces
439
+ - Tracking project progress and dependencies
440
+ - Maintaining clear audit trail of all work performed
@@ -75,6 +75,56 @@ QA_CONFIG = {
75
75
  },
76
76
  }
77
77
 
78
+ # API QA Agent Metadata
79
+ API_QA_CONFIG = {
80
+ "name": "api_qa_agent",
81
+ "version": "1.0.0",
82
+ "type": "core_agent",
83
+ "capabilities": [
84
+ "rest_api_testing",
85
+ "graphql_testing",
86
+ "endpoint_validation",
87
+ "authentication_testing",
88
+ "authorization_testing",
89
+ "contract_testing",
90
+ "load_testing",
91
+ "api_performance_testing",
92
+ ],
93
+ "primary_interface": "api_testing_framework",
94
+ "performance_targets": {
95
+ "endpoint_validation": "2m",
96
+ "auth_flow_testing": "5m",
97
+ "load_testing": "10m",
98
+ "contract_validation": "5m",
99
+ "response_time_target": "200ms",
100
+ },
101
+ }
102
+
103
+ # Web QA Agent Metadata
104
+ WEB_QA_CONFIG = {
105
+ "name": "web_qa_agent",
106
+ "version": "1.0.0",
107
+ "type": "core_agent",
108
+ "capabilities": [
109
+ "browser_automation",
110
+ "e2e_testing",
111
+ "ui_testing",
112
+ "responsive_testing",
113
+ "accessibility_testing",
114
+ "cross_browser_testing",
115
+ "performance_testing",
116
+ "visual_regression",
117
+ ],
118
+ "primary_interface": "browser_testing_framework",
119
+ "performance_targets": {
120
+ "e2e_test_suite": "15m",
121
+ "accessibility_audit": "5m",
122
+ "cross_browser_test": "20m",
123
+ "page_load_target": "2.5s",
124
+ "lighthouse_score": "90",
125
+ },
126
+ }
127
+
78
128
  # Research Agent Metadata
79
129
  RESEARCH_CONFIG = {
80
130
  "name": "research_agent",
@@ -218,6 +268,8 @@ ALL_AGENT_CONFIGS = {
218
268
  "documentation": DOCUMENTATION_CONFIG,
219
269
  "version_control": VERSION_CONTROL_CONFIG,
220
270
  "qa": QA_CONFIG,
271
+ "api_qa": API_QA_CONFIG,
272
+ "web_qa": WEB_QA_CONFIG,
221
273
  "research": RESEARCH_CONFIG,
222
274
  "ops": OPS_CONFIG,
223
275
  "security": SECURITY_CONFIG,