claude-mpm 4.16.0__py3-none-any.whl → 4.25.10__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 (531) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_ENGINEER.md +286 -0
  3. claude_mpm/agents/BASE_PM.md +272 -23
  4. claude_mpm/agents/OUTPUT_STYLE.md +3 -48
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +1821 -32
  6. claude_mpm/agents/WORKFLOW.md +75 -2
  7. claude_mpm/agents/agent_loader.py +4 -4
  8. claude_mpm/agents/base_agent.json +6 -3
  9. claude_mpm/agents/frontmatter_validator.py +1 -1
  10. claude_mpm/agents/templates/api_qa.json +5 -2
  11. claude_mpm/agents/templates/circuit_breakers.md +108 -2
  12. claude_mpm/agents/templates/documentation.json +33 -6
  13. claude_mpm/agents/templates/engineer.json +5 -1
  14. claude_mpm/agents/templates/javascript_engineer_agent.json +380 -0
  15. claude_mpm/agents/templates/php-engineer.json +10 -4
  16. claude_mpm/agents/templates/pm_red_flags.md +89 -19
  17. claude_mpm/agents/templates/project_organizer.json +7 -3
  18. claude_mpm/agents/templates/python_engineer.json +8 -3
  19. claude_mpm/agents/templates/qa.json +2 -1
  20. claude_mpm/agents/templates/react_engineer.json +1 -0
  21. claude_mpm/agents/templates/research.json +82 -12
  22. claude_mpm/agents/templates/rust_engineer.json +12 -7
  23. claude_mpm/agents/templates/security.json +4 -4
  24. claude_mpm/agents/templates/svelte-engineer.json +225 -0
  25. claude_mpm/agents/templates/tauri_engineer.json +274 -0
  26. claude_mpm/agents/templates/ticketing.json +10 -6
  27. claude_mpm/agents/templates/version_control.json +4 -2
  28. claude_mpm/agents/templates/web_qa.json +2 -1
  29. claude_mpm/cli/README.md +253 -0
  30. claude_mpm/cli/__init__.py +11 -1
  31. claude_mpm/cli/commands/__init__.py +2 -0
  32. claude_mpm/cli/commands/aggregate.py +1 -1
  33. claude_mpm/cli/commands/analyze.py +3 -3
  34. claude_mpm/cli/commands/cleanup.py +1 -1
  35. claude_mpm/cli/commands/configure_agent_display.py +4 -4
  36. claude_mpm/cli/commands/debug.py +12 -12
  37. claude_mpm/cli/commands/hook_errors.py +277 -0
  38. claude_mpm/cli/commands/mcp_install_commands.py +1 -1
  39. claude_mpm/cli/commands/mcp_install_commands.py.backup +284 -0
  40. claude_mpm/cli/commands/mpm_init/README.md +365 -0
  41. claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
  42. claude_mpm/cli/commands/mpm_init/core.py +573 -0
  43. claude_mpm/cli/commands/mpm_init/display.py +341 -0
  44. claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
  45. claude_mpm/cli/commands/mpm_init/modes.py +397 -0
  46. claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
  47. claude_mpm/cli/commands/mpm_init_cli.py +396 -0
  48. claude_mpm/cli/commands/mpm_init_handler.py +67 -1
  49. claude_mpm/cli/commands/run.py +124 -128
  50. claude_mpm/cli/commands/skills.py +922 -0
  51. claude_mpm/cli/executor.py +58 -0
  52. claude_mpm/cli/interactive/agent_wizard.py +5 -5
  53. claude_mpm/cli/parsers/base_parser.py +35 -0
  54. claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
  55. claude_mpm/cli/parsers/skills_parser.py +275 -0
  56. claude_mpm/cli/startup.py +168 -8
  57. claude_mpm/cli/startup_display.py +480 -0
  58. claude_mpm/cli/utils.py +1 -1
  59. claude_mpm/cli_module/commands.py +1 -1
  60. claude_mpm/cli_module/refactoring_guide.md +253 -0
  61. claude_mpm/commands/mpm-auto-configure.md +52 -0
  62. claude_mpm/commands/mpm-help.md +6 -0
  63. claude_mpm/commands/mpm-init.md +130 -8
  64. claude_mpm/commands/mpm-resume.md +372 -0
  65. claude_mpm/commands/mpm-tickets.md +56 -7
  66. claude_mpm/commands/mpm-version.md +113 -0
  67. claude_mpm/commands/mpm.md +2 -0
  68. claude_mpm/config/agent_capabilities.yaml +658 -0
  69. claude_mpm/config/agent_config.py +2 -2
  70. claude_mpm/config/async_logging_config.yaml +145 -0
  71. claude_mpm/constants.py +24 -0
  72. claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +34 -0
  73. claude_mpm/core/api_validator.py +1 -1
  74. claude_mpm/core/claude_runner.py +14 -1
  75. claude_mpm/core/config.py +50 -0
  76. claude_mpm/core/constants.py +1 -1
  77. claude_mpm/core/factories.py +1 -1
  78. claude_mpm/core/framework/processors/metadata_processor.py +1 -1
  79. claude_mpm/core/hook_error_memory.py +381 -0
  80. claude_mpm/core/hook_manager.py +41 -2
  81. claude_mpm/core/interactive_session.py +48 -3
  82. claude_mpm/core/interfaces.py +56 -1
  83. claude_mpm/core/logger.py +3 -1
  84. claude_mpm/core/oneshot_session.py +39 -0
  85. claude_mpm/core/optimized_agent_loader.py +3 -3
  86. claude_mpm/d2/.gitignore +22 -0
  87. claude_mpm/d2/ARCHITECTURE_COMPARISON.md +273 -0
  88. claude_mpm/d2/FLASK_INTEGRATION.md +156 -0
  89. claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +452 -0
  90. claude_mpm/d2/QUICKSTART.md +186 -0
  91. claude_mpm/d2/README.md +232 -0
  92. claude_mpm/d2/STORE_FIX_SUMMARY.md +167 -0
  93. claude_mpm/d2/SVELTE5_STORES_GUIDE.md +180 -0
  94. claude_mpm/d2/TESTING.md +288 -0
  95. claude_mpm/d2/index.html +118 -0
  96. claude_mpm/d2/package.json +19 -0
  97. claude_mpm/d2/src/App.svelte +110 -0
  98. claude_mpm/d2/src/components/Header.svelte +153 -0
  99. claude_mpm/d2/src/components/MainContent.svelte +74 -0
  100. claude_mpm/d2/src/components/Sidebar.svelte +85 -0
  101. claude_mpm/d2/src/components/tabs/EventsTab.svelte +326 -0
  102. claude_mpm/d2/src/lib/socketio.js +144 -0
  103. claude_mpm/d2/src/main.js +7 -0
  104. claude_mpm/d2/src/stores/events.js +114 -0
  105. claude_mpm/d2/src/stores/socket.js +108 -0
  106. claude_mpm/d2/src/stores/theme.js +65 -0
  107. claude_mpm/d2/svelte.config.js +12 -0
  108. claude_mpm/d2/vite.config.js +15 -0
  109. claude_mpm/dashboard/.claude-mpm/memories/README.md +36 -0
  110. claude_mpm/dashboard/BUILD_NUMBER +1 -0
  111. claude_mpm/dashboard/README.md +121 -0
  112. claude_mpm/dashboard/VERSION +1 -0
  113. claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +273 -0
  114. claude_mpm/dashboard/react/components/ErrorBoundary.tsx +75 -0
  115. claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +141 -0
  116. claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +36 -0
  117. claude_mpm/dashboard/react/components/shared/FilterBar.tsx +89 -0
  118. claude_mpm/dashboard/react/contexts/DashboardContext.tsx +215 -0
  119. claude_mpm/dashboard/react/entries/events.tsx +165 -0
  120. claude_mpm/dashboard/react/hooks/useEvents.ts +191 -0
  121. claude_mpm/dashboard/react/hooks/useSocket.ts +225 -0
  122. claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +170 -0
  123. claude_mpm/dashboard/static/built/components/activity-tree.js.map +1 -0
  124. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +101 -101
  125. claude_mpm/dashboard/static/built/components/agent-inference.js.map +1 -0
  126. claude_mpm/dashboard/static/built/components/build-tracker.js +59 -59
  127. claude_mpm/dashboard/static/built/components/code-simple.js +107 -107
  128. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +29 -29
  129. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +24 -24
  130. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +27 -27
  131. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +25 -25
  132. claude_mpm/dashboard/static/built/components/code-tree.js.map +1 -0
  133. claude_mpm/dashboard/static/built/components/code-viewer.js.map +1 -0
  134. claude_mpm/dashboard/static/built/components/connection-debug.js +101 -101
  135. claude_mpm/dashboard/static/built/components/diff-viewer.js +113 -113
  136. claude_mpm/dashboard/static/built/components/event-processor.js.map +1 -0
  137. claude_mpm/dashboard/static/built/components/event-viewer.js.map +1 -0
  138. claude_mpm/dashboard/static/built/components/export-manager.js.map +1 -0
  139. claude_mpm/dashboard/static/built/components/file-change-tracker.js +57 -57
  140. claude_mpm/dashboard/static/built/components/file-change-viewer.js +74 -74
  141. claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +1 -0
  142. claude_mpm/dashboard/static/built/components/file-viewer.js.map +1 -0
  143. claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +1 -0
  144. claude_mpm/dashboard/static/built/components/hud-manager.js.map +1 -0
  145. claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +1 -0
  146. claude_mpm/dashboard/static/built/components/module-viewer.js.map +1 -0
  147. claude_mpm/dashboard/static/built/components/session-manager.js.map +1 -0
  148. claude_mpm/dashboard/static/built/components/socket-manager.js.map +1 -0
  149. claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +1 -0
  150. claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +1 -0
  151. claude_mpm/dashboard/static/built/components/working-directory.js.map +1 -0
  152. claude_mpm/dashboard/static/built/connection-manager.js +76 -76
  153. claude_mpm/dashboard/static/built/dashboard.js.map +1 -0
  154. claude_mpm/dashboard/static/built/extension-error-handler.js +22 -22
  155. claude_mpm/dashboard/static/built/react/events.js.map +1 -0
  156. claude_mpm/dashboard/static/built/shared/dom-helpers.js +9 -9
  157. claude_mpm/dashboard/static/built/shared/event-bus.js +5 -5
  158. claude_mpm/dashboard/static/built/shared/logger.js +16 -16
  159. claude_mpm/dashboard/static/built/shared/tooltip-service.js +6 -6
  160. claude_mpm/dashboard/static/built/socket-client.js.map +1 -0
  161. claude_mpm/dashboard/static/css/activity.css +69 -69
  162. claude_mpm/dashboard/static/css/connection-status.css +10 -10
  163. claude_mpm/dashboard/static/css/dashboard.css +15 -15
  164. claude_mpm/dashboard/static/index.html +22 -22
  165. claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +170 -0
  166. claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
  167. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
  168. claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
  169. claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
  170. claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
  171. claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
  172. claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
  173. claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
  174. claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
  175. claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
  176. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
  177. claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
  178. claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
  179. claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
  180. claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
  181. claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
  182. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
  183. claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
  184. claude_mpm/dashboard/static/js/connection-manager.js +76 -76
  185. claude_mpm/dashboard/static/js/dashboard.js +76 -58
  186. claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
  187. claude_mpm/dashboard/static/js/shared/dom-helpers.js +9 -9
  188. claude_mpm/dashboard/static/js/shared/event-bus.js +5 -5
  189. claude_mpm/dashboard/static/js/shared/logger.js +16 -16
  190. claude_mpm/dashboard/static/js/shared/tooltip-service.js +6 -6
  191. claude_mpm/dashboard/static/js/socket-client.js +138 -121
  192. claude_mpm/dashboard/static/navigation-test-results.md +118 -0
  193. claude_mpm/dashboard/static/production/main.html +21 -21
  194. claude_mpm/dashboard/static/test-archive/dashboard.html +22 -22
  195. claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +36 -0
  196. claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +39 -0
  197. claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +38 -0
  198. claude_mpm/dashboard/templates/code_simple.html +23 -23
  199. claude_mpm/dashboard/templates/index.html +18 -18
  200. claude_mpm/hooks/README.md +143 -0
  201. claude_mpm/hooks/__init__.py +8 -0
  202. claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
  203. claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
  204. claude_mpm/hooks/claude_hooks/installer.py +45 -0
  205. claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
  206. claude_mpm/hooks/session_resume_hook.py +121 -0
  207. claude_mpm/hooks/templates/README.md +180 -0
  208. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  209. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  210. claude_mpm/hooks/templates/settings.json.example +147 -0
  211. claude_mpm/models/resume_log.py +340 -0
  212. claude_mpm/schemas/agent_schema.json +596 -0
  213. claude_mpm/schemas/frontmatter_schema.json +165 -0
  214. claude_mpm/scripts/claude-hook-handler.sh +3 -3
  215. claude_mpm/scripts/start_activity_logging.py +3 -1
  216. claude_mpm/services/agents/auto_config_manager.py +1 -1
  217. claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
  218. claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
  219. claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
  220. claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
  221. claude_mpm/services/agents/deployment/agent_validator.py +17 -1
  222. claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
  223. claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
  224. claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
  225. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
  226. claude_mpm/services/agents/loading/framework_agent_loader.py +8 -8
  227. claude_mpm/services/agents/local_template_manager.py +4 -2
  228. claude_mpm/services/agents/recommender.py +47 -0
  229. claude_mpm/services/cli/resume_service.py +617 -0
  230. claude_mpm/services/cli/session_manager.py +87 -0
  231. claude_mpm/services/cli/session_pause_manager.py +504 -0
  232. claude_mpm/services/cli/session_resume_helper.py +372 -0
  233. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  234. claude_mpm/services/core/base.py +26 -11
  235. claude_mpm/services/core/interfaces.py +56 -1
  236. claude_mpm/services/core/models/agent_config.py +3 -0
  237. claude_mpm/services/core/models/process.py +4 -0
  238. claude_mpm/services/core/path_resolver.py +1 -1
  239. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  240. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  241. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  242. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  243. claude_mpm/services/diagnostics/doctor_reporter.py +6 -4
  244. claude_mpm/services/diagnostics/models.py +21 -0
  245. claude_mpm/services/event_bus/README.md +244 -0
  246. claude_mpm/services/event_bus/direct_relay.py +3 -3
  247. claude_mpm/services/event_bus/event_bus.py +36 -3
  248. claude_mpm/services/event_bus/relay.py +23 -7
  249. claude_mpm/services/events/README.md +303 -0
  250. claude_mpm/services/events/consumers/logging.py +1 -2
  251. claude_mpm/services/framework_claude_md_generator/README.md +119 -0
  252. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  253. claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
  254. claude_mpm/services/local_ops/__init__.py +2 -0
  255. claude_mpm/services/local_ops/process_manager.py +1 -1
  256. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  257. claude_mpm/services/mcp_config_manager.py +7 -131
  258. claude_mpm/services/mcp_gateway/README.md +185 -0
  259. claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
  260. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  261. claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
  262. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  263. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  264. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +26 -21
  265. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  266. claude_mpm/services/memory/failure_tracker.py +19 -4
  267. claude_mpm/services/memory/optimizer.py +1 -1
  268. claude_mpm/services/model/model_router.py +8 -9
  269. claude_mpm/services/monitor/daemon.py +1 -1
  270. claude_mpm/services/monitor/server.py +2 -2
  271. claude_mpm/services/native_agent_converter.py +356 -0
  272. claude_mpm/services/port_manager.py +1 -1
  273. claude_mpm/services/project/documentation_manager.py +2 -1
  274. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  275. claude_mpm/services/runner_configuration_service.py +1 -0
  276. claude_mpm/services/self_upgrade_service.py +165 -7
  277. claude_mpm/services/session_manager.py +205 -1
  278. claude_mpm/services/skills_config.py +547 -0
  279. claude_mpm/services/skills_deployer.py +955 -0
  280. claude_mpm/services/socketio/handlers/connection.py +1 -1
  281. claude_mpm/services/socketio/handlers/connection.py.backup +217 -0
  282. claude_mpm/services/socketio/handlers/git.py +2 -2
  283. claude_mpm/services/socketio/handlers/hook.py.backup +154 -0
  284. claude_mpm/services/static/.gitkeep +2 -0
  285. claude_mpm/services/system_instructions_service.py +1 -3
  286. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  287. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  288. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  289. claude_mpm/services/unified/deployment_strategies/local.py +1 -1
  290. claude_mpm/services/version_control/VERSION +1 -0
  291. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  292. claude_mpm/services/version_service.py +104 -1
  293. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  294. claude_mpm/skills/__init__.py +21 -0
  295. claude_mpm/skills/agent_skills_injector.py +324 -0
  296. claude_mpm/skills/bundled/.gitkeep +2 -0
  297. claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +79 -0
  298. claude_mpm/skills/bundled/api-documentation.md +393 -0
  299. claude_mpm/skills/bundled/async-testing.md +571 -0
  300. claude_mpm/skills/bundled/code-review.md +143 -0
  301. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
  302. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
  303. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  304. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  305. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  306. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  307. claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
  308. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
  309. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
  310. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  311. claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
  312. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
  313. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  314. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  315. claude_mpm/skills/bundled/database-migration.md +199 -0
  316. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
  317. claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +63 -0
  318. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  319. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  320. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  321. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  322. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
  323. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
  324. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
  325. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
  326. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
  327. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
  328. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
  329. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
  330. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
  331. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
  332. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
  333. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
  334. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  335. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  336. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
  337. claude_mpm/skills/bundled/docker-containerization.md +194 -0
  338. claude_mpm/skills/bundled/express-local-dev.md +1429 -0
  339. claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
  340. claude_mpm/skills/bundled/git-workflow.md +414 -0
  341. claude_mpm/skills/bundled/imagemagick.md +204 -0
  342. claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
  343. claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
  344. claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
  345. claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
  346. claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
  347. claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
  348. claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
  349. claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
  350. claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
  351. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  352. claude_mpm/skills/bundled/json-data-handling.md +223 -0
  353. claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +202 -0
  354. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
  355. claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  356. claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +322 -0
  357. claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  358. claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +202 -0
  359. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
  360. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
  361. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
  362. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
  363. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
  364. claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +202 -0
  365. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
  366. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  367. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
  368. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
  369. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
  370. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
  371. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  372. claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +157 -0
  373. claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +425 -0
  374. claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +22 -0
  375. claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +2 -0
  376. claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +202 -0
  377. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
  378. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  379. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  380. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  381. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  382. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  383. claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +303 -0
  384. claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +113 -0
  385. claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +72 -0
  386. claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
  387. claude_mpm/skills/bundled/pdf.md +141 -0
  388. claude_mpm/skills/bundled/performance-profiling.md +573 -0
  389. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  390. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  391. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  392. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  393. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  394. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  395. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  396. claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
  397. claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
  398. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  399. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  400. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  401. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  402. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  403. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  404. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  405. claude_mpm/skills/bundled/security-scanning.md +327 -0
  406. claude_mpm/skills/bundled/systematic-debugging.md +473 -0
  407. claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
  408. claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
  409. claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
  410. claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
  411. claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
  412. claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
  413. claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
  414. claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
  415. claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
  416. claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
  417. claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
  418. claude_mpm/skills/bundled/test-driven-development.md +378 -0
  419. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
  420. claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +158 -0
  421. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  422. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
  423. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
  424. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
  425. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
  426. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
  427. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
  428. claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
  429. claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
  430. claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
  431. claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
  432. claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
  433. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
  434. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  435. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  436. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  437. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  438. claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +202 -0
  439. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
  440. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  441. claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +35 -0
  442. claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +44 -0
  443. claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +34 -0
  444. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  445. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  446. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
  447. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  448. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  449. claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
  450. claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
  451. claude_mpm/skills/bundled/xlsx.md +157 -0
  452. claude_mpm/skills/registry.py +97 -9
  453. claude_mpm/skills/skills_registry.py +347 -0
  454. claude_mpm/skills/skills_service.py +739 -0
  455. claude_mpm/templates/questions/EXAMPLES.md +501 -0
  456. claude_mpm/templates/questions/__init__.py +43 -0
  457. claude_mpm/templates/questions/base.py +193 -0
  458. claude_mpm/templates/questions/pr_strategy.py +314 -0
  459. claude_mpm/templates/questions/project_init.py +388 -0
  460. claude_mpm/templates/questions/ticket_mgmt.py +397 -0
  461. claude_mpm/tools/README_SOCKETIO_DEBUG.md +224 -0
  462. claude_mpm/tools/__main__.py +8 -8
  463. claude_mpm/tools/code_tree_analyzer/README.md +64 -0
  464. claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
  465. claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
  466. claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
  467. claude_mpm/tools/code_tree_analyzer/core.py +380 -0
  468. claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
  469. claude_mpm/tools/code_tree_analyzer/events.py +168 -0
  470. claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
  471. claude_mpm/tools/code_tree_analyzer/models.py +39 -0
  472. claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
  473. claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
  474. claude_mpm/utils/agent_dependency_loader.py +5 -5
  475. claude_mpm/utils/dependency_cache.py +3 -1
  476. claude_mpm/utils/gitignore.py +241 -0
  477. claude_mpm/utils/log_cleanup.py +3 -3
  478. claude_mpm/utils/robust_installer.py +3 -5
  479. claude_mpm/utils/structured_questions.py +619 -0
  480. claude_mpm-4.25.10.dist-info/METADATA +789 -0
  481. {claude_mpm-4.16.0.dist-info → claude_mpm-4.25.10.dist-info}/RECORD +485 -240
  482. claude_mpm/agents/INSTRUCTIONS_OLD_DEPRECATED.md +0 -602
  483. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  484. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  485. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  486. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  487. claude_mpm/cli/commands/mpm_init.py +0 -2008
  488. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  489. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  490. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  491. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  492. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  493. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  494. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  495. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  496. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  497. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  498. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  499. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  500. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  501. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  502. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  503. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  504. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  505. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  506. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  507. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  508. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  509. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  510. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  511. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  512. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  513. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  514. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  515. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  516. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  517. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  518. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  519. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  520. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  521. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  522. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  523. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  524. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  525. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  526. claude_mpm/tools/code_tree_analyzer.py +0 -1825
  527. claude_mpm-4.16.0.dist-info/METADATA +0 -453
  528. {claude_mpm-4.16.0.dist-info → claude_mpm-4.25.10.dist-info}/WHEEL +0 -0
  529. {claude_mpm-4.16.0.dist-info → claude_mpm-4.25.10.dist-info}/entry_points.txt +0 -0
  530. {claude_mpm-4.16.0.dist-info → claude_mpm-4.25.10.dist-info}/licenses/LICENSE +0 -0
  531. {claude_mpm-4.16.0.dist-info → claude_mpm-4.25.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,288 @@
1
+ # Testing Checklist for Dashboard2
2
+
3
+ ## Build Verification
4
+
5
+ - [x] `npm install` completes without errors
6
+ - [x] `npm run build` completes successfully
7
+ - [x] No Svelte compiler warnings
8
+ - [x] No accessibility warnings
9
+ - [x] `dist/index.html` exists
10
+ - [x] `dist/assets/*.js` exists
11
+ - [x] `dist/assets/*.css` exists
12
+
13
+ ## Development Server Testing
14
+
15
+ Run `npm run dev` and verify:
16
+
17
+ - [ ] Dev server starts on port 5173
18
+ - [ ] Dashboard loads at `http://localhost:5173`
19
+ - [ ] No console errors on page load
20
+ - [ ] Hot Module Replacement (HMR) works on file changes
21
+
22
+ ## UI Components
23
+
24
+ ### Header
25
+ - [ ] Title displays: "Claude MPM Dashboard"
26
+ - [ ] Version displays: "v2.0"
27
+ - [ ] Connection status indicator is visible
28
+ - [ ] Status text shows "Disconnected" initially
29
+ - [ ] Port number displays correctly
30
+ - [ ] Indicator color is red when disconnected
31
+
32
+ ### Sidebar
33
+ - [ ] All 5 tabs are visible: Events, Agents, Files, Tools, Activity
34
+ - [ ] Each tab has an icon
35
+ - [ ] Events tab is active by default
36
+ - [ ] Clicking tabs switches active state
37
+ - [ ] Active tab has blue highlight
38
+ - [ ] Hover effects work correctly
39
+
40
+ ### Main Content
41
+ - [ ] Events tab content loads
42
+ - [ ] Other tabs show placeholder content
43
+ - [ ] Placeholder icons display correctly
44
+ - [ ] Content area fills remaining space
45
+
46
+ ## Socket.IO Connection
47
+
48
+ ### Local Connection (port 8765)
49
+ - [ ] Connection status changes to "Connecting..." on startup
50
+ - [ ] Status changes to "Connected" when server is available
51
+ - [ ] Indicator turns green on connection
52
+ - [ ] Port number matches server (8765)
53
+ - [ ] Status shows "Disconnected" when server unavailable
54
+ - [ ] Status shows "Reconnecting..." when connection lost
55
+ - [ ] Indicator turns yellow during reconnection
56
+ - [ ] Auto-reconnect works after temporary disconnection
57
+
58
+ ### Console Logging
59
+ Check browser console for:
60
+ - [ ] Socket.IO connection events logged
61
+ - [ ] No connection errors (if server running)
62
+ - [ ] Event reception logged
63
+ - [ ] No JavaScript errors
64
+
65
+ ## Events Tab Functionality
66
+
67
+ ### Empty State
68
+ - [ ] Empty state displays when no events
69
+ - [ ] "Waiting for events..." message shown
70
+ - [ ] Hint text displays
71
+ - [ ] Icon (📡) is visible
72
+
73
+ ### Event Display
74
+ - [ ] Events appear when received
75
+ - [ ] Events display in reverse chronological order (newest first)
76
+ - [ ] Event time is formatted correctly (HH:MM:SS.mmm)
77
+ - [ ] Event source badge displays with correct color:
78
+ - Hook: Blue (#3b82f6)
79
+ - System: Green (#10b981)
80
+ - API: Orange (#f59e0b)
81
+ - [ ] Event summary shows type and subtype
82
+ - [ ] Event item is clickable
83
+
84
+ ### Event Expansion
85
+ - [ ] Clicking event expands JSON details
86
+ - [ ] Expand icon changes from ▶ to ▼
87
+ - [ ] JSON is formatted with syntax highlighting
88
+ - [ ] JSON is scrollable horizontally if needed
89
+ - [ ] Clicking again collapses the event
90
+ - [ ] Only one event expanded at a time (optional behavior)
91
+
92
+ ### Event Statistics
93
+ - [ ] "Total" counter increments with each event
94
+ - [ ] "Displayed" counter shows current count
95
+ - [ ] Numbers update in real-time
96
+ - [ ] Clear button appears when events exist
97
+ - [ ] Clear button removes all events
98
+ - [ ] Counters reset after clearing
99
+
100
+ ### Auto-scroll
101
+ - [ ] New events auto-scroll to top
102
+ - [ ] User can scroll manually
103
+ - [ ] Auto-scroll doesn't interfere with manual scrolling
104
+
105
+ ## Event Reception Testing
106
+
107
+ ### Test with Mock Events
108
+
109
+ You can test event reception by running this in the browser console:
110
+
111
+ ```javascript
112
+ // Simulate a claude_event
113
+ window.dispatchEvent(new CustomEvent('test-socket-event', {
114
+ detail: {
115
+ source: 'hook',
116
+ type: 'tool',
117
+ subtype: 'pre_tool',
118
+ timestamp: new Date().toISOString(),
119
+ data: {
120
+ tool_name: 'test_tool',
121
+ params: { test: true }
122
+ }
123
+ }
124
+ }));
125
+ ```
126
+
127
+ Or emit directly via Socket.IO if connected:
128
+ ```javascript
129
+ // Get socket from console
130
+ const socket = io('http://localhost:8765');
131
+ socket.emit('claude_event', {
132
+ source: 'hook',
133
+ type: 'test',
134
+ subtype: 'console_test',
135
+ timestamp: new Date().toISOString(),
136
+ data: { message: 'Test from console' }
137
+ });
138
+ ```
139
+
140
+ ### Real Event Testing
141
+ - [ ] Trigger a Claude Code hook event
142
+ - [ ] Event appears in dashboard immediately
143
+ - [ ] Event data is complete and accurate
144
+ - [ ] Timestamp is correct
145
+ - [ ] Event can be expanded to view full JSON
146
+ - [ ] Multiple events display correctly
147
+ - [ ] High-frequency events don't cause UI lag
148
+
149
+ ### Heartbeat Events
150
+ - [ ] Server heartbeat events appear (every 3 minutes)
151
+ - [ ] Heartbeat has "system" source
152
+ - [ ] Heartbeat data includes uptime
153
+ - [ ] Heartbeat data includes connected clients
154
+
155
+ ## Performance Testing
156
+
157
+ ### Large Event Loads
158
+ - [ ] Dashboard handles 100 events smoothly
159
+ - [ ] Dashboard handles 1000 events (max buffer)
160
+ - [ ] Events beyond 1000 are trimmed correctly
161
+ - [ ] No memory leaks with continuous events
162
+ - [ ] Scrolling remains smooth with full buffer
163
+
164
+ ### Network
165
+ - [ ] Dashboard works on slow connections
166
+ - [ ] Reconnection works after network interruption
167
+ - [ ] Events buffer during disconnection (if implemented)
168
+ - [ ] No duplicate events after reconnection
169
+
170
+ ## Cross-Browser Testing
171
+
172
+ - [ ] Chrome/Chromium (latest)
173
+ - [ ] Firefox (latest)
174
+ - [ ] Safari (latest)
175
+ - [ ] Edge (latest)
176
+
177
+ Check for:
178
+ - [ ] Layout renders correctly
179
+ - [ ] WebSocket/Socket.IO works
180
+ - [ ] No console errors
181
+ - [ ] Animations work smoothly
182
+
183
+ ## Accessibility Testing
184
+
185
+ - [ ] Keyboard navigation works
186
+ - [ ] Tab key moves through interactive elements
187
+ - [ ] Enter/Space activates buttons
188
+ - [ ] Screen reader can read content
189
+ - [ ] Color contrast meets WCAG standards
190
+ - [ ] Focus indicators are visible
191
+
192
+ ## Responsive Design
193
+
194
+ Test at different viewport sizes:
195
+ - [ ] 1920x1080 (Full HD)
196
+ - [ ] 1366x768 (Laptop)
197
+ - [ ] 1024x768 (Tablet landscape)
198
+
199
+ Verify:
200
+ - [ ] Layout doesn't break
201
+ - [ ] All content is accessible
202
+ - [ ] No horizontal scrolling
203
+ - [ ] Sidebar width is appropriate
204
+
205
+ ## Production Build Testing
206
+
207
+ After running `npm run build`:
208
+
209
+ 1. **Static File Serving**:
210
+ - [ ] Serve dist/ with a simple HTTP server
211
+ - [ ] Dashboard loads correctly
212
+ - [ ] Assets load from correct paths
213
+ - [ ] No 404 errors for assets
214
+
215
+ 2. **Integration Testing**:
216
+ - [ ] Flask serves dashboard correctly
217
+ - [ ] Base path `/dashboard2/` works
218
+ - [ ] Assets load with correct paths
219
+ - [ ] Socket.IO connects to correct port
220
+
221
+ 3. **Size Optimization**:
222
+ - [ ] Total bundle size < 100KB (gzipped)
223
+ - [ ] Initial load time < 2 seconds
224
+ - [ ] No unnecessary dependencies bundled
225
+
226
+ ## Error Handling
227
+
228
+ Test error scenarios:
229
+ - [ ] Server not available: Shows "Disconnected" status
230
+ - [ ] Server crashes: Shows reconnection status
231
+ - [ ] Invalid event data: Handles gracefully (no crashes)
232
+ - [ ] Malformed JSON: Displays error or skips event
233
+ - [ ] Network timeout: Retries connection
234
+
235
+ ## Console Checks
236
+
237
+ Verify no errors for:
238
+ - [ ] Component initialization
239
+ - [ ] Socket.IO connection
240
+ - [ ] Event handling
241
+ - [ ] State updates
242
+ - [ ] DOM updates
243
+
244
+ ## Final Production Checklist
245
+
246
+ Before deploying:
247
+ - [ ] Run `npm run build` with no warnings
248
+ - [ ] Test built files locally
249
+ - [ ] Verify all features work in production build
250
+ - [ ] Check browser console for errors
251
+ - [ ] Test Socket.IO connection
252
+ - [ ] Verify events display correctly
253
+ - [ ] Test on target deployment environment
254
+ - [ ] Document any known issues
255
+ - [ ] Update version number if needed
256
+
257
+ ## Known Issues
258
+
259
+ Document any issues found during testing:
260
+
261
+ 1. **Issue**: [Description]
262
+ - **Severity**: Low/Medium/High
263
+ - **Workaround**: [If available]
264
+ - **Fix plan**: [If scheduled]
265
+
266
+ ## Performance Benchmarks
267
+
268
+ Record baseline performance:
269
+ - Initial load time: ___ms
270
+ - Time to Socket.IO connection: ___ms
271
+ - Average event processing time: ___ms
272
+ - Memory usage with 1000 events: ___MB
273
+ - FPS during scrolling: ___
274
+
275
+ ## Test Results Summary
276
+
277
+ Date: ___________
278
+ Tester: ___________
279
+ Environment: ___________
280
+
281
+ - Total tests: ___
282
+ - Passed: ___
283
+ - Failed: ___
284
+ - Skipped: ___
285
+
286
+ **Overall Status**: ⬜ Pass | ⬜ Fail | ⬜ Partial
287
+
288
+ **Notes**:
@@ -0,0 +1,118 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Claude MPM Dashboard</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ /* CSS Custom Properties for Theming */
15
+ :root {
16
+ /* Light mode (default) */
17
+ --bg-primary: #ffffff;
18
+ --bg-secondary: #f5f5f5;
19
+ --bg-tertiary: #e8e8e8;
20
+ --bg-elevated: #ffffff;
21
+ --text-primary: #1a1a1a;
22
+ --text-secondary: #666666;
23
+ --text-tertiary: #888888;
24
+ --border-color: #e0e0e0;
25
+ --border-color-light: #f0f0f0;
26
+ --accent-color: #3b82f6;
27
+ --accent-hover: #2563eb;
28
+ --success-color: #10b981;
29
+ --error-color: #ef4444;
30
+ --warning-color: #f59e0b;
31
+ --header-bg-start: #f8f9fa;
32
+ --header-bg-end: #e9ecef;
33
+ --sidebar-bg: #fafafa;
34
+ --card-bg: #ffffff;
35
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
36
+ --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.1);
37
+ --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.1);
38
+ --overlay-bg: rgba(0, 0, 0, 0.05);
39
+ --overlay-border: rgba(0, 0, 0, 0.1);
40
+ --input-bg: #ffffff;
41
+ --input-border: #d1d5db;
42
+ --tab-hover-bg: rgba(0, 0, 0, 0.05);
43
+ --scrollbar-track: #f1f1f1;
44
+ --scrollbar-thumb: #c1c1c1;
45
+ --scrollbar-thumb-hover: #a8a8a8;
46
+ }
47
+
48
+ [data-theme="dark"] {
49
+ /* Dark mode */
50
+ --bg-primary: #0f0f0f;
51
+ --bg-secondary: #1a1a1a;
52
+ --bg-tertiary: #2d2d2d;
53
+ --bg-elevated: #1a1a1a;
54
+ --text-primary: #ffffff;
55
+ --text-secondary: #a0a0a0;
56
+ --text-tertiary: #888888;
57
+ --border-color: #333333;
58
+ --border-color-light: #404040;
59
+ --accent-color: #60a5fa;
60
+ --accent-hover: #3b82f6;
61
+ --success-color: #34d399;
62
+ --error-color: #f87171;
63
+ --warning-color: #fbbf24;
64
+ --header-bg-start: #1a1a1a;
65
+ --header-bg-end: #2d2d2d;
66
+ --sidebar-bg: #141414;
67
+ --card-bg: #1a1a1a;
68
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
69
+ --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
70
+ --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.5);
71
+ --overlay-bg: rgba(255, 255, 255, 0.05);
72
+ --overlay-border: rgba(255, 255, 255, 0.1);
73
+ --input-bg: #2d2d2d;
74
+ --input-border: #404040;
75
+ --tab-hover-bg: rgba(255, 255, 255, 0.05);
76
+ --scrollbar-track: #1a1a1a;
77
+ --scrollbar-thumb: #404040;
78
+ --scrollbar-thumb-hover: #505050;
79
+ }
80
+
81
+ body {
82
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
83
+ background: var(--bg-primary);
84
+ color: var(--text-primary);
85
+ overflow: hidden;
86
+ transition: background-color 0.3s ease, color 0.3s ease;
87
+ }
88
+
89
+ /* Smooth transitions for theme changes */
90
+ * {
91
+ transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
92
+ }
93
+
94
+ /* Custom scrollbar theming */
95
+ ::-webkit-scrollbar {
96
+ width: 8px;
97
+ height: 8px;
98
+ }
99
+
100
+ ::-webkit-scrollbar-track {
101
+ background: var(--scrollbar-track);
102
+ }
103
+
104
+ ::-webkit-scrollbar-thumb {
105
+ background: var(--scrollbar-thumb);
106
+ border-radius: 4px;
107
+ }
108
+
109
+ ::-webkit-scrollbar-thumb:hover {
110
+ background: var(--scrollbar-thumb-hover);
111
+ }
112
+ </style>
113
+ </head>
114
+ <body>
115
+ <div id="app"></div>
116
+ <script type="module" src="/src/main.js"></script>
117
+ </body>
118
+ </html>
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "claude-mpm-d2",
3
+ "version": "1.0.0",
4
+ "description": "Svelte 5-based dashboard for Claude MPM",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "devDependencies": {
12
+ "@sveltejs/vite-plugin-svelte": "^4.0.0",
13
+ "svelte": "^5.0.0",
14
+ "vite": "^5.0.0"
15
+ },
16
+ "dependencies": {
17
+ "socket.io-client": "^4.7.5"
18
+ }
19
+ }
@@ -0,0 +1,110 @@
1
+ <script>
2
+ import { onMount, onDestroy } from 'svelte';
3
+ import Header from './components/Header.svelte';
4
+ import Sidebar from './components/Sidebar.svelte';
5
+ import MainContent from './components/MainContent.svelte';
6
+ import { socketStore } from './stores/socket.js';
7
+ import { eventsStore } from './stores/events.js';
8
+ import { themeStore } from './stores/theme.js';
9
+
10
+ // Destructure individual stores from socketStore
11
+ const { statusText, statusColor, port } = socketStore;
12
+
13
+ let activeTab = $state('events');
14
+
15
+ // Socket.IO client instance (set during onMount)
16
+ let client = null;
17
+
18
+ // Event handler functions (defined outside lifecycle for proper cleanup)
19
+ function handleClaudeEvent(data) {
20
+ console.log('Received claude_event:', data);
21
+ eventsStore.addEvent(data);
22
+ }
23
+
24
+ function handleHeartbeat(data) {
25
+ console.log('Received heartbeat:', data);
26
+ eventsStore.addEvent({
27
+ source: 'system',
28
+ type: 'heartbeat',
29
+ timestamp: data.timestamp,
30
+ data: data
31
+ });
32
+ }
33
+
34
+ function handleAnyEvent(eventName, ...args) {
35
+ if (eventName !== 'claude_event' && eventName !== 'heartbeat' && eventName !== 'connection_status') {
36
+ console.log('Received event:', eventName, args);
37
+ }
38
+ }
39
+
40
+ onMount(() => {
41
+ // Initialize theme on mount
42
+ themeStore.initialize();
43
+
44
+ // Connect to Socket.IO server
45
+ socketStore.connect();
46
+
47
+ // Get the client and listen for events
48
+ client = socketStore.getClient();
49
+ if (client) {
50
+ // Listen for Claude Code events
51
+ client.on('claude_event', handleClaudeEvent);
52
+
53
+ // Listen for heartbeat events
54
+ client.on('heartbeat', handleHeartbeat);
55
+
56
+ // Listen for any other events (for debugging)
57
+ client.socket.onAny(handleAnyEvent);
58
+ }
59
+ });
60
+
61
+ onDestroy(() => {
62
+ // Cleanup event listeners before disconnect
63
+ if (client) {
64
+ client.off('claude_event', handleClaudeEvent);
65
+ client.off('heartbeat', handleHeartbeat);
66
+ if (client.socket) {
67
+ client.socket.offAny(handleAnyEvent);
68
+ }
69
+ }
70
+
71
+ // Disconnect Socket.IO
72
+ socketStore.disconnect();
73
+ });
74
+ </script>
75
+
76
+ <div class="app">
77
+ <Header
78
+ statusText={$statusText}
79
+ statusColor={$statusColor}
80
+ port={$port}
81
+ />
82
+
83
+ <div class="app-body">
84
+ <Sidebar bind:activeTab={activeTab} />
85
+ <MainContent activeTab={activeTab} />
86
+ </div>
87
+ </div>
88
+
89
+ <style>
90
+ :global(body) {
91
+ margin: 0;
92
+ padding: 0;
93
+ overflow: hidden;
94
+ }
95
+
96
+ .app {
97
+ width: 100vw;
98
+ height: 100vh;
99
+ display: flex;
100
+ flex-direction: column;
101
+ background: var(--bg-primary);
102
+ color: var(--text-primary);
103
+ }
104
+
105
+ .app-body {
106
+ flex: 1;
107
+ display: flex;
108
+ overflow: hidden;
109
+ }
110
+ </style>
@@ -0,0 +1,153 @@
1
+ <script>
2
+ import { themeStore } from '../stores/theme.js';
3
+
4
+ // Use Svelte 5 $props() for type-safe props
5
+ let { statusText, statusColor, port } = $props();
6
+
7
+ function handleThemeToggle() {
8
+ themeStore.toggle();
9
+ }
10
+ </script>
11
+
12
+ <header class="header">
13
+ <div class="header-content">
14
+ <div class="title">
15
+ <h1>Claude MPM Dashboard</h1>
16
+ <span class="version">v2.0</span>
17
+ </div>
18
+
19
+ <div class="header-actions">
20
+ <div class="connection-status">
21
+ <div class="status-indicator" style="background: {statusColor}"></div>
22
+ <span class="status-text">{statusText}</span>
23
+ <span class="port">:{port}</span>
24
+ </div>
25
+
26
+ <button class="theme-toggle" onclick={handleThemeToggle} aria-label="Toggle theme">
27
+ {#if $themeStore === 'light'}
28
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
29
+ <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
30
+ </svg>
31
+ {:else}
32
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
33
+ <circle cx="12" cy="12" r="5"></circle>
34
+ <line x1="12" y1="1" x2="12" y2="3"></line>
35
+ <line x1="12" y1="21" x2="12" y2="23"></line>
36
+ <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
37
+ <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
38
+ <line x1="1" y1="12" x2="3" y2="12"></line>
39
+ <line x1="21" y1="12" x2="23" y2="12"></line>
40
+ <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
41
+ <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
42
+ </svg>
43
+ {/if}
44
+ </button>
45
+ </div>
46
+ </div>
47
+ </header>
48
+
49
+ <style>
50
+ .header {
51
+ height: 60px;
52
+ background: linear-gradient(135deg, var(--header-bg-start) 0%, var(--header-bg-end) 100%);
53
+ border-bottom: 1px solid var(--border-color);
54
+ display: flex;
55
+ align-items: center;
56
+ padding: 0 24px;
57
+ box-shadow: var(--shadow-md);
58
+ }
59
+
60
+ .header-content {
61
+ width: 100%;
62
+ display: flex;
63
+ justify-content: space-between;
64
+ align-items: center;
65
+ }
66
+
67
+ .title {
68
+ display: flex;
69
+ align-items: baseline;
70
+ gap: 12px;
71
+ }
72
+
73
+ h1 {
74
+ font-size: 20px;
75
+ font-weight: 600;
76
+ color: var(--text-primary);
77
+ letter-spacing: -0.02em;
78
+ }
79
+
80
+ .version {
81
+ font-size: 12px;
82
+ color: var(--text-tertiary);
83
+ font-weight: 500;
84
+ }
85
+
86
+ .header-actions {
87
+ display: flex;
88
+ align-items: center;
89
+ gap: 16px;
90
+ }
91
+
92
+ .connection-status {
93
+ display: flex;
94
+ align-items: center;
95
+ gap: 8px;
96
+ padding: 6px 12px;
97
+ background: var(--overlay-bg);
98
+ border-radius: 6px;
99
+ border: 1px solid var(--overlay-border);
100
+ }
101
+
102
+ .status-indicator {
103
+ width: 8px;
104
+ height: 8px;
105
+ border-radius: 50%;
106
+ box-shadow: 0 0 8px currentColor;
107
+ transition: background 0.3s ease;
108
+ }
109
+
110
+ .status-text {
111
+ font-size: 13px;
112
+ font-weight: 500;
113
+ color: var(--text-primary);
114
+ }
115
+
116
+ .port {
117
+ font-size: 12px;
118
+ color: var(--text-tertiary);
119
+ font-family: 'Monaco', 'Menlo', monospace;
120
+ }
121
+
122
+ .theme-toggle {
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ width: 36px;
127
+ height: 36px;
128
+ padding: 8px;
129
+ background: var(--overlay-bg);
130
+ border: 1px solid var(--overlay-border);
131
+ border-radius: 6px;
132
+ color: var(--text-primary);
133
+ cursor: pointer;
134
+ transition: all 0.2s ease;
135
+ }
136
+
137
+ .theme-toggle:hover {
138
+ background: var(--tab-hover-bg);
139
+ border-color: var(--border-color);
140
+ }
141
+
142
+ .theme-toggle:active {
143
+ transform: scale(0.95);
144
+ }
145
+
146
+ .theme-toggle svg {
147
+ transition: transform 0.3s ease;
148
+ }
149
+
150
+ .theme-toggle:hover svg {
151
+ transform: rotate(15deg);
152
+ }
153
+ </style>