claude-mpm 4.21.3__py3-none-any.whl → 5.1.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_PM.md +12 -0
- claude_mpm/agents/{OUTPUT_STYLE.md → CLAUDE_MPM_OUTPUT_STYLE.md} +3 -48
- claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +2002 -0
- claude_mpm/agents/PM_INSTRUCTIONS.md +1239 -674
- claude_mpm/agents/WORKFLOW.md +75 -2
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +1 -4
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/frontmatter_validator.py +69 -1
- claude_mpm/agents/templates/circuit-breakers.md +1254 -0
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
- claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
- claude_mpm/agents/templates/research-gate-examples.md +669 -0
- claude_mpm/agents/templates/structured-questions-examples.md +615 -0
- claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
- claude_mpm/agents/templates/ticketing-examples.md +277 -0
- claude_mpm/cli/__init__.py +37 -2
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/agent_source.py +774 -0
- claude_mpm/cli/commands/agent_state_manager.py +188 -30
- claude_mpm/cli/commands/agents.py +1128 -36
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/auto_configure.py +537 -239
- claude_mpm/cli/commands/cleanup.py +1 -1
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +935 -45
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mpm_init/core.py +50 -2
- claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
- claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +125 -167
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +757 -20
- claude_mpm/cli/executor.py +78 -3
- claude_mpm/cli/interactive/agent_wizard.py +1032 -47
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +310 -4
- claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
- claude_mpm/cli/parsers/base_parser.py +53 -0
- claude_mpm/cli/parsers/config_parser.py +96 -43
- claude_mpm/cli/parsers/skill_source_parser.py +169 -0
- claude_mpm/cli/parsers/skills_parser.py +145 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +564 -108
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/cli_module/commands.py +1 -1
- claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
- claude_mpm/commands/mpm-agents-detect.md +9 -0
- claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
- claude_mpm/commands/mpm-agents-recommend.md +9 -0
- claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
- claude_mpm/commands/mpm-doctor.md +9 -0
- claude_mpm/commands/mpm-help.md +14 -2
- claude_mpm/commands/mpm-init.md +27 -2
- claude_mpm/commands/mpm-monitor.md +9 -0
- claude_mpm/commands/mpm-postmortem.md +123 -0
- claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
- claude_mpm/commands/mpm-status.md +9 -0
- claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
- claude_mpm/commands/mpm-ticket-view.md +552 -0
- claude_mpm/commands/mpm-version.md +9 -0
- claude_mpm/commands/mpm.md +10 -0
- claude_mpm/config/agent_presets.py +488 -0
- claude_mpm/config/agent_sources.py +325 -0
- claude_mpm/config/skill_presets.py +392 -0
- claude_mpm/config/skill_sources.py +590 -0
- claude_mpm/constants.py +13 -0
- claude_mpm/core/api_validator.py +1 -1
- claude_mpm/core/claude_runner.py +19 -35
- claude_mpm/core/config.py +24 -0
- claude_mpm/core/constants.py +1 -1
- claude_mpm/core/framework/__init__.py +3 -16
- claude_mpm/core/framework/loaders/file_loader.py +54 -101
- claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
- claude_mpm/core/framework/processors/metadata_processor.py +1 -1
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +131 -10
- claude_mpm/core/logger.py +3 -1
- claude_mpm/core/oneshot_session.py +110 -8
- claude_mpm/core/output_style_manager.py +173 -43
- claude_mpm/core/protocols/__init__.py +23 -0
- claude_mpm/core/protocols/runner_protocol.py +103 -0
- claude_mpm/core/protocols/session_protocol.py +131 -0
- claude_mpm/core/shared/singleton_manager.py +11 -4
- claude_mpm/core/system_context.py +38 -0
- claude_mpm/core/unified_agent_registry.py +129 -1
- claude_mpm/core/unified_config.py +22 -0
- claude_mpm/dashboard/static/css/activity.css +69 -69
- claude_mpm/dashboard/static/css/connection-status.css +10 -10
- claude_mpm/dashboard/static/css/dashboard.css +15 -15
- claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
- claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
- claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
- claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +76 -58
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- claude_mpm/experimental/cli_enhancements.py +1 -5
- claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
- claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
- claude_mpm/hooks/claude_hooks/installer.py +45 -0
- claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
- claude_mpm/hooks/failure_learning/__init__.py +2 -8
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
- claude_mpm/hooks/kuzu_response_hook.py +1 -5
- claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
- claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
- claude_mpm/models/agent_definition.py +7 -0
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- claude_mpm/services/agents/agent_builder.py +45 -9
- claude_mpm/services/agents/agent_preset_service.py +238 -0
- claude_mpm/services/agents/agent_selection_service.py +484 -0
- claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
- claude_mpm/services/agents/cache_git_manager.py +621 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
- claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
- claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
- claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
- claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +225 -18
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +557 -0
- claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
- claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
- claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
- claude_mpm/services/agents/git_source_manager.py +629 -0
- claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
- claude_mpm/services/agents/local_template_manager.py +50 -10
- claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
- claude_mpm/services/agents/sources/__init__.py +13 -0
- claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
- claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
- claude_mpm/services/agents/startup_sync.py +239 -0
- claude_mpm/services/agents/toolchain_detector.py +474 -0
- claude_mpm/services/analysis/__init__.py +25 -0
- claude_mpm/services/analysis/postmortem_reporter.py +474 -0
- claude_mpm/services/analysis/postmortem_service.py +765 -0
- claude_mpm/services/cli/session_pause_manager.py +1 -1
- claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
- claude_mpm/services/command_deployment_service.py +200 -6
- claude_mpm/services/core/base.py +7 -2
- claude_mpm/services/core/interfaces/__init__.py +1 -3
- claude_mpm/services/core/interfaces/health.py +1 -4
- claude_mpm/services/core/models/__init__.py +2 -11
- claude_mpm/services/diagnostics/checks/__init__.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
- claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
- claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
- claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/event_bus/event_bus.py +36 -3
- claude_mpm/services/events/consumers/logging.py +1 -2
- claude_mpm/services/git/__init__.py +21 -0
- claude_mpm/services/git/git_operations_service.py +494 -0
- claude_mpm/services/github/__init__.py +21 -0
- claude_mpm/services/github/github_cli_service.py +397 -0
- claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
- claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
- claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
- claude_mpm/services/instructions/__init__.py +9 -0
- claude_mpm/services/instructions/instruction_cache_service.py +374 -0
- claude_mpm/services/local_ops/__init__.py +3 -13
- claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
- claude_mpm/services/local_ops/health_manager.py +1 -4
- claude_mpm/services/local_ops/process_manager.py +1 -1
- claude_mpm/services/local_ops/resource_monitor.py +2 -2
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
- claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/memory/optimizer.py +1 -1
- claude_mpm/services/model/model_router.py +8 -9
- claude_mpm/services/monitor/daemon.py +29 -9
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/native_agent_converter.py +356 -0
- claude_mpm/services/port_manager.py +1 -1
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/documentation_manager.py +2 -1
- claude_mpm/services/project/project_organizer.py +4 -0
- claude_mpm/services/project/toolchain_analyzer.py +3 -1
- claude_mpm/services/runner_configuration_service.py +17 -3
- claude_mpm/services/self_upgrade_service.py +165 -7
- claude_mpm/services/session_management_service.py +16 -4
- claude_mpm/services/skills/__init__.py +18 -0
- claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
- claude_mpm/services/skills/skill_discovery_service.py +568 -0
- claude_mpm/services/skills_config.py +547 -0
- claude_mpm/services/skills_deployer.py +955 -0
- claude_mpm/services/socketio/handlers/connection.py +1 -1
- claude_mpm/services/socketio/handlers/git.py +2 -2
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/system_instructions_service.py +1 -3
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
- claude_mpm/skills/bundled/performance-profiling.md +6 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
- claude_mpm/skills/skills_registry.py +0 -1
- claude_mpm/templates/questions/__init__.py +38 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +311 -0
- claude_mpm/templates/questions/project_init.py +385 -0
- claude_mpm/templates/questions/ticket_mgmt.py +394 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/tools/code_tree_analyzer/analysis.py +1 -1
- claude_mpm/utils/agent_dependency_loader.py +80 -13
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +244 -0
- claude_mpm/utils/log_cleanup.py +3 -3
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +3 -5
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/METADATA +496 -65
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/RECORD +284 -443
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
- claude_mpm/agents/templates/agent-manager.json +0 -273
- claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
- claude_mpm/agents/templates/api_qa.json +0 -180
- claude_mpm/agents/templates/circuit_breakers.md +0 -638
- claude_mpm/agents/templates/clerk-ops.json +0 -235
- claude_mpm/agents/templates/code_analyzer.json +0 -101
- claude_mpm/agents/templates/content-agent.json +0 -358
- claude_mpm/agents/templates/dart_engineer.json +0 -307
- claude_mpm/agents/templates/data_engineer.json +0 -225
- claude_mpm/agents/templates/documentation.json +0 -211
- claude_mpm/agents/templates/engineer.json +0 -210
- claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
- claude_mpm/agents/templates/golang_engineer.json +0 -270
- claude_mpm/agents/templates/imagemagick.json +0 -264
- claude_mpm/agents/templates/java_engineer.json +0 -346
- claude_mpm/agents/templates/local_ops_agent.json +0 -1840
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
- claude_mpm/agents/templates/memory_manager.json +0 -158
- claude_mpm/agents/templates/nextjs_engineer.json +0 -285
- claude_mpm/agents/templates/ops.json +0 -185
- claude_mpm/agents/templates/php-engineer.json +0 -287
- claude_mpm/agents/templates/product_owner.json +0 -338
- claude_mpm/agents/templates/project_organizer.json +0 -140
- claude_mpm/agents/templates/prompt-engineer.json +0 -737
- claude_mpm/agents/templates/python_engineer.json +0 -387
- claude_mpm/agents/templates/qa.json +0 -242
- claude_mpm/agents/templates/react_engineer.json +0 -238
- claude_mpm/agents/templates/refactoring_engineer.json +0 -276
- claude_mpm/agents/templates/research.json +0 -188
- claude_mpm/agents/templates/ruby-engineer.json +0 -280
- claude_mpm/agents/templates/rust_engineer.json +0 -275
- claude_mpm/agents/templates/security.json +0 -202
- claude_mpm/agents/templates/svelte-engineer.json +0 -225
- claude_mpm/agents/templates/ticketing.json +0 -177
- claude_mpm/agents/templates/typescript_engineer.json +0 -285
- claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
- claude_mpm/agents/templates/version_control.json +0 -157
- claude_mpm/agents/templates/web_qa.json +0 -399
- claude_mpm/agents/templates/web_ui.json +0 -189
- claude_mpm/commands/mpm-tickets.md +0 -102
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
- claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
- claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
- claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
- claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
- claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
- claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
- claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
- claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
- claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
- claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
- claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
- claude_mpm/dashboard/static/built/react/events.js +0 -30
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
- claude_mpm/dashboard/static/built/shared/logger.js +0 -385
- claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/built/socket-client.js +0 -2
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm/dashboard/static/dist/react/events.js +0 -30
- claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/js/shared/logger.js +0 -385
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
- claude_mpm/dashboard/static/legacy/activity.html +0 -736
- claude_mpm/dashboard/static/legacy/agents.html +0 -786
- claude_mpm/dashboard/static/legacy/files.html +0 -747
- claude_mpm/dashboard/static/legacy/tools.html +0 -831
- claude_mpm/dashboard/static/monitors.html +0 -431
- claude_mpm/dashboard/static/production/events.html +0 -659
- claude_mpm/dashboard/static/production/main.html +0 -698
- claude_mpm/dashboard/static/production/monitors.html +0 -483
- claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
- claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
- claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
- claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
- /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
- /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
- /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/top_level.txt +0 -0
claude_mpm/core/claude_runner.py
CHANGED
|
@@ -6,15 +6,9 @@ from typing import Optional
|
|
|
6
6
|
|
|
7
7
|
# Core imports that don't cause circular dependencies
|
|
8
8
|
from claude_mpm.core.container import get_container
|
|
9
|
-
from claude_mpm.core.interfaces import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
from claude_mpm.core.logging_config import (
|
|
13
|
-
get_logger,
|
|
14
|
-
)
|
|
15
|
-
from claude_mpm.services.core.interfaces import (
|
|
16
|
-
RunnerConfigurationInterface,
|
|
17
|
-
)
|
|
9
|
+
from claude_mpm.core.interfaces import AgentDeploymentInterface
|
|
10
|
+
from claude_mpm.core.logging_config import get_logger
|
|
11
|
+
from claude_mpm.services.core.interfaces import RunnerConfigurationInterface
|
|
18
12
|
|
|
19
13
|
# Type checking imports to avoid circular dependencies
|
|
20
14
|
|
|
@@ -42,8 +36,19 @@ class ClaudeRunner:
|
|
|
42
36
|
launch_method: str = "exec", # "exec" or "subprocess"
|
|
43
37
|
enable_websocket: bool = False,
|
|
44
38
|
websocket_port: int = 8765,
|
|
39
|
+
use_native_agents: bool = False, # Use --agents flag instead of file deployment
|
|
45
40
|
):
|
|
46
|
-
"""Initialize the Claude runner.
|
|
41
|
+
"""Initialize the Claude runner.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
enable_tickets: Enable ticket extraction (deprecated)
|
|
45
|
+
log_level: Logging level
|
|
46
|
+
claude_args: Additional arguments for Claude CLI
|
|
47
|
+
launch_method: "exec" or "subprocess" launch mode
|
|
48
|
+
enable_websocket: Enable WebSocket server
|
|
49
|
+
websocket_port: WebSocket server port
|
|
50
|
+
use_native_agents: Use --agents CLI flag instead of .claude/agents/ deployment
|
|
51
|
+
"""
|
|
47
52
|
self.logger = get_logger(__name__)
|
|
48
53
|
|
|
49
54
|
# Initialize configuration service
|
|
@@ -75,6 +80,7 @@ class ClaudeRunner:
|
|
|
75
80
|
launch_method=launch_method,
|
|
76
81
|
enable_websocket=enable_websocket,
|
|
77
82
|
websocket_port=websocket_port,
|
|
83
|
+
use_native_agents=use_native_agents,
|
|
78
84
|
)
|
|
79
85
|
|
|
80
86
|
# Set configuration attributes
|
|
@@ -84,6 +90,7 @@ class ClaudeRunner:
|
|
|
84
90
|
self.launch_method = config_data["launch_method"]
|
|
85
91
|
self.enable_websocket = config_data["enable_websocket"]
|
|
86
92
|
self.websocket_port = config_data["websocket_port"]
|
|
93
|
+
self.use_native_agents = config_data.get("use_native_agents", False)
|
|
87
94
|
self.config = config_data["config"]
|
|
88
95
|
|
|
89
96
|
# Initialize project logger using the service
|
|
@@ -795,31 +802,8 @@ Use these agents to delegate specialized work via the Task tool.
|
|
|
795
802
|
raise RuntimeError("Subprocess launcher service not available")
|
|
796
803
|
|
|
797
804
|
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
return """You are Claude Code running in Claude MPM (Multi-Agent Project Manager).
|
|
801
|
-
|
|
802
|
-
You have access to native subagents via the Task tool with subagent_type parameter:
|
|
803
|
-
- engineer: For coding, implementation, and technical tasks
|
|
804
|
-
- qa: For testing, validation, and quality assurance
|
|
805
|
-
- documentation: For docs, guides, and explanations
|
|
806
|
-
- research: For investigation and analysis
|
|
807
|
-
- security: For security-related tasks
|
|
808
|
-
- ops: For deployment and infrastructure
|
|
809
|
-
- version-control: For git and version management
|
|
810
|
-
- data-engineer: For data processing and APIs
|
|
811
|
-
|
|
812
|
-
Use these agents by calling: Task(description="task description", subagent_type="agent_name")
|
|
813
|
-
|
|
814
|
-
IMPORTANT: The Task tool accepts both naming formats:
|
|
815
|
-
- Capitalized format: "Research", "Engineer", "QA", "Version Control", "Data Engineer"
|
|
816
|
-
- Lowercase format: "research", "engineer", "qa", "version-control", "data-engineer"
|
|
817
|
-
|
|
818
|
-
Both formats work correctly. When you see capitalized names (matching TodoWrite prefixes),
|
|
819
|
-
automatically normalize them to lowercase-hyphenated format for the Task tool.
|
|
820
|
-
|
|
821
|
-
Work efficiently and delegate appropriately to subagents when needed."""
|
|
822
|
-
|
|
805
|
+
# Moved to claude_mpm.core.system_context to avoid circular imports
|
|
806
|
+
from claude_mpm.core.system_context import create_simple_context
|
|
823
807
|
|
|
824
808
|
# Backward compatibility alias
|
|
825
809
|
SimpleClaudeRunner = ClaudeRunner
|
claude_mpm/core/config.py
CHANGED
|
@@ -583,6 +583,30 @@ class Config:
|
|
|
583
583
|
"auto_save": True, # Enable automatic session saving
|
|
584
584
|
"save_interval": 300, # Auto-save interval in seconds (5 minutes)
|
|
585
585
|
},
|
|
586
|
+
# Update checking configuration
|
|
587
|
+
"updates": {
|
|
588
|
+
"check_enabled": True, # Enable automatic update checks
|
|
589
|
+
"check_frequency": "daily", # Options: "always", "daily", "weekly", "never"
|
|
590
|
+
"check_claude_code": True, # Check Claude Code version compatibility
|
|
591
|
+
"auto_upgrade": False, # Automatically upgrade without prompting (use with caution)
|
|
592
|
+
"cache_ttl": 86400, # Cache update check results (24 hours)
|
|
593
|
+
},
|
|
594
|
+
# Agent synchronization configuration
|
|
595
|
+
"agent_sync": {
|
|
596
|
+
"enabled": True, # Enable automatic agent sync on startup
|
|
597
|
+
"sources": [
|
|
598
|
+
{
|
|
599
|
+
"id": "github-remote",
|
|
600
|
+
"url": "https://raw.githubusercontent.com/bobmatnyc/claude-mpm-agents/main/agents",
|
|
601
|
+
"priority": 100,
|
|
602
|
+
"enabled": True,
|
|
603
|
+
}
|
|
604
|
+
],
|
|
605
|
+
"sync_interval": "startup", # Options: "startup", "hourly", "daily", "manual"
|
|
606
|
+
"cache_dir": str(
|
|
607
|
+
Path.home() / ".claude-mpm" / "cache" / "remote-agents"
|
|
608
|
+
),
|
|
609
|
+
},
|
|
586
610
|
}
|
|
587
611
|
|
|
588
612
|
# Apply defaults for missing keys
|
claude_mpm/core/constants.py
CHANGED
|
@@ -4,22 +4,9 @@ This module provides the modular framework loading system with specialized compo
|
|
|
4
4
|
for handling different aspects of framework initialization and management.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
from .formatters import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
ContextGenerator,
|
|
11
|
-
)
|
|
12
|
-
from .loaders import (
|
|
13
|
-
AgentLoader,
|
|
14
|
-
FileLoader,
|
|
15
|
-
InstructionLoader,
|
|
16
|
-
PackagedLoader,
|
|
17
|
-
)
|
|
18
|
-
from .processors import (
|
|
19
|
-
MemoryProcessor,
|
|
20
|
-
MetadataProcessor,
|
|
21
|
-
TemplateProcessor,
|
|
22
|
-
)
|
|
7
|
+
from .formatters import CapabilityGenerator, ContentFormatter, ContextGenerator
|
|
8
|
+
from .loaders import AgentLoader, FileLoader, InstructionLoader, PackagedLoader
|
|
9
|
+
from .processors import MemoryProcessor, MetadataProcessor, TemplateProcessor
|
|
23
10
|
|
|
24
11
|
__all__ = [
|
|
25
12
|
"AgentLoader",
|
|
@@ -66,6 +66,53 @@ class FileLoader:
|
|
|
66
66
|
if "INSTRUCTIONS.md" in str(file_path):
|
|
67
67
|
self.framework_last_modified = timestamp
|
|
68
68
|
|
|
69
|
+
def _load_tier_file(
|
|
70
|
+
self,
|
|
71
|
+
filename: str,
|
|
72
|
+
current_dir: Path,
|
|
73
|
+
framework_path: Optional[Path] = None,
|
|
74
|
+
include_system: bool = False,
|
|
75
|
+
) -> tuple[Optional[str], Optional[str]]:
|
|
76
|
+
"""Load file with tier precedence: project → user → system.
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
filename: Name of file to load (e.g., "INSTRUCTIONS.md")
|
|
80
|
+
current_dir: Current working directory for project-level
|
|
81
|
+
framework_path: Path to framework installation for system-level
|
|
82
|
+
include_system: Whether to check system-level path
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
Tuple of (content, level) where level is 'project', 'user', 'system', or None
|
|
86
|
+
"""
|
|
87
|
+
# Check project-level (highest priority)
|
|
88
|
+
project_path = current_dir / ".claude-mpm" / filename
|
|
89
|
+
if project_path.exists():
|
|
90
|
+
loaded_content = self.try_load_file(
|
|
91
|
+
project_path, f"project-specific {filename}"
|
|
92
|
+
)
|
|
93
|
+
if loaded_content:
|
|
94
|
+
self.logger.info(f"Using project-specific {filename} from .claude-mpm/")
|
|
95
|
+
return loaded_content, "project"
|
|
96
|
+
|
|
97
|
+
# Check user-level (medium priority)
|
|
98
|
+
user_path = Path.home() / ".claude-mpm" / filename
|
|
99
|
+
if user_path.exists():
|
|
100
|
+
loaded_content = self.try_load_file(user_path, f"user-specific {filename}")
|
|
101
|
+
if loaded_content:
|
|
102
|
+
self.logger.info(f"Using user-specific {filename} from ~/.claude-mpm/")
|
|
103
|
+
return loaded_content, "user"
|
|
104
|
+
|
|
105
|
+
# Check system-level (lowest priority)
|
|
106
|
+
if include_system and framework_path and framework_path != Path("__PACKAGED__"):
|
|
107
|
+
system_path = framework_path / "src" / "claude_mpm" / "agents" / filename
|
|
108
|
+
if system_path.exists():
|
|
109
|
+
loaded_content = self.try_load_file(system_path, f"system {filename}")
|
|
110
|
+
if loaded_content:
|
|
111
|
+
self.logger.info(f"Using system {filename}")
|
|
112
|
+
return loaded_content, "system"
|
|
113
|
+
|
|
114
|
+
return None, None
|
|
115
|
+
|
|
69
116
|
def load_instructions_file(
|
|
70
117
|
self, current_dir: Path
|
|
71
118
|
) -> tuple[Optional[str], Optional[str]]:
|
|
@@ -82,31 +129,7 @@ class FileLoader:
|
|
|
82
129
|
Returns:
|
|
83
130
|
Tuple of (content, level) where level is 'project', 'user', or None
|
|
84
131
|
"""
|
|
85
|
-
|
|
86
|
-
project_instructions_path = current_dir / ".claude-mpm" / "INSTRUCTIONS.md"
|
|
87
|
-
if project_instructions_path.exists():
|
|
88
|
-
loaded_content = self.try_load_file(
|
|
89
|
-
project_instructions_path, "project-specific INSTRUCTIONS.md"
|
|
90
|
-
)
|
|
91
|
-
if loaded_content:
|
|
92
|
-
self.logger.info(
|
|
93
|
-
"Using project-specific PM instructions from .claude-mpm/INSTRUCTIONS.md"
|
|
94
|
-
)
|
|
95
|
-
return loaded_content, "project"
|
|
96
|
-
|
|
97
|
-
# Check for user-specific INSTRUCTIONS.md
|
|
98
|
-
user_instructions_path = Path.home() / ".claude-mpm" / "INSTRUCTIONS.md"
|
|
99
|
-
if user_instructions_path.exists():
|
|
100
|
-
loaded_content = self.try_load_file(
|
|
101
|
-
user_instructions_path, "user-specific INSTRUCTIONS.md"
|
|
102
|
-
)
|
|
103
|
-
if loaded_content:
|
|
104
|
-
self.logger.info(
|
|
105
|
-
"Using user-specific PM instructions from ~/.claude-mpm/INSTRUCTIONS.md"
|
|
106
|
-
)
|
|
107
|
-
return loaded_content, "user"
|
|
108
|
-
|
|
109
|
-
return None, None
|
|
132
|
+
return self._load_tier_file("INSTRUCTIONS.md", current_dir)
|
|
110
133
|
|
|
111
134
|
def load_workflow_file(
|
|
112
135
|
self, current_dir: Path, framework_path: Path
|
|
@@ -126,44 +149,9 @@ class FileLoader:
|
|
|
126
149
|
Returns:
|
|
127
150
|
Tuple of (content, level) where level is 'project', 'user', 'system', or None
|
|
128
151
|
"""
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
loaded_content = self.try_load_file(
|
|
133
|
-
project_workflow_path, "project-specific WORKFLOW.md"
|
|
134
|
-
)
|
|
135
|
-
if loaded_content:
|
|
136
|
-
self.logger.info(
|
|
137
|
-
"Using project-specific workflow instructions from .claude-mpm/WORKFLOW.md"
|
|
138
|
-
)
|
|
139
|
-
return loaded_content, "project"
|
|
140
|
-
|
|
141
|
-
# Check for user-specific WORKFLOW.md (medium priority)
|
|
142
|
-
user_workflow_path = Path.home() / ".claude-mpm" / "WORKFLOW.md"
|
|
143
|
-
if user_workflow_path.exists():
|
|
144
|
-
loaded_content = self.try_load_file(
|
|
145
|
-
user_workflow_path, "user-specific WORKFLOW.md"
|
|
146
|
-
)
|
|
147
|
-
if loaded_content:
|
|
148
|
-
self.logger.info(
|
|
149
|
-
"Using user-specific workflow instructions from ~/.claude-mpm/WORKFLOW.md"
|
|
150
|
-
)
|
|
151
|
-
return loaded_content, "user"
|
|
152
|
-
|
|
153
|
-
# Fall back to system workflow (lowest priority)
|
|
154
|
-
if framework_path and framework_path != Path("__PACKAGED__"):
|
|
155
|
-
system_workflow_path = (
|
|
156
|
-
framework_path / "src" / "claude_mpm" / "agents" / "WORKFLOW.md"
|
|
157
|
-
)
|
|
158
|
-
if system_workflow_path.exists():
|
|
159
|
-
loaded_content = self.try_load_file(
|
|
160
|
-
system_workflow_path, "system WORKFLOW.md"
|
|
161
|
-
)
|
|
162
|
-
if loaded_content:
|
|
163
|
-
self.logger.info("Using system workflow instructions")
|
|
164
|
-
return loaded_content, "system"
|
|
165
|
-
|
|
166
|
-
return None, None
|
|
152
|
+
return self._load_tier_file(
|
|
153
|
+
"WORKFLOW.md", current_dir, framework_path, include_system=True
|
|
154
|
+
)
|
|
167
155
|
|
|
168
156
|
def load_memory_file(
|
|
169
157
|
self, current_dir: Path, framework_path: Path
|
|
@@ -183,41 +171,6 @@ class FileLoader:
|
|
|
183
171
|
Returns:
|
|
184
172
|
Tuple of (content, level) where level is 'project', 'user', 'system', or None
|
|
185
173
|
"""
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
loaded_content = self.try_load_file(
|
|
190
|
-
project_memory_path, "project-specific MEMORY.md"
|
|
191
|
-
)
|
|
192
|
-
if loaded_content:
|
|
193
|
-
self.logger.info(
|
|
194
|
-
"Using project-specific memory instructions from .claude-mpm/MEMORY.md"
|
|
195
|
-
)
|
|
196
|
-
return loaded_content, "project"
|
|
197
|
-
|
|
198
|
-
# Check for user-specific MEMORY.md (medium priority)
|
|
199
|
-
user_memory_path = Path.home() / ".claude-mpm" / "MEMORY.md"
|
|
200
|
-
if user_memory_path.exists():
|
|
201
|
-
loaded_content = self.try_load_file(
|
|
202
|
-
user_memory_path, "user-specific MEMORY.md"
|
|
203
|
-
)
|
|
204
|
-
if loaded_content:
|
|
205
|
-
self.logger.info(
|
|
206
|
-
"Using user-specific memory instructions from ~/.claude-mpm/MEMORY.md"
|
|
207
|
-
)
|
|
208
|
-
return loaded_content, "user"
|
|
209
|
-
|
|
210
|
-
# Fall back to system memory instructions (lowest priority)
|
|
211
|
-
if framework_path and framework_path != Path("__PACKAGED__"):
|
|
212
|
-
system_memory_path = (
|
|
213
|
-
framework_path / "src" / "claude_mpm" / "agents" / "MEMORY.md"
|
|
214
|
-
)
|
|
215
|
-
if system_memory_path.exists():
|
|
216
|
-
loaded_content = self.try_load_file(
|
|
217
|
-
system_memory_path, "system MEMORY.md"
|
|
218
|
-
)
|
|
219
|
-
if loaded_content:
|
|
220
|
-
self.logger.info("Using system memory instructions")
|
|
221
|
-
return loaded_content, "system"
|
|
222
|
-
|
|
223
|
-
return None, None
|
|
174
|
+
return self._load_tier_file(
|
|
175
|
+
"MEMORY.md", current_dir, framework_path, include_system=True
|
|
176
|
+
)
|
|
@@ -91,10 +91,28 @@ class InstructionLoader:
|
|
|
91
91
|
def _load_filesystem_framework_instructions(self, content: Dict[str, Any]) -> None:
|
|
92
92
|
"""Load framework instructions from filesystem.
|
|
93
93
|
|
|
94
|
+
Priority order:
|
|
95
|
+
1. Deployed compiled file: .claude-mpm/PM_INSTRUCTIONS_DEPLOYED.md (HIGHEST PRIORITY)
|
|
96
|
+
2. Source file (development): src/claude_mpm/agents/PM_INSTRUCTIONS.md
|
|
97
|
+
3. Legacy file (backward compat): src/claude_mpm/agents/INSTRUCTIONS.md
|
|
98
|
+
|
|
94
99
|
Args:
|
|
95
100
|
content: Dictionary to update with framework instructions
|
|
96
101
|
"""
|
|
97
|
-
#
|
|
102
|
+
# PRIORITY 1: Check for compiled/deployed version in .claude-mpm/
|
|
103
|
+
# This is the merged PM_INSTRUCTIONS.md + WORKFLOW.md + MEMORY.md
|
|
104
|
+
deployed_path = self.current_dir / ".claude-mpm" / "PM_INSTRUCTIONS_DEPLOYED.md"
|
|
105
|
+
if deployed_path.exists():
|
|
106
|
+
loaded_content = self.file_loader.try_load_file(
|
|
107
|
+
deployed_path, "deployed PM_INSTRUCTIONS_DEPLOYED.md"
|
|
108
|
+
)
|
|
109
|
+
if loaded_content:
|
|
110
|
+
content["framework_instructions"] = loaded_content
|
|
111
|
+
content["loaded"] = True
|
|
112
|
+
self.logger.info("Loaded PM_INSTRUCTIONS_DEPLOYED.md from .claude-mpm/")
|
|
113
|
+
return # Stop here - deployed version takes precedence
|
|
114
|
+
|
|
115
|
+
# PRIORITY 2: Development mode - load from source PM_INSTRUCTIONS.md
|
|
98
116
|
pm_instructions_path = (
|
|
99
117
|
self.framework_path / "src" / "claude_mpm" / "agents" / "PM_INSTRUCTIONS.md"
|
|
100
118
|
)
|
|
@@ -102,16 +120,18 @@ class InstructionLoader:
|
|
|
102
120
|
self.framework_path / "src" / "claude_mpm" / "agents" / "INSTRUCTIONS.md"
|
|
103
121
|
)
|
|
104
122
|
|
|
105
|
-
# Try loading new consolidated file
|
|
123
|
+
# Try loading new consolidated file
|
|
106
124
|
if pm_instructions_path.exists():
|
|
107
125
|
loaded_content = self.file_loader.try_load_file(
|
|
108
|
-
pm_instructions_path, "
|
|
126
|
+
pm_instructions_path, "source PM_INSTRUCTIONS.md (development mode)"
|
|
109
127
|
)
|
|
110
128
|
if loaded_content:
|
|
111
129
|
content["framework_instructions"] = loaded_content
|
|
112
130
|
content["loaded"] = True
|
|
113
|
-
self.logger.
|
|
114
|
-
|
|
131
|
+
self.logger.warning(
|
|
132
|
+
"Using source PM_INSTRUCTIONS.md - deployed version not found"
|
|
133
|
+
)
|
|
134
|
+
# PRIORITY 3: Fall back to legacy file for backward compatibility
|
|
115
135
|
elif framework_instructions_path.exists():
|
|
116
136
|
loaded_content = self.file_loader.try_load_file(
|
|
117
137
|
framework_instructions_path, "framework INSTRUCTIONS.md (legacy)"
|