claude-mpm 4.24.0__py3-none-any.whl → 5.0.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 +3 -48
- claude_mpm/agents/PM_INSTRUCTIONS.md +721 -911
- 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.json +6 -3
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/frontmatter_validator.py +1 -1
- claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +370 -3
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +48 -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 +38 -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 +959 -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 +2 -6
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +769 -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 +49 -1
- 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 +123 -165
- 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 +955 -45
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +256 -4
- 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 +538 -106
- 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/claude_runner.py +5 -34
- claude_mpm/core/config.py +16 -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/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +91 -10
- claude_mpm/core/logger.py +3 -1
- 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/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/__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/event_handlers.py +3 -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/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 +115 -15
- 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 +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 +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/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/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/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/resource_monitor.py +1 -1
- 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/kuzu_memory_service.py +6 -2
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/model/model_router.py +1 -2
- 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/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/toolchain_analyzer.py +3 -1
- 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/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 +1 -1
- 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/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/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/utils/agent_dependency_loader.py +77 -10
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +241 -0
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +2 -4
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/METADATA +396 -43
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/RECORD +268 -422
- 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 -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/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 -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 -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/tauri_engineer.json +0 -274
- claude_mpm/agents/templates/ticketing.json +0 -178
- 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/commands/mpm-tickets.md +0 -151
- 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.24.0.dist-info → claude_mpm-5.0.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/top_level.txt +0 -0
|
@@ -24,50 +24,50 @@
|
|
|
24
24
|
border-radius: 4px;
|
|
25
25
|
margin-bottom: 20px;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
/* Tree visualization styles */
|
|
29
29
|
.tree-node {
|
|
30
30
|
cursor: pointer;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
.tree-node circle {
|
|
34
34
|
fill: #fff;
|
|
35
35
|
stroke: steelblue;
|
|
36
36
|
stroke-width: 2px;
|
|
37
37
|
transition: all 0.3s ease;
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
.tree-node:hover circle {
|
|
41
41
|
fill: #e6f3ff;
|
|
42
42
|
stroke-width: 3px;
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
.tree-node text {
|
|
46
46
|
font: 12px sans-serif;
|
|
47
47
|
pointer-events: none;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
.tree-link {
|
|
51
51
|
fill: none;
|
|
52
52
|
stroke: #ccc;
|
|
53
53
|
stroke-width: 2px;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
.view-toggle button {
|
|
57
57
|
transition: all 0.3s ease;
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
.view-toggle button:hover {
|
|
61
61
|
transform: translateY(-1px);
|
|
62
62
|
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
.file-selector input:focus {
|
|
66
66
|
outline: none;
|
|
67
67
|
border-color: #007cba;
|
|
68
68
|
box-shadow: 0 0 0 2px rgba(0, 124, 186, 0.2);
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
.tree-legend {
|
|
72
72
|
position: absolute;
|
|
73
73
|
top: 10px;
|
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
font-size: 12px;
|
|
80
80
|
z-index: 1000;
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
.tree-legend-item {
|
|
84
84
|
margin: 2px 0;
|
|
85
85
|
display: flex;
|
|
86
86
|
align-items: center;
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
|
|
89
89
|
.tree-legend-color {
|
|
90
90
|
width: 12px;
|
|
91
91
|
height: 12px;
|
|
@@ -103,15 +103,15 @@
|
|
|
103
103
|
<div>⏳ Page loaded...</div>
|
|
104
104
|
</div>
|
|
105
105
|
</div>
|
|
106
|
-
|
|
106
|
+
|
|
107
107
|
<div id="code-container">
|
|
108
108
|
<!-- SimpleCodeView will render here -->
|
|
109
109
|
</div>
|
|
110
110
|
</div>
|
|
111
|
-
|
|
111
|
+
|
|
112
112
|
<script>
|
|
113
113
|
console.log('[HTML] Page script starting');
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
function addStatus(message) {
|
|
116
116
|
const statusDiv = document.getElementById('status-messages');
|
|
117
117
|
if (statusDiv) {
|
|
@@ -119,27 +119,27 @@
|
|
|
119
119
|
}
|
|
120
120
|
console.log('[HTML Status]', message);
|
|
121
121
|
}
|
|
122
|
-
|
|
122
|
+
|
|
123
123
|
addStatus('⏳ Loading code-simple.js...');
|
|
124
124
|
</script>
|
|
125
|
-
|
|
125
|
+
|
|
126
126
|
<!-- D3.js for tree visualization -->
|
|
127
|
-
<script src="https://d3js.org/d3.v7.min.js"
|
|
127
|
+
<script src="https://d3js.org/d3.v7.min.js"
|
|
128
128
|
onload="addStatus('✅ D3.js loaded successfully')"
|
|
129
129
|
onerror="addStatus('❌ Failed to load D3.js')"></script>
|
|
130
|
-
|
|
130
|
+
|
|
131
131
|
<!-- Socket.IO for real-time communication -->
|
|
132
|
-
<script src="https://cdn.socket.io/4.7.2/socket.io.min.js"
|
|
132
|
+
<script src="https://cdn.socket.io/4.7.2/socket.io.min.js"
|
|
133
133
|
onload="addStatus('✅ Socket.IO loaded successfully')"
|
|
134
134
|
onerror="addStatus('❌ Failed to load Socket.IO')"></script>
|
|
135
|
-
|
|
136
|
-
<script src="/static/js/components/code-simple.js"
|
|
135
|
+
|
|
136
|
+
<script src="/static/js/components/code-simple.js"
|
|
137
137
|
onload="addStatus('✅ code-simple.js loaded successfully')"
|
|
138
138
|
onerror="addStatus('❌ Failed to load code-simple.js')"></script>
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
<script>
|
|
141
141
|
addStatus('⏳ Waiting for initialization...');
|
|
142
|
-
|
|
142
|
+
|
|
143
143
|
// Check initialization after a delay
|
|
144
144
|
setTimeout(() => {
|
|
145
145
|
if (window.simpleCodeView) {
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
<!-- External Dependencies -->
|
|
17
17
|
<script src="https://cdn.socket.io/4.7.5/socket.io.min.js"></script>
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
<!-- D3.js for Activity Tree Visualization -->
|
|
20
20
|
<script src="https://d3js.org/d3.v7.min.js"></script>
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
<!-- Font Awesome for icons -->
|
|
23
23
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
24
24
|
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
<body>
|
|
142
142
|
<!-- Connection Notifications Area -->
|
|
143
143
|
<div id="connection-notifications" class="connection-notifications"></div>
|
|
144
|
-
|
|
144
|
+
|
|
145
145
|
<div class="container">
|
|
146
146
|
<!-- Header Section -->
|
|
147
147
|
<div class="header">
|
|
@@ -435,19 +435,19 @@
|
|
|
435
435
|
// Set up working directory environment variables
|
|
436
436
|
// These will be used by the working-directory component
|
|
437
437
|
// The server will inject these values through a separate API call
|
|
438
|
-
|
|
438
|
+
|
|
439
439
|
// Get the current working directory from the server
|
|
440
440
|
fetch('/api/working-directory')
|
|
441
441
|
.then(response => response.json())
|
|
442
442
|
.then(data => {
|
|
443
443
|
window.processWorkingDirectory = data.working_directory || '/Users/masa/Projects/claude-mpm';
|
|
444
444
|
window.homeDirectory = data.home_directory || '/Users/masa';
|
|
445
|
-
|
|
445
|
+
|
|
446
446
|
// Store in session storage for persistence
|
|
447
447
|
if (window.processWorkingDirectory && window.processWorkingDirectory !== '/') {
|
|
448
448
|
sessionStorage.setItem('currentWorkingDirectory', window.processWorkingDirectory);
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
|
|
451
451
|
// Dispatch event to notify components that working directory is ready
|
|
452
452
|
window.dispatchEvent(new CustomEvent('workingDirectoryInitialized', {
|
|
453
453
|
detail: {
|
|
@@ -462,10 +462,10 @@
|
|
|
462
462
|
window.processWorkingDirectory = '/Users/masa/Projects/claude-mpm';
|
|
463
463
|
window.homeDirectory = '/Users/masa';
|
|
464
464
|
});
|
|
465
|
-
|
|
465
|
+
|
|
466
466
|
// Add timestamp-based cache busting and ensure proper loading order
|
|
467
467
|
const timestamp = Date.now();
|
|
468
|
-
|
|
468
|
+
|
|
469
469
|
// Load modules sequentially to ensure dashboard.js loads first
|
|
470
470
|
const loadModule = (src) => {
|
|
471
471
|
return new Promise((resolve, reject) => {
|
|
@@ -477,7 +477,7 @@
|
|
|
477
477
|
document.body.appendChild(script);
|
|
478
478
|
});
|
|
479
479
|
};
|
|
480
|
-
|
|
480
|
+
|
|
481
481
|
// Load shared services first, then components
|
|
482
482
|
// Load services sequentially to ensure dependencies are available
|
|
483
483
|
loadModule('/static/js/shared/tooltip-service.js')
|
|
@@ -540,21 +540,21 @@
|
|
|
540
540
|
console.error('[CRITICAL] Error loading dashboard modules:', error);
|
|
541
541
|
console.error('Stack trace:', error.stack);
|
|
542
542
|
});
|
|
543
|
-
|
|
543
|
+
|
|
544
544
|
// Give modules time to execute and initialize dashboard
|
|
545
545
|
setTimeout(() => {
|
|
546
546
|
console.log('Checking dashboard initialization...');
|
|
547
|
-
|
|
547
|
+
|
|
548
548
|
if (window.dashboard) {
|
|
549
549
|
console.log('Dashboard found, checking auto-connect status...');
|
|
550
|
-
|
|
550
|
+
|
|
551
551
|
// Force auto-connect if not already connected
|
|
552
552
|
if (window.dashboard.socketManager) {
|
|
553
553
|
const socketManager = window.dashboard.socketManager;
|
|
554
|
-
|
|
554
|
+
|
|
555
555
|
if (!socketManager.isConnected() && !socketManager.isConnecting()) {
|
|
556
556
|
console.log('Dashboard loaded but not connected, forcing auto-connect...');
|
|
557
|
-
|
|
557
|
+
|
|
558
558
|
// Try to trigger auto-connect manually
|
|
559
559
|
const params = new URLSearchParams(window.location.search);
|
|
560
560
|
socketManager.initializeFromURL(params);
|
|
@@ -566,23 +566,23 @@
|
|
|
566
566
|
}
|
|
567
567
|
} else {
|
|
568
568
|
console.warn('Dashboard still not initialized after module loading');
|
|
569
|
-
|
|
569
|
+
|
|
570
570
|
// Try to manually trigger initialization
|
|
571
571
|
if (document.readyState === 'complete' || document.readyState === 'interactive') {
|
|
572
572
|
console.log('Document ready, attempting to trigger dashboard initialization...');
|
|
573
573
|
document.dispatchEvent(new Event('DOMContentLoaded'));
|
|
574
574
|
}
|
|
575
575
|
}
|
|
576
|
-
|
|
576
|
+
|
|
577
577
|
// Debug: Test connection settings button
|
|
578
578
|
const connectionToggleBtn = document.getElementById('connection-toggle-btn');
|
|
579
579
|
if (connectionToggleBtn) {
|
|
580
580
|
console.log('Connection toggle button found, testing functionality...');
|
|
581
|
-
|
|
581
|
+
|
|
582
582
|
// Add a debug click handler to ensure the button works
|
|
583
583
|
connectionToggleBtn.addEventListener('click', () => {
|
|
584
584
|
console.log('Connection toggle button clicked (debug handler)');
|
|
585
|
-
|
|
585
|
+
|
|
586
586
|
if (window.dashboard && window.dashboard.socketManager) {
|
|
587
587
|
console.log('Calling socketManager.toggleConnectionControls()');
|
|
588
588
|
window.dashboard.socketManager.toggleConnectionControls();
|
|
@@ -31,11 +31,7 @@ import click
|
|
|
31
31
|
|
|
32
32
|
from claude_mpm.core.logging_utils import get_logger
|
|
33
33
|
from claude_mpm.hooks.validation_hooks import ValidationHooks
|
|
34
|
-
from claude_mpm.utils.error_handler import
|
|
35
|
-
ErrorContext,
|
|
36
|
-
MPMError,
|
|
37
|
-
handle_errors,
|
|
38
|
-
)
|
|
34
|
+
from claude_mpm.utils.error_handler import ErrorContext, MPMError, handle_errors
|
|
39
35
|
from claude_mpm.validation import AgentValidator, ValidationResult
|
|
40
36
|
|
|
41
37
|
logger = get_logger(__name__)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -393,7 +393,9 @@ class EventHandlers:
|
|
|
393
393
|
"status": (
|
|
394
394
|
"success"
|
|
395
395
|
if exit_code == 0
|
|
396
|
-
else "blocked"
|
|
396
|
+
else "blocked"
|
|
397
|
+
if exit_code == 2
|
|
398
|
+
else "error"
|
|
397
399
|
),
|
|
398
400
|
"duration_ms": duration,
|
|
399
401
|
"result_summary": result_data,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,14 +35,8 @@ Usage:
|
|
|
35
35
|
hook_service.register_hook(get_learning_extraction_hook())
|
|
36
36
|
"""
|
|
37
37
|
|
|
38
|
-
from .failure_detection_hook import
|
|
39
|
-
|
|
40
|
-
get_failure_detection_hook,
|
|
41
|
-
)
|
|
42
|
-
from .fix_detection_hook import (
|
|
43
|
-
FixDetectionHook,
|
|
44
|
-
get_fix_detection_hook,
|
|
45
|
-
)
|
|
38
|
+
from .failure_detection_hook import FailureDetectionHook, get_failure_detection_hook
|
|
39
|
+
from .fix_detection_hook import FixDetectionHook, get_fix_detection_hook
|
|
46
40
|
from .learning_extraction_hook import (
|
|
47
41
|
LearningExtractionHook,
|
|
48
42
|
get_learning_extraction_hook,
|
|
@@ -21,12 +21,7 @@ Integration points:
|
|
|
21
21
|
import logging
|
|
22
22
|
from typing import Any, Dict
|
|
23
23
|
|
|
24
|
-
from claude_mpm.hooks.base_hook import
|
|
25
|
-
BaseHook,
|
|
26
|
-
HookContext,
|
|
27
|
-
HookResult,
|
|
28
|
-
HookType,
|
|
29
|
-
)
|
|
24
|
+
from claude_mpm.hooks.base_hook import BaseHook, HookContext, HookResult, HookType
|
|
30
25
|
from claude_mpm.services.memory.failure_tracker import get_failure_tracker
|
|
31
26
|
|
|
32
27
|
logger = logging.getLogger(__name__)
|
|
@@ -23,12 +23,7 @@ Integration points:
|
|
|
23
23
|
import logging
|
|
24
24
|
from typing import Any, Dict
|
|
25
25
|
|
|
26
|
-
from claude_mpm.hooks.base_hook import
|
|
27
|
-
BaseHook,
|
|
28
|
-
HookContext,
|
|
29
|
-
HookResult,
|
|
30
|
-
HookType,
|
|
31
|
-
)
|
|
26
|
+
from claude_mpm.hooks.base_hook import BaseHook, HookContext, HookResult, HookType
|
|
32
27
|
from claude_mpm.services.memory.failure_tracker import get_failure_tracker
|
|
33
28
|
|
|
34
29
|
logger = logging.getLogger(__name__)
|
|
@@ -23,12 +23,7 @@ Integration points:
|
|
|
23
23
|
import logging
|
|
24
24
|
from typing import Any
|
|
25
25
|
|
|
26
|
-
from claude_mpm.hooks.base_hook import
|
|
27
|
-
BaseHook,
|
|
28
|
-
HookContext,
|
|
29
|
-
HookResult,
|
|
30
|
-
HookType,
|
|
31
|
-
)
|
|
26
|
+
from claude_mpm.hooks.base_hook import BaseHook, HookContext, HookResult, HookType
|
|
32
27
|
from claude_mpm.services.memory.failure_tracker import get_failure_tracker
|
|
33
28
|
|
|
34
29
|
logger = logging.getLogger(__name__)
|
|
@@ -20,11 +20,7 @@ DESIGN DECISIONS:
|
|
|
20
20
|
import logging
|
|
21
21
|
from typing import Any, Optional
|
|
22
22
|
|
|
23
|
-
from claude_mpm.hooks.base_hook import
|
|
24
|
-
HookContext,
|
|
25
|
-
HookResult,
|
|
26
|
-
PostDelegationHook,
|
|
27
|
-
)
|
|
23
|
+
from claude_mpm.hooks.base_hook import HookContext, HookResult, PostDelegationHook
|
|
28
24
|
from claude_mpm.hooks.kuzu_memory_hook import get_kuzu_memory_hook
|
|
29
25
|
|
|
30
26
|
logger = logging.getLogger(__name__)
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"""Git repository model for agent sources."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from urllib.parse import urlparse
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class GitRepository:
|
|
12
|
+
"""Represents a Git repository configuration for agent sources.
|
|
13
|
+
|
|
14
|
+
This model tracks Git repositories that contain agent markdown files.
|
|
15
|
+
Repositories are cached locally and synced using ETag-based HTTP caching.
|
|
16
|
+
|
|
17
|
+
Attributes:
|
|
18
|
+
url: Full GitHub repository URL (e.g., https://github.com/owner/repo)
|
|
19
|
+
subdirectory: Optional subdirectory within repository (e.g., "agents/backend")
|
|
20
|
+
enabled: Whether this repository should be synced
|
|
21
|
+
priority: Priority for agent resolution (lower = higher precedence)
|
|
22
|
+
last_synced: Timestamp of last successful sync
|
|
23
|
+
etag: HTTP ETag from last sync for incremental updates
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
url: str
|
|
27
|
+
subdirectory: Optional[str] = None
|
|
28
|
+
enabled: bool = True
|
|
29
|
+
priority: int = 100
|
|
30
|
+
last_synced: Optional[datetime] = None
|
|
31
|
+
etag: Optional[str] = None
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def cache_path(self) -> Path:
|
|
35
|
+
"""Return cache directory path for this repository.
|
|
36
|
+
|
|
37
|
+
Cache structure: ~/.claude-mpm/cache/remote-agents/{owner}/{repo}/{subdirectory}/
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
Absolute path to cache directory for this repository
|
|
41
|
+
|
|
42
|
+
Example:
|
|
43
|
+
>>> repo = GitRepository(
|
|
44
|
+
... url="https://github.com/bobmatnyc/claude-mpm-agents",
|
|
45
|
+
... subdirectory="agents"
|
|
46
|
+
... )
|
|
47
|
+
>>> repo.cache_path
|
|
48
|
+
Path('/Users/user/.claude-mpm/cache/remote-agents/bobmatnyc/claude-mpm-agents/agents')
|
|
49
|
+
"""
|
|
50
|
+
home = Path.home()
|
|
51
|
+
base_cache = home / ".claude-mpm" / "cache" / "remote-agents"
|
|
52
|
+
|
|
53
|
+
# Extract owner and repo from URL
|
|
54
|
+
owner, repo = self._parse_github_url(self.url)
|
|
55
|
+
|
|
56
|
+
# Build cache path: base/owner/repo/subdirectory
|
|
57
|
+
cache_path = base_cache / owner / repo
|
|
58
|
+
|
|
59
|
+
if self.subdirectory:
|
|
60
|
+
# Normalize subdirectory path (remove leading/trailing slashes)
|
|
61
|
+
normalized_subdir = self.subdirectory.strip("/")
|
|
62
|
+
cache_path = cache_path / normalized_subdir
|
|
63
|
+
|
|
64
|
+
return cache_path
|
|
65
|
+
|
|
66
|
+
@property
|
|
67
|
+
def identifier(self) -> str:
|
|
68
|
+
"""Return unique identifier for this repository.
|
|
69
|
+
|
|
70
|
+
Format: {owner}/{repo}/{subdirectory} or {owner}/{repo}
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
Unique identifier string
|
|
74
|
+
|
|
75
|
+
Example:
|
|
76
|
+
>>> repo = GitRepository(
|
|
77
|
+
... url="https://github.com/owner/repo",
|
|
78
|
+
... subdirectory="agents"
|
|
79
|
+
... )
|
|
80
|
+
>>> repo.identifier
|
|
81
|
+
'owner/repo/agents'
|
|
82
|
+
"""
|
|
83
|
+
owner, repo = self._parse_github_url(self.url)
|
|
84
|
+
base_id = f"{owner}/{repo}"
|
|
85
|
+
|
|
86
|
+
if self.subdirectory:
|
|
87
|
+
normalized_subdir = self.subdirectory.strip("/")
|
|
88
|
+
return f"{base_id}/{normalized_subdir}"
|
|
89
|
+
|
|
90
|
+
return base_id
|
|
91
|
+
|
|
92
|
+
def validate(self) -> list[str]:
|
|
93
|
+
"""Validate repository configuration.
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
List of validation error messages (empty if valid)
|
|
97
|
+
|
|
98
|
+
Validation checks:
|
|
99
|
+
- URL is not empty
|
|
100
|
+
- URL is valid HTTP/HTTPS format
|
|
101
|
+
- URL is a GitHub repository URL
|
|
102
|
+
- Priority is non-negative
|
|
103
|
+
- Priority is reasonable (<= 1000, warning only)
|
|
104
|
+
- Subdirectory is relative path (not absolute)
|
|
105
|
+
"""
|
|
106
|
+
errors = []
|
|
107
|
+
|
|
108
|
+
# Validate URL
|
|
109
|
+
if not self.url or not self.url.strip():
|
|
110
|
+
errors.append("URL cannot be empty")
|
|
111
|
+
return errors # Can't continue validation without URL
|
|
112
|
+
|
|
113
|
+
# Check URL format
|
|
114
|
+
try:
|
|
115
|
+
parsed = urlparse(self.url)
|
|
116
|
+
|
|
117
|
+
# Must be HTTP or HTTPS
|
|
118
|
+
if parsed.scheme not in ("http", "https"):
|
|
119
|
+
errors.append(
|
|
120
|
+
f"URL must use http:// or https:// protocol, got: {parsed.scheme}"
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# Must be GitHub (for now)
|
|
124
|
+
if not parsed.netloc.endswith("github.com"):
|
|
125
|
+
errors.append(f"URL must be a GitHub repository, got: {parsed.netloc}")
|
|
126
|
+
|
|
127
|
+
# Should have owner/repo path structure
|
|
128
|
+
path_parts = [p for p in parsed.path.strip("/").split("/") if p]
|
|
129
|
+
if len(path_parts) < 2:
|
|
130
|
+
errors.append(f"URL must include owner/repo path, got: {parsed.path}")
|
|
131
|
+
|
|
132
|
+
except Exception as e:
|
|
133
|
+
errors.append(f"Invalid URL format: {e}")
|
|
134
|
+
|
|
135
|
+
# Validate priority
|
|
136
|
+
if self.priority < 0:
|
|
137
|
+
errors.append("Priority must be non-negative (0 or greater)")
|
|
138
|
+
|
|
139
|
+
if self.priority > 1000:
|
|
140
|
+
errors.append(
|
|
141
|
+
f"Priority {self.priority} is unusually high (recommended: 0-1000). "
|
|
142
|
+
"Lower priority numbers have higher precedence."
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
# Validate subdirectory
|
|
146
|
+
if self.subdirectory:
|
|
147
|
+
# Must be relative path
|
|
148
|
+
if Path(self.subdirectory).is_absolute():
|
|
149
|
+
errors.append(
|
|
150
|
+
f"Subdirectory must be a relative path, got absolute: {self.subdirectory}"
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
# Should not start with slash
|
|
154
|
+
if self.subdirectory.startswith("/"):
|
|
155
|
+
errors.append(
|
|
156
|
+
f"Subdirectory should not start with '/', got: {self.subdirectory}"
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
return errors
|
|
160
|
+
|
|
161
|
+
def _parse_github_url(self, url: str) -> tuple[str, str]:
|
|
162
|
+
"""Parse GitHub URL to extract owner and repository name.
|
|
163
|
+
|
|
164
|
+
Args:
|
|
165
|
+
url: GitHub repository URL
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
Tuple of (owner, repository_name)
|
|
169
|
+
|
|
170
|
+
Example:
|
|
171
|
+
>>> repo = GitRepository(url="https://github.com/owner/repo")
|
|
172
|
+
>>> repo._parse_github_url(repo.url)
|
|
173
|
+
('owner', 'repo')
|
|
174
|
+
"""
|
|
175
|
+
# Remove .git suffix if present
|
|
176
|
+
url = url.rstrip("/")
|
|
177
|
+
if url.endswith(".git"):
|
|
178
|
+
url = url[:-4]
|
|
179
|
+
|
|
180
|
+
# Parse URL
|
|
181
|
+
parsed = urlparse(url)
|
|
182
|
+
path_parts = [p for p in parsed.path.strip("/").split("/") if p]
|
|
183
|
+
|
|
184
|
+
if len(path_parts) >= 2:
|
|
185
|
+
owner = path_parts[0]
|
|
186
|
+
repo = path_parts[1]
|
|
187
|
+
return owner, repo
|
|
188
|
+
|
|
189
|
+
# Fallback: Use URL as-is if parsing fails
|
|
190
|
+
# This will be caught by validation
|
|
191
|
+
return "unknown", "unknown"
|
|
192
|
+
|
|
193
|
+
def __repr__(self) -> str:
|
|
194
|
+
"""Return string representation of repository."""
|
|
195
|
+
return (
|
|
196
|
+
f"GitRepository(identifier='{self.identifier}', "
|
|
197
|
+
f"priority={self.priority}, enabled={self.enabled})"
|
|
198
|
+
)
|
|
@@ -89,7 +89,7 @@ fi
|
|
|
89
89
|
# STRATEGY:
|
|
90
90
|
# This function implements a fallback chain to find Python with claude-mpm dependencies:
|
|
91
91
|
# 1. Project-specific virtual environments (venv, .venv)
|
|
92
|
-
# 2. Currently active virtual environment ($VIRTUAL_ENV)
|
|
92
|
+
# 2. Currently active virtual environment ($VIRTUAL_ENV)
|
|
93
93
|
# 3. System python3 (may lack dependencies)
|
|
94
94
|
# 4. System python (last resort)
|
|
95
95
|
#
|
|
@@ -121,7 +121,7 @@ find_python_command() {
|
|
|
121
121
|
return
|
|
122
122
|
fi
|
|
123
123
|
fi
|
|
124
|
-
|
|
124
|
+
|
|
125
125
|
# 2. Check for project-local virtual environment (common in development)
|
|
126
126
|
if [ -f "$CLAUDE_MPM_ROOT/venv/bin/activate" ]; then
|
|
127
127
|
source "$CLAUDE_MPM_ROOT/venv/bin/activate"
|
|
@@ -152,7 +152,7 @@ if [[ "$SCRIPT_DIR" == *"/.local/pipx/venvs/claude-mpm/"* ]]; then
|
|
|
152
152
|
elif [ -d "$CLAUDE_MPM_ROOT/src" ]; then
|
|
153
153
|
# Development install - add src to PYTHONPATH
|
|
154
154
|
export PYTHONPATH="$CLAUDE_MPM_ROOT/src:$PYTHONPATH"
|
|
155
|
-
|
|
155
|
+
|
|
156
156
|
if [ "${CLAUDE_MPM_HOOK_DEBUG}" = "true" ]; then
|
|
157
157
|
echo "[$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)] Development environment detected" >> /tmp/claude-mpm-hook.log
|
|
158
158
|
fi
|
|
@@ -51,7 +51,9 @@ if __name__ == "__main__":
|
|
|
51
51
|
|
|
52
52
|
# Initialize aggregator
|
|
53
53
|
aggregator = EventAggregator(
|
|
54
|
-
host="localhost",
|
|
54
|
+
host="localhost",
|
|
55
|
+
port=dashboard_port,
|
|
56
|
+
save_dir=None, # Will use config value
|
|
55
57
|
)
|
|
56
58
|
|
|
57
59
|
# Set up signal handlers
|