claude-mpm 4.1.26__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/BUILD_NUMBER +1 -1
- claude_mpm/VERSION +1 -1
- claude_mpm/__init__.py +20 -5
- claude_mpm/agents/BASE_AGENT_TEMPLATE.md +118 -0
- claude_mpm/agents/BASE_DOCUMENTATION.md +53 -0
- claude_mpm/agents/BASE_ENGINEER.md +658 -0
- claude_mpm/agents/BASE_OPS.md +219 -0
- claude_mpm/agents/BASE_PM.md +432 -158
- claude_mpm/agents/BASE_PROMPT_ENGINEER.md +787 -0
- claude_mpm/agents/BASE_QA.md +167 -0
- claude_mpm/agents/BASE_RESEARCH.md +53 -0
- claude_mpm/agents/OUTPUT_STYLE.md +254 -29
- claude_mpm/agents/PM_INSTRUCTIONS.md +969 -0
- claude_mpm/agents/PM_INSTRUCTIONS_TEACH.md +1322 -0
- claude_mpm/agents/WORKFLOW.md +355 -191
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +41 -14
- claude_mpm/agents/agent_loader_integration.py +3 -2
- claude_mpm/agents/async_agent_loader.py +3 -3
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/base_agent_loader.py +21 -44
- claude_mpm/agents/frontmatter_validator.py +292 -252
- claude_mpm/agents/system_agent_config.py +3 -2
- claude_mpm/agents/templates/README.md +465 -0
- claude_mpm/agents/templates/circuit-breakers.md +1005 -0
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/git-file-tracking.md +584 -0
- claude_mpm/agents/templates/pm-examples.md +474 -0
- claude_mpm/agents/templates/pm-red-flags.md +310 -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/response-format.md +583 -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/agents/templates/validation-templates.md +312 -0
- claude_mpm/cli/__init__.py +72 -376
- claude_mpm/cli/commands/__init__.py +4 -0
- claude_mpm/cli/commands/agent_manager.py +675 -20
- claude_mpm/cli/commands/agent_source.py +774 -0
- claude_mpm/cli/commands/agent_state_manager.py +344 -0
- claude_mpm/cli/commands/agents.py +1673 -178
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_detect.py +380 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/agents_recommend.py +309 -0
- claude_mpm/cli/commands/aggregate.py +11 -7
- claude_mpm/cli/commands/analyze.py +18 -13
- claude_mpm/cli/commands/analyze_code.py +8 -4
- claude_mpm/cli/commands/auto_configure.py +566 -0
- claude_mpm/cli/commands/cleanup.py +12 -12
- claude_mpm/cli/commands/config.py +54 -17
- claude_mpm/cli/commands/configure.py +1184 -1055
- claude_mpm/cli/commands/configure_agent_display.py +261 -0
- claude_mpm/cli/commands/configure_behavior_manager.py +204 -0
- claude_mpm/cli/commands/configure_hook_manager.py +225 -0
- claude_mpm/cli/commands/configure_models.py +18 -0
- claude_mpm/cli/commands/configure_navigation.py +184 -0
- claude_mpm/cli/commands/configure_paths.py +104 -0
- claude_mpm/cli/commands/configure_persistence.py +254 -0
- claude_mpm/cli/commands/configure_startup_manager.py +646 -0
- claude_mpm/cli/commands/configure_template_editor.py +497 -0
- claude_mpm/cli/commands/configure_validators.py +73 -0
- claude_mpm/cli/commands/dashboard.py +50 -52
- claude_mpm/cli/commands/debug.py +19 -19
- claude_mpm/cli/commands/doctor.py +51 -7
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/info.py +3 -4
- claude_mpm/cli/commands/local_deploy.py +534 -0
- claude_mpm/cli/commands/mcp.py +17 -10
- claude_mpm/cli/commands/mcp_command_router.py +11 -0
- claude_mpm/cli/commands/mcp_config.py +154 -0
- claude_mpm/cli/commands/mcp_external_commands.py +249 -0
- claude_mpm/cli/commands/mcp_install_commands.py +101 -32
- claude_mpm/cli/commands/mcp_pipx_config.py +2 -2
- claude_mpm/cli/commands/mcp_setup_external.py +868 -0
- claude_mpm/cli/commands/memory.py +55 -21
- claude_mpm/cli/commands/monitor.py +160 -70
- claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
- claude_mpm/cli/commands/mpm_init/core.py +573 -0
- claude_mpm/cli/commands/mpm_init/display.py +341 -0
- claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
- claude_mpm/cli/commands/mpm_init/modes.py +397 -0
- claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
- claude_mpm/cli/commands/mpm_init_cli.py +396 -0
- claude_mpm/cli/commands/mpm_init_handler.py +114 -4
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +252 -167
- claude_mpm/cli/commands/search.py +458 -0
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +1225 -0
- claude_mpm/cli/commands/uninstall.py +176 -0
- claude_mpm/cli/commands/upgrade.py +152 -0
- claude_mpm/cli/commands/verify.py +119 -0
- claude_mpm/cli/executor.py +279 -0
- claude_mpm/cli/helpers.py +105 -0
- claude_mpm/cli/interactive/__init__.py +21 -0
- claude_mpm/cli/interactive/agent_wizard.py +1872 -0
- claude_mpm/cli/interactive/skills_wizard.py +491 -0
- claude_mpm/cli/parser.py +79 -2
- claude_mpm/cli/parsers/__init__.py +7 -1
- claude_mpm/cli/parsers/agent_manager_parser.py +161 -1
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +369 -1
- claude_mpm/cli/parsers/auto_configure_parser.py +245 -0
- claude_mpm/cli/parsers/base_parser.py +196 -3
- claude_mpm/cli/parsers/config_parser.py +96 -43
- claude_mpm/cli/parsers/configure_parser.py +11 -15
- claude_mpm/cli/parsers/local_deploy_parser.py +227 -0
- claude_mpm/cli/parsers/mcp_parser.py +15 -0
- claude_mpm/cli/parsers/monitor_parser.py +12 -2
- claude_mpm/cli/parsers/mpm_init_parser.py +179 -9
- claude_mpm/cli/parsers/run_parser.py +5 -0
- claude_mpm/cli/parsers/search_parser.py +245 -0
- claude_mpm/cli/parsers/skill_source_parser.py +169 -0
- claude_mpm/cli/parsers/skills_parser.py +282 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/shared/argument_patterns.py +20 -13
- claude_mpm/cli/shared/base_command.py +2 -2
- claude_mpm/cli/shared/output_formatters.py +28 -19
- claude_mpm/cli/startup.py +994 -0
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/startup_logging.py +179 -13
- claude_mpm/cli/utils.py +54 -3
- claude_mpm/cli_module/commands.py +1 -1
- claude_mpm/commands/mpm-agents-auto-configure.md +278 -0
- claude_mpm/commands/mpm-agents-detect.md +177 -0
- claude_mpm/commands/mpm-agents-list.md +131 -0
- claude_mpm/commands/mpm-agents-recommend.md +223 -0
- claude_mpm/commands/mpm-config-view.md +150 -0
- claude_mpm/commands/mpm-doctor.md +9 -0
- claude_mpm/commands/mpm-help.md +297 -5
- claude_mpm/commands/mpm-init.md +401 -17
- claude_mpm/commands/mpm-monitor.md +418 -0
- claude_mpm/commands/mpm-postmortem.md +123 -0
- claude_mpm/commands/mpm-session-resume.md +381 -0
- claude_mpm/commands/mpm-status.md +79 -8
- claude_mpm/commands/mpm-ticket-organize.md +304 -0
- claude_mpm/commands/mpm-ticket-view.md +552 -0
- claude_mpm/commands/mpm-version.md +122 -0
- claude_mpm/commands/mpm.md +12 -0
- claude_mpm/config/agent_config.py +4 -4
- claude_mpm/config/agent_presets.py +488 -0
- claude_mpm/config/agent_sources.py +325 -0
- claude_mpm/config/experimental_features.py +7 -7
- claude_mpm/config/model_config.py +428 -0
- claude_mpm/config/paths.py +3 -2
- claude_mpm/config/skill_presets.py +392 -0
- claude_mpm/config/skill_sources.py +590 -0
- claude_mpm/config/socketio_config.py +3 -3
- claude_mpm/constants.py +28 -1
- claude_mpm/core/__init__.py +53 -17
- claude_mpm/core/agent_name_normalizer.py +3 -2
- claude_mpm/core/agent_registry.py +2 -2
- claude_mpm/core/agent_session_manager.py +10 -10
- claude_mpm/core/api_validator.py +330 -0
- claude_mpm/core/base_service.py +33 -23
- claude_mpm/core/cache.py +9 -9
- claude_mpm/core/claude_runner.py +24 -42
- claude_mpm/core/config.py +101 -8
- claude_mpm/core/config_aliases.py +7 -6
- claude_mpm/core/constants.py +66 -1
- claude_mpm/core/container.py +11 -5
- claude_mpm/core/enums.py +452 -0
- claude_mpm/core/error_handler.py +623 -0
- claude_mpm/core/factories.py +1 -1
- claude_mpm/core/file_utils.py +764 -0
- claude_mpm/core/framework/__init__.py +25 -0
- claude_mpm/core/framework/formatters/__init__.py +11 -0
- claude_mpm/core/framework/formatters/capability_generator.py +367 -0
- claude_mpm/core/framework/formatters/content_formatter.py +288 -0
- claude_mpm/core/framework/formatters/context_generator.py +185 -0
- claude_mpm/core/framework/loaders/__init__.py +13 -0
- claude_mpm/core/framework/loaders/agent_loader.py +210 -0
- claude_mpm/core/framework/loaders/file_loader.py +176 -0
- claude_mpm/core/framework/loaders/instruction_loader.py +181 -0
- claude_mpm/core/framework/loaders/packaged_loader.py +232 -0
- claude_mpm/core/framework/processors/__init__.py +11 -0
- claude_mpm/core/framework/processors/memory_processor.py +230 -0
- claude_mpm/core/framework/processors/metadata_processor.py +146 -0
- claude_mpm/core/framework/processors/template_processor.py +244 -0
- claude_mpm/core/framework_loader.py +321 -1631
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +49 -8
- claude_mpm/core/injectable_service.py +11 -8
- claude_mpm/core/instruction_reinforcement_hook.py +4 -3
- claude_mpm/core/interactive_session.py +146 -18
- claude_mpm/core/interfaces.py +56 -1
- claude_mpm/core/lazy.py +3 -3
- claude_mpm/core/log_manager.py +92 -23
- claude_mpm/core/logger.py +22 -15
- claude_mpm/core/logging_config.py +6 -2
- claude_mpm/core/logging_utils.py +520 -0
- claude_mpm/core/oneshot_session.py +122 -15
- claude_mpm/core/optimized_agent_loader.py +9 -9
- claude_mpm/core/optimized_startup.py +1 -1
- claude_mpm/core/output_style_manager.py +12 -192
- claude_mpm/core/pm_hook_interceptor.py +18 -12
- 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/service_registry.py +7 -3
- claude_mpm/core/session_manager.py +14 -12
- claude_mpm/core/shared/config_loader.py +1 -1
- claude_mpm/core/shared/singleton_manager.py +11 -4
- claude_mpm/core/socketio_pool.py +15 -15
- claude_mpm/core/system_context.py +38 -0
- claude_mpm/core/tool_access_control.py +3 -2
- claude_mpm/core/types.py +4 -11
- claude_mpm/core/typing_utils.py +7 -6
- claude_mpm/core/unified_agent_registry.py +115 -11
- claude_mpm/core/unified_config.py +6 -6
- claude_mpm/core/unified_paths.py +23 -20
- claude_mpm/dashboard/analysis_runner.py +4 -4
- claude_mpm/dashboard/api/simple_directory.py +261 -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 +600 -18
- claude_mpm/dashboard/static/js/components/activity-tree.js +181 -195
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +105 -102
- claude_mpm/dashboard/static/js/components/agent-inference.js +34 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +67 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +857 -0
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +891 -0
- claude_mpm/dashboard/static/js/components/event-processor.js +3 -0
- claude_mpm/dashboard/static/js/components/event-viewer.js +50 -13
- claude_mpm/dashboard/static/js/components/export-manager.js +3 -0
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +443 -0
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +690 -0
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +36 -16
- claude_mpm/dashboard/static/js/components/file-viewer.js +580 -0
- claude_mpm/dashboard/static/js/components/module-viewer.js +49 -23
- claude_mpm/dashboard/static/js/components/session-manager.js +19 -19
- claude_mpm/dashboard/static/js/components/socket-manager.js +5 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +356 -41
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +520 -88
- claude_mpm/dashboard/static/js/components/working-directory.js +46 -11
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +309 -178
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/socket-client.js +183 -139
- claude_mpm/dashboard/static/js/tab-isolation-fix.js +185 -0
- claude_mpm/dashboard/static/socket.io.min.js +7 -0
- claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +7 -0
- claude_mpm/dashboard/templates/code_simple.html +153 -0
- claude_mpm/dashboard/templates/index.html +125 -122
- claude_mpm/experimental/cli_enhancements.py +5 -7
- claude_mpm/generators/agent_profile_generator.py +5 -3
- claude_mpm/hooks/__init__.py +37 -1
- claude_mpm/hooks/base_hook.py +5 -4
- 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/connection_pool.py +4 -4
- claude_mpm/hooks/claude_hooks/event_handlers.py +24 -19
- claude_mpm/hooks/claude_hooks/hook_handler.py +29 -22
- claude_mpm/hooks/claude_hooks/installer.py +67 -22
- claude_mpm/hooks/claude_hooks/memory_integration.py +3 -3
- claude_mpm/hooks/claude_hooks/response_tracking.py +57 -17
- 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/claude_hooks/services/connection_manager.py +62 -64
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +140 -76
- claude_mpm/hooks/claude_hooks/services/state_manager.py +11 -9
- claude_mpm/hooks/claude_hooks/services/subagent_processor.py +3 -3
- claude_mpm/hooks/failure_learning/__init__.py +54 -0
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +230 -0
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +212 -0
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +281 -0
- claude_mpm/hooks/instruction_reinforcement.py +301 -0
- claude_mpm/hooks/kuzu_enrichment_hook.py +263 -0
- claude_mpm/hooks/kuzu_memory_hook.py +386 -0
- claude_mpm/hooks/kuzu_response_hook.py +179 -0
- claude_mpm/hooks/memory_integration_hook.py +1 -1
- claude_mpm/hooks/session_resume_hook.py +121 -0
- claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
- claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
- claude_mpm/hooks/tool_call_interceptor.py +8 -5
- claude_mpm/hooks/validation_hooks.py +3 -3
- claude_mpm/init.py +23 -4
- claude_mpm/models/agent_session.py +8 -6
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/models/resume_log.py +340 -0
- claude_mpm/scripts/claude-hook-handler.sh +35 -9
- claude_mpm/scripts/launch_monitor.py +85 -0
- claude_mpm/scripts/mcp_server.py +3 -5
- claude_mpm/scripts/mpm_doctor.py +3 -2
- claude_mpm/scripts/socketio_daemon.py +159 -512
- claude_mpm/scripts/start_activity_logging.py +3 -1
- claude_mpm/services/__init__.py +144 -160
- claude_mpm/services/agents/__init__.py +18 -5
- claude_mpm/services/agents/agent_builder.py +56 -18
- 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_config_manager.py +796 -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_configuration_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_deployment.py +164 -17
- claude_mpm/services/agents/deployment/agent_discovery_service.py +191 -41
- claude_mpm/services/agents/deployment/agent_filesystem_manager.py +5 -5
- claude_mpm/services/agents/deployment/agent_format_converter.py +56 -12
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +5 -7
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- claude_mpm/services/agents/deployment/agent_operation_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_record_service.py +4 -4
- claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
- claude_mpm/services/agents/deployment/agent_state_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_template_builder.py +939 -50
- claude_mpm/services/agents/deployment/agent_validator.py +31 -7
- claude_mpm/services/agents/deployment/agent_version_manager.py +8 -5
- claude_mpm/services/agents/deployment/agent_versioning.py +1 -1
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
- claude_mpm/services/agents/deployment/async_agent_deployment.py +3 -2
- claude_mpm/services/agents/deployment/deployment_config_loader.py +131 -7
- claude_mpm/services/agents/deployment/deployment_type_detector.py +10 -14
- claude_mpm/services/agents/deployment/deployment_wrapper.py +58 -0
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
- claude_mpm/services/agents/deployment/local_template_deployment.py +360 -0
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +249 -53
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +8 -7
- claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +7 -16
- claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +4 -3
- claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +7 -5
- claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +6 -5
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +10 -10
- 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 -43
- claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
- claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
- claude_mpm/services/agents/deployment/validation/template_validator.py +64 -44
- claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
- claude_mpm/services/agents/git_source_manager.py +629 -0
- claude_mpm/services/agents/loading/agent_profile_loader.py +10 -9
- claude_mpm/services/agents/loading/base_agent_manager.py +16 -6
- claude_mpm/services/agents/loading/framework_agent_loader.py +11 -14
- claude_mpm/services/agents/local_template_manager.py +784 -0
- claude_mpm/services/agents/management/agent_capabilities_generator.py +3 -2
- claude_mpm/services/agents/management/agent_management_service.py +5 -5
- claude_mpm/services/agents/memory/agent_memory_manager.py +32 -29
- claude_mpm/services/agents/memory/content_manager.py +17 -9
- claude_mpm/services/agents/memory/memory_categorization_service.py +4 -2
- claude_mpm/services/agents/memory/memory_file_service.py +32 -6
- claude_mpm/services/agents/memory/memory_format_service.py +6 -4
- claude_mpm/services/agents/memory/memory_limits_service.py +4 -2
- claude_mpm/services/agents/memory/template_generator.py +3 -3
- claude_mpm/services/agents/observers.py +547 -0
- claude_mpm/services/agents/recommender.py +615 -0
- claude_mpm/services/agents/registry/deployed_agent_discovery.py +3 -3
- claude_mpm/services/agents/registry/modification_tracker.py +30 -19
- 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/async_session_logger.py +141 -98
- claude_mpm/services/claude_session_logger.py +82 -74
- claude_mpm/services/cli/agent_cleanup_service.py +5 -0
- claude_mpm/services/cli/agent_listing_service.py +5 -5
- claude_mpm/services/cli/agent_validation_service.py +3 -1
- claude_mpm/services/cli/memory_crud_service.py +12 -7
- claude_mpm/services/cli/memory_output_formatter.py +2 -2
- claude_mpm/services/cli/resume_service.py +617 -0
- claude_mpm/services/cli/session_manager.py +104 -13
- claude_mpm/services/cli/session_pause_manager.py +504 -0
- claude_mpm/services/cli/session_resume_helper.py +372 -0
- claude_mpm/services/cli/startup_checker.py +13 -10
- claude_mpm/services/cli/unified_dashboard_manager.py +439 -0
- claude_mpm/services/command_deployment_service.py +209 -13
- claude_mpm/services/command_handler_service.py +11 -5
- claude_mpm/services/core/__init__.py +33 -1
- claude_mpm/services/core/base.py +31 -11
- claude_mpm/services/core/interfaces/__init__.py +88 -3
- claude_mpm/services/core/interfaces/agent.py +184 -0
- claude_mpm/services/core/interfaces/health.py +169 -0
- claude_mpm/services/core/interfaces/model.py +281 -0
- claude_mpm/services/core/interfaces/process.py +372 -0
- claude_mpm/services/core/interfaces/project.py +121 -0
- claude_mpm/services/core/interfaces/restart.py +307 -0
- claude_mpm/services/core/interfaces/stability.py +260 -0
- claude_mpm/services/core/interfaces.py +56 -1
- claude_mpm/services/core/memory_manager.py +92 -47
- claude_mpm/services/core/models/__init__.py +70 -0
- claude_mpm/services/core/models/agent_config.py +384 -0
- claude_mpm/services/core/models/health.py +162 -0
- claude_mpm/services/core/models/process.py +239 -0
- claude_mpm/services/core/models/restart.py +302 -0
- claude_mpm/services/core/models/stability.py +264 -0
- claude_mpm/services/core/models/toolchain.py +306 -0
- claude_mpm/services/core/path_resolver.py +36 -14
- claude_mpm/services/diagnostics/__init__.py +2 -2
- claude_mpm/services/diagnostics/checks/__init__.py +8 -2
- claude_mpm/services/diagnostics/checks/agent_check.py +30 -34
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/claude_code_check.py +270 -0
- claude_mpm/services/diagnostics/checks/common_issues_check.py +28 -27
- claude_mpm/services/diagnostics/checks/configuration_check.py +26 -25
- claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
- claude_mpm/services/diagnostics/checks/installation_check.py +165 -60
- claude_mpm/services/diagnostics/checks/instructions_check.py +21 -21
- claude_mpm/services/diagnostics/checks/mcp_check.py +57 -44
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +1058 -0
- claude_mpm/services/diagnostics/checks/monitor_check.py +24 -24
- claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
- claude_mpm/services/diagnostics/checks/startup_log_check.py +14 -11
- claude_mpm/services/diagnostics/diagnostic_runner.py +31 -13
- claude_mpm/services/diagnostics/doctor_reporter.py +305 -47
- claude_mpm/services/diagnostics/models.py +37 -21
- claude_mpm/services/event_aggregator.py +5 -3
- claude_mpm/services/event_bus/direct_relay.py +11 -7
- claude_mpm/services/event_bus/event_bus.py +51 -9
- claude_mpm/services/event_bus/relay.py +33 -14
- claude_mpm/services/events/consumers/dead_letter.py +7 -5
- claude_mpm/services/events/consumers/logging.py +1 -2
- claude_mpm/services/events/core.py +5 -6
- claude_mpm/services/events/producers/hook.py +6 -6
- claude_mpm/services/events/producers/system.py +8 -8
- claude_mpm/services/exceptions.py +5 -5
- claude_mpm/services/framework_claude_md_generator/__init__.py +1 -1
- claude_mpm/services/framework_claude_md_generator/content_assembler.py +5 -5
- claude_mpm/services/framework_claude_md_generator/content_validator.py +2 -2
- claude_mpm/services/framework_claude_md_generator/deployment_manager.py +3 -3
- claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +2 -2
- claude_mpm/services/framework_claude_md_generator/version_manager.py +1 -1
- 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/hook_installer_service.py +506 -0
- claude_mpm/services/hook_service.py +5 -6
- claude_mpm/services/infrastructure/context_preservation.py +13 -11
- claude_mpm/services/infrastructure/daemon_manager.py +9 -9
- claude_mpm/services/infrastructure/logging.py +2 -2
- claude_mpm/services/infrastructure/monitoring/__init__.py +2 -6
- claude_mpm/services/infrastructure/monitoring/aggregator.py +13 -18
- claude_mpm/services/infrastructure/monitoring/base.py +5 -13
- claude_mpm/services/infrastructure/monitoring/network.py +7 -6
- claude_mpm/services/infrastructure/monitoring/process.py +13 -12
- claude_mpm/services/infrastructure/monitoring/resources.py +8 -7
- claude_mpm/services/infrastructure/monitoring/service.py +16 -15
- claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
- 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 +155 -0
- claude_mpm/services/local_ops/crash_detector.py +257 -0
- claude_mpm/services/local_ops/health_checks/__init__.py +26 -0
- claude_mpm/services/local_ops/health_checks/http_check.py +224 -0
- claude_mpm/services/local_ops/health_checks/process_check.py +236 -0
- claude_mpm/services/local_ops/health_checks/resource_check.py +255 -0
- claude_mpm/services/local_ops/health_manager.py +427 -0
- claude_mpm/services/local_ops/log_monitor.py +396 -0
- claude_mpm/services/local_ops/memory_leak_detector.py +294 -0
- claude_mpm/services/local_ops/process_manager.py +595 -0
- claude_mpm/services/local_ops/resource_monitor.py +331 -0
- claude_mpm/services/local_ops/restart_manager.py +401 -0
- claude_mpm/services/local_ops/restart_policy.py +387 -0
- claude_mpm/services/local_ops/state_manager.py +372 -0
- claude_mpm/services/local_ops/unified_manager.py +600 -0
- claude_mpm/services/mcp_config_manager.py +1542 -0
- claude_mpm/services/mcp_gateway/__init__.py +97 -93
- claude_mpm/services/mcp_gateway/auto_configure.py +43 -38
- claude_mpm/services/mcp_gateway/config/config_loader.py +3 -3
- claude_mpm/services/mcp_gateway/config/configuration.py +24 -5
- claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
- claude_mpm/services/mcp_gateway/core/base.py +20 -33
- claude_mpm/services/mcp_gateway/core/process_pool.py +591 -31
- claude_mpm/services/mcp_gateway/core/singleton_manager.py +2 -2
- claude_mpm/services/mcp_gateway/core/startup_verification.py +3 -3
- claude_mpm/services/mcp_gateway/main.py +90 -15
- claude_mpm/services/mcp_gateway/registry/service_registry.py +4 -2
- claude_mpm/services/mcp_gateway/registry/tool_registry.py +12 -9
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +5 -10
- claude_mpm/services/mcp_gateway/server/stdio_server.py +9 -17
- claude_mpm/services/mcp_gateway/tools/__init__.py +14 -2
- claude_mpm/services/mcp_gateway/tools/base_adapter.py +15 -15
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +10 -9
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +654 -0
- claude_mpm/services/mcp_gateway/tools/health_check_tool.py +36 -34
- claude_mpm/services/mcp_gateway/tools/hello_world.py +8 -8
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +555 -0
- claude_mpm/services/mcp_gateway/utils/__init__.py +14 -0
- claude_mpm/services/mcp_gateway/utils/package_version_checker.py +160 -0
- claude_mpm/services/mcp_gateway/utils/update_preferences.py +170 -0
- claude_mpm/services/mcp_service_verifier.py +732 -0
- claude_mpm/services/memory/builder.py +9 -8
- claude_mpm/services/memory/cache/shared_prompt_cache.py +2 -1
- claude_mpm/services/memory/cache/simple_cache.py +2 -2
- claude_mpm/services/memory/failure_tracker.py +578 -0
- claude_mpm/services/memory/indexed_memory.py +8 -8
- claude_mpm/services/memory/optimizer.py +8 -9
- claude_mpm/services/memory/router.py +3 -3
- claude_mpm/services/memory_hook_service.py +165 -4
- claude_mpm/services/model/__init__.py +147 -0
- claude_mpm/services/model/base_provider.py +365 -0
- claude_mpm/services/model/claude_provider.py +412 -0
- claude_mpm/services/model/model_router.py +452 -0
- claude_mpm/services/model/ollama_provider.py +415 -0
- claude_mpm/services/monitor/__init__.py +20 -0
- claude_mpm/services/monitor/daemon.py +691 -0
- claude_mpm/services/monitor/daemon_manager.py +1040 -0
- claude_mpm/services/monitor/event_emitter.py +350 -0
- claude_mpm/services/monitor/handlers/__init__.py +21 -0
- claude_mpm/services/monitor/handlers/code_analysis.py +332 -0
- claude_mpm/services/monitor/handlers/dashboard.py +299 -0
- claude_mpm/services/monitor/handlers/file.py +264 -0
- claude_mpm/services/monitor/handlers/hooks.py +512 -0
- claude_mpm/services/monitor/management/__init__.py +18 -0
- claude_mpm/services/monitor/management/health.py +124 -0
- claude_mpm/services/monitor/management/lifecycle.py +724 -0
- claude_mpm/services/monitor/server.py +817 -0
- claude_mpm/services/monitor_build_service.py +2 -2
- claude_mpm/services/native_agent_converter.py +356 -0
- claude_mpm/services/orphan_detection.py +786 -0
- claude_mpm/services/port_manager.py +3 -3
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/__init__.py +23 -0
- claude_mpm/services/project/analyzer.py +3 -3
- claude_mpm/services/project/architecture_analyzer.py +5 -5
- claude_mpm/services/project/archive_manager.py +1045 -0
- claude_mpm/services/project/dependency_analyzer.py +4 -4
- claude_mpm/services/project/detection_strategies.py +719 -0
- claude_mpm/services/project/documentation_manager.py +554 -0
- claude_mpm/services/project/enhanced_analyzer.py +572 -0
- claude_mpm/services/project/metrics_collector.py +4 -4
- claude_mpm/services/project/project_organizer.py +1005 -0
- claude_mpm/services/project/registry.py +13 -7
- claude_mpm/services/project/toolchain_analyzer.py +583 -0
- claude_mpm/services/project_port_allocator.py +596 -0
- claude_mpm/services/response_tracker.py +21 -10
- claude_mpm/services/runner_configuration_service.py +17 -3
- claude_mpm/services/self_upgrade_service.py +500 -0
- claude_mpm/services/session_management_service.py +23 -9
- claude_mpm/services/session_manager.py +380 -0
- claude_mpm/services/shared/__init__.py +2 -1
- claude_mpm/services/shared/async_service_base.py +16 -27
- claude_mpm/services/shared/config_service_base.py +17 -14
- claude_mpm/services/shared/lifecycle_service_base.py +1 -14
- claude_mpm/services/shared/service_factory.py +8 -5
- 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/client_proxy.py +60 -5
- claude_mpm/services/socketio/dashboard_server.py +361 -0
- claude_mpm/services/socketio/event_normalizer.py +10 -6
- claude_mpm/services/socketio/handlers/__init__.py +5 -2
- claude_mpm/services/socketio/handlers/base.py +2 -2
- claude_mpm/services/socketio/handlers/code_analysis.py +90 -27
- claude_mpm/services/socketio/handlers/connection.py +22 -41
- claude_mpm/services/socketio/handlers/connection_handler.py +13 -10
- claude_mpm/services/socketio/handlers/file.py +46 -10
- claude_mpm/services/socketio/handlers/git.py +9 -9
- claude_mpm/services/socketio/handlers/hook.py +29 -17
- claude_mpm/services/socketio/handlers/registry.py +4 -2
- claude_mpm/services/socketio/monitor_client.py +364 -0
- claude_mpm/services/socketio/server/broadcaster.py +9 -7
- claude_mpm/services/socketio/server/connection_manager.py +2 -2
- claude_mpm/services/socketio/server/core.py +142 -8
- claude_mpm/services/socketio/server/eventbus_integration.py +20 -14
- claude_mpm/services/socketio/server/main.py +24 -24
- claude_mpm/services/socketio_client_manager.py +4 -4
- claude_mpm/services/subprocess_launcher_service.py +19 -15
- claude_mpm/services/system_instructions_service.py +3 -5
- claude_mpm/services/ticket_services/formatter_service.py +1 -1
- claude_mpm/services/ticket_services/validation_service.py +5 -5
- claude_mpm/services/unified/__init__.py +65 -0
- claude_mpm/services/unified/analyzer_strategies/__init__.py +44 -0
- claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +518 -0
- claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +680 -0
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +900 -0
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +745 -0
- claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +733 -0
- claude_mpm/services/unified/config_strategies/__init__.py +175 -0
- claude_mpm/services/unified/config_strategies/config_schema.py +731 -0
- claude_mpm/services/unified/config_strategies/context_strategy.py +747 -0
- claude_mpm/services/unified/config_strategies/error_handling_strategy.py +1005 -0
- claude_mpm/services/unified/config_strategies/file_loader_strategy.py +881 -0
- claude_mpm/services/unified/config_strategies/unified_config_service.py +823 -0
- claude_mpm/services/unified/config_strategies/validation_strategy.py +1148 -0
- claude_mpm/services/unified/deployment_strategies/__init__.py +97 -0
- claude_mpm/services/unified/deployment_strategies/base.py +553 -0
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +573 -0
- claude_mpm/services/unified/deployment_strategies/local.py +607 -0
- claude_mpm/services/unified/deployment_strategies/utils.py +667 -0
- claude_mpm/services/unified/deployment_strategies/vercel.py +471 -0
- claude_mpm/services/unified/interfaces.py +475 -0
- claude_mpm/services/unified/migration.py +509 -0
- claude_mpm/services/unified/strategies.py +534 -0
- claude_mpm/services/unified/unified_analyzer.py +542 -0
- claude_mpm/services/unified/unified_config.py +691 -0
- claude_mpm/services/unified/unified_deployment.py +466 -0
- claude_mpm/services/utility_service.py +6 -3
- claude_mpm/services/version_control/branch_strategy.py +2 -2
- claude_mpm/services/version_control/conflict_resolution.py +14 -8
- claude_mpm/services/version_control/git_operations.py +26 -24
- claude_mpm/services/version_control/semantic_versioning.py +14 -14
- claude_mpm/services/version_control/version_parser.py +14 -11
- claude_mpm/services/version_service.py +104 -1
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/__init__.py +42 -0
- claude_mpm/skills/agent_skills_injector.py +324 -0
- claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +79 -0
- claude_mpm/skills/bundled/__init__.py +6 -0
- claude_mpm/skills/bundled/api-documentation.md +393 -0
- claude_mpm/skills/bundled/async-testing.md +571 -0
- claude_mpm/skills/bundled/code-review.md +143 -0
- claude_mpm/skills/bundled/database-migration.md +199 -0
- claude_mpm/skills/bundled/docker-containerization.md +194 -0
- claude_mpm/skills/bundled/express-local-dev.md +1429 -0
- claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
- claude_mpm/skills/bundled/git-workflow.md +414 -0
- claude_mpm/skills/bundled/imagemagick.md +204 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
- claude_mpm/skills/bundled/json-data-handling.md +223 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +157 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +425 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +303 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +113 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +72 -0
- claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
- claude_mpm/skills/bundled/pdf.md +141 -0
- claude_mpm/skills/bundled/performance-profiling.md +573 -0
- claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
- claude_mpm/skills/bundled/security-scanning.md +327 -0
- claude_mpm/skills/bundled/systematic-debugging.md +473 -0
- claude_mpm/skills/bundled/test-driven-development.md +378 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +35 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +44 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +34 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
- claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
- claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
- claude_mpm/skills/bundled/xlsx.md +157 -0
- claude_mpm/skills/registry.py +286 -0
- claude_mpm/skills/skill_manager.py +310 -0
- claude_mpm/skills/skills_registry.py +347 -0
- claude_mpm/skills/skills_service.py +739 -0
- claude_mpm/storage/state_storage.py +31 -31
- 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 +9 -9
- claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
- claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
- claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
- claude_mpm/tools/code_tree_analyzer/core.py +380 -0
- claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
- claude_mpm/tools/code_tree_analyzer/events.py +168 -0
- claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
- claude_mpm/tools/code_tree_analyzer/models.py +39 -0
- claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
- claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
- claude_mpm/tools/code_tree_builder.py +6 -6
- claude_mpm/tools/code_tree_events.py +14 -10
- claude_mpm/tools/socketio_debug.py +11 -11
- claude_mpm/utils/agent_dependency_loader.py +184 -36
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/common.py +544 -0
- claude_mpm/utils/config_manager.py +12 -6
- claude_mpm/utils/database_connector.py +298 -0
- claude_mpm/utils/dependency_cache.py +5 -3
- claude_mpm/utils/dependency_strategies.py +15 -10
- claude_mpm/utils/display_helper.py +260 -0
- claude_mpm/utils/environment_context.py +4 -3
- claude_mpm/utils/error_handler.py +5 -3
- claude_mpm/utils/file_utils.py +13 -14
- claude_mpm/utils/git_analyzer.py +407 -0
- claude_mpm/utils/gitignore.py +241 -0
- claude_mpm/utils/log_cleanup.py +627 -0
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/path_operations.py +7 -4
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +131 -24
- claude_mpm/utils/session_logging.py +2 -2
- claude_mpm/utils/structured_questions.py +619 -0
- claude_mpm/utils/subprocess_utils.py +9 -8
- claude_mpm/validation/agent_validator.py +6 -6
- claude_mpm/validation/frontmatter_validator.py +6 -6
- claude_mpm-5.0.9.dist-info/METADATA +1028 -0
- claude_mpm-5.0.9.dist-info/RECORD +864 -0
- {claude_mpm-4.1.26.dist-info → claude_mpm-5.0.9.dist-info}/entry_points.txt +1 -0
- claude_mpm/agents/INSTRUCTIONS.md +0 -261
- 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 -270
- claude_mpm/agents/templates/agent-manager.md +0 -619
- claude_mpm/agents/templates/agentic_coder_optimizer.json +0 -222
- claude_mpm/agents/templates/api_qa.json +0 -171
- claude_mpm/agents/templates/code_analyzer.json +0 -95
- claude_mpm/agents/templates/data_engineer.json +0 -152
- claude_mpm/agents/templates/documentation.json +0 -175
- claude_mpm/agents/templates/engineer.json +0 -176
- claude_mpm/agents/templates/imagemagick.json +0 -261
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/memory_manager.json +0 -155
- claude_mpm/agents/templates/ops.json +0 -175
- claude_mpm/agents/templates/project_organizer.json +0 -130
- claude_mpm/agents/templates/qa.json +0 -223
- claude_mpm/agents/templates/refactoring_engineer.json +0 -266
- claude_mpm/agents/templates/research.json +0 -163
- claude_mpm/agents/templates/security.json +0 -153
- claude_mpm/agents/templates/ticketing.json +0 -169
- claude_mpm/agents/templates/vercel_ops_agent.json +0 -281
- claude_mpm/agents/templates/version_control.json +0 -147
- claude_mpm/agents/templates/web_qa.json +0 -254
- claude_mpm/agents/templates/web_ui.json +0 -176
- claude_mpm/cli/commands/configure_tui.py +0 -1927
- claude_mpm/cli/commands/mpm_init.py +0 -594
- claude_mpm/cli/commands/socketio_monitor.py +0 -233
- claude_mpm/commands/mpm-agents.md +0 -12
- claude_mpm/commands/mpm-config.md +0 -18
- claude_mpm/commands/mpm-tickets.md +0 -102
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- 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/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-tool-tracker.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/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/dashboard.js +0 -2
- claude_mpm/dashboard/static/built/socket-client.js +0 -2
- claude_mpm/dashboard/static/css/code-tree.css +0 -1408
- 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/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/socket-client.js +0 -2
- claude_mpm/dashboard/static/js/components/code-tree.js +0 -3220
- claude_mpm/dashboard/static/js/components/code-viewer.js +0 -480
- claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
- claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1040
- claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
- claude_mpm/scripts/socketio_daemon_hardened.py +0 -937
- claude_mpm/scripts/socketio_daemon_wrapper.py +0 -78
- claude_mpm/scripts/socketio_server_manager.py +0 -349
- claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
- claude_mpm/services/cli/dashboard_launcher.py +0 -423
- claude_mpm/services/cli/socketio_manager.py +0 -537
- claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -286
- claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -645
- claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -602
- claude_mpm/services/project/analyzer_refactored.py +0 -450
- claude_mpm/tools/code_tree_analyzer.py +0 -1693
- claude_mpm-4.1.26.dist-info/METADATA +0 -332
- claude_mpm-4.1.26.dist-info/RECORD +0 -606
- {claude_mpm-4.1.26.dist-info → claude_mpm-5.0.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.26.dist-info → claude_mpm-5.0.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.1.26.dist-info → claude_mpm-5.0.9.dist-info}/top_level.txt +0 -0
|
@@ -15,10 +15,13 @@
|
|
|
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
|
+
<!-- Font Awesome for icons -->
|
|
23
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
24
|
+
|
|
22
25
|
<!-- Syntax Highlighting - Prism.js -->
|
|
23
26
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" rel="stylesheet">
|
|
24
27
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js"></script>
|
|
@@ -30,7 +33,6 @@
|
|
|
30
33
|
<link rel="stylesheet" href="/static/css/dashboard.css">
|
|
31
34
|
<link rel="stylesheet" href="/static/css/connection-status.css">
|
|
32
35
|
<link rel="stylesheet" href="/static/css/activity.css">
|
|
33
|
-
<link rel="stylesheet" href="/static/css/code-tree.css">
|
|
34
36
|
|
|
35
37
|
<!-- Additional styles for file operations -->
|
|
36
38
|
<style>
|
|
@@ -139,7 +141,7 @@
|
|
|
139
141
|
<body>
|
|
140
142
|
<!-- Connection Notifications Area -->
|
|
141
143
|
<div id="connection-notifications" class="connection-notifications"></div>
|
|
142
|
-
|
|
144
|
+
|
|
143
145
|
<div class="container">
|
|
144
146
|
<!-- Header Section -->
|
|
145
147
|
<div class="header">
|
|
@@ -176,6 +178,15 @@
|
|
|
176
178
|
<div class="metric-mini-value" id="error-count">0</div>
|
|
177
179
|
<div class="metric-mini-label">Errors</div>
|
|
178
180
|
</div>
|
|
181
|
+
<!-- Debug metrics for troubleshooting -->
|
|
182
|
+
<div class="metric-mini" style="background: rgba(255,255,255,0.05);">
|
|
183
|
+
<div class="metric-mini-value" id="debug-events-received">0</div>
|
|
184
|
+
<div class="metric-mini-label">Received</div>
|
|
185
|
+
</div>
|
|
186
|
+
<div class="metric-mini" style="background: rgba(255,255,255,0.05);">
|
|
187
|
+
<div class="metric-mini-value" id="debug-events-rendered">0</div>
|
|
188
|
+
<div class="metric-mini-label">Rendered</div>
|
|
189
|
+
</div>
|
|
179
190
|
</div>
|
|
180
191
|
</div>
|
|
181
192
|
|
|
@@ -190,7 +201,7 @@
|
|
|
190
201
|
<div class="working-dir-group">
|
|
191
202
|
<label>Working Dir:</label>
|
|
192
203
|
<div class="working-dir-display">
|
|
193
|
-
<span id="working-dir-path" class="working-dir-path" title="Click to browse files • Shift+Click to change directory"
|
|
204
|
+
<span id="working-dir-path" class="working-dir-path" title="Click to browse files • Shift+Click to change directory">Loading...</span>
|
|
194
205
|
<button id="change-dir-btn" class="btn-icon" title="Change working directory">📁</button>
|
|
195
206
|
</div>
|
|
196
207
|
</div>
|
|
@@ -239,18 +250,17 @@
|
|
|
239
250
|
|
|
240
251
|
<!-- Right: Tabbed Content -->
|
|
241
252
|
<div class="events-container">
|
|
242
|
-
<!-- Tab Navigation -->
|
|
253
|
+
<!-- Tab Navigation - Using hash-based navigation -->
|
|
243
254
|
<div class="tab-nav">
|
|
244
|
-
<
|
|
245
|
-
<
|
|
246
|
-
<
|
|
247
|
-
<
|
|
248
|
-
<
|
|
249
|
-
<button class="tab-button" data-tab="code">🧬 Code</button>
|
|
255
|
+
<a href="#events" class="tab-button" data-tab="events">📊 Events</a>
|
|
256
|
+
<a href="#agents" class="tab-button" data-tab="agents">🤖 Agents</a>
|
|
257
|
+
<a href="#tools" class="tab-button" data-tab="tools">🔧 Tools</a>
|
|
258
|
+
<a href="#files" class="tab-button" data-tab="files">📁 Files</a>
|
|
259
|
+
<a href="#activity" class="tab-button" data-tab="activity">🌳 Activity</a>
|
|
250
260
|
</div>
|
|
251
261
|
|
|
252
262
|
<!-- Events Tab -->
|
|
253
|
-
<div class="tab-content
|
|
263
|
+
<div class="tab-content" id="events-tab">
|
|
254
264
|
<div class="tab-filters">
|
|
255
265
|
<input type="text" id="events-search-input" placeholder="Search events...">
|
|
256
266
|
<select id="events-type-filter">
|
|
@@ -385,100 +395,11 @@
|
|
|
385
395
|
</div>
|
|
386
396
|
</div>
|
|
387
397
|
|
|
388
|
-
<!-- Code Tab -->
|
|
389
|
-
<div class="tab-content" id="code-tab">
|
|
390
|
-
<div class="code-container">
|
|
391
|
-
<!-- Simplified header with controls -->
|
|
392
|
-
<div class="code-header-compact">
|
|
393
|
-
<div class="header-left">
|
|
394
|
-
<button id="code-expand-all" class="btn-compact" title="Expand All">⊕</button>
|
|
395
|
-
<button id="code-collapse-all" class="btn-compact" title="Collapse All">⊖</button>
|
|
396
|
-
<button id="code-reset-zoom" class="btn-compact" title="Reset Zoom">⟲</button>
|
|
397
|
-
<button id="code-toggle-legend" class="btn-compact" title="Toggle Legend">ℹ️</button>
|
|
398
|
-
</div>
|
|
399
|
-
<div class="header-center">
|
|
400
|
-
<span class="stat-compact">📁 <span id="file-count">0</span></span>
|
|
401
|
-
<span class="stat-compact">🏛️ <span id="class-count">0</span></span>
|
|
402
|
-
<span class="stat-compact">⚡ <span id="function-count">0</span></span>
|
|
403
|
-
<span class="stat-compact">📝 <span id="line-count">0</span></span>
|
|
404
|
-
</div>
|
|
405
|
-
<div class="header-right">
|
|
406
|
-
<select id="language-filter" class="select-compact">
|
|
407
|
-
<option value="all">All</option>
|
|
408
|
-
<option value="python">Python</option>
|
|
409
|
-
<option value="javascript">JS</option>
|
|
410
|
-
<option value="typescript">TS</option>
|
|
411
|
-
</select>
|
|
412
|
-
<input type="text" id="code-search" placeholder="Search..." class="search-compact">
|
|
413
|
-
</div>
|
|
414
|
-
</div>
|
|
415
|
-
<!-- Advanced options - visible by default -->
|
|
416
|
-
<div class="code-advanced-options-visible">
|
|
417
|
-
<div class="advanced-content">
|
|
418
|
-
<div class="option-group">
|
|
419
|
-
<label>Languages:</label>
|
|
420
|
-
<label><input type="checkbox" class="language-checkbox" value="python" checked> Python</label>
|
|
421
|
-
<label><input type="checkbox" class="language-checkbox" value="javascript" checked> JS</label>
|
|
422
|
-
<label><input type="checkbox" class="language-checkbox" value="typescript" checked> TS</label>
|
|
423
|
-
</div>
|
|
424
|
-
<div class="option-group">
|
|
425
|
-
<label>Ignore: <input type="text" id="ignore-patterns" placeholder="test*, *.spec.js, node_modules" class="input-compact" style="width: 200px;"></label>
|
|
426
|
-
</div>
|
|
427
|
-
</div>
|
|
428
|
-
</div>
|
|
429
|
-
<div id="code-tree-container" class="code-tree-container">
|
|
430
|
-
<div id="code-tree"></div>
|
|
431
|
-
<!-- Collapsible legend -->
|
|
432
|
-
<div class="tree-legend collapsed" id="tree-legend" style="display: none;">
|
|
433
|
-
<button class="legend-close" onclick="document.getElementById('tree-legend').style.display='none'">✕</button>
|
|
434
|
-
<div class="legend-content">
|
|
435
|
-
<div class="legend-column">
|
|
436
|
-
<div class="legend-item"><span class="legend-icon">📦</span> Module</div>
|
|
437
|
-
<div class="legend-item"><span class="legend-icon">🏛️</span> Class</div>
|
|
438
|
-
<div class="legend-item"><span class="legend-icon">⚡</span> Function</div>
|
|
439
|
-
<div class="legend-item"><span class="legend-icon">🔧</span> Method</div>
|
|
440
|
-
</div>
|
|
441
|
-
<div class="legend-column">
|
|
442
|
-
<div class="legend-item"><span class="legend-icon complexity-low">●</span> Low</div>
|
|
443
|
-
<div class="legend-item"><span class="legend-icon complexity-medium">●</span> Med</div>
|
|
444
|
-
<div class="legend-item"><span class="legend-icon complexity-high">●</span> High</div>
|
|
445
|
-
</div>
|
|
446
|
-
</div>
|
|
447
|
-
</div>
|
|
448
|
-
</div>
|
|
449
|
-
<div class="code-breadcrumb" id="code-breadcrumb">
|
|
450
|
-
<div class="breadcrumb-ticker" id="breadcrumb-ticker">
|
|
451
|
-
<span id="breadcrumb-content">Ready to analyze...</span>
|
|
452
|
-
</div>
|
|
453
|
-
</div>
|
|
454
|
-
</div>
|
|
455
|
-
</div>
|
|
456
|
-
|
|
457
398
|
</div>
|
|
458
399
|
</div>
|
|
459
400
|
</div>
|
|
460
401
|
</div>
|
|
461
402
|
|
|
462
|
-
<!-- Code Viewer Modal -->
|
|
463
|
-
<div id="code-viewer-modal" class="modal" style="display: none;">
|
|
464
|
-
<div class="modal-content">
|
|
465
|
-
<div class="modal-header">
|
|
466
|
-
<h2 id="code-viewer-title">Code Viewer</h2>
|
|
467
|
-
<button class="close" onclick="closeCodeViewer()">×</button>
|
|
468
|
-
</div>
|
|
469
|
-
<div class="modal-body">
|
|
470
|
-
<pre><code id="code-viewer-content"></code></pre>
|
|
471
|
-
</div>
|
|
472
|
-
<div class="modal-footer">
|
|
473
|
-
<div class="code-viewer-info">
|
|
474
|
-
<span id="code-viewer-path"></span>
|
|
475
|
-
<span id="code-viewer-lines"></span>
|
|
476
|
-
<span id="code-viewer-language"></span>
|
|
477
|
-
</div>
|
|
478
|
-
<button onclick="closeCodeViewer()">Close</button>
|
|
479
|
-
</div>
|
|
480
|
-
</div>
|
|
481
|
-
</div>
|
|
482
403
|
|
|
483
404
|
<!-- Footer -->
|
|
484
405
|
<div class="footer">
|
|
@@ -511,9 +432,40 @@
|
|
|
511
432
|
<!-- JavaScript Modules -->
|
|
512
433
|
<!-- Load bundled dashboard assets (built with Vite) - with proper initialization order -->
|
|
513
434
|
<script type="module">
|
|
435
|
+
// Set up working directory environment variables
|
|
436
|
+
// These will be used by the working-directory component
|
|
437
|
+
// The server will inject these values through a separate API call
|
|
438
|
+
|
|
439
|
+
// Get the current working directory from the server
|
|
440
|
+
fetch('/api/working-directory')
|
|
441
|
+
.then(response => response.json())
|
|
442
|
+
.then(data => {
|
|
443
|
+
window.processWorkingDirectory = data.working_directory || '/Users/masa/Projects/claude-mpm';
|
|
444
|
+
window.homeDirectory = data.home_directory || '/Users/masa';
|
|
445
|
+
|
|
446
|
+
// Store in session storage for persistence
|
|
447
|
+
if (window.processWorkingDirectory && window.processWorkingDirectory !== '/') {
|
|
448
|
+
sessionStorage.setItem('currentWorkingDirectory', window.processWorkingDirectory);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
// Dispatch event to notify components that working directory is ready
|
|
452
|
+
window.dispatchEvent(new CustomEvent('workingDirectoryInitialized', {
|
|
453
|
+
detail: {
|
|
454
|
+
working_directory: window.processWorkingDirectory,
|
|
455
|
+
home_directory: window.homeDirectory
|
|
456
|
+
}
|
|
457
|
+
}));
|
|
458
|
+
})
|
|
459
|
+
.catch(error => {
|
|
460
|
+
console.error('Failed to get working directory from server:', error);
|
|
461
|
+
// Use defaults as fallback
|
|
462
|
+
window.processWorkingDirectory = '/Users/masa/Projects/claude-mpm';
|
|
463
|
+
window.homeDirectory = '/Users/masa';
|
|
464
|
+
});
|
|
465
|
+
|
|
514
466
|
// Add timestamp-based cache busting and ensure proper loading order
|
|
515
467
|
const timestamp = Date.now();
|
|
516
|
-
|
|
468
|
+
|
|
517
469
|
// Load modules sequentially to ensure dashboard.js loads first
|
|
518
470
|
const loadModule = (src) => {
|
|
519
471
|
return new Promise((resolve, reject) => {
|
|
@@ -525,30 +477,84 @@
|
|
|
525
477
|
document.body.appendChild(script);
|
|
526
478
|
});
|
|
527
479
|
};
|
|
528
|
-
|
|
529
|
-
// Load
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
loadModule('/static/
|
|
533
|
-
loadModule('/static/
|
|
534
|
-
loadModule('/static/
|
|
535
|
-
|
|
480
|
+
|
|
481
|
+
// Load shared services first, then components
|
|
482
|
+
// Load services sequentially to ensure dependencies are available
|
|
483
|
+
loadModule('/static/js/shared/tooltip-service.js')
|
|
484
|
+
.then(() => loadModule('/static/js/shared/dom-helpers.js'))
|
|
485
|
+
.then(() => loadModule('/static/js/shared/event-bus.js'))
|
|
486
|
+
.then(() => loadModule('/static/js/shared/logger.js'))
|
|
487
|
+
.then(() => {
|
|
488
|
+
// CRITICAL: Load socket-client.js FIRST (dependency of socket-manager)
|
|
489
|
+
return loadModule('/static/js/socket-client.js');
|
|
490
|
+
})
|
|
491
|
+
.then(() => {
|
|
492
|
+
// CRITICAL: Load socket-manager BEFORE dashboard.js
|
|
493
|
+
// The source version must be loaded to make SocketManager globally available
|
|
494
|
+
return loadModule('/static/js/components/socket-manager.js');
|
|
495
|
+
})
|
|
496
|
+
.then(() => {
|
|
497
|
+
// Load all required dashboard dependencies BEFORE dashboard.js
|
|
498
|
+
// These must be available globally for the dist/dashboard.js to work
|
|
499
|
+
return Promise.all([
|
|
500
|
+
loadModule('/static/js/components/event-viewer.js'),
|
|
501
|
+
loadModule('/static/js/components/module-viewer.js'),
|
|
502
|
+
loadModule('/static/js/components/session-manager.js'),
|
|
503
|
+
loadModule('/static/js/components/agent-inference.js'),
|
|
504
|
+
loadModule('/static/js/components/agent-hierarchy.js'),
|
|
505
|
+
loadModule('/static/js/components/ui-state-manager.js'),
|
|
506
|
+
loadModule('/static/js/components/event-processor.js'),
|
|
507
|
+
loadModule('/static/js/components/export-manager.js'),
|
|
508
|
+
loadModule('/static/js/components/working-directory.js'),
|
|
509
|
+
loadModule('/static/js/components/file-tool-tracker.js'),
|
|
510
|
+
loadModule('/static/js/components/build-tracker.js')
|
|
511
|
+
]);
|
|
512
|
+
})
|
|
513
|
+
.then(() => {
|
|
514
|
+
// Now load main components including dashboard.js which depends on the above
|
|
515
|
+
return Promise.all([
|
|
516
|
+
loadModule('/static/dist/dashboard.js'), // Use dist version that requires above components
|
|
517
|
+
loadModule('/static/dist/components/activity-tree.js'),
|
|
518
|
+
loadModule('/static/dist/components/file-viewer.js') // File viewer for viewing file contents
|
|
519
|
+
]);
|
|
520
|
+
})
|
|
521
|
+
.then(() => {
|
|
536
522
|
console.log('All dashboard modules loaded successfully');
|
|
537
|
-
|
|
523
|
+
|
|
524
|
+
// Browser Log Viewer initialization is now handled by UIStateManager
|
|
525
|
+
// This prevents duplicate event handlers and tab selection conflicts
|
|
526
|
+
|
|
527
|
+
// Load bulletproof tab isolation fix
|
|
528
|
+
loadModule('/static/js/tab-isolation-fix.js')
|
|
529
|
+
.then(() => {
|
|
530
|
+
console.log('✅ Tab isolation fix loaded successfully');
|
|
531
|
+
})
|
|
532
|
+
.catch(err => {
|
|
533
|
+
console.error('❌ Failed to load tab isolation fix:', err);
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
// Hash navigation will handle default tab based on URL
|
|
537
|
+
// If no hash, default will be 'events' as per hashToTab mapping
|
|
538
|
+
})
|
|
539
|
+
.catch(error => {
|
|
540
|
+
console.error('[CRITICAL] Error loading dashboard modules:', error);
|
|
541
|
+
console.error('Stack trace:', error.stack);
|
|
542
|
+
});
|
|
543
|
+
|
|
538
544
|
// Give modules time to execute and initialize dashboard
|
|
539
545
|
setTimeout(() => {
|
|
540
546
|
console.log('Checking dashboard initialization...');
|
|
541
|
-
|
|
547
|
+
|
|
542
548
|
if (window.dashboard) {
|
|
543
549
|
console.log('Dashboard found, checking auto-connect status...');
|
|
544
|
-
|
|
550
|
+
|
|
545
551
|
// Force auto-connect if not already connected
|
|
546
552
|
if (window.dashboard.socketManager) {
|
|
547
553
|
const socketManager = window.dashboard.socketManager;
|
|
548
|
-
|
|
554
|
+
|
|
549
555
|
if (!socketManager.isConnected() && !socketManager.isConnecting()) {
|
|
550
556
|
console.log('Dashboard loaded but not connected, forcing auto-connect...');
|
|
551
|
-
|
|
557
|
+
|
|
552
558
|
// Try to trigger auto-connect manually
|
|
553
559
|
const params = new URLSearchParams(window.location.search);
|
|
554
560
|
socketManager.initializeFromURL(params);
|
|
@@ -560,23 +566,23 @@
|
|
|
560
566
|
}
|
|
561
567
|
} else {
|
|
562
568
|
console.warn('Dashboard still not initialized after module loading');
|
|
563
|
-
|
|
569
|
+
|
|
564
570
|
// Try to manually trigger initialization
|
|
565
571
|
if (document.readyState === 'complete' || document.readyState === 'interactive') {
|
|
566
572
|
console.log('Document ready, attempting to trigger dashboard initialization...');
|
|
567
573
|
document.dispatchEvent(new Event('DOMContentLoaded'));
|
|
568
574
|
}
|
|
569
575
|
}
|
|
570
|
-
|
|
576
|
+
|
|
571
577
|
// Debug: Test connection settings button
|
|
572
578
|
const connectionToggleBtn = document.getElementById('connection-toggle-btn');
|
|
573
579
|
if (connectionToggleBtn) {
|
|
574
580
|
console.log('Connection toggle button found, testing functionality...');
|
|
575
|
-
|
|
581
|
+
|
|
576
582
|
// Add a debug click handler to ensure the button works
|
|
577
583
|
connectionToggleBtn.addEventListener('click', () => {
|
|
578
584
|
console.log('Connection toggle button clicked (debug handler)');
|
|
579
|
-
|
|
585
|
+
|
|
580
586
|
if (window.dashboard && window.dashboard.socketManager) {
|
|
581
587
|
console.log('Calling socketManager.toggleConnectionControls()');
|
|
582
588
|
window.dashboard.socketManager.toggleConnectionControls();
|
|
@@ -595,9 +601,6 @@
|
|
|
595
601
|
console.error('Connection toggle button not found in DOM');
|
|
596
602
|
}
|
|
597
603
|
}, 1000);
|
|
598
|
-
}).catch(error => {
|
|
599
|
-
console.error('Failed to load dashboard modules:', error);
|
|
600
|
-
});
|
|
601
604
|
</script>
|
|
602
605
|
</body>
|
|
603
606
|
</html>
|
|
@@ -25,20 +25,16 @@ integrate selected features into the main CLI.
|
|
|
25
25
|
Implements error handling and user guidance patterns from awesome-claude-code.
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
|
-
import logging
|
|
29
28
|
import sys
|
|
30
29
|
|
|
31
30
|
import click
|
|
32
31
|
|
|
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
|
-
logger =
|
|
37
|
+
logger = get_logger(__name__)
|
|
42
38
|
|
|
43
39
|
|
|
44
40
|
class CLIContext:
|
|
@@ -53,6 +49,8 @@ class CLIContext:
|
|
|
53
49
|
|
|
54
50
|
def setup_logging(self, debug: bool = False) -> None:
|
|
55
51
|
"""Setup logging based on debug flag."""
|
|
52
|
+
import logging
|
|
53
|
+
|
|
56
54
|
level = logging.DEBUG if debug else logging.INFO
|
|
57
55
|
format_str = (
|
|
58
56
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
@@ -7,7 +7,7 @@ Inspired by awesome-claude-code's template generation approach.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import re
|
|
10
|
-
from datetime import datetime
|
|
10
|
+
from datetime import datetime, timezone
|
|
11
11
|
from typing import Any, Dict, Optional
|
|
12
12
|
|
|
13
13
|
import yaml
|
|
@@ -29,14 +29,16 @@ class AgentProfileGenerator:
|
|
|
29
29
|
if not self.template_path.exists():
|
|
30
30
|
raise FileNotFoundError(f"Template not found: {self.template_path}")
|
|
31
31
|
|
|
32
|
-
with
|
|
32
|
+
with self.template_path.open() as f:
|
|
33
33
|
return yaml.safe_load(f)
|
|
34
34
|
|
|
35
35
|
def generate_profile(self, config: Dict[str, Any]) -> str:
|
|
36
36
|
"""Generate an agent profile from configuration."""
|
|
37
37
|
# Set default values
|
|
38
38
|
config.setdefault("VERSION", "1.0.0")
|
|
39
|
-
config.setdefault(
|
|
39
|
+
config.setdefault(
|
|
40
|
+
"CREATED_DATE", datetime.now(timezone.utc).strftime("%Y-%m-%d")
|
|
41
|
+
)
|
|
40
42
|
config.setdefault("AUTHOR", "claude-mpm")
|
|
41
43
|
|
|
42
44
|
# Convert template to string
|
claude_mpm/hooks/__init__.py
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
"""Hook system for claude-mpm."""
|
|
2
2
|
|
|
3
3
|
from .base_hook import BaseHook, HookContext, HookResult, HookType
|
|
4
|
+
from .failure_learning import (
|
|
5
|
+
FailureDetectionHook,
|
|
6
|
+
FixDetectionHook,
|
|
7
|
+
LearningExtractionHook,
|
|
8
|
+
get_failure_detection_hook,
|
|
9
|
+
get_fix_detection_hook,
|
|
10
|
+
get_learning_extraction_hook,
|
|
11
|
+
)
|
|
12
|
+
from .kuzu_enrichment_hook import KuzuEnrichmentHook, get_kuzu_enrichment_hook
|
|
13
|
+
from .kuzu_memory_hook import KuzuMemoryHook, get_kuzu_memory_hook
|
|
14
|
+
from .kuzu_response_hook import KuzuResponseHook, get_kuzu_response_hook
|
|
15
|
+
from .session_resume_hook import (
|
|
16
|
+
SessionResumeStartupHook,
|
|
17
|
+
get_session_resume_hook,
|
|
18
|
+
trigger_session_resume_check,
|
|
19
|
+
)
|
|
4
20
|
|
|
5
|
-
__all__ = [
|
|
21
|
+
__all__ = [
|
|
22
|
+
"BaseHook",
|
|
23
|
+
"FailureDetectionHook",
|
|
24
|
+
"FixDetectionHook",
|
|
25
|
+
"HookContext",
|
|
26
|
+
"HookResult",
|
|
27
|
+
"HookType",
|
|
28
|
+
"KuzuEnrichmentHook",
|
|
29
|
+
"KuzuMemoryHook",
|
|
30
|
+
"KuzuResponseHook",
|
|
31
|
+
"LearningExtractionHook",
|
|
32
|
+
"SessionResumeStartupHook",
|
|
33
|
+
"get_failure_detection_hook",
|
|
34
|
+
"get_fix_detection_hook",
|
|
35
|
+
"get_kuzu_enrichment_hook",
|
|
36
|
+
"get_kuzu_memory_hook",
|
|
37
|
+
"get_kuzu_response_hook",
|
|
38
|
+
"get_learning_extraction_hook",
|
|
39
|
+
"get_session_resume_hook",
|
|
40
|
+
"trigger_session_resume_check",
|
|
41
|
+
]
|
claude_mpm/hooks/base_hook.py
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"""Base hook class and types for claude-mpm hook system."""
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
-
import logging
|
|
5
4
|
from abc import ABC, abstractmethod
|
|
6
5
|
from dataclasses import dataclass
|
|
7
|
-
from datetime import datetime
|
|
6
|
+
from datetime import datetime, timezone
|
|
8
7
|
from enum import Enum
|
|
9
8
|
from typing import Any, Dict, Optional
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
from claude_mpm.core.logging_utils import get_logger
|
|
11
|
+
|
|
12
|
+
logger = get_logger(__name__)
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
class HookType(Enum):
|
|
@@ -35,7 +36,7 @@ class HookContext:
|
|
|
35
36
|
def __post_init__(self):
|
|
36
37
|
"""Ensure timestamp is set."""
|
|
37
38
|
if not hasattr(self, "timestamp") or self.timestamp is None:
|
|
38
|
-
self.timestamp = datetime.now()
|
|
39
|
+
self.timestamp = datetime.now(timezone.utc)
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
@dataclass
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -131,7 +131,7 @@ class SocketIOConnectionPool:
|
|
|
131
131
|
"source": "connection_pool",
|
|
132
132
|
},
|
|
133
133
|
)
|
|
134
|
-
except:
|
|
134
|
+
except Exception:
|
|
135
135
|
pass # Ignore ping errors
|
|
136
136
|
return client
|
|
137
137
|
except Exception:
|
|
@@ -168,10 +168,10 @@ class SocketIOConnectionPool:
|
|
|
168
168
|
},
|
|
169
169
|
)
|
|
170
170
|
return True
|
|
171
|
-
except:
|
|
171
|
+
except Exception:
|
|
172
172
|
# If ping fails, connection might be dead
|
|
173
173
|
return client.connected # Fall back to basic check
|
|
174
|
-
except:
|
|
174
|
+
except Exception:
|
|
175
175
|
return False
|
|
176
176
|
|
|
177
177
|
def _close_connection(self, client: Any) -> None:
|
|
@@ -179,7 +179,7 @@ class SocketIOConnectionPool:
|
|
|
179
179
|
try:
|
|
180
180
|
if client:
|
|
181
181
|
client.disconnect()
|
|
182
|
-
except:
|
|
182
|
+
except Exception:
|
|
183
183
|
pass
|
|
184
184
|
|
|
185
185
|
def _cleanup_dead_connections(self) -> None:
|