claude-mpm 4.21.3__py3-none-any.whl → 5.1.9__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/{OUTPUT_STYLE.md → CLAUDE_MPM_OUTPUT_STYLE.md} +3 -48
- claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +2002 -0
- claude_mpm/agents/PM_INSTRUCTIONS.md +1239 -674
- claude_mpm/agents/WORKFLOW.md +75 -2
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +1 -4
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/frontmatter_validator.py +69 -1
- claude_mpm/agents/templates/circuit-breakers.md +1254 -0
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
- 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 +37 -2
- 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 +1128 -36
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/auto_configure.py +537 -239
- claude_mpm/cli/commands/cleanup.py +1 -1
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +935 -45
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mpm_init/core.py +50 -2
- claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
- claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +125 -167
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +757 -20
- claude_mpm/cli/executor.py +78 -3
- claude_mpm/cli/interactive/agent_wizard.py +1032 -47
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +310 -4
- claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
- claude_mpm/cli/parsers/base_parser.py +53 -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 +145 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +564 -108
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/cli_module/commands.py +1 -1
- 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 +27 -2
- 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 +13 -0
- claude_mpm/core/api_validator.py +1 -1
- claude_mpm/core/claude_runner.py +19 -35
- claude_mpm/core/config.py +24 -0
- claude_mpm/core/constants.py +1 -1
- 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/framework/processors/metadata_processor.py +1 -1
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +131 -10
- claude_mpm/core/logger.py +3 -1
- claude_mpm/core/oneshot_session.py +110 -8
- claude_mpm/core/output_style_manager.py +173 -43
- 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_agent_registry.py +129 -1
- claude_mpm/core/unified_config.py +22 -0
- claude_mpm/dashboard/static/css/activity.css +69 -69
- claude_mpm/dashboard/static/css/connection-status.css +10 -10
- claude_mpm/dashboard/static/css/dashboard.css +15 -15
- claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
- claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
- claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
- claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +76 -58
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- claude_mpm/experimental/cli_enhancements.py +1 -5
- claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
- claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
- claude_mpm/hooks/claude_hooks/installer.py +45 -0
- claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
- 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/hooks/templates/pre_tool_use_simple.py +78 -0
- claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
- claude_mpm/models/agent_definition.py +7 -0
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- 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_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- 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/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +225 -18
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +557 -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 +9 -12
- claude_mpm/services/agents/local_template_manager.py +50 -10
- 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/cli/session_pause_manager.py +1 -1
- claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
- 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_check.py +0 -2
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
- claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
- 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 +40 -10
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/event_bus/event_bus.py +36 -3
- claude_mpm/services/events/consumers/logging.py +1 -2
- 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/infrastructure/monitoring/resources.py +1 -1
- 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/local_ops/process_manager.py +1 -1
- claude_mpm/services/local_ops/resource_monitor.py +2 -2
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- 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_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/memory/optimizer.py +1 -1
- claude_mpm/services/model/model_router.py +8 -9
- claude_mpm/services/monitor/daemon.py +29 -9
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/native_agent_converter.py +356 -0
- claude_mpm/services/port_manager.py +1 -1
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/documentation_manager.py +2 -1
- claude_mpm/services/project/project_organizer.py +4 -0
- claude_mpm/services/project/toolchain_analyzer.py +3 -1
- claude_mpm/services/runner_configuration_service.py +17 -3
- claude_mpm/services/self_upgrade_service.py +165 -7
- 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/skills_config.py +547 -0
- claude_mpm/services/skills_deployer.py +955 -0
- claude_mpm/services/socketio/handlers/connection.py +1 -1
- claude_mpm/services/socketio/handlers/git.py +2 -2
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/system_instructions_service.py +1 -3
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
- claude_mpm/skills/bundled/performance-profiling.md +6 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
- claude_mpm/skills/skills_registry.py +0 -1
- claude_mpm/templates/questions/__init__.py +38 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +311 -0
- claude_mpm/templates/questions/project_init.py +385 -0
- claude_mpm/templates/questions/ticket_mgmt.py +394 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/tools/code_tree_analyzer/analysis.py +1 -1
- claude_mpm/utils/agent_dependency_loader.py +80 -13
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +244 -0
- claude_mpm/utils/log_cleanup.py +3 -3
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +3 -5
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/METADATA +496 -65
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/RECORD +284 -443
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
- 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 -180
- claude_mpm/agents/templates/circuit_breakers.md +0 -638
- 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 -211
- 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/local_ops_agent.json +0 -1840
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
- 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 -140
- 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 -242
- claude_mpm/agents/templates/react_engineer.json +0 -238
- claude_mpm/agents/templates/refactoring_engineer.json +0 -276
- claude_mpm/agents/templates/research.json +0 -188
- 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/ticketing.json +0 -177
- 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 -157
- claude_mpm/agents/templates/web_qa.json +0 -399
- claude_mpm/agents/templates/web_ui.json +0 -189
- claude_mpm/commands/mpm-tickets.md +0 -102
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
- claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
- claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
- claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
- claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
- claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
- claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
- 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/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- 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-viewer.js +0 -2
- 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-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- 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-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- 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/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- 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/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/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm/dashboard/static/dist/react/events.js +0 -30
- claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- 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/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/static/test-archive/test_debug.html +0 -25
- 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/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/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/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/main/artifacts-builder/SKILL.md +0 -86
- 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/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/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/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/testing/condition-based-waiting/SKILL.md +0 -119
- 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/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/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/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/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/top_level.txt +0 -0
|
@@ -37,7 +37,7 @@ class Dashboard {
|
|
|
37
37
|
this.eventViewer = null;
|
|
38
38
|
this.moduleViewer = null;
|
|
39
39
|
this.sessionManager = null;
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
// Retry prevention
|
|
42
42
|
this.activityTreeRetryCount = 0;
|
|
43
43
|
this.maxRetryAttempts = 10;
|
|
@@ -66,7 +66,7 @@ class Dashboard {
|
|
|
66
66
|
try {
|
|
67
67
|
// Fetch server configuration first
|
|
68
68
|
this.fetchServerConfig();
|
|
69
|
-
|
|
69
|
+
|
|
70
70
|
// Initialize modules in dependency order
|
|
71
71
|
this.initializeSocketManager();
|
|
72
72
|
this.initializeCoreComponents();
|
|
@@ -85,6 +85,11 @@ class Dashboard {
|
|
|
85
85
|
// Initialize from URL parameters
|
|
86
86
|
this.initializeFromURL();
|
|
87
87
|
|
|
88
|
+
// FIX: Render current tab after initialization to display any existing data
|
|
89
|
+
// WHY: If events were loaded before dashboard init completed, they won't be visible
|
|
90
|
+
console.log('[Dashboard] Initial render after dashboard initialization');
|
|
91
|
+
this.renderCurrentTab();
|
|
92
|
+
|
|
88
93
|
console.log('Claude MPM Dashboard initialized successfully');
|
|
89
94
|
} catch (error) {
|
|
90
95
|
console.error('Error during dashboard initialization:', error);
|
|
@@ -92,7 +97,7 @@ class Dashboard {
|
|
|
92
97
|
throw error;
|
|
93
98
|
}
|
|
94
99
|
}
|
|
95
|
-
|
|
100
|
+
|
|
96
101
|
/**
|
|
97
102
|
* Fetch server configuration for dashboard initialization
|
|
98
103
|
*/
|
|
@@ -102,18 +107,18 @@ class Dashboard {
|
|
|
102
107
|
.then(config => {
|
|
103
108
|
// Store config globally for other components
|
|
104
109
|
window.dashboardConfig = config;
|
|
105
|
-
|
|
110
|
+
|
|
106
111
|
// Update initial UI elements if they exist
|
|
107
112
|
const workingDirEl = document.getElementById('working-dir-path');
|
|
108
113
|
if (workingDirEl && config.workingDirectory) {
|
|
109
114
|
workingDirEl.textContent = config.workingDirectory;
|
|
110
115
|
}
|
|
111
|
-
|
|
116
|
+
|
|
112
117
|
const gitBranchEl = document.getElementById('footer-git-branch');
|
|
113
118
|
if (gitBranchEl && config.gitBranch) {
|
|
114
119
|
gitBranchEl.textContent = config.gitBranch;
|
|
115
120
|
}
|
|
116
|
-
|
|
121
|
+
|
|
117
122
|
console.log('Dashboard configuration loaded:', config);
|
|
118
123
|
})
|
|
119
124
|
.catch(error => {
|
|
@@ -125,7 +130,7 @@ class Dashboard {
|
|
|
125
130
|
};
|
|
126
131
|
});
|
|
127
132
|
}
|
|
128
|
-
|
|
133
|
+
|
|
129
134
|
/**
|
|
130
135
|
* Validate that all critical components are initialized
|
|
131
136
|
* WHY: Ensures dashboard is in a valid state after initialization
|
|
@@ -136,7 +141,7 @@ class Dashboard {
|
|
|
136
141
|
{ name: 'eventViewer', component: this.eventViewer },
|
|
137
142
|
{ name: 'agentHierarchy', component: this.agentHierarchy }
|
|
138
143
|
];
|
|
139
|
-
|
|
144
|
+
|
|
140
145
|
const missing = criticalComponents.filter(c => !c.component);
|
|
141
146
|
if (missing.length > 0) {
|
|
142
147
|
console.warn('Missing critical components:', missing.map(c => c.name));
|
|
@@ -148,7 +153,7 @@ class Dashboard {
|
|
|
148
153
|
* WHY: Some components need to reference window.dashboard but it's not available
|
|
149
154
|
* during constructor execution. This method is called after the Dashboard instance
|
|
150
155
|
* is assigned to window.dashboard, ensuring proper initialization order.
|
|
151
|
-
*
|
|
156
|
+
*
|
|
152
157
|
* DESIGN DECISION: Separate post-init phase prevents "cannot read property of undefined"
|
|
153
158
|
* errors when components try to access window.dashboard during construction.
|
|
154
159
|
*/
|
|
@@ -158,7 +163,7 @@ class Dashboard {
|
|
|
158
163
|
if (this.agentHierarchy) {
|
|
159
164
|
window.dashboard.agentHierarchy = this.agentHierarchy;
|
|
160
165
|
}
|
|
161
|
-
|
|
166
|
+
|
|
162
167
|
// Initialize any other components that need window.dashboard
|
|
163
168
|
this.validateInitialization();
|
|
164
169
|
} catch (error) {
|
|
@@ -201,10 +206,10 @@ class Dashboard {
|
|
|
201
206
|
*/
|
|
202
207
|
initializeBuildTracker() {
|
|
203
208
|
this.buildTracker = new BuildTracker();
|
|
204
|
-
|
|
209
|
+
|
|
205
210
|
// Set the socket client for receiving updates
|
|
206
211
|
this.buildTracker.setSocketClient(this.socketClient);
|
|
207
|
-
|
|
212
|
+
|
|
208
213
|
// Mount to header with retry logic for DOM readiness
|
|
209
214
|
const mountBuildTracker = () => {
|
|
210
215
|
const headerTitle = document.querySelector('.header-title');
|
|
@@ -218,10 +223,10 @@ class Dashboard {
|
|
|
218
223
|
setTimeout(mountBuildTracker, 100);
|
|
219
224
|
}
|
|
220
225
|
};
|
|
221
|
-
|
|
226
|
+
|
|
222
227
|
// Try to mount immediately, with retry logic if needed
|
|
223
228
|
mountBuildTracker();
|
|
224
|
-
|
|
229
|
+
|
|
225
230
|
// Make available globally for debugging
|
|
226
231
|
window.buildTracker = this.buildTracker;
|
|
227
232
|
}
|
|
@@ -233,7 +238,7 @@ class Dashboard {
|
|
|
233
238
|
this.agentInference = new AgentInference(this.eventViewer);
|
|
234
239
|
this.agentInference.initialize();
|
|
235
240
|
}
|
|
236
|
-
|
|
241
|
+
|
|
237
242
|
/**
|
|
238
243
|
* Initialize agent hierarchy component
|
|
239
244
|
* WHY: Creates the agent hierarchy visualization component but defers global
|
|
@@ -340,6 +345,11 @@ class Dashboard {
|
|
|
340
345
|
this.workingDirectoryManager.updateGitBranch(
|
|
341
346
|
this.workingDirectoryManager.getCurrentWorkingDir()
|
|
342
347
|
);
|
|
348
|
+
|
|
349
|
+
// FIX: Force render current tab to display initial/historical event data
|
|
350
|
+
// WHY: Events are loaded on connection but panes aren't rendered with this data
|
|
351
|
+
console.log('[Dashboard] Connection established - rendering current tab with initial data');
|
|
352
|
+
this.renderCurrentTab();
|
|
343
353
|
}
|
|
344
354
|
});
|
|
345
355
|
|
|
@@ -364,6 +374,14 @@ class Dashboard {
|
|
|
364
374
|
document.addEventListener('sessionFilterChanged', (e) => {
|
|
365
375
|
this.renderCurrentTab();
|
|
366
376
|
});
|
|
377
|
+
|
|
378
|
+
// FIX: Listen for history loaded event to render initial data
|
|
379
|
+
// WHY: When historical events are loaded from server, panes need to be rendered
|
|
380
|
+
document.addEventListener('historyLoaded', (e) => {
|
|
381
|
+
console.log('[Dashboard] History loaded event received:', e.detail);
|
|
382
|
+
console.log('[Dashboard] Rendering current tab with historical data');
|
|
383
|
+
this.renderCurrentTab();
|
|
384
|
+
});
|
|
367
385
|
}
|
|
368
386
|
|
|
369
387
|
/**
|
|
@@ -443,22 +461,22 @@ class Dashboard {
|
|
|
443
461
|
if (window.ActivityTree && typeof window.ActivityTree === 'function') {
|
|
444
462
|
// Reset retry count on successful load
|
|
445
463
|
this.activityTreeRetryCount = 0;
|
|
446
|
-
|
|
464
|
+
|
|
447
465
|
// Create or get instance
|
|
448
466
|
if (!window.activityTreeInstance) {
|
|
449
467
|
window.activityTreeInstance = new window.ActivityTree();
|
|
450
468
|
}
|
|
451
|
-
|
|
469
|
+
|
|
452
470
|
// Initialize if needed and render
|
|
453
471
|
if (window.activityTreeInstance) {
|
|
454
472
|
if (!window.activityTreeInstance.initialized) {
|
|
455
473
|
window.activityTreeInstance.initialize();
|
|
456
474
|
}
|
|
457
|
-
|
|
475
|
+
|
|
458
476
|
if (typeof window.activityTreeInstance.renderWhenVisible === 'function') {
|
|
459
477
|
window.activityTreeInstance.renderWhenVisible();
|
|
460
478
|
}
|
|
461
|
-
|
|
479
|
+
|
|
462
480
|
// Force show to ensure the tree is visible
|
|
463
481
|
if (typeof window.activityTreeInstance.forceShow === 'function') {
|
|
464
482
|
window.activityTreeInstance.forceShow();
|
|
@@ -521,23 +539,23 @@ class Dashboard {
|
|
|
521
539
|
renderAgents() {
|
|
522
540
|
const agentsList = document.getElementById('agents-list');
|
|
523
541
|
if (!agentsList) return;
|
|
524
|
-
|
|
542
|
+
|
|
525
543
|
// Get filter values
|
|
526
544
|
const searchText = document.getElementById('agents-search-input')?.value || '';
|
|
527
545
|
const agentType = document.getElementById('agents-type-filter')?.value || '';
|
|
528
|
-
|
|
546
|
+
|
|
529
547
|
// Generate flat HTML
|
|
530
548
|
const flatHTML = this.renderAgentsFlat(searchText, agentType);
|
|
531
549
|
agentsList.innerHTML = flatHTML;
|
|
532
|
-
|
|
550
|
+
|
|
533
551
|
// Remove hierarchy controls if they exist
|
|
534
552
|
this.removeHierarchyControls();
|
|
535
|
-
|
|
553
|
+
|
|
536
554
|
// Update filter dropdowns with available agent types
|
|
537
555
|
const uniqueInstances = this.agentInference.getUniqueAgentInstances();
|
|
538
556
|
this.updateAgentsFilterDropdowns(uniqueInstances);
|
|
539
557
|
}
|
|
540
|
-
|
|
558
|
+
|
|
541
559
|
/**
|
|
542
560
|
* Remove hierarchy control buttons (flat view doesn't need them)
|
|
543
561
|
*/
|
|
@@ -547,11 +565,11 @@ class Dashboard {
|
|
|
547
565
|
existingControls.remove();
|
|
548
566
|
}
|
|
549
567
|
}
|
|
550
|
-
|
|
568
|
+
|
|
551
569
|
/**
|
|
552
570
|
* Render agents as a flat chronological list
|
|
553
571
|
* @param {string} searchText - Search filter
|
|
554
|
-
* @param {string} agentType - Agent type filter
|
|
572
|
+
* @param {string} agentType - Agent type filter
|
|
555
573
|
* @returns {string} HTML for flat agent list
|
|
556
574
|
*/
|
|
557
575
|
renderAgentsFlat(searchText, agentType) {
|
|
@@ -559,11 +577,11 @@ class Dashboard {
|
|
|
559
577
|
if (!events || events.length === 0) {
|
|
560
578
|
return '<div class="no-events">No agent events found...</div>';
|
|
561
579
|
}
|
|
562
|
-
|
|
580
|
+
|
|
563
581
|
// Process agent inference to get agent mappings
|
|
564
582
|
this.agentInference.processAgentInference();
|
|
565
583
|
const eventAgentMap = this.agentInference.getEventAgentMap();
|
|
566
|
-
|
|
584
|
+
|
|
567
585
|
// Collect all agent events with metadata
|
|
568
586
|
const agentEvents = [];
|
|
569
587
|
events.forEach((event, index) => {
|
|
@@ -571,7 +589,7 @@ class Dashboard {
|
|
|
571
589
|
if (inference && (inference.type === 'subagent' || inference.type === 'main_agent')) {
|
|
572
590
|
// Apply filters
|
|
573
591
|
let includeEvent = true;
|
|
574
|
-
|
|
592
|
+
|
|
575
593
|
if (searchText) {
|
|
576
594
|
const searchLower = searchText.toLowerCase();
|
|
577
595
|
includeEvent = includeEvent && (
|
|
@@ -580,11 +598,11 @@ class Dashboard {
|
|
|
580
598
|
(event.data && JSON.stringify(event.data).toLowerCase().includes(searchLower))
|
|
581
599
|
);
|
|
582
600
|
}
|
|
583
|
-
|
|
601
|
+
|
|
584
602
|
if (agentType) {
|
|
585
603
|
includeEvent = includeEvent && inference.agentName.includes(agentType);
|
|
586
604
|
}
|
|
587
|
-
|
|
605
|
+
|
|
588
606
|
if (includeEvent) {
|
|
589
607
|
agentEvents.push({
|
|
590
608
|
event,
|
|
@@ -595,20 +613,20 @@ class Dashboard {
|
|
|
595
613
|
}
|
|
596
614
|
}
|
|
597
615
|
});
|
|
598
|
-
|
|
616
|
+
|
|
599
617
|
if (agentEvents.length === 0) {
|
|
600
618
|
return '<div class="no-events">No agent events match the current filters...</div>';
|
|
601
619
|
}
|
|
602
|
-
|
|
620
|
+
|
|
603
621
|
// Generate HTML for each event
|
|
604
622
|
const html = agentEvents.map((item, listIndex) => {
|
|
605
623
|
const { event, inference, index, timestamp } = item;
|
|
606
|
-
|
|
624
|
+
|
|
607
625
|
// Determine action/tool
|
|
608
626
|
let action = 'Activity';
|
|
609
627
|
let actionIcon = '📋';
|
|
610
628
|
let details = '';
|
|
611
|
-
|
|
629
|
+
|
|
612
630
|
if (event.event_type === 'SubagentStart') {
|
|
613
631
|
action = 'Started';
|
|
614
632
|
actionIcon = '🟢';
|
|
@@ -620,7 +638,7 @@ class Dashboard {
|
|
|
620
638
|
} else if (event.tool_name) {
|
|
621
639
|
action = `Tool: ${event.tool_name}`;
|
|
622
640
|
actionIcon = this.getToolIcon(event.tool_name);
|
|
623
|
-
|
|
641
|
+
|
|
624
642
|
// Add tool parameters as details
|
|
625
643
|
if (event.data && event.data.tool_parameters) {
|
|
626
644
|
const params = event.data.tool_parameters;
|
|
@@ -635,7 +653,7 @@ class Dashboard {
|
|
|
635
653
|
}
|
|
636
654
|
}
|
|
637
655
|
}
|
|
638
|
-
|
|
656
|
+
|
|
639
657
|
// Status based on event type
|
|
640
658
|
let status = 'completed';
|
|
641
659
|
if (event.event_type === 'SubagentStart') {
|
|
@@ -643,7 +661,7 @@ class Dashboard {
|
|
|
643
661
|
} else if (event.data && event.data.error) {
|
|
644
662
|
status = 'error';
|
|
645
663
|
}
|
|
646
|
-
|
|
664
|
+
|
|
647
665
|
return `
|
|
648
666
|
<div class="agent-event-item" data-index="${listIndex}" onclick="window.dashboard.showCardDetails('agents', ${index})">
|
|
649
667
|
<div class="agent-event-header">
|
|
@@ -662,10 +680,10 @@ class Dashboard {
|
|
|
662
680
|
</div>
|
|
663
681
|
`;
|
|
664
682
|
}).join('');
|
|
665
|
-
|
|
683
|
+
|
|
666
684
|
return `<div class="agent-events-flat">${html}</div>`;
|
|
667
685
|
}
|
|
668
|
-
|
|
686
|
+
|
|
669
687
|
/**
|
|
670
688
|
* Get icon for agent type
|
|
671
689
|
*/
|
|
@@ -673,7 +691,7 @@ class Dashboard {
|
|
|
673
691
|
const agentIcons = {
|
|
674
692
|
'PM': '🎯',
|
|
675
693
|
'Engineer Agent': '🔧',
|
|
676
|
-
'Research Agent': '🔍',
|
|
694
|
+
'Research Agent': '🔍',
|
|
677
695
|
'QA Agent': '✅',
|
|
678
696
|
'Documentation Agent': '📝',
|
|
679
697
|
'Security Agent': '🔒',
|
|
@@ -684,7 +702,7 @@ class Dashboard {
|
|
|
684
702
|
};
|
|
685
703
|
return agentIcons[agentName] || '🤖';
|
|
686
704
|
}
|
|
687
|
-
|
|
705
|
+
|
|
688
706
|
/**
|
|
689
707
|
* Get icon for tool
|
|
690
708
|
*/
|
|
@@ -701,7 +719,7 @@ class Dashboard {
|
|
|
701
719
|
};
|
|
702
720
|
return toolIcons[toolName] || '🔧';
|
|
703
721
|
}
|
|
704
|
-
|
|
722
|
+
|
|
705
723
|
/**
|
|
706
724
|
* Get icon for status
|
|
707
725
|
*/
|
|
@@ -714,19 +732,19 @@ class Dashboard {
|
|
|
714
732
|
};
|
|
715
733
|
return statusIcons[status] || '❓';
|
|
716
734
|
}
|
|
717
|
-
|
|
735
|
+
|
|
718
736
|
/**
|
|
719
737
|
* Format timestamp for display
|
|
720
738
|
*/
|
|
721
739
|
formatTimestamp(timestamp) {
|
|
722
740
|
return timestamp.toLocaleTimeString('en-US', {
|
|
723
741
|
hour: '2-digit',
|
|
724
|
-
minute: '2-digit',
|
|
742
|
+
minute: '2-digit',
|
|
725
743
|
second: '2-digit',
|
|
726
744
|
hour12: false
|
|
727
745
|
});
|
|
728
746
|
}
|
|
729
|
-
|
|
747
|
+
|
|
730
748
|
/**
|
|
731
749
|
* Escape HTML for safe display
|
|
732
750
|
*/
|
|
@@ -1251,7 +1269,7 @@ async function updateFileViewerModal(modal, filePath, workingDir) {
|
|
|
1251
1269
|
const loadingElement = modal.querySelector('.file-viewer-loading');
|
|
1252
1270
|
const errorElement = modal.querySelector('.file-viewer-error');
|
|
1253
1271
|
const contentArea = modal.querySelector('.file-viewer-content-area');
|
|
1254
|
-
|
|
1272
|
+
|
|
1255
1273
|
if (loadingElement) {
|
|
1256
1274
|
loadingElement.style.display = 'flex';
|
|
1257
1275
|
}
|
|
@@ -1265,7 +1283,7 @@ async function updateFileViewerModal(modal, filePath, workingDir) {
|
|
|
1265
1283
|
try {
|
|
1266
1284
|
// Get the Socket.IO client
|
|
1267
1285
|
const socket = window.socket || window.dashboard?.socketClient?.socket || window.socketClient?.socket;
|
|
1268
|
-
|
|
1286
|
+
|
|
1269
1287
|
console.log('[FileViewer] Socket search results:', {
|
|
1270
1288
|
'window.socket': !!window.socket,
|
|
1271
1289
|
'window.socket.connected': window.socket?.connected,
|
|
@@ -1274,15 +1292,15 @@ async function updateFileViewerModal(modal, filePath, workingDir) {
|
|
|
1274
1292
|
'window.socketClient.socket': !!window.socketClient?.socket,
|
|
1275
1293
|
'window.socketClient.socket.connected': window.socketClient?.socket?.connected
|
|
1276
1294
|
});
|
|
1277
|
-
|
|
1295
|
+
|
|
1278
1296
|
if (!socket) {
|
|
1279
1297
|
throw new Error('No socket connection available. Please ensure the dashboard is connected.');
|
|
1280
1298
|
}
|
|
1281
|
-
|
|
1299
|
+
|
|
1282
1300
|
if (!socket.connected) {
|
|
1283
1301
|
console.warn('[FileViewer] Socket found but not connected, attempting to use anyway...');
|
|
1284
1302
|
}
|
|
1285
|
-
|
|
1303
|
+
|
|
1286
1304
|
console.log('[FileViewer] Socket found, setting up listener for file_content_response');
|
|
1287
1305
|
|
|
1288
1306
|
// Set up one-time listener for file content response
|
|
@@ -1579,7 +1597,7 @@ function formatFileSize(bytes) {
|
|
|
1579
1597
|
// File Viewer Modal Functions
|
|
1580
1598
|
window.showFileViewerModal = async function(filePath) {
|
|
1581
1599
|
console.log('[FileViewer] Opening file:', filePath);
|
|
1582
|
-
|
|
1600
|
+
|
|
1583
1601
|
// Use the dashboard's current working directory
|
|
1584
1602
|
let workingDir = '';
|
|
1585
1603
|
if (window.dashboard && window.dashboard.currentWorkingDir) {
|
|
@@ -1670,7 +1688,7 @@ function displayFileContentError(modal, result) {
|
|
|
1670
1688
|
const suggestionsElement = modal.querySelector('.error-suggestions');
|
|
1671
1689
|
const loadingElement = modal.querySelector('.file-viewer-loading');
|
|
1672
1690
|
const contentArea = modal.querySelector('.file-viewer-content-area');
|
|
1673
|
-
|
|
1691
|
+
|
|
1674
1692
|
// Hide loading and content areas, show error
|
|
1675
1693
|
if (loadingElement) {
|
|
1676
1694
|
loadingElement.style.display = 'none';
|
|
@@ -1818,7 +1836,7 @@ function updateSearchViewerModal(modal, searchParams, searchResults) {
|
|
|
1818
1836
|
// Display search results
|
|
1819
1837
|
if (resultsDisplay && searchResults) {
|
|
1820
1838
|
let resultsHTML = '';
|
|
1821
|
-
|
|
1839
|
+
|
|
1822
1840
|
if (typeof searchResults === 'string') {
|
|
1823
1841
|
// If results are a string, display as preformatted text
|
|
1824
1842
|
resultsHTML = `<pre class="search-results-text">${escapeHtml(searchResults)}</pre>`;
|
|
@@ -1840,7 +1858,7 @@ function updateSearchViewerModal(modal, searchParams, searchResults) {
|
|
|
1840
1858
|
// Fallback: display as text
|
|
1841
1859
|
resultsHTML = `<div class="search-results-text">${escapeHtml(String(searchResults))}</div>`;
|
|
1842
1860
|
}
|
|
1843
|
-
|
|
1861
|
+
|
|
1844
1862
|
resultsDisplay.innerHTML = resultsHTML;
|
|
1845
1863
|
}
|
|
1846
1864
|
}
|
|
@@ -1865,15 +1883,15 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1865
1883
|
try {
|
|
1866
1884
|
// Create dashboard instance
|
|
1867
1885
|
window.dashboard = new Dashboard();
|
|
1868
|
-
|
|
1886
|
+
|
|
1869
1887
|
// Call post-initialization setup that requires window.dashboard
|
|
1870
1888
|
// This must happen after window.dashboard is set
|
|
1871
1889
|
if (window.dashboard && typeof window.dashboard.postInit === 'function') {
|
|
1872
1890
|
window.dashboard.postInit();
|
|
1873
1891
|
}
|
|
1874
|
-
|
|
1892
|
+
|
|
1875
1893
|
console.log('Dashboard loaded and initialized successfully');
|
|
1876
|
-
|
|
1894
|
+
|
|
1877
1895
|
// Dispatch custom event to signal dashboard ready
|
|
1878
1896
|
document.dispatchEvent(new CustomEvent('dashboardReady', {
|
|
1879
1897
|
detail: { dashboard: window.dashboard }
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Browser Extension Error Handler
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* WHY: Browser extensions (like password managers, ad blockers, etc.) often inject
|
|
5
5
|
* scripts that use Chrome's message passing API. When these extensions have bugs
|
|
6
6
|
* or async handlers that don't properly respond, they generate console errors.
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
* This module prevents those external errors from affecting our dashboard and
|
|
9
9
|
* provides clean error handling for known browser extension issues.
|
|
10
|
-
*
|
|
10
|
+
*
|
|
11
11
|
* DESIGN DECISION: Rather than trying to fix third-party extension bugs, we:
|
|
12
12
|
* 1. Detect and suppress known harmless extension errors
|
|
13
13
|
* 2. Log them separately for debugging if needed
|
|
@@ -26,21 +26,21 @@ class ExtensionErrorHandler {
|
|
|
26
26
|
/Cannot access contents of url.*Extension/i,
|
|
27
27
|
/Blocked a frame with origin.*from accessing a cross-origin frame/i
|
|
28
28
|
];
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
this.setupErrorHandling();
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
/**
|
|
34
34
|
* Set up global error handling to catch and suppress extension errors
|
|
35
35
|
*/
|
|
36
36
|
setupErrorHandling() {
|
|
37
37
|
// Store original console.error
|
|
38
38
|
const originalConsoleError = console.error;
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
// Override console.error to filter extension errors
|
|
41
41
|
console.error = (...args) => {
|
|
42
42
|
const errorString = args.join(' ');
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
// Check if this is a known extension error
|
|
45
45
|
if (this.isExtensionError(errorString)) {
|
|
46
46
|
// Log to our internal list for debugging
|
|
@@ -49,41 +49,41 @@ class ExtensionErrorHandler {
|
|
|
49
49
|
error: errorString,
|
|
50
50
|
suppressed: true
|
|
51
51
|
});
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
// Optionally log with a prefix if debug mode is enabled
|
|
54
54
|
if (window.DEBUG_EXTENSION_ERRORS) {
|
|
55
55
|
originalConsoleError.call(console, '[SUPPRESSED EXTENSION ERROR]:', ...args);
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
// Don't propagate the error
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
// Pass through non-extension errors
|
|
63
63
|
originalConsoleError.call(console, ...args);
|
|
64
64
|
};
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
// Handle uncaught promise rejections that might come from extensions
|
|
67
67
|
window.addEventListener('unhandledrejection', (event) => {
|
|
68
68
|
const errorString = event.reason?.toString() || '';
|
|
69
|
-
|
|
69
|
+
|
|
70
70
|
if (this.isExtensionError(errorString)) {
|
|
71
71
|
// Prevent the default error handling
|
|
72
72
|
event.preventDefault();
|
|
73
|
-
|
|
73
|
+
|
|
74
74
|
this.extensionErrors.push({
|
|
75
75
|
timestamp: new Date().toISOString(),
|
|
76
76
|
error: errorString,
|
|
77
77
|
type: 'unhandled_rejection',
|
|
78
78
|
suppressed: true
|
|
79
79
|
});
|
|
80
|
-
|
|
80
|
+
|
|
81
81
|
if (window.DEBUG_EXTENSION_ERRORS) {
|
|
82
82
|
console.warn('[SUPPRESSED EXTENSION REJECTION]:', event.reason);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
// Add a global message event listener with proper error handling
|
|
88
88
|
// This prevents our app from being affected by misbehaving extensions
|
|
89
89
|
window.addEventListener('message', (event) => {
|
|
@@ -91,13 +91,13 @@ class ExtensionErrorHandler {
|
|
|
91
91
|
if (event.origin !== window.location.origin) {
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
// Add timeout protection for any async operations
|
|
96
96
|
if (event.data && event.data.requiresResponse) {
|
|
97
97
|
const timeoutId = setTimeout(() => {
|
|
98
98
|
console.warn('Message handler timeout - no response sent');
|
|
99
99
|
}, 5000);
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
// Clear timeout when response is sent
|
|
102
102
|
if (event.ports && event.ports[0]) {
|
|
103
103
|
const originalPostMessage = event.ports[0].postMessage;
|
|
@@ -109,7 +109,7 @@ class ExtensionErrorHandler {
|
|
|
109
109
|
}
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
/**
|
|
114
114
|
* Check if an error string matches known extension error patterns
|
|
115
115
|
* @param {string} errorString - The error message to check
|
|
@@ -118,7 +118,7 @@ class ExtensionErrorHandler {
|
|
|
118
118
|
isExtensionError(errorString) {
|
|
119
119
|
return this.suppressedPatterns.some(pattern => pattern.test(errorString));
|
|
120
120
|
}
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
/**
|
|
123
123
|
* Get suppressed extension errors for debugging
|
|
124
124
|
* @returns {Array} - List of suppressed errors
|
|
@@ -126,21 +126,21 @@ class ExtensionErrorHandler {
|
|
|
126
126
|
getSuppressedErrors() {
|
|
127
127
|
return this.extensionErrors;
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
|
|
130
130
|
/**
|
|
131
131
|
* Clear the suppressed errors list
|
|
132
132
|
*/
|
|
133
133
|
clearSuppressedErrors() {
|
|
134
134
|
this.extensionErrors = [];
|
|
135
135
|
}
|
|
136
|
-
|
|
136
|
+
|
|
137
137
|
/**
|
|
138
138
|
* Enable or disable debug logging of extension errors
|
|
139
139
|
* @param {boolean} enabled - Whether to enable debug logging
|
|
140
140
|
*/
|
|
141
141
|
setDebugMode(enabled) {
|
|
142
142
|
window.DEBUG_EXTENSION_ERRORS = enabled;
|
|
143
|
-
|
|
143
|
+
|
|
144
144
|
if (enabled) {
|
|
145
145
|
console.log('Extension error debug mode enabled. Suppressed errors will be logged with [SUPPRESSED] prefix.');
|
|
146
146
|
console.log('Current suppressed errors:', this.getSuppressedErrors());
|