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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_PM.md +12 -0
- claude_mpm/agents/PM_INSTRUCTIONS.md +1055 -2230
- claude_mpm/agents/PM_INSTRUCTIONS_TEACH.md +1322 -0
- claude_mpm/agents/WORKFLOW.md +4 -4
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +1 -4
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +576 -66
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
- claude_mpm/agents/templates/research-gate-examples.md +669 -0
- claude_mpm/agents/templates/structured-questions-examples.md +615 -0
- claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
- claude_mpm/agents/templates/ticketing-examples.md +277 -0
- claude_mpm/cli/__init__.py +28 -3
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/agent_source.py +774 -0
- claude_mpm/cli/commands/agent_state_manager.py +188 -30
- claude_mpm/cli/commands/agents.py +959 -36
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/auto_configure.py +537 -239
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +924 -45
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +1 -39
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +322 -19
- claude_mpm/cli/executor.py +22 -3
- claude_mpm/cli/interactive/agent_wizard.py +1028 -43
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +256 -4
- claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
- claude_mpm/cli/parsers/base_parser.py +25 -0
- claude_mpm/cli/parsers/config_parser.py +96 -43
- claude_mpm/cli/parsers/skill_source_parser.py +169 -0
- claude_mpm/cli/parsers/skills_parser.py +7 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +456 -103
- claude_mpm/cli/startup_display.py +4 -4
- claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
- claude_mpm/commands/mpm-agents-detect.md +9 -0
- claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
- claude_mpm/commands/mpm-agents-recommend.md +9 -0
- claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
- claude_mpm/commands/mpm-doctor.md +9 -0
- claude_mpm/commands/mpm-help.md +14 -2
- claude_mpm/commands/mpm-init.md +9 -0
- claude_mpm/commands/mpm-monitor.md +9 -0
- claude_mpm/commands/mpm-postmortem.md +123 -0
- claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
- claude_mpm/commands/mpm-status.md +9 -0
- claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
- claude_mpm/commands/mpm-ticket-view.md +552 -0
- claude_mpm/commands/mpm-version.md +9 -0
- claude_mpm/commands/mpm.md +10 -0
- claude_mpm/config/agent_presets.py +488 -0
- claude_mpm/config/agent_sources.py +325 -0
- claude_mpm/config/skill_presets.py +392 -0
- claude_mpm/config/skill_sources.py +590 -0
- claude_mpm/constants.py +1 -0
- claude_mpm/core/claude_runner.py +5 -34
- claude_mpm/core/config.py +16 -0
- claude_mpm/core/framework/__init__.py +3 -16
- claude_mpm/core/framework/loaders/file_loader.py +54 -101
- claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
- claude_mpm/core/interactive_session.py +83 -7
- claude_mpm/core/oneshot_session.py +71 -8
- claude_mpm/core/protocols/__init__.py +23 -0
- claude_mpm/core/protocols/runner_protocol.py +103 -0
- claude_mpm/core/protocols/session_protocol.py +131 -0
- claude_mpm/core/shared/singleton_manager.py +11 -4
- claude_mpm/core/system_context.py +38 -0
- claude_mpm/core/unified_config.py +22 -0
- claude_mpm/experimental/cli_enhancements.py +1 -5
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
- claude_mpm/hooks/failure_learning/__init__.py +2 -8
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
- claude_mpm/hooks/kuzu_response_hook.py +1 -5
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/services/agents/agent_builder.py +45 -9
- claude_mpm/services/agents/agent_preset_service.py +238 -0
- claude_mpm/services/agents/agent_selection_service.py +484 -0
- claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
- claude_mpm/services/agents/cache_git_manager.py +621 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
- claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
- claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
- claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
- claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
- claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
- claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
- claude_mpm/services/agents/git_source_manager.py +629 -0
- claude_mpm/services/agents/loading/framework_agent_loader.py +1 -4
- claude_mpm/services/agents/local_template_manager.py +47 -9
- claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
- claude_mpm/services/agents/sources/__init__.py +13 -0
- claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
- claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
- claude_mpm/services/agents/startup_sync.py +239 -0
- claude_mpm/services/agents/toolchain_detector.py +474 -0
- claude_mpm/services/analysis/__init__.py +25 -0
- claude_mpm/services/analysis/postmortem_reporter.py +474 -0
- claude_mpm/services/analysis/postmortem_service.py +765 -0
- claude_mpm/services/command_deployment_service.py +200 -6
- claude_mpm/services/core/base.py +7 -2
- claude_mpm/services/core/interfaces/__init__.py +1 -3
- claude_mpm/services/core/interfaces/health.py +1 -4
- claude_mpm/services/core/models/__init__.py +2 -11
- claude_mpm/services/diagnostics/checks/__init__.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
- claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +34 -6
- claude_mpm/services/git/__init__.py +21 -0
- claude_mpm/services/git/git_operations_service.py +494 -0
- claude_mpm/services/github/__init__.py +21 -0
- claude_mpm/services/github/github_cli_service.py +397 -0
- claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
- claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
- claude_mpm/services/instructions/__init__.py +9 -0
- claude_mpm/services/instructions/instruction_cache_service.py +374 -0
- claude_mpm/services/local_ops/__init__.py +3 -13
- claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
- claude_mpm/services/local_ops/health_manager.py +1 -4
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/monitor/daemon.py +28 -8
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/project_organizer.py +4 -0
- claude_mpm/services/runner_configuration_service.py +16 -3
- claude_mpm/services/session_management_service.py +16 -4
- claude_mpm/services/skills/__init__.py +18 -0
- claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
- claude_mpm/services/skills/skill_discovery_service.py +568 -0
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/templates/questions/__init__.py +2 -7
- claude_mpm/templates/questions/pr_strategy.py +1 -4
- claude_mpm/templates/questions/project_init.py +1 -4
- claude_mpm/templates/questions/ticket_mgmt.py +1 -4
- claude_mpm/utils/agent_dependency_loader.py +77 -10
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/gitignore.py +3 -0
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/METADATA +356 -112
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/RECORD +188 -439
- claude_mpm/agents/templates/agent-manager.json +0 -273
- claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
- claude_mpm/agents/templates/api_qa.json +0 -183
- claude_mpm/agents/templates/clerk-ops.json +0 -235
- claude_mpm/agents/templates/code_analyzer.json +0 -101
- claude_mpm/agents/templates/content-agent.json +0 -358
- claude_mpm/agents/templates/dart_engineer.json +0 -307
- claude_mpm/agents/templates/data_engineer.json +0 -225
- claude_mpm/agents/templates/documentation.json +0 -238
- claude_mpm/agents/templates/engineer.json +0 -210
- claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
- claude_mpm/agents/templates/golang_engineer.json +0 -270
- claude_mpm/agents/templates/imagemagick.json +0 -264
- claude_mpm/agents/templates/java_engineer.json +0 -346
- claude_mpm/agents/templates/javascript_engineer_agent.json +0 -380
- claude_mpm/agents/templates/local_ops_agent.json +0 -1840
- claude_mpm/agents/templates/memory_manager.json +0 -158
- claude_mpm/agents/templates/nextjs_engineer.json +0 -285
- claude_mpm/agents/templates/ops.json +0 -185
- claude_mpm/agents/templates/php-engineer.json +0 -287
- claude_mpm/agents/templates/product_owner.json +0 -338
- claude_mpm/agents/templates/project_organizer.json +0 -144
- claude_mpm/agents/templates/prompt-engineer.json +0 -737
- claude_mpm/agents/templates/python_engineer.json +0 -387
- claude_mpm/agents/templates/qa.json +0 -243
- claude_mpm/agents/templates/react_engineer.json +0 -239
- claude_mpm/agents/templates/refactoring_engineer.json +0 -276
- claude_mpm/agents/templates/research.json +0 -258
- claude_mpm/agents/templates/ruby-engineer.json +0 -280
- claude_mpm/agents/templates/rust_engineer.json +0 -275
- claude_mpm/agents/templates/security.json +0 -202
- claude_mpm/agents/templates/svelte-engineer.json +0 -225
- claude_mpm/agents/templates/tauri_engineer.json +0 -274
- claude_mpm/agents/templates/ticketing.json +0 -181
- claude_mpm/agents/templates/typescript_engineer.json +0 -285
- claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
- claude_mpm/agents/templates/version_control.json +0 -159
- claude_mpm/agents/templates/web_qa.json +0 -400
- claude_mpm/agents/templates/web_ui.json +0 -189
- claude_mpm/cli/README.md +0 -253
- claude_mpm/cli/commands/mcp_install_commands.py.backup +0 -284
- claude_mpm/cli/commands/mpm_init/README.md +0 -365
- claude_mpm/cli_module/refactoring_guide.md +0 -253
- claude_mpm/commands/mpm-tickets.md +0 -151
- claude_mpm/config/agent_capabilities.yaml +0 -658
- claude_mpm/config/async_logging_config.yaml +0 -145
- claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +0 -34
- claude_mpm/d2/.gitignore +0 -22
- claude_mpm/d2/ARCHITECTURE_COMPARISON.md +0 -273
- claude_mpm/d2/FLASK_INTEGRATION.md +0 -156
- claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +0 -452
- claude_mpm/d2/QUICKSTART.md +0 -186
- claude_mpm/d2/README.md +0 -232
- claude_mpm/d2/STORE_FIX_SUMMARY.md +0 -167
- claude_mpm/d2/SVELTE5_STORES_GUIDE.md +0 -180
- claude_mpm/d2/TESTING.md +0 -288
- claude_mpm/d2/index.html +0 -118
- claude_mpm/d2/package.json +0 -19
- claude_mpm/d2/src/App.svelte +0 -110
- claude_mpm/d2/src/components/Header.svelte +0 -153
- claude_mpm/d2/src/components/MainContent.svelte +0 -74
- claude_mpm/d2/src/components/Sidebar.svelte +0 -85
- claude_mpm/d2/src/components/tabs/EventsTab.svelte +0 -326
- claude_mpm/d2/src/lib/socketio.js +0 -144
- claude_mpm/d2/src/main.js +0 -7
- claude_mpm/d2/src/stores/events.js +0 -114
- claude_mpm/d2/src/stores/socket.js +0 -108
- claude_mpm/d2/src/stores/theme.js +0 -65
- claude_mpm/d2/svelte.config.js +0 -12
- claude_mpm/d2/vite.config.js +0 -15
- claude_mpm/dashboard/.claude-mpm/memories/README.md +0 -36
- claude_mpm/dashboard/BUILD_NUMBER +0 -1
- claude_mpm/dashboard/README.md +0 -121
- claude_mpm/dashboard/VERSION +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +0 -273
- claude_mpm/dashboard/react/components/ErrorBoundary.tsx +0 -75
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +0 -141
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +0 -36
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/react/components/shared/FilterBar.tsx +0 -89
- claude_mpm/dashboard/react/contexts/DashboardContext.tsx +0 -215
- claude_mpm/dashboard/react/entries/events.tsx +0 -165
- claude_mpm/dashboard/react/hooks/useEvents.ts +0 -191
- claude_mpm/dashboard/react/hooks/useSocket.ts +0 -225
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +0 -170
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/activity-tree.js.map +0 -1
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/built/components/agent-inference.js.map +0 -1
- claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
- claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/code-tree.js.map +0 -1
- claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/code-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
- claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
- claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/built/components/event-processor.js.map +0 -1
- claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/event-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +0 -1
- claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/file-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +0 -1
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
- claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
- claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/session-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/socket-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js.map +0 -1
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- claude_mpm/dashboard/static/built/dashboard.js.map +0 -1
- claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
- claude_mpm/dashboard/static/built/react/events.js +0 -30
- claude_mpm/dashboard/static/built/react/events.js.map +0 -1
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
- claude_mpm/dashboard/static/built/shared/logger.js +0 -385
- claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/built/socket-client.js +0 -2
- claude_mpm/dashboard/static/built/socket-client.js.map +0 -1
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +0 -170
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/js/shared/logger.js +0 -385
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
- claude_mpm/dashboard/static/legacy/activity.html +0 -736
- claude_mpm/dashboard/static/legacy/agents.html +0 -786
- claude_mpm/dashboard/static/legacy/files.html +0 -747
- claude_mpm/dashboard/static/legacy/tools.html +0 -831
- claude_mpm/dashboard/static/monitors.html +0 -431
- claude_mpm/dashboard/static/navigation-test-results.md +0 -118
- claude_mpm/dashboard/static/production/events.html +0 -659
- claude_mpm/dashboard/static/production/main.html +0 -698
- claude_mpm/dashboard/static/production/monitors.html +0 -483
- claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
- claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
- claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
- claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +0 -36
- claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +0 -39
- claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +0 -38
- claude_mpm/hooks/README.md +0 -143
- claude_mpm/hooks/templates/README.md +0 -180
- claude_mpm/hooks/templates/settings.json.example +0 -147
- claude_mpm/schemas/agent_schema.json +0 -596
- claude_mpm/schemas/frontmatter_schema.json +0 -165
- claude_mpm/services/event_bus/README.md +0 -244
- claude_mpm/services/events/README.md +0 -303
- claude_mpm/services/framework_claude_md_generator/README.md +0 -119
- claude_mpm/services/mcp_gateway/README.md +0 -185
- claude_mpm/services/socketio/handlers/connection.py.backup +0 -217
- claude_mpm/services/socketio/handlers/hook.py.backup +0 -154
- claude_mpm/services/static/.gitkeep +0 -2
- claude_mpm/services/version_control/VERSION +0 -1
- claude_mpm/skills/bundled/.gitkeep +0 -2
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
- claude_mpm/skills/bundled/collaboration/git-worktrees.md +0 -317
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
- claude_mpm/skills/bundled/collaboration/stacked-prs.md +0 -251
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
- claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +0 -63
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
- claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +0 -611
- claude_mpm/skills/bundled/infrastructure/env-manager/README.md +0 -596
- claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +0 -260
- claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +0 -315
- claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +0 -436
- claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +0 -433
- claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +0 -452
- claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +0 -404
- claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +0 -420
- claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +0 -54
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +0 -322
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
- claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
- claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +0 -22
- claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +0 -2
- claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
- claude_mpm/skills/bundled/react/flexlayout-react.md +0 -742
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
- claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +0 -495
- claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +0 -599
- claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +0 -535
- claude_mpm/skills/bundled/tauri/tauri-error-handling.md +0 -613
- claude_mpm/skills/bundled/tauri/tauri-event-system.md +0 -648
- claude_mpm/skills/bundled/tauri/tauri-file-system.md +0 -673
- claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +0 -767
- claude_mpm/skills/bundled/tauri/tauri-performance.md +0 -669
- claude_mpm/skills/bundled/tauri/tauri-state-management.md +0 -573
- claude_mpm/skills/bundled/tauri/tauri-testing.md +0 -384
- claude_mpm/skills/bundled/tauri/tauri-window-management.md +0 -628
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
- claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +0 -158
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
- claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +0 -458
- claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +0 -411
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +0 -317
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +0 -270
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +0 -436
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
- claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
- claude_mpm/templates/questions/EXAMPLES.md +0 -501
- claude_mpm/tools/README_SOCKETIO_DEBUG.md +0 -224
- claude_mpm/tools/code_tree_analyzer/README.md +0 -64
- /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
- /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
- /claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +0 -0
- /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/WHEEL +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/top_level.txt +0 -0
claude_mpm/d2/README.md
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
# Claude MPM Dashboard 2.0
|
|
2
|
-
|
|
3
|
-
Modern Svelte 5-based dashboard for Claude Multi-Agent Project Manager with real-time event monitoring via Socket.IO.
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
- **Svelte 5 Runes API**: Modern reactive state management with `$state`, `$derived`, and `$effect`
|
|
8
|
-
- **Real-time Events**: Socket.IO integration for live Claude Code hook events
|
|
9
|
-
- **Event Timeline**: Display and inspect incoming events with expandable details
|
|
10
|
-
- **Connection Status**: Visual connection indicator with auto-reconnect
|
|
11
|
-
- **Responsive Layout**: Clean two-column layout with navigation sidebar
|
|
12
|
-
- **Dark Theme**: Modern dark UI optimized for long-term use
|
|
13
|
-
|
|
14
|
-
## Technology Stack
|
|
15
|
-
|
|
16
|
-
- **Svelte 5** - Modern reactive UI framework with Runes API
|
|
17
|
-
- **Vite** - Fast build tool and dev server
|
|
18
|
-
- **Socket.IO Client v4.7.5** - Real-time WebSocket communication
|
|
19
|
-
- **Modern CSS** - Grid/Flexbox layout with smooth transitions
|
|
20
|
-
|
|
21
|
-
## Prerequisites
|
|
22
|
-
|
|
23
|
-
- Node.js 18+ and npm
|
|
24
|
-
- Claude MPM monitor server running on port 8765
|
|
25
|
-
|
|
26
|
-
## Setup
|
|
27
|
-
|
|
28
|
-
1. **Install dependencies**:
|
|
29
|
-
```bash
|
|
30
|
-
cd src/claude_mpm/dashboard2
|
|
31
|
-
npm install
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
2. **Start development server**:
|
|
35
|
-
```bash
|
|
36
|
-
npm run dev
|
|
37
|
-
```
|
|
38
|
-
The dev server will start at `http://localhost:5173`
|
|
39
|
-
|
|
40
|
-
3. **Build for production**:
|
|
41
|
-
```bash
|
|
42
|
-
npm run build
|
|
43
|
-
```
|
|
44
|
-
Output will be in `dist/` directory
|
|
45
|
-
|
|
46
|
-
## Configuration
|
|
47
|
-
|
|
48
|
-
### Socket.IO Connection
|
|
49
|
-
|
|
50
|
-
By default, the dashboard connects to `http://localhost:8765`. To change this, edit:
|
|
51
|
-
|
|
52
|
-
```javascript
|
|
53
|
-
// src/stores/socket.svelte.js
|
|
54
|
-
const DEFAULT_PORT = 8765;
|
|
55
|
-
const DEFAULT_HOST = 'localhost';
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Event Buffer Size
|
|
59
|
-
|
|
60
|
-
Events are limited to the last 1000 events. To adjust:
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
63
|
-
// src/stores/events.svelte.js
|
|
64
|
-
const MAX_EVENTS = 1000;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Project Structure
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
dashboard2/
|
|
71
|
-
├── package.json # Dependencies and scripts
|
|
72
|
-
├── vite.config.js # Vite build configuration
|
|
73
|
-
├── public/
|
|
74
|
-
│ └── index.html # HTML template
|
|
75
|
-
├── src/
|
|
76
|
-
│ ├── main.js # Entry point
|
|
77
|
-
│ ├── App.svelte # Main app component
|
|
78
|
-
│ ├── components/
|
|
79
|
-
│ │ ├── Header.svelte # Top header with connection status
|
|
80
|
-
│ │ ├── Sidebar.svelte # Navigation sidebar
|
|
81
|
-
│ │ ├── MainContent.svelte # Content area switcher
|
|
82
|
-
│ │ └── tabs/
|
|
83
|
-
│ │ └── EventsTab.svelte # Events timeline tab
|
|
84
|
-
│ ├── stores/
|
|
85
|
-
│ │ ├── socket.svelte.js # Socket.IO connection store
|
|
86
|
-
│ │ └── events.svelte.js # Events buffer store
|
|
87
|
-
│ └── lib/
|
|
88
|
-
│ └── socketio.js # Socket.IO client wrapper
|
|
89
|
-
└── dist/ # Build output (generated)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Architecture
|
|
93
|
-
|
|
94
|
-
### Svelte 5 Runes
|
|
95
|
-
|
|
96
|
-
This dashboard uses Svelte 5's modern Runes API:
|
|
97
|
-
|
|
98
|
-
- **`$state()`**: Reactive local state
|
|
99
|
-
- **`$derived()`**: Computed values that update automatically
|
|
100
|
-
- **`$effect()`**: Side effects with automatic cleanup
|
|
101
|
-
- **`$bindable()`**: Two-way binding for component props
|
|
102
|
-
|
|
103
|
-
### Socket.IO Events
|
|
104
|
-
|
|
105
|
-
The dashboard listens for these Socket.IO events:
|
|
106
|
-
|
|
107
|
-
- **`claude_event`**: Main event channel for Claude Code hook events
|
|
108
|
-
- **`heartbeat`**: Server heartbeat every 3 minutes
|
|
109
|
-
- **Connection events**: `connect`, `disconnect`, `reconnect_attempt`, etc.
|
|
110
|
-
|
|
111
|
-
### Event Format
|
|
112
|
-
|
|
113
|
-
Events received from Socket.IO have this structure:
|
|
114
|
-
|
|
115
|
-
```javascript
|
|
116
|
-
{
|
|
117
|
-
"source": "hook" | "system" | "api",
|
|
118
|
-
"type": "hook" | "session" | "agent" | "tool",
|
|
119
|
-
"subtype": "user_prompt" | "pre_tool" | "post_tool" | "subagent_start" | "subagent_stop",
|
|
120
|
-
"timestamp": "2025-11-20T12:34:56.789Z",
|
|
121
|
-
"session_id": "session-uuid-here",
|
|
122
|
-
"data": {
|
|
123
|
-
// Event-specific data
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
## Development
|
|
129
|
-
|
|
130
|
-
### Running Dev Server
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npm run dev
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Features:
|
|
137
|
-
- Hot Module Replacement (HMR)
|
|
138
|
-
- Instant updates on file changes
|
|
139
|
-
- Source maps for debugging
|
|
140
|
-
|
|
141
|
-
### Building for Production
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm run build
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Outputs optimized, minified bundle to `dist/`:
|
|
148
|
-
- `index.html` - Main HTML file
|
|
149
|
-
- `assets/*.js` - Bundled JavaScript
|
|
150
|
-
- `assets/*.css` - Bundled CSS
|
|
151
|
-
|
|
152
|
-
### Preview Production Build
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npm run preview
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Serves the production build locally for testing.
|
|
159
|
-
|
|
160
|
-
## Integration with Flask
|
|
161
|
-
|
|
162
|
-
The Flask server will serve the built Svelte app from the `dist/` directory:
|
|
163
|
-
|
|
164
|
-
```python
|
|
165
|
-
@app.route('/dashboard2')
|
|
166
|
-
def dashboard2():
|
|
167
|
-
return send_from_directory('dashboard2/dist', 'index.html')
|
|
168
|
-
|
|
169
|
-
@app.route('/dashboard2/<path:path>')
|
|
170
|
-
def dashboard2_assets(path):
|
|
171
|
-
return send_from_directory('dashboard2/dist', path)
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Future Enhancements
|
|
175
|
-
|
|
176
|
-
### Implemented
|
|
177
|
-
- ✅ Events tab with real-time display
|
|
178
|
-
- ✅ Socket.IO connection management
|
|
179
|
-
- ✅ Event filtering and clearing
|
|
180
|
-
- ✅ Connection status indicator
|
|
181
|
-
- ✅ Auto-scroll to newest events
|
|
182
|
-
|
|
183
|
-
### Planned
|
|
184
|
-
- 🔲 Agents tab - Monitor active agents
|
|
185
|
-
- 🔲 Files tab - Track file operations
|
|
186
|
-
- 🔲 Tools tab - View tool executions
|
|
187
|
-
- 🔲 Activity tab - System metrics and analytics
|
|
188
|
-
- 🔲 Event search and advanced filtering
|
|
189
|
-
- 🔲 Export events to JSON/CSV
|
|
190
|
-
- 🔲 Customizable event notifications
|
|
191
|
-
- 🔲 Dark/light theme toggle
|
|
192
|
-
- 🔲 Configurable Socket.IO connection settings
|
|
193
|
-
|
|
194
|
-
## Troubleshooting
|
|
195
|
-
|
|
196
|
-
### Socket.IO Connection Fails
|
|
197
|
-
|
|
198
|
-
1. **Check server is running**:
|
|
199
|
-
```bash
|
|
200
|
-
curl http://localhost:8765/health
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
2. **Check port availability**:
|
|
204
|
-
```bash
|
|
205
|
-
lsof -i :8765
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
3. **Check browser console** for connection errors
|
|
209
|
-
|
|
210
|
-
### Events Not Appearing
|
|
211
|
-
|
|
212
|
-
1. **Verify Socket.IO connection status** in header (should show "Connected")
|
|
213
|
-
2. **Check browser console** for incoming events
|
|
214
|
-
3. **Trigger a Claude Code event** to generate test data
|
|
215
|
-
4. **Check Socket.IO server logs** for event emissions
|
|
216
|
-
|
|
217
|
-
### Build Errors
|
|
218
|
-
|
|
219
|
-
1. **Clear node_modules and reinstall**:
|
|
220
|
-
```bash
|
|
221
|
-
rm -rf node_modules package-lock.json
|
|
222
|
-
npm install
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
2. **Check Node.js version** (requires 18+):
|
|
226
|
-
```bash
|
|
227
|
-
node --version
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
## License
|
|
231
|
-
|
|
232
|
-
Part of Claude MPM project.
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
# D2 Dashboard Store Architecture Fix
|
|
2
|
-
|
|
3
|
-
## Problem Identified
|
|
4
|
-
|
|
5
|
-
**Error**: `effect_orphan` - Svelte 5 runes being used outside component context
|
|
6
|
-
**Location**: `src/stores/socket.svelte.js` and `src/stores/events.svelte.js`
|
|
7
|
-
**Impact**: Complete application failure - black screen, no UI rendering
|
|
8
|
-
|
|
9
|
-
## Root Cause
|
|
10
|
-
|
|
11
|
-
The stores were using Svelte 5 runes (`$state`, `$derived`) in factory functions called at module-load time:
|
|
12
|
-
|
|
13
|
-
```javascript
|
|
14
|
-
// ❌ WRONG - Causes effect_orphan error
|
|
15
|
-
function createSocketStore() {
|
|
16
|
-
let connected = $state(false); // Called at module level
|
|
17
|
-
let reconnecting = $state(false); // Not in component context
|
|
18
|
-
let statusText = $derived(...); // Effect created outside component
|
|
19
|
-
// ...
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const socketStore = createSocketStore(); // ❌ Called when module loads
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**Why This Fails**:
|
|
26
|
-
- Svelte 5 runes must be initialized during component setup
|
|
27
|
-
- Module-level store creation happens before any component mounts
|
|
28
|
-
- Runes are "orphaned" from component lifecycle
|
|
29
|
-
- App fails to mount, showing black screen
|
|
30
|
-
|
|
31
|
-
## Solution Implemented
|
|
32
|
-
|
|
33
|
-
Refactored to use **traditional Svelte stores** (`writable`, `derived`) for module-level stores.
|
|
34
|
-
|
|
35
|
-
### Files Changed
|
|
36
|
-
|
|
37
|
-
1. **Created**: `src/stores/socket.js` (renamed from `socket.svelte.js`)
|
|
38
|
-
- Uses `writable()` instead of `$state()`
|
|
39
|
-
- Uses `derived()` instead of `$derived()`
|
|
40
|
-
- Exports stores with `subscribe` methods for Svelte auto-subscription
|
|
41
|
-
|
|
42
|
-
2. **Created**: `src/stores/events.js` (renamed from `events.svelte.js`)
|
|
43
|
-
- Same pattern: `writable()` and `derived()` instead of runes
|
|
44
|
-
- Proper store updates using `.set()` and `.update()`
|
|
45
|
-
|
|
46
|
-
3. **Updated**: `src/App.svelte`
|
|
47
|
-
- Changed imports from `.svelte.js` to `.js`
|
|
48
|
-
- Uses `$` auto-subscription syntax: `$socketStore.statusText`
|
|
49
|
-
|
|
50
|
-
4. **Updated**: `src/components/Header.svelte`
|
|
51
|
-
- Removed unused store import
|
|
52
|
-
- Props now receive values from parent
|
|
53
|
-
|
|
54
|
-
5. **Updated**: `src/components/tabs/EventsTab.svelte`
|
|
55
|
-
- Changed import from `.svelte.js` to `.js`
|
|
56
|
-
- Uses `$` auto-subscription: `$eventsStore.count`
|
|
57
|
-
|
|
58
|
-
6. **Deleted**: Old `.svelte.js` files removed
|
|
59
|
-
|
|
60
|
-
### Code Comparison
|
|
61
|
-
|
|
62
|
-
**Before (Broken)**:
|
|
63
|
-
```javascript
|
|
64
|
-
function createSocketStore() {
|
|
65
|
-
let connected = $state(false);
|
|
66
|
-
let statusText = $derived(connected ? 'Connected' : 'Disconnected');
|
|
67
|
-
// ...
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
**After (Fixed)**:
|
|
72
|
-
```javascript
|
|
73
|
-
import { writable, derived } from 'svelte/store';
|
|
74
|
-
|
|
75
|
-
function createSocketStore() {
|
|
76
|
-
const connected = writable(false);
|
|
77
|
-
const statusText = derived(connected, ($connected) =>
|
|
78
|
-
$connected ? 'Connected' : 'Disconnected'
|
|
79
|
-
);
|
|
80
|
-
// ...
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Usage in Components
|
|
85
|
-
|
|
86
|
-
**Before (Broken)**:
|
|
87
|
-
```svelte
|
|
88
|
-
<Header
|
|
89
|
-
statusText={socketStore.statusText}
|
|
90
|
-
statusColor={socketStore.statusColor}
|
|
91
|
-
/>
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**After (Fixed)**:
|
|
95
|
-
```svelte
|
|
96
|
-
<Header
|
|
97
|
-
statusText={$socketStore.statusText}
|
|
98
|
-
statusColor={$socketStore.statusColor}
|
|
99
|
-
/>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Verification
|
|
103
|
-
|
|
104
|
-
### Build Status
|
|
105
|
-
✅ Build successful with no errors
|
|
106
|
-
✅ No `effect_orphan` warnings in output
|
|
107
|
-
✅ Bundle size: 81.01 kB (27.93 kB gzipped)
|
|
108
|
-
|
|
109
|
-
### Test Results
|
|
110
|
-
All automated tests passed:
|
|
111
|
-
- ✅ New store files exist (`socket.js`, `events.js`)
|
|
112
|
-
- ✅ Old `.svelte.js` files removed
|
|
113
|
-
- ✅ Stores use `writable`/`derived` from `svelte/store`
|
|
114
|
-
- ✅ No rune usage in store files
|
|
115
|
-
- ✅ Components use correct imports
|
|
116
|
-
- ✅ Components use `$` auto-subscription syntax
|
|
117
|
-
|
|
118
|
-
## Key Learnings
|
|
119
|
-
|
|
120
|
-
### When to Use Svelte 5 Runes
|
|
121
|
-
✅ **Use runes IN components**:
|
|
122
|
-
- Component-local state: `let count = $state(0)`
|
|
123
|
-
- Component-local derived: `let doubled = $derived(count * 2)`
|
|
124
|
-
- Component effects: `$effect(() => { ... })`
|
|
125
|
-
|
|
126
|
-
❌ **DO NOT use runes at module level**:
|
|
127
|
-
- Global stores
|
|
128
|
-
- Shared state between components
|
|
129
|
-
- Anything created outside component context
|
|
130
|
-
|
|
131
|
-
### When to Use Traditional Stores
|
|
132
|
-
✅ **Use traditional stores for**:
|
|
133
|
-
- Module-level reactive state
|
|
134
|
-
- Shared state across components
|
|
135
|
-
- Store factories called at import time
|
|
136
|
-
- Any store created outside components
|
|
137
|
-
|
|
138
|
-
### Svelte 5 Architecture Rule
|
|
139
|
-
**Critical**: Runes (`$state`, `$derived`, `$effect`) can ONLY be used inside component `<script>` blocks. For module-level stores, use traditional Svelte stores (`writable`, `derived`, `readable`).
|
|
140
|
-
|
|
141
|
-
## Impact Metrics
|
|
142
|
-
|
|
143
|
-
- **Net LOC Impact**: +6 lines (due to more explicit store API)
|
|
144
|
-
- **Files Modified**: 5
|
|
145
|
-
- **Files Deleted**: 2
|
|
146
|
-
- **Build Time**: 268ms (unchanged)
|
|
147
|
-
- **Bundle Size**: 81KB (unchanged)
|
|
148
|
-
- **Functionality**: 100% preserved
|
|
149
|
-
|
|
150
|
-
## Future Recommendations
|
|
151
|
-
|
|
152
|
-
1. **Documentation**: Add comments to all store files explaining why traditional stores are used
|
|
153
|
-
2. **Linting**: Configure ESLint to warn against runes in non-component files
|
|
154
|
-
3. **Training**: Educate team on Svelte 5 component vs module-level patterns
|
|
155
|
-
4. **Review**: Audit other projects for similar issues
|
|
156
|
-
|
|
157
|
-
## References
|
|
158
|
-
|
|
159
|
-
- Svelte 5 Runes Documentation: https://svelte.dev/docs/svelte/$state
|
|
160
|
-
- Svelte Stores Documentation: https://svelte.dev/docs/svelte-store
|
|
161
|
-
- Issue Discussion: https://github.com/sveltejs/svelte/discussions/effect-orphan
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
**Fixed By**: Claude Code Engineer
|
|
166
|
-
**Date**: 2025-11-20
|
|
167
|
-
**Status**: ✅ RESOLVED
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
# Svelte 5 Store Architecture Guide
|
|
2
|
-
|
|
3
|
-
## Quick Decision Tree
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
Do you need reactive state?
|
|
7
|
-
│
|
|
8
|
-
├─ YES → Is it used inside a component <script> block?
|
|
9
|
-
│ │
|
|
10
|
-
│ ├─ YES → Use Svelte 5 Runes ✅
|
|
11
|
-
│ │ let count = $state(0)
|
|
12
|
-
│ │ let doubled = $derived(count * 2)
|
|
13
|
-
│ │
|
|
14
|
-
│ └─ NO → Is it at module level / shared between components?
|
|
15
|
-
│ │
|
|
16
|
-
│ └─ YES → Use Traditional Stores ✅
|
|
17
|
-
│ const count = writable(0)
|
|
18
|
-
│ const doubled = derived(count, $count => $count * 2)
|
|
19
|
-
│
|
|
20
|
-
└─ NO → Use regular JavaScript variables
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Pattern 1: Component-Local State (Use Runes)
|
|
24
|
-
|
|
25
|
-
```svelte
|
|
26
|
-
<!-- Component.svelte -->
|
|
27
|
-
<script>
|
|
28
|
-
// ✅ CORRECT - Runes in component context
|
|
29
|
-
let count = $state(0);
|
|
30
|
-
let doubled = $derived(count * 2);
|
|
31
|
-
|
|
32
|
-
$effect(() => {
|
|
33
|
-
console.log(`Count is now ${count}`);
|
|
34
|
-
});
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
<button onclick={() => count++}>
|
|
38
|
-
{count} / {doubled}
|
|
39
|
-
</button>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Pattern 2: Module-Level Stores (Use Traditional Stores)
|
|
43
|
-
|
|
44
|
-
```javascript
|
|
45
|
-
// stores/counter.js
|
|
46
|
-
import { writable, derived } from 'svelte/store';
|
|
47
|
-
|
|
48
|
-
// ✅ CORRECT - Traditional stores for module-level state
|
|
49
|
-
function createCounterStore() {
|
|
50
|
-
const count = writable(0);
|
|
51
|
-
const doubled = derived(count, $count => $count * 2);
|
|
52
|
-
|
|
53
|
-
return {
|
|
54
|
-
count: { subscribe: count.subscribe },
|
|
55
|
-
doubled: { subscribe: doubled.subscribe },
|
|
56
|
-
increment: () => count.update(n => n + 1),
|
|
57
|
-
reset: () => count.set(0)
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export const counterStore = createCounterStore();
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
```svelte
|
|
65
|
-
<!-- Component.svelte -->
|
|
66
|
-
<script>
|
|
67
|
-
import { counterStore } from './stores/counter.js';
|
|
68
|
-
|
|
69
|
-
// Use $ auto-subscription
|
|
70
|
-
</script>
|
|
71
|
-
|
|
72
|
-
<button onclick={() => counterStore.increment()}>
|
|
73
|
-
{$counterStore.count} / {$counterStore.doubled}
|
|
74
|
-
</button>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Pattern 3: Props (Use $props)
|
|
78
|
-
|
|
79
|
-
```svelte
|
|
80
|
-
<!-- Child.svelte -->
|
|
81
|
-
<script>
|
|
82
|
-
// ✅ CORRECT - $props for component props
|
|
83
|
-
let { value, onUpdate } = $props();
|
|
84
|
-
</script>
|
|
85
|
-
|
|
86
|
-
<input bind:value oninput={() => onUpdate(value)} />
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Common Mistakes
|
|
90
|
-
|
|
91
|
-
### ❌ WRONG: Runes at Module Level
|
|
92
|
-
|
|
93
|
-
```javascript
|
|
94
|
-
// stores/counter.svelte.js
|
|
95
|
-
// ❌ This will cause effect_orphan error!
|
|
96
|
-
function createCounterStore() {
|
|
97
|
-
let count = $state(0); // ❌ Rune outside component
|
|
98
|
-
// ...
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export const counterStore = createCounterStore(); // ❌ Called at module load
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### ❌ WRONG: Traditional Stores in Components
|
|
105
|
-
|
|
106
|
-
```svelte
|
|
107
|
-
<script>
|
|
108
|
-
import { writable } from 'svelte/store';
|
|
109
|
-
|
|
110
|
-
// ❌ Unnecessary complexity for component-local state
|
|
111
|
-
const count = writable(0);
|
|
112
|
-
</script>
|
|
113
|
-
|
|
114
|
-
<button onclick={() => count.update(n => n + 1)}>
|
|
115
|
-
{$count}
|
|
116
|
-
</button>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### ✅ CORRECT: Runes in Components
|
|
120
|
-
|
|
121
|
-
```svelte
|
|
122
|
-
<script>
|
|
123
|
-
// ✅ Simple and idiomatic
|
|
124
|
-
let count = $state(0);
|
|
125
|
-
</script>
|
|
126
|
-
|
|
127
|
-
<button onclick={() => count++}>
|
|
128
|
-
{count}
|
|
129
|
-
</button>
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Migration Checklist
|
|
133
|
-
|
|
134
|
-
When converting Svelte 4 → Svelte 5:
|
|
135
|
-
|
|
136
|
-
### Component-Local State
|
|
137
|
-
- [ ] `export let prop` → `let { prop } = $props()`
|
|
138
|
-
- [ ] `$: derived = compute(x)` → `let derived = $derived(compute(x))`
|
|
139
|
-
- [ ] `$: { effect() }` → `$effect(() => { effect() })`
|
|
140
|
-
|
|
141
|
-
### Module-Level Stores
|
|
142
|
-
- [ ] Keep using `writable`, `derived`, `readable`
|
|
143
|
-
- [ ] Update components to use `$` auto-subscription
|
|
144
|
-
- [ ] Add `.subscribe` exposure in store API
|
|
145
|
-
|
|
146
|
-
### File Naming
|
|
147
|
-
- [ ] Component stores using runes: `Component.svelte` (not `.svelte.js`)
|
|
148
|
-
- [ ] Module stores: `store.js` (not `.svelte.js`)
|
|
149
|
-
|
|
150
|
-
## Debugging Tips
|
|
151
|
-
|
|
152
|
-
### Error: `effect_orphan`
|
|
153
|
-
**Cause**: Runes used outside component context
|
|
154
|
-
**Fix**: Use traditional stores for module-level state
|
|
155
|
-
|
|
156
|
-
### Error: Cannot access `$store` before initialization
|
|
157
|
-
**Cause**: Missing `$` prefix on store subscription
|
|
158
|
-
**Fix**: Use `$storeName.property` in templates
|
|
159
|
-
|
|
160
|
-
### Store not updating UI
|
|
161
|
-
**Cause**: Forgetting to use `.set()` or `.update()`
|
|
162
|
-
**Fix**: Always mutate stores with `.set()` / `.update()`, never directly
|
|
163
|
-
|
|
164
|
-
## Performance Comparison
|
|
165
|
-
|
|
166
|
-
| Pattern | Bundle Impact | Reactivity | Use Case |
|
|
167
|
-
|---------|---------------|------------|----------|
|
|
168
|
-
| Runes | Minimal | Fine-grained | Component-local |
|
|
169
|
-
| Traditional Stores | Small | Observable | Shared state |
|
|
170
|
-
| Context API | None | Manual | Dependency injection |
|
|
171
|
-
|
|
172
|
-
## Further Reading
|
|
173
|
-
|
|
174
|
-
- Svelte 5 Runes: https://svelte.dev/docs/svelte/$state
|
|
175
|
-
- Svelte Stores: https://svelte.dev/docs/svelte-store
|
|
176
|
-
- Migration Guide: https://svelte-5-preview.vercel.app/docs/v5-migration-guide
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
**Remember**: Runes are for components, stores are for modules.
|