claude-mpm 4.25.10__py3-none-any.whl → 5.1.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

Files changed (507) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +12 -0
  3. claude_mpm/agents/PM_INSTRUCTIONS.md +1055 -2230
  4. claude_mpm/agents/PM_INSTRUCTIONS_TEACH.md +1322 -0
  5. claude_mpm/agents/WORKFLOW.md +4 -4
  6. claude_mpm/agents/__init__.py +6 -0
  7. claude_mpm/agents/agent_loader.py +1 -4
  8. claude_mpm/agents/base_agent_loader.py +10 -35
  9. claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +576 -66
  10. claude_mpm/agents/templates/context-management-examples.md +544 -0
  11. claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
  12. claude_mpm/agents/templates/research-gate-examples.md +669 -0
  13. claude_mpm/agents/templates/structured-questions-examples.md +615 -0
  14. claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
  15. claude_mpm/agents/templates/ticketing-examples.md +277 -0
  16. claude_mpm/cli/__init__.py +28 -3
  17. claude_mpm/cli/commands/__init__.py +2 -0
  18. claude_mpm/cli/commands/agent_source.py +774 -0
  19. claude_mpm/cli/commands/agent_state_manager.py +188 -30
  20. claude_mpm/cli/commands/agents.py +959 -36
  21. claude_mpm/cli/commands/agents_cleanup.py +210 -0
  22. claude_mpm/cli/commands/agents_discover.py +338 -0
  23. claude_mpm/cli/commands/auto_configure.py +537 -239
  24. claude_mpm/cli/commands/config.py +7 -4
  25. claude_mpm/cli/commands/configure.py +924 -45
  26. claude_mpm/cli/commands/configure_navigation.py +63 -46
  27. claude_mpm/cli/commands/doctor.py +10 -2
  28. claude_mpm/cli/commands/local_deploy.py +1 -4
  29. claude_mpm/cli/commands/postmortem.py +401 -0
  30. claude_mpm/cli/commands/run.py +1 -39
  31. claude_mpm/cli/commands/skill_source.py +694 -0
  32. claude_mpm/cli/commands/skills.py +322 -19
  33. claude_mpm/cli/executor.py +22 -3
  34. claude_mpm/cli/interactive/agent_wizard.py +1028 -43
  35. claude_mpm/cli/parsers/agent_source_parser.py +171 -0
  36. claude_mpm/cli/parsers/agents_parser.py +256 -4
  37. claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
  38. claude_mpm/cli/parsers/base_parser.py +25 -0
  39. claude_mpm/cli/parsers/config_parser.py +96 -43
  40. claude_mpm/cli/parsers/skill_source_parser.py +169 -0
  41. claude_mpm/cli/parsers/skills_parser.py +7 -0
  42. claude_mpm/cli/parsers/source_parser.py +138 -0
  43. claude_mpm/cli/startup.py +456 -103
  44. claude_mpm/cli/startup_display.py +4 -4
  45. claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
  46. claude_mpm/commands/mpm-agents-detect.md +9 -0
  47. claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
  48. claude_mpm/commands/mpm-agents-recommend.md +9 -0
  49. claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
  50. claude_mpm/commands/mpm-doctor.md +9 -0
  51. claude_mpm/commands/mpm-help.md +14 -2
  52. claude_mpm/commands/mpm-init.md +9 -0
  53. claude_mpm/commands/mpm-monitor.md +9 -0
  54. claude_mpm/commands/mpm-postmortem.md +123 -0
  55. claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
  56. claude_mpm/commands/mpm-status.md +9 -0
  57. claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
  58. claude_mpm/commands/mpm-ticket-view.md +552 -0
  59. claude_mpm/commands/mpm-version.md +9 -0
  60. claude_mpm/commands/mpm.md +10 -0
  61. claude_mpm/config/agent_presets.py +488 -0
  62. claude_mpm/config/agent_sources.py +325 -0
  63. claude_mpm/config/skill_presets.py +392 -0
  64. claude_mpm/config/skill_sources.py +590 -0
  65. claude_mpm/constants.py +1 -0
  66. claude_mpm/core/claude_runner.py +5 -34
  67. claude_mpm/core/config.py +16 -0
  68. claude_mpm/core/framework/__init__.py +3 -16
  69. claude_mpm/core/framework/loaders/file_loader.py +54 -101
  70. claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
  71. claude_mpm/core/interactive_session.py +83 -7
  72. claude_mpm/core/oneshot_session.py +71 -8
  73. claude_mpm/core/protocols/__init__.py +23 -0
  74. claude_mpm/core/protocols/runner_protocol.py +103 -0
  75. claude_mpm/core/protocols/session_protocol.py +131 -0
  76. claude_mpm/core/shared/singleton_manager.py +11 -4
  77. claude_mpm/core/system_context.py +38 -0
  78. claude_mpm/core/unified_config.py +22 -0
  79. claude_mpm/experimental/cli_enhancements.py +1 -5
  80. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
  81. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
  82. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
  83. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
  84. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
  85. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
  86. claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
  87. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
  88. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
  89. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
  90. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
  91. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
  92. claude_mpm/hooks/failure_learning/__init__.py +2 -8
  93. claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
  94. claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
  95. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
  96. claude_mpm/hooks/kuzu_response_hook.py +1 -5
  97. claude_mpm/models/git_repository.py +198 -0
  98. claude_mpm/services/agents/agent_builder.py +45 -9
  99. claude_mpm/services/agents/agent_preset_service.py +238 -0
  100. claude_mpm/services/agents/agent_selection_service.py +484 -0
  101. claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
  102. claude_mpm/services/agents/cache_git_manager.py +621 -0
  103. claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
  104. claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
  105. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
  106. claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
  107. claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
  108. claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
  109. claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
  110. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
  111. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
  112. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
  113. claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
  114. claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
  115. claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
  116. claude_mpm/services/agents/git_source_manager.py +629 -0
  117. claude_mpm/services/agents/loading/framework_agent_loader.py +1 -4
  118. claude_mpm/services/agents/local_template_manager.py +47 -9
  119. claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
  120. claude_mpm/services/agents/sources/__init__.py +13 -0
  121. claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
  122. claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
  123. claude_mpm/services/agents/startup_sync.py +239 -0
  124. claude_mpm/services/agents/toolchain_detector.py +474 -0
  125. claude_mpm/services/analysis/__init__.py +25 -0
  126. claude_mpm/services/analysis/postmortem_reporter.py +474 -0
  127. claude_mpm/services/analysis/postmortem_service.py +765 -0
  128. claude_mpm/services/command_deployment_service.py +200 -6
  129. claude_mpm/services/core/base.py +7 -2
  130. claude_mpm/services/core/interfaces/__init__.py +1 -3
  131. claude_mpm/services/core/interfaces/health.py +1 -4
  132. claude_mpm/services/core/models/__init__.py +2 -11
  133. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  134. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  135. claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
  136. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  137. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  138. claude_mpm/services/diagnostics/doctor_reporter.py +34 -6
  139. claude_mpm/services/git/__init__.py +21 -0
  140. claude_mpm/services/git/git_operations_service.py +494 -0
  141. claude_mpm/services/github/__init__.py +21 -0
  142. claude_mpm/services/github/github_cli_service.py +397 -0
  143. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  144. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  145. claude_mpm/services/instructions/__init__.py +9 -0
  146. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  147. claude_mpm/services/local_ops/__init__.py +3 -13
  148. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  149. claude_mpm/services/local_ops/health_manager.py +1 -4
  150. claude_mpm/services/mcp_config_manager.py +75 -145
  151. claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
  152. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  153. claude_mpm/services/mcp_service_verifier.py +6 -3
  154. claude_mpm/services/monitor/daemon.py +28 -8
  155. claude_mpm/services/monitor/daemon_manager.py +96 -19
  156. claude_mpm/services/pr/__init__.py +14 -0
  157. claude_mpm/services/pr/pr_template_service.py +329 -0
  158. claude_mpm/services/project/project_organizer.py +4 -0
  159. claude_mpm/services/runner_configuration_service.py +16 -3
  160. claude_mpm/services/session_management_service.py +16 -4
  161. claude_mpm/services/skills/__init__.py +18 -0
  162. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  163. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  164. claude_mpm/services/socketio/server/core.py +1 -4
  165. claude_mpm/services/socketio/server/main.py +1 -3
  166. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  167. claude_mpm/services/unified/unified_deployment.py +1 -5
  168. claude_mpm/services/visualization/__init__.py +1 -5
  169. claude_mpm/templates/questions/__init__.py +2 -7
  170. claude_mpm/templates/questions/pr_strategy.py +1 -4
  171. claude_mpm/templates/questions/project_init.py +1 -4
  172. claude_mpm/templates/questions/ticket_mgmt.py +1 -4
  173. claude_mpm/utils/agent_dependency_loader.py +77 -10
  174. claude_mpm/utils/agent_filters.py +288 -0
  175. claude_mpm/utils/gitignore.py +3 -0
  176. claude_mpm/utils/migration.py +372 -0
  177. claude_mpm/utils/progress.py +387 -0
  178. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/METADATA +356 -112
  179. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/RECORD +188 -439
  180. claude_mpm/agents/templates/agent-manager.json +0 -273
  181. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  182. claude_mpm/agents/templates/api_qa.json +0 -183
  183. claude_mpm/agents/templates/clerk-ops.json +0 -235
  184. claude_mpm/agents/templates/code_analyzer.json +0 -101
  185. claude_mpm/agents/templates/content-agent.json +0 -358
  186. claude_mpm/agents/templates/dart_engineer.json +0 -307
  187. claude_mpm/agents/templates/data_engineer.json +0 -225
  188. claude_mpm/agents/templates/documentation.json +0 -238
  189. claude_mpm/agents/templates/engineer.json +0 -210
  190. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  191. claude_mpm/agents/templates/golang_engineer.json +0 -270
  192. claude_mpm/agents/templates/imagemagick.json +0 -264
  193. claude_mpm/agents/templates/java_engineer.json +0 -346
  194. claude_mpm/agents/templates/javascript_engineer_agent.json +0 -380
  195. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  196. claude_mpm/agents/templates/memory_manager.json +0 -158
  197. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  198. claude_mpm/agents/templates/ops.json +0 -185
  199. claude_mpm/agents/templates/php-engineer.json +0 -287
  200. claude_mpm/agents/templates/product_owner.json +0 -338
  201. claude_mpm/agents/templates/project_organizer.json +0 -144
  202. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  203. claude_mpm/agents/templates/python_engineer.json +0 -387
  204. claude_mpm/agents/templates/qa.json +0 -243
  205. claude_mpm/agents/templates/react_engineer.json +0 -239
  206. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  207. claude_mpm/agents/templates/research.json +0 -258
  208. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  209. claude_mpm/agents/templates/rust_engineer.json +0 -275
  210. claude_mpm/agents/templates/security.json +0 -202
  211. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  212. claude_mpm/agents/templates/tauri_engineer.json +0 -274
  213. claude_mpm/agents/templates/ticketing.json +0 -181
  214. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  215. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  216. claude_mpm/agents/templates/version_control.json +0 -159
  217. claude_mpm/agents/templates/web_qa.json +0 -400
  218. claude_mpm/agents/templates/web_ui.json +0 -189
  219. claude_mpm/cli/README.md +0 -253
  220. claude_mpm/cli/commands/mcp_install_commands.py.backup +0 -284
  221. claude_mpm/cli/commands/mpm_init/README.md +0 -365
  222. claude_mpm/cli_module/refactoring_guide.md +0 -253
  223. claude_mpm/commands/mpm-tickets.md +0 -151
  224. claude_mpm/config/agent_capabilities.yaml +0 -658
  225. claude_mpm/config/async_logging_config.yaml +0 -145
  226. claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +0 -34
  227. claude_mpm/d2/.gitignore +0 -22
  228. claude_mpm/d2/ARCHITECTURE_COMPARISON.md +0 -273
  229. claude_mpm/d2/FLASK_INTEGRATION.md +0 -156
  230. claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +0 -452
  231. claude_mpm/d2/QUICKSTART.md +0 -186
  232. claude_mpm/d2/README.md +0 -232
  233. claude_mpm/d2/STORE_FIX_SUMMARY.md +0 -167
  234. claude_mpm/d2/SVELTE5_STORES_GUIDE.md +0 -180
  235. claude_mpm/d2/TESTING.md +0 -288
  236. claude_mpm/d2/index.html +0 -118
  237. claude_mpm/d2/package.json +0 -19
  238. claude_mpm/d2/src/App.svelte +0 -110
  239. claude_mpm/d2/src/components/Header.svelte +0 -153
  240. claude_mpm/d2/src/components/MainContent.svelte +0 -74
  241. claude_mpm/d2/src/components/Sidebar.svelte +0 -85
  242. claude_mpm/d2/src/components/tabs/EventsTab.svelte +0 -326
  243. claude_mpm/d2/src/lib/socketio.js +0 -144
  244. claude_mpm/d2/src/main.js +0 -7
  245. claude_mpm/d2/src/stores/events.js +0 -114
  246. claude_mpm/d2/src/stores/socket.js +0 -108
  247. claude_mpm/d2/src/stores/theme.js +0 -65
  248. claude_mpm/d2/svelte.config.js +0 -12
  249. claude_mpm/d2/vite.config.js +0 -15
  250. claude_mpm/dashboard/.claude-mpm/memories/README.md +0 -36
  251. claude_mpm/dashboard/BUILD_NUMBER +0 -1
  252. claude_mpm/dashboard/README.md +0 -121
  253. claude_mpm/dashboard/VERSION +0 -1
  254. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  255. claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +0 -273
  256. claude_mpm/dashboard/react/components/ErrorBoundary.tsx +0 -75
  257. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  258. claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +0 -141
  259. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  260. claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +0 -36
  261. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  262. claude_mpm/dashboard/react/components/shared/FilterBar.tsx +0 -89
  263. claude_mpm/dashboard/react/contexts/DashboardContext.tsx +0 -215
  264. claude_mpm/dashboard/react/entries/events.tsx +0 -165
  265. claude_mpm/dashboard/react/hooks/useEvents.ts +0 -191
  266. claude_mpm/dashboard/react/hooks/useSocket.ts +0 -225
  267. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  268. claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +0 -170
  269. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  270. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  271. claude_mpm/dashboard/static/built/components/activity-tree.js.map +0 -1
  272. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  273. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  274. claude_mpm/dashboard/static/built/components/agent-inference.js.map +0 -1
  275. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  276. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  277. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  278. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  279. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  280. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  281. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  282. claude_mpm/dashboard/static/built/components/code-tree.js.map +0 -1
  283. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  284. claude_mpm/dashboard/static/built/components/code-viewer.js.map +0 -1
  285. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  286. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  287. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  288. claude_mpm/dashboard/static/built/components/event-processor.js.map +0 -1
  289. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  290. claude_mpm/dashboard/static/built/components/event-viewer.js.map +0 -1
  291. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  292. claude_mpm/dashboard/static/built/components/export-manager.js.map +0 -1
  293. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  294. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  295. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  296. claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +0 -1
  297. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  298. claude_mpm/dashboard/static/built/components/file-viewer.js.map +0 -1
  299. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  300. claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +0 -1
  301. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  302. claude_mpm/dashboard/static/built/components/hud-manager.js.map +0 -1
  303. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  304. claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +0 -1
  305. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  306. claude_mpm/dashboard/static/built/components/module-viewer.js.map +0 -1
  307. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  308. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  309. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  310. claude_mpm/dashboard/static/built/components/session-manager.js.map +0 -1
  311. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  312. claude_mpm/dashboard/static/built/components/socket-manager.js.map +0 -1
  313. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  314. claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +0 -1
  315. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  316. claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +0 -1
  317. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  318. claude_mpm/dashboard/static/built/components/working-directory.js.map +0 -1
  319. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  320. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  321. claude_mpm/dashboard/static/built/dashboard.js.map +0 -1
  322. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  323. claude_mpm/dashboard/static/built/react/events.js +0 -30
  324. claude_mpm/dashboard/static/built/react/events.js.map +0 -1
  325. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  326. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  327. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  328. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  329. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  330. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  331. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  332. claude_mpm/dashboard/static/built/socket-client.js.map +0 -1
  333. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  334. claude_mpm/dashboard/static/events.html +0 -607
  335. claude_mpm/dashboard/static/index.html +0 -635
  336. claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +0 -170
  337. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  338. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  339. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  340. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  341. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  342. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  343. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  344. claude_mpm/dashboard/static/legacy/files.html +0 -747
  345. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  346. claude_mpm/dashboard/static/monitors.html +0 -431
  347. claude_mpm/dashboard/static/navigation-test-results.md +0 -118
  348. claude_mpm/dashboard/static/production/events.html +0 -659
  349. claude_mpm/dashboard/static/production/main.html +0 -698
  350. claude_mpm/dashboard/static/production/monitors.html +0 -483
  351. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  352. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  353. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  354. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  355. claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +0 -36
  356. claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +0 -39
  357. claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +0 -38
  358. claude_mpm/hooks/README.md +0 -143
  359. claude_mpm/hooks/templates/README.md +0 -180
  360. claude_mpm/hooks/templates/settings.json.example +0 -147
  361. claude_mpm/schemas/agent_schema.json +0 -596
  362. claude_mpm/schemas/frontmatter_schema.json +0 -165
  363. claude_mpm/services/event_bus/README.md +0 -244
  364. claude_mpm/services/events/README.md +0 -303
  365. claude_mpm/services/framework_claude_md_generator/README.md +0 -119
  366. claude_mpm/services/mcp_gateway/README.md +0 -185
  367. claude_mpm/services/socketio/handlers/connection.py.backup +0 -217
  368. claude_mpm/services/socketio/handlers/hook.py.backup +0 -154
  369. claude_mpm/services/static/.gitkeep +0 -2
  370. claude_mpm/services/version_control/VERSION +0 -1
  371. claude_mpm/skills/bundled/.gitkeep +0 -2
  372. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  373. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  374. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  375. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  376. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  377. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  378. claude_mpm/skills/bundled/collaboration/git-worktrees.md +0 -317
  379. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  380. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  381. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  382. claude_mpm/skills/bundled/collaboration/stacked-prs.md +0 -251
  383. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  384. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  385. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  386. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  387. claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +0 -63
  388. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  389. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  390. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  391. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  392. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  393. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  394. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  395. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  396. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  397. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  398. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  399. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  400. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  401. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  402. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  403. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  404. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  405. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  406. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  407. claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +0 -611
  408. claude_mpm/skills/bundled/infrastructure/env-manager/README.md +0 -596
  409. claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +0 -260
  410. claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +0 -315
  411. claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +0 -436
  412. claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +0 -433
  413. claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +0 -452
  414. claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +0 -404
  415. claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +0 -420
  416. claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +0 -202
  417. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  418. claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +0 -54
  419. claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +0 -322
  420. claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  421. claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +0 -202
  422. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  423. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  424. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  425. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  426. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  427. claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +0 -202
  428. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  429. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  430. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  431. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  432. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  433. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  434. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  435. claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +0 -22
  436. claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +0 -2
  437. claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +0 -202
  438. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
  439. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
  440. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
  441. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
  442. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
  443. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
  444. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
  445. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
  446. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
  447. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
  448. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
  449. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
  450. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
  451. claude_mpm/skills/bundled/react/flexlayout-react.md +0 -742
  452. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  453. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  454. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  455. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  456. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  457. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  458. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  459. claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +0 -495
  460. claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +0 -599
  461. claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +0 -535
  462. claude_mpm/skills/bundled/tauri/tauri-error-handling.md +0 -613
  463. claude_mpm/skills/bundled/tauri/tauri-event-system.md +0 -648
  464. claude_mpm/skills/bundled/tauri/tauri-file-system.md +0 -673
  465. claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +0 -767
  466. claude_mpm/skills/bundled/tauri/tauri-performance.md +0 -669
  467. claude_mpm/skills/bundled/tauri/tauri-state-management.md +0 -573
  468. claude_mpm/skills/bundled/tauri/tauri-testing.md +0 -384
  469. claude_mpm/skills/bundled/tauri/tauri-window-management.md +0 -628
  470. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  471. claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +0 -158
  472. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  473. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  474. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  475. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  476. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  477. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  478. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  479. claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +0 -458
  480. claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +0 -411
  481. claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +0 -317
  482. claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +0 -270
  483. claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +0 -436
  484. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  485. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  486. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  487. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  488. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  489. claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +0 -202
  490. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  491. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  492. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  493. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  494. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  495. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  496. claude_mpm/templates/questions/EXAMPLES.md +0 -501
  497. claude_mpm/tools/README_SOCKETIO_DEBUG.md +0 -224
  498. claude_mpm/tools/code_tree_analyzer/README.md +0 -64
  499. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  500. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  501. /claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +0 -0
  502. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  503. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  504. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/WHEEL +0 -0
  505. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/entry_points.txt +0 -0
  506. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/licenses/LICENSE +0 -0
  507. {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/top_level.txt +0 -0
@@ -1,165 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "version": "1.0.0",
4
- "title": "Agent Frontmatter Schema",
5
- "description": "Schema for validating agent file frontmatter in .md, .claude, and .claude-mpm files",
6
- "type": "object",
7
- "required": [
8
- "name",
9
- "description",
10
- "version",
11
- "model"
12
- ],
13
- "properties": {
14
- "name": {
15
- "type": "string",
16
- "pattern": "^[a-z][a-z0-9_-]*$",
17
- "minLength": 1,
18
- "maxLength": 50,
19
- "description": "Agent identifier (kebab-case or snake_case)"
20
- },
21
- "description": {
22
- "type": "string",
23
- "minLength": 10,
24
- "maxLength": 200,
25
- "description": "Brief description of agent purpose"
26
- },
27
- "version": {
28
- "type": "string",
29
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
30
- "description": "Semantic version (e.g., 1.0.0)"
31
- },
32
- "base_version": {
33
- "type": "string",
34
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
35
- "description": "Base agent version this extends"
36
- },
37
- "author": {
38
- "type": "string",
39
- "minLength": 1,
40
- "maxLength": 100,
41
- "description": "Author name or organization"
42
- },
43
- "tools": {
44
- "type": "array",
45
- "items": {
46
- "type": "string",
47
- "enum": [
48
- "Read",
49
- "Write",
50
- "Edit",
51
- "MultiEdit",
52
- "Grep",
53
- "Glob",
54
- "LS",
55
- "Bash",
56
- "WebSearch",
57
- "WebFetch",
58
- "NotebookRead",
59
- "NotebookEdit",
60
- "TodoWrite",
61
- "ExitPlanMode",
62
- "git",
63
- "docker",
64
- "kubectl",
65
- "terraform",
66
- "aws",
67
- "gcloud",
68
- "azure"
69
- ]
70
- },
71
- "uniqueItems": true,
72
- "description": "List of available tools for the agent"
73
- },
74
- "model": {
75
- "type": "string",
76
- "enum": ["opus", "sonnet", "haiku"],
77
- "description": "Claude model tier to use"
78
- },
79
- "tags": {
80
- "type": "array",
81
- "items": {
82
- "type": "string",
83
- "pattern": "^[a-z][a-z0-9-]*$"
84
- },
85
- "uniqueItems": true,
86
- "description": "Tags for categorization"
87
- },
88
- "category": {
89
- "type": "string",
90
- "enum": ["engineering", "research", "quality", "operations", "specialized"],
91
- "description": "Agent category"
92
- },
93
- "max_tokens": {
94
- "type": "integer",
95
- "minimum": 1000,
96
- "maximum": 200000,
97
- "default": 8192,
98
- "description": "Maximum tokens for response"
99
- },
100
- "temperature": {
101
- "type": "number",
102
- "minimum": 0,
103
- "maximum": 1,
104
- "default": 0.7,
105
- "description": "Model temperature setting"
106
- },
107
- "resource_tier": {
108
- "type": "string",
109
- "enum": ["basic", "standard", "intensive", "lightweight"],
110
- "description": "Resource allocation tier"
111
- },
112
- "dependencies": {
113
- "type": "array",
114
- "items": {
115
- "type": "string"
116
- },
117
- "description": "Other agents this agent depends on"
118
- },
119
- "capabilities": {
120
- "type": "array",
121
- "items": {
122
- "type": "string"
123
- },
124
- "description": "List of agent capabilities"
125
- }
126
- },
127
- "additionalProperties": true,
128
- "definitions": {
129
- "model_mappings": {
130
- "description": "Mappings for model normalization",
131
- "mappings": {
132
- "claude-3-5-sonnet-20241022": "sonnet",
133
- "claude-3-5-sonnet-20240620": "sonnet",
134
- "claude-sonnet-4-20250514": "sonnet",
135
- "claude-4-sonnet-20250514": "sonnet",
136
- "claude-3-sonnet-20240229": "sonnet",
137
- "20241022": "sonnet",
138
- "claude-3-opus-20240229": "opus",
139
- "claude-opus-4-20250514": "opus",
140
- "claude-4-opus-20250514": "opus",
141
- "claude-3-haiku-20240307": "haiku",
142
- "claude-3-5-haiku-20241022": "haiku"
143
- }
144
- },
145
- "tool_corrections": {
146
- "description": "Common tool name corrections",
147
- "mappings": {
148
- "read": "Read",
149
- "write": "Write",
150
- "edit": "Edit",
151
- "multiedit": "MultiEdit",
152
- "grep": "Grep",
153
- "glob": "Glob",
154
- "ls": "LS",
155
- "bash": "Bash",
156
- "websearch": "WebSearch",
157
- "webfetch": "WebFetch",
158
- "notebookread": "NotebookRead",
159
- "notebookedit": "NotebookEdit",
160
- "todowrite": "TodoWrite",
161
- "exitplanmode": "ExitPlanMode"
162
- }
163
- }
164
- }
165
- }
@@ -1,244 +0,0 @@
1
- # EventBus Service
2
-
3
- A decoupled event handling system for claude-mpm that enables loose coupling between event producers (like hooks) and consumers (like Socket.IO).
4
-
5
- ## Overview
6
-
7
- The EventBus service provides a centralized publish-subscribe system that:
8
- - Decouples event producers from consumers
9
- - Supports both synchronous and asynchronous handlers
10
- - Provides event filtering and routing capabilities
11
- - Isolates failures in individual consumers
12
- - Offers comprehensive monitoring and statistics
13
-
14
- ## Architecture
15
-
16
- ```
17
- Hook Handler → EventBus → Multiple Consumers
18
- ├── Socket.IO Relay
19
- ├── Logging Service
20
- ├── Analytics
21
- └── Custom Handlers
22
- ```
23
-
24
- ## Key Components
25
-
26
- ### EventBus (`event_bus.py`)
27
- - Singleton pattern for centralized event coordination
28
- - Thread-safe event publishing from any context
29
- - Support for wildcard subscriptions (`hook.*`)
30
- - Event filtering and routing
31
- - Built-in statistics and history tracking
32
-
33
- ### SocketIORelay (`relay.py`)
34
- - Consumes events from EventBus
35
- - Relays to Socket.IO clients
36
- - Handles connection failures gracefully
37
- - Single point of Socket.IO management
38
-
39
- ### Configuration (`config.py`)
40
- - Environment variable support
41
- - Runtime configuration changes
42
- - Easy testing with different settings
43
-
44
- ## Installation
45
-
46
- The EventBus requires `pyee` (Python EventEmitter):
47
-
48
- ```bash
49
- pip install pyee>=13.0.0
50
- ```
51
-
52
- ## Usage
53
-
54
- ### Basic Publishing
55
-
56
- ```python
57
- from claude_mpm.services.event_bus import EventBus
58
-
59
- # Get singleton instance
60
- event_bus = EventBus.get_instance()
61
-
62
- # Publish an event
63
- event_bus.publish("hook.pre_tool", {
64
- "tool_name": "Read",
65
- "file_path": "/example.py",
66
- "sessionId": "abc-123"
67
- })
68
- ```
69
-
70
- ### Subscribing to Events
71
-
72
- ```python
73
- # Subscribe to specific event
74
- def handle_pre_tool(data):
75
- print(f"Tool: {data.get('tool_name')}")
76
-
77
- event_bus.on("hook.pre_tool", handle_pre_tool)
78
-
79
- # Subscribe to wildcard pattern
80
- def handle_all_hooks(event_type, data):
81
- print(f"Hook event: {event_type}")
82
-
83
- event_bus.on("hook.*", handle_all_hooks)
84
- ```
85
-
86
- ### Async Handlers
87
-
88
- ```python
89
- async def async_handler(data):
90
- await process_async(data)
91
-
92
- event_bus.on("app.async_event", async_handler)
93
- ```
94
-
95
- ### Event Filtering
96
-
97
- ```python
98
- # Only allow specific events
99
- event_bus.add_filter("hook.*")
100
- event_bus.add_filter("system.critical.*")
101
-
102
- # Events outside filters will be dropped
103
- event_bus.publish("app.user_action", {}) # Filtered out
104
- ```
105
-
106
- ### Socket.IO Integration
107
-
108
- ```python
109
- from claude_mpm.services.event_bus import SocketIORelay
110
-
111
- # Create and start relay
112
- relay = SocketIORelay(port=8765)
113
- relay.start()
114
-
115
- # Events published to EventBus will be relayed to Socket.IO
116
- event_bus.publish("hook.subagent_stop", {
117
- "agent_type": "Engineer",
118
- "result": "Success"
119
- })
120
- ```
121
-
122
- ## Configuration
123
-
124
- Configure via environment variables:
125
-
126
- ```bash
127
- # EventBus settings
128
- export CLAUDE_MPM_EVENTBUS_ENABLED=true
129
- export CLAUDE_MPM_EVENTBUS_DEBUG=false
130
- export CLAUDE_MPM_EVENTBUS_HISTORY_SIZE=100
131
- export CLAUDE_MPM_EVENTBUS_FILTERS="hook.*,system.critical.*"
132
-
133
- # Relay settings
134
- export CLAUDE_MPM_RELAY_ENABLED=true
135
- export CLAUDE_MPM_SOCKETIO_PORT=8765
136
- export CLAUDE_MPM_RELAY_DEBUG=false
137
- export CLAUDE_MPM_RELAY_MAX_RETRIES=3
138
- ```
139
-
140
- ## Migration from Direct Socket.IO
141
-
142
- ### Before (Direct Socket.IO)
143
- ```python
144
- # In hook_handler.py
145
- client = socketio.Client()
146
- client.connect("http://localhost:8765")
147
- client.emit("claude_event", normalized_data)
148
- ```
149
-
150
- ### After (EventBus)
151
- ```python
152
- # In hook_handler.py
153
- event_bus = EventBus.get_instance()
154
- event_bus.publish("hook.pre_tool", data)
155
-
156
- # Socket.IO handled by relay (separate concern)
157
- ```
158
-
159
- ## Benefits
160
-
161
- 1. **Decoupling**: Hooks don't need to know about Socket.IO
162
- 2. **Testability**: Easy to test without Socket.IO running
163
- 3. **Reliability**: Failures in one consumer don't affect others
164
- 4. **Flexibility**: Add new consumers without modifying producers
165
- 5. **Performance**: Events processed asynchronously
166
- 6. **Monitoring**: Built-in statistics and event history
167
-
168
- ## Testing
169
-
170
- Run the test suite:
171
-
172
- ```bash
173
- # Integration tests
174
- python scripts/test_eventbus_integration.py
175
-
176
- # Usage examples
177
- python scripts/eventbus_usage_example.py
178
-
179
- # Complete flow test
180
- python scripts/test_eventbus_flow.py
181
- ```
182
-
183
- ## Monitoring
184
-
185
- Get EventBus statistics:
186
-
187
- ```python
188
- stats = event_bus.get_stats()
189
- print(f"Events published: {stats['events_published']}")
190
- print(f"Events filtered: {stats['events_filtered']}")
191
-
192
- # Recent event history
193
- recent = event_bus.get_recent_events(10)
194
- for event in recent:
195
- print(f"{event['type']} at {event['timestamp']}")
196
- ```
197
-
198
- ## Error Handling
199
-
200
- Errors in consumers are isolated:
201
-
202
- ```python
203
- def good_handler(data):
204
- process(data) # Always runs
205
-
206
- def bad_handler(data):
207
- raise Exception("Error") # Doesn't affect good_handler
208
-
209
- event_bus.on("app.event", good_handler)
210
- event_bus.on("app.event", bad_handler)
211
- ```
212
-
213
- ## Performance
214
-
215
- - Handles 30,000+ events/second
216
- - Minimal memory overhead
217
- - Thread-safe for concurrent publishing
218
- - Efficient wildcard matching
219
-
220
- ## Troubleshooting
221
-
222
- ### Events not being received
223
- 1. Check if EventBus is enabled: `CLAUDE_MPM_EVENTBUS_ENABLED=true`
224
- 2. Verify no filters are blocking: `event_bus.clear_filters()`
225
- 3. Check handler registration: `event_bus.on("event_type", handler)`
226
-
227
- ### Socket.IO relay not working
228
- 1. Verify Socket.IO server is running on configured port
229
- 2. Check relay is started: `relay.start()`
230
- 3. Enable debug logging: `CLAUDE_MPM_RELAY_DEBUG=true`
231
-
232
- ### High memory usage
233
- 1. Reduce history size: `CLAUDE_MPM_EVENTBUS_HISTORY_SIZE=50`
234
- 2. Clear history periodically: `event_bus.clear_history()`
235
-
236
- ## Future Enhancements
237
-
238
- - [ ] Persistent event storage
239
- - [ ] Event replay capabilities
240
- - [ ] Advanced routing rules
241
- - [ ] Event prioritization
242
- - [ ] Distributed EventBus (Redis backend)
243
- - [ ] Event schema validation
244
- - [ ] Rate limiting per consumer
@@ -1,303 +0,0 @@
1
- # Event Bus System
2
-
3
- A decoupled, reliable event system for Claude MPM that separates event producers from consumers, enabling better testing, maintenance, and extensibility.
4
-
5
- ## Overview
6
-
7
- The Event Bus system provides a central hub for all events in the Claude MPM framework. Instead of components directly calling Socket.IO or other services, they publish events to the bus, which routes them to interested consumers.
8
-
9
- ## Architecture
10
-
11
- ```
12
- Producers → Event Bus → Consumers
13
- ```
14
-
15
- ### Key Components
16
-
17
- - **EventBus**: Central routing and queuing system
18
- - **Event**: Standard event format with metadata
19
- - **Producers**: Publish events without knowing consumers
20
- - **Consumers**: Subscribe to topics and process events
21
- - **Topics**: Hierarchical event categorization
22
-
23
- ## Benefits
24
-
25
- ### 1. Decoupling
26
- - Producers don't know about consumers
27
- - Socket.IO is just another consumer
28
- - Easy to add/remove consumers without affecting producers
29
-
30
- ### 2. Reliability
31
- - Events queued when consumers unavailable
32
- - Retry logic with exponential backoff
33
- - Dead letter queue for failed events
34
- - Graceful degradation
35
-
36
- ### 3. Testability
37
- - Test producers without Socket.IO
38
- - Mock event bus for unit tests
39
- - Test consumers in isolation
40
- - Deterministic event flow
41
-
42
- ### 4. Observability
43
- - Central metrics collection
44
- - Event flow monitoring
45
- - Performance tracking
46
- - Debug logging
47
-
48
- ### 5. Flexibility
49
- - Topic-based filtering
50
- - Event transformation
51
- - Batch processing
52
- - Priority queuing
53
-
54
- ## Usage
55
-
56
- ### Basic Setup
57
-
58
- ```python
59
- from claude_mpm.services.events import EventBus, SocketIOConsumer, LoggingConsumer
60
-
61
- # Create and start event bus
62
- bus = EventBus()
63
- await bus.start()
64
-
65
- # Add consumers
66
- socketio_consumer = SocketIOConsumer()
67
- await bus.subscribe(socketio_consumer)
68
-
69
- logging_consumer = LoggingConsumer(topics=["hook.**"])
70
- await bus.subscribe(logging_consumer)
71
- ```
72
-
73
- ### Publishing Events
74
-
75
- ```python
76
- from claude_mpm.services.events import HookEventProducer
77
-
78
- # Create producer
79
- producer = HookEventProducer(bus)
80
-
81
- # Publish events
82
- await producer.publish_response({
83
- "content": "Assistant response text",
84
- "model": "claude-3",
85
- })
86
-
87
- await producer.publish_tool_use(
88
- tool_name="Read",
89
- tool_params={"file_path": "/path/to/file"},
90
- tool_result="File contents",
91
- )
92
- ```
93
-
94
- ### Creating Custom Consumers
95
-
96
- ```python
97
- from claude_mpm.services.events import IEventConsumer, ConsumerConfig
98
-
99
- class CustomConsumer(IEventConsumer):
100
- def __init__(self):
101
- self._config = ConsumerConfig(
102
- name="CustomConsumer",
103
- topics=["system.**"], # Subscribe to system events
104
- priority=ConsumerPriority.NORMAL,
105
- )
106
-
107
- async def consume(self, event: Event) -> bool:
108
- # Process event
109
- print(f"Processing: {event.topic} - {event.type}")
110
- return True
111
-
112
- # Implement other required methods...
113
- ```
114
-
115
- ## Topic Hierarchy
116
-
117
- Events are organized in a hierarchical topic structure:
118
-
119
- ```
120
- hook.* # Hook system events
121
- .response # Assistant responses
122
- .tool # Tool usage
123
- .subagent.* # Subagent events
124
- .error # Hook errors
125
-
126
- system.* # System events
127
- .lifecycle.* # Service startup/shutdown
128
- .health # Health status
129
- .config # Configuration changes
130
- .performance # Performance metrics
131
- .error # System errors
132
- .warning # System warnings
133
-
134
- cli.* # CLI command events
135
- agent.* # Agent events
136
- build.* # Build monitoring events
137
- ```
138
-
139
- ### Topic Patterns
140
-
141
- - `hook.*` - Matches `hook.response` but not `hook.tool.usage`
142
- - `hook.**` - Matches all hook events including nested
143
- - `**` - Matches all events
144
-
145
- ## Event Format
146
-
147
- ```python
148
- @dataclass
149
- class Event:
150
- id: str # Unique event ID
151
- topic: str # Event topic
152
- type: str # Event type
153
- timestamp: datetime # Creation time
154
- source: str # Event source
155
- data: Dict[str, Any] # Event payload
156
- metadata: EventMetadata # Processing metadata
157
- correlation_id: str # Track related events
158
- priority: EventPriority # Processing priority
159
- ```
160
-
161
- ## Consumers
162
-
163
- ### Built-in Consumers
164
-
165
- #### SocketIOConsumer
166
- - Emits events via Socket.IO
167
- - Batching for efficiency
168
- - Automatic reconnection
169
- - Connection pooling
170
-
171
- #### LoggingConsumer
172
- - Logs events for debugging
173
- - Configurable log levels
174
- - JSON formatting
175
- - Topic filtering
176
-
177
- #### MetricsConsumer
178
- - Collects event statistics
179
- - Rate calculation
180
- - Latency tracking
181
- - Top event analysis
182
-
183
- #### DeadLetterConsumer
184
- - Stores failed events
185
- - Event replay capability
186
- - Retention policies
187
- - Failure analysis
188
-
189
- ## Producers
190
-
191
- ### Built-in Producers
192
-
193
- #### HookEventProducer
194
- - Publishes hook system events
195
- - Helper methods for common events
196
- - Correlation tracking
197
-
198
- #### SystemEventProducer
199
- - Publishes system-level events
200
- - Service lifecycle events
201
- - Health and metrics
202
- - Configuration changes
203
-
204
- ## Configuration
205
-
206
- ### EventBus Options
207
-
208
- ```python
209
- EventBus(
210
- max_queue_size=10000, # Maximum queued events
211
- process_interval=0.01, # Processing frequency
212
- batch_timeout=0.1, # Batch wait time
213
- enable_metrics=True, # Track metrics
214
- enable_persistence=False, # Persist to disk
215
- )
216
- ```
217
-
218
- ### Consumer Configuration
219
-
220
- ```python
221
- ConsumerConfig(
222
- name="MyConsumer",
223
- topics=["hook.**"], # Topics to subscribe
224
- priority=ConsumerPriority.HIGH,
225
- batch_size=10, # Process in batches
226
- batch_timeout=0.5, # Batch wait time
227
- max_retries=3, # Retry failed events
228
- retry_backoff=2.0, # Backoff multiplier
229
- filter_func=my_filter, # Event filter
230
- transform_func=my_transform, # Event transformer
231
- )
232
- ```
233
-
234
- ## Migration Guide
235
-
236
- ### Updating Hook Handler
237
-
238
- Before (Direct Socket.IO):
239
- ```python
240
- # Old: Direct Socket.IO dependency
241
- socketio_client = socketio.Client()
242
- socketio_client.emit("hook_event", event_data)
243
- ```
244
-
245
- After (Event Bus):
246
- ```python
247
- # New: Publish to event bus
248
- producer = HookEventProducer(event_bus)
249
- await producer.publish_response(response_data)
250
- ```
251
-
252
- ### Testing
253
-
254
- Before:
255
- ```python
256
- # Hard to test - needs Socket.IO server
257
- def test_hook_handler():
258
- # Complex setup with Socket.IO
259
- pass
260
- ```
261
-
262
- After:
263
- ```python
264
- # Easy to test - mock event bus
265
- def test_hook_handler():
266
- mock_bus = Mock()
267
- producer = HookEventProducer(mock_bus)
268
- await producer.publish_response(data)
269
- mock_bus.publish.assert_called_once()
270
- ```
271
-
272
- ## Performance
273
-
274
- - **Publish Latency**: <1ms average
275
- - **Processing Throughput**: 10,000+ events/sec
276
- - **Memory Usage**: ~100 bytes per queued event
277
- - **CPU Overhead**: <5% for typical load
278
-
279
- ## Best Practices
280
-
281
- 1. **Use Topics Wisely**: Create logical topic hierarchies
282
- 2. **Set Priorities**: Critical events should have higher priority
283
- 3. **Handle Errors**: Consumers should handle their own errors
284
- 4. **Monitor Metrics**: Track queue size and processing rates
285
- 5. **Test in Isolation**: Test producers and consumers separately
286
- 6. **Batch When Possible**: Improve efficiency with batching
287
- 7. **Clean Shutdown**: Always call `bus.stop()` for graceful shutdown
288
-
289
- ## Examples
290
-
291
- See the `scripts/` directory for complete examples:
292
- - `test_event_bus.py` - Basic event bus demonstration
293
- - `hook_handler_with_event_bus.py` - Hook handler integration
294
-
295
- ## Future Enhancements
296
-
297
- - [ ] Persistent event storage
298
- - [ ] Event replay from timestamp
299
- - [ ] Distributed event bus (Redis/RabbitMQ backend)
300
- - [ ] Event schema validation
301
- - [ ] Advanced routing rules
302
- - [ ] Event compression
303
- - [ ] WebSocket consumer for real-time streaming