claude-mpm 4.1.6__py3-none-any.whl → 4.24.0__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 +431 -214
- 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/MEMORY.md +3 -0
- claude_mpm/agents/OUTPUT_STYLE.md +335 -0
- claude_mpm/agents/PM_INSTRUCTIONS.md +1159 -0
- claude_mpm/agents/WORKFLOW.md +355 -187
- claude_mpm/agents/agent_loader.py +40 -10
- claude_mpm/agents/agent_loader_integration.py +3 -2
- claude_mpm/agents/agents_metadata.py +57 -0
- claude_mpm/agents/async_agent_loader.py +3 -3
- claude_mpm/agents/base_agent_loader.py +11 -9
- claude_mpm/agents/frontmatter_validator.py +291 -251
- claude_mpm/agents/system_agent_config.py +3 -2
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +17 -0
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +3 -0
- claude_mpm/agents/templates/README.md +465 -0
- claude_mpm/agents/templates/agent-manager.json +267 -18
- claude_mpm/agents/templates/agentic-coder-optimizer.json +248 -0
- claude_mpm/agents/templates/api_qa.json +16 -4
- claude_mpm/agents/templates/circuit_breakers.md +638 -0
- claude_mpm/agents/templates/clerk-ops.json +235 -0
- claude_mpm/agents/templates/code_analyzer.json +25 -9
- claude_mpm/agents/templates/content-agent.json +358 -0
- claude_mpm/agents/templates/dart_engineer.json +307 -0
- claude_mpm/agents/templates/data_engineer.json +87 -14
- claude_mpm/agents/templates/documentation.json +76 -13
- claude_mpm/agents/templates/engineer.json +44 -10
- claude_mpm/agents/templates/gcp_ops_agent.json +253 -0
- claude_mpm/agents/templates/git_file_tracking.md +584 -0
- claude_mpm/agents/templates/golang_engineer.json +270 -0
- claude_mpm/agents/templates/imagemagick.json +5 -2
- claude_mpm/agents/templates/java_engineer.json +346 -0
- claude_mpm/agents/templates/javascript_engineer_agent.json +380 -0
- claude_mpm/agents/templates/local_ops_agent.json +1840 -0
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +39 -0
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +400 -0
- claude_mpm/agents/templates/memory_manager.json +6 -3
- claude_mpm/agents/templates/nextjs_engineer.json +285 -0
- claude_mpm/agents/templates/ops.json +27 -8
- claude_mpm/agents/templates/php-engineer.json +287 -0
- claude_mpm/agents/templates/pm_examples.md +474 -0
- claude_mpm/agents/templates/pm_red_flags.md +262 -0
- claude_mpm/agents/templates/product_owner.json +338 -0
- claude_mpm/agents/templates/project_organizer.json +19 -5
- claude_mpm/agents/templates/prompt-engineer.json +737 -0
- claude_mpm/agents/templates/python_engineer.json +387 -0
- claude_mpm/agents/templates/qa.json +26 -6
- claude_mpm/agents/templates/react_engineer.json +239 -0
- claude_mpm/agents/templates/refactoring_engineer.json +15 -5
- claude_mpm/agents/templates/research.json +47 -22
- claude_mpm/agents/templates/response_format.md +583 -0
- claude_mpm/agents/templates/ruby-engineer.json +280 -0
- claude_mpm/agents/templates/rust_engineer.json +275 -0
- claude_mpm/agents/templates/security.json +59 -10
- claude_mpm/agents/templates/svelte-engineer.json +225 -0
- claude_mpm/agents/templates/tauri_engineer.json +274 -0
- claude_mpm/agents/templates/ticketing.json +16 -7
- claude_mpm/agents/templates/typescript_engineer.json +285 -0
- claude_mpm/agents/templates/validation_templates.md +312 -0
- claude_mpm/agents/templates/vercel_ops_agent.json +164 -33
- claude_mpm/agents/templates/version_control.json +16 -4
- claude_mpm/agents/templates/web_qa.json +243 -21
- claude_mpm/agents/templates/web_ui.json +18 -5
- claude_mpm/cli/__init__.py +38 -363
- claude_mpm/cli/commands/__init__.py +8 -0
- claude_mpm/cli/commands/agent_manager.py +675 -20
- claude_mpm/cli/commands/agent_state_manager.py +186 -0
- claude_mpm/cli/commands/agents.py +722 -150
- claude_mpm/cli/commands/agents_detect.py +380 -0
- claude_mpm/cli/commands/agents_recommend.py +309 -0
- claude_mpm/cli/commands/aggregate.py +10 -6
- claude_mpm/cli/commands/analyze.py +553 -0
- claude_mpm/cli/commands/analyze_code.py +528 -0
- claude_mpm/cli/commands/auto_configure.py +570 -0
- claude_mpm/cli/commands/cleanup.py +12 -12
- claude_mpm/cli/commands/config.py +47 -13
- claude_mpm/cli/commands/configure.py +488 -884
- 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 +167 -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 +286 -0
- claude_mpm/cli/commands/debug.py +1386 -0
- claude_mpm/cli/commands/doctor.py +43 -7
- claude_mpm/cli/commands/info.py +3 -4
- claude_mpm/cli/commands/local_deploy.py +537 -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 +168 -617
- claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
- claude_mpm/cli/commands/mpm_init/core.py +525 -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 +195 -0
- claude_mpm/cli/commands/run.py +169 -42
- claude_mpm/cli/commands/search.py +458 -0
- claude_mpm/cli/commands/skills.py +488 -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 +204 -0
- claude_mpm/cli/helpers.py +105 -0
- claude_mpm/cli/interactive/__init__.py +21 -0
- claude_mpm/cli/interactive/agent_wizard.py +962 -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/agents_parser.py +116 -0
- claude_mpm/cli/parsers/analyze_code_parser.py +170 -0
- claude_mpm/cli/parsers/analyze_parser.py +135 -0
- claude_mpm/cli/parsers/auto_configure_parser.py +245 -0
- claude_mpm/cli/parsers/base_parser.py +187 -3
- claude_mpm/cli/parsers/configure_parser.py +34 -15
- claude_mpm/cli/parsers/dashboard_parser.py +113 -0
- claude_mpm/cli/parsers/debug_parser.py +319 -0
- 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 +311 -0
- claude_mpm/cli/parsers/run_parser.py +5 -0
- claude_mpm/cli/parsers/search_parser.py +245 -0
- claude_mpm/cli/parsers/skills_parser.py +137 -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 +562 -0
- claude_mpm/cli/startup_logging.py +179 -13
- claude_mpm/cli/utils.py +53 -2
- claude_mpm/commands/__init__.py +14 -0
- claude_mpm/commands/mpm-agents-detect.md +168 -0
- claude_mpm/commands/mpm-agents-recommend.md +214 -0
- claude_mpm/commands/mpm-agents.md +122 -0
- claude_mpm/commands/mpm-auto-configure.md +269 -0
- claude_mpm/commands/mpm-config.md +141 -0
- claude_mpm/commands/mpm-doctor.md +24 -0
- claude_mpm/commands/mpm-help.md +290 -0
- claude_mpm/commands/mpm-init.md +521 -0
- claude_mpm/commands/mpm-monitor.md +409 -0
- claude_mpm/commands/mpm-organize.md +295 -0
- claude_mpm/commands/mpm-resume.md +372 -0
- claude_mpm/commands/mpm-status.md +75 -0
- claude_mpm/commands/mpm-tickets.md +151 -0
- claude_mpm/commands/mpm-version.md +113 -0
- claude_mpm/commands/mpm.md +21 -0
- claude_mpm/config/agent_config.py +4 -4
- 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/socketio_config.py +36 -7
- claude_mpm/constants.py +27 -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 +19 -8
- claude_mpm/core/config.py +103 -8
- claude_mpm/core/config_aliases.py +7 -6
- claude_mpm/core/constants.py +65 -0
- 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 +38 -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 +223 -0
- claude_mpm/core/framework/loaders/instruction_loader.py +161 -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 +323 -1491
- claude_mpm/core/hook_manager.py +8 -6
- claude_mpm/core/injectable_service.py +11 -8
- claude_mpm/core/instruction_reinforcement_hook.py +267 -0
- claude_mpm/core/interactive_session.py +55 -8
- claude_mpm/core/interfaces.py +56 -1
- claude_mpm/core/lazy.py +3 -3
- claude_mpm/core/log_manager.py +100 -28
- claude_mpm/core/logger.py +19 -14
- claude_mpm/core/logging_config.py +6 -2
- claude_mpm/core/logging_utils.py +520 -0
- claude_mpm/core/oneshot_session.py +51 -7
- 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 +118 -15
- 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/socketio_pool.py +15 -15
- 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 +116 -12
- claude_mpm/core/unified_config.py +6 -6
- claude_mpm/core/unified_paths.py +23 -20
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +1 -0
- claude_mpm/dashboard/__init__.py +12 -0
- claude_mpm/dashboard/analysis_runner.py +455 -0
- claude_mpm/dashboard/api/simple_directory.py +261 -0
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +188 -0
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +156 -0
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +38 -0
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +92 -0
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +248 -0
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +61 -0
- claude_mpm/dashboard/static/archive/test_activity_connection.html +179 -0
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +68 -0
- claude_mpm/dashboard/static/archive/test_dashboard.html +409 -0
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +519 -0
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +181 -0
- claude_mpm/dashboard/static/archive/test_file_data.html +315 -0
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +243 -0
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +234 -0
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +117 -0
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +115 -0
- claude_mpm/dashboard/static/archive/test_file_viewer.html +224 -0
- claude_mpm/dashboard/static/archive/test_final_activity.html +220 -0
- claude_mpm/dashboard/static/archive/test_tab_fix.html +139 -0
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +1 -0
- claude_mpm/dashboard/static/built/components/activity-tree.js +2 -0
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +777 -0
- claude_mpm/dashboard/static/built/components/agent-inference.js +1 -1
- claude_mpm/dashboard/static/built/components/build-tracker.js +333 -0
- claude_mpm/dashboard/static/built/components/code-simple.js +857 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +353 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +235 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +409 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +435 -0
- claude_mpm/dashboard/static/built/components/code-tree.js +2 -0
- claude_mpm/dashboard/static/built/components/code-viewer.js +2 -0
- claude_mpm/dashboard/static/built/components/connection-debug.js +654 -0
- claude_mpm/dashboard/static/built/components/diff-viewer.js +891 -0
- claude_mpm/dashboard/static/built/components/event-processor.js +1 -1
- claude_mpm/dashboard/static/built/components/event-viewer.js +1 -1
- claude_mpm/dashboard/static/built/components/export-manager.js +1 -1
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +443 -0
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +690 -0
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +1 -1
- claude_mpm/dashboard/static/built/components/file-viewer.js +2 -0
- claude_mpm/dashboard/static/built/components/module-viewer.js +1 -1
- claude_mpm/dashboard/static/built/components/nav-bar.js +145 -0
- claude_mpm/dashboard/static/built/components/page-structure.js +429 -0
- claude_mpm/dashboard/static/built/components/session-manager.js +1 -1
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +2 -0
- claude_mpm/dashboard/static/built/components/working-directory.js +1 -1
- claude_mpm/dashboard/static/built/connection-manager.js +536 -0
- claude_mpm/dashboard/static/built/dashboard.js +1 -1
- claude_mpm/dashboard/static/built/extension-error-handler.js +164 -0
- claude_mpm/dashboard/static/built/react/events.js +30 -0
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +396 -0
- claude_mpm/dashboard/static/built/shared/event-bus.js +330 -0
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +540 -0
- claude_mpm/dashboard/static/built/shared/logger.js +385 -0
- claude_mpm/dashboard/static/built/shared/page-structure.js +249 -0
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +253 -0
- claude_mpm/dashboard/static/built/socket-client.js +1 -1
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +185 -0
- claude_mpm/dashboard/static/css/activity.css +1958 -0
- claude_mpm/dashboard/static/css/dashboard.css +1413 -72
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +1 -0
- claude_mpm/dashboard/static/dist/components/activity-tree.js +2 -0
- claude_mpm/dashboard/static/dist/components/agent-inference.js +1 -1
- claude_mpm/dashboard/static/dist/components/code-tree.js +2 -0
- claude_mpm/dashboard/static/dist/components/code-viewer.js +2 -0
- claude_mpm/dashboard/static/dist/components/event-processor.js +1 -1
- claude_mpm/dashboard/static/dist/components/event-viewer.js +1 -1
- claude_mpm/dashboard/static/dist/components/export-manager.js +1 -1
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +1 -1
- claude_mpm/dashboard/static/dist/components/file-viewer.js +2 -0
- claude_mpm/dashboard/static/dist/components/module-viewer.js +1 -1
- claude_mpm/dashboard/static/dist/components/session-manager.js +1 -1
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +2 -0
- claude_mpm/dashboard/static/dist/components/working-directory.js +1 -1
- claude_mpm/dashboard/static/dist/dashboard.js +1 -1
- claude_mpm/dashboard/static/dist/react/events.js +30 -0
- claude_mpm/dashboard/static/dist/socket-client.js +1 -1
- claude_mpm/dashboard/static/events.html +607 -0
- claude_mpm/dashboard/static/index.html +635 -0
- claude_mpm/dashboard/static/js/components/activity-tree.js +1871 -0
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +4 -1
- claude_mpm/dashboard/static/js/components/agent-inference.js +3 -0
- claude_mpm/dashboard/static/js/components/build-tracker.js +23 -13
- claude_mpm/dashboard/static/js/components/code-simple.js +857 -0
- claude_mpm/dashboard/static/js/components/diff-viewer.js +891 -0
- claude_mpm/dashboard/static/js/components/event-processor.js +3 -107
- claude_mpm/dashboard/static/js/components/event-viewer.js +98 -11
- 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 +30 -10
- claude_mpm/dashboard/static/js/components/file-viewer.js +580 -0
- claude_mpm/dashboard/static/js/components/module-viewer.js +68 -205
- claude_mpm/dashboard/static/js/components/session-manager.js +46 -10
- claude_mpm/dashboard/static/js/components/socket-manager.js +16 -0
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +359 -40
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +1824 -0
- claude_mpm/dashboard/static/js/components/working-directory.js +61 -10
- claude_mpm/dashboard/static/js/connection-manager.js +1 -1
- claude_mpm/dashboard/static/js/dashboard.js +523 -622
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +396 -0
- claude_mpm/dashboard/static/js/shared/event-bus.js +330 -0
- claude_mpm/dashboard/static/js/shared/logger.js +385 -0
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +253 -0
- claude_mpm/dashboard/static/js/socket-client.js +549 -62
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +562 -0
- claude_mpm/dashboard/static/js/tab-isolation-fix.js +185 -0
- claude_mpm/dashboard/static/legacy/activity.html +736 -0
- claude_mpm/dashboard/static/legacy/agents.html +786 -0
- claude_mpm/dashboard/static/legacy/files.html +747 -0
- claude_mpm/dashboard/static/legacy/tools.html +831 -0
- claude_mpm/dashboard/static/monitors.html +431 -0
- claude_mpm/dashboard/static/production/events.html +659 -0
- claude_mpm/dashboard/static/production/main.html +698 -0
- claude_mpm/dashboard/static/production/monitors.html +483 -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/static/test-archive/dashboard.html +635 -0
- claude_mpm/dashboard/static/test-archive/debug-events.html +147 -0
- claude_mpm/dashboard/static/test-archive/test-navigation.html +256 -0
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +180 -0
- claude_mpm/dashboard/static/test-archive/test_debug.html +25 -0
- claude_mpm/dashboard/templates/code_simple.html +153 -0
- claude_mpm/dashboard/templates/index.html +267 -9
- claude_mpm/experimental/__init__.py +10 -0
- claude_mpm/experimental/cli_enhancements.py +4 -2
- 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/connection_pool.py +4 -4
- claude_mpm/hooks/claude_hooks/event_handlers.py +21 -18
- claude_mpm/hooks/claude_hooks/hook_handler.py +209 -25
- claude_mpm/hooks/claude_hooks/installer.py +783 -0
- 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/connection_manager.py +64 -49
- 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 +60 -0
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +235 -0
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +217 -0
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +286 -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 +183 -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/resume_log.py +340 -0
- claude_mpm/schemas/__init__.py +12 -0
- claude_mpm/scripts/claude-hook-handler.sh +187 -0
- 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 +156 -396
- claude_mpm/services/__init__.py +144 -160
- claude_mpm/services/agents/__init__.py +18 -5
- claude_mpm/services/agents/agent_builder.py +13 -11
- claude_mpm/services/agents/auto_config_manager.py +796 -0
- claude_mpm/services/agents/deployment/agent_config_provider.py +127 -27
- claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_deployment.py +38 -15
- claude_mpm/services/agents/deployment/agent_discovery_service.py +125 -7
- 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 +4 -2
- claude_mpm/services/agents/deployment/agent_operation_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_record_service.py +5 -6
- claude_mpm/services/agents/deployment/agent_state_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_template_builder.py +722 -37
- claude_mpm/services/agents/deployment/agent_validator.py +31 -7
- claude_mpm/services/agents/deployment/agent_version_manager.py +9 -1
- claude_mpm/services/agents/deployment/agent_versioning.py +1 -1
- claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
- 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/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 +134 -38
- 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 +9 -6
- claude_mpm/services/agents/deployment/system_instructions_deployer.py +9 -6
- claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
- 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/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 +2 -2
- claude_mpm/services/agents/local_template_manager.py +744 -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 +7 -7
- 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/async_session_logger.py +141 -98
- claude_mpm/services/claude_session_logger.py +82 -74
- claude_mpm/services/cli/agent_cleanup_service.py +6 -5
- claude_mpm/services/cli/agent_dependency_service.py +1 -1
- claude_mpm/services/cli/agent_listing_service.py +5 -5
- claude_mpm/services/cli/agent_validation_service.py +6 -5
- 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 -21
- claude_mpm/services/cli/unified_dashboard_manager.py +439 -0
- claude_mpm/services/command_deployment_service.py +17 -9
- claude_mpm/services/command_handler_service.py +11 -5
- claude_mpm/services/core/__init__.py +33 -1
- claude_mpm/services/core/base.py +26 -11
- claude_mpm/services/core/cache_manager.py +1 -3
- claude_mpm/services/core/interfaces/__init__.py +90 -3
- claude_mpm/services/core/interfaces/agent.py +184 -0
- claude_mpm/services/core/interfaces/health.py +172 -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 +79 -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 +37 -18
- claude_mpm/services/core/service_container.py +2 -2
- claude_mpm/services/diagnostics/__init__.py +2 -2
- claude_mpm/services/diagnostics/checks/__init__.py +4 -2
- claude_mpm/services/diagnostics/checks/agent_check.py +30 -32
- 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 +22 -24
- claude_mpm/services/diagnostics/checks/mcp_check.py +57 -43
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +1066 -0
- claude_mpm/services/diagnostics/checks/monitor_check.py +24 -23
- claude_mpm/services/diagnostics/checks/startup_log_check.py +14 -11
- claude_mpm/services/diagnostics/diagnostic_runner.py +22 -13
- claude_mpm/services/diagnostics/doctor_reporter.py +275 -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 +152 -13
- 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/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/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 +12 -12
- claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
- 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/monitoring.py +12 -12
- claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
- claude_mpm/services/local_ops/__init__.py +165 -0
- claude_mpm/services/local_ops/crash_detector.py +257 -0
- claude_mpm/services/local_ops/health_checks/__init__.py +28 -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 +430 -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 +1612 -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 +23 -4
- 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 +585 -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 +4 -4
- claude_mpm/services/mcp_gateway/server/stdio_server.py +9 -15
- 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 +551 -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 +729 -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 +453 -0
- claude_mpm/services/model/ollama_provider.py +415 -0
- claude_mpm/services/monitor/__init__.py +20 -0
- claude_mpm/services/monitor/daemon.py +671 -0
- claude_mpm/services/monitor/daemon_manager.py +963 -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 +2 -2
- claude_mpm/services/project/__init__.py +23 -0
- claude_mpm/services/project/analyzer.py +3 -3
- claude_mpm/services/project/architecture_analyzer.py +6 -6
- claude_mpm/services/project/archive_manager.py +1045 -0
- claude_mpm/services/project/dependency_analyzer.py +8 -8
- claude_mpm/services/project/detection_strategies.py +719 -0
- claude_mpm/services/project/documentation_manager.py +553 -0
- claude_mpm/services/project/enhanced_analyzer.py +572 -0
- claude_mpm/services/project/language_analyzer.py +3 -3
- claude_mpm/services/project/metrics_collector.py +7 -10
- claude_mpm/services/project/project_organizer.py +1005 -0
- claude_mpm/services/project/registry.py +13 -7
- claude_mpm/services/project/toolchain_analyzer.py +581 -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 +1 -0
- claude_mpm/services/self_upgrade_service.py +500 -0
- claude_mpm/services/session_management_service.py +7 -5
- 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/socketio/client_proxy.py +60 -5
- claude_mpm/services/socketio/dashboard_server.py +361 -0
- claude_mpm/services/socketio/event_normalizer.py +74 -6
- claude_mpm/services/socketio/handlers/__init__.py +5 -0
- claude_mpm/services/socketio/handlers/base.py +2 -2
- claude_mpm/services/socketio/handlers/code_analysis.py +682 -0
- claude_mpm/services/socketio/handlers/connection.py +21 -40
- claude_mpm/services/socketio/handlers/connection_handler.py +16 -28
- claude_mpm/services/socketio/handlers/file.py +46 -10
- claude_mpm/services/socketio/handlers/git.py +8 -8
- claude_mpm/services/socketio/handlers/hook.py +29 -17
- claude_mpm/services/socketio/handlers/registry.py +4 -0
- 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 +131 -68
- claude_mpm/services/socketio/server/core.py +275 -22
- claude_mpm/services/socketio/server/eventbus_integration.py +20 -14
- claude_mpm/services/socketio/server/main.py +99 -29
- 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 +2 -2
- 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 +903 -0
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +746 -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 +475 -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 +470 -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 +8 -4
- 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 +19 -0
- claude_mpm/services/visualization/mermaid_generator.py +938 -0
- 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/collaboration/brainstorming/SKILL.md +79 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
- claude_mpm/skills/bundled/database-migration.md +199 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -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/artifacts-builder/SKILL.md +86 -0
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -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/SKILL.md +189 -0
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -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/php/espocrm-development/SKILL.md +170 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
- claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -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/condition-based-waiting/SKILL.md +119 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -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/playwright-patterns.md +479 -0
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -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 +348 -0
- claude_mpm/skills/skills_service.py +739 -0
- claude_mpm/storage/state_storage.py +31 -31
- claude_mpm/tools/__init__.py +10 -0
- claude_mpm/tools/__main__.py +208 -0
- 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 +631 -0
- claude_mpm/tools/code_tree_events.py +420 -0
- claude_mpm/tools/socketio_debug.py +671 -0
- claude_mpm/utils/agent_dependency_loader.py +108 -27
- 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 +2 -2
- 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/log_cleanup.py +627 -0
- claude_mpm/utils/path_operations.py +7 -4
- claude_mpm/utils/robust_installer.py +133 -24
- claude_mpm/utils/session_logging.py +2 -2
- 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-4.24.0.dist-info/METADATA +675 -0
- claude_mpm-4.24.0.dist-info/RECORD +1018 -0
- {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/entry_points.txt +1 -0
- claude_mpm/agents/INSTRUCTIONS.md +0 -237
- claude_mpm/agents/schema/agent_schema.json +0 -314
- claude_mpm/agents/templates/agent-manager.md +0 -304
- claude_mpm/cli/commands/configure_tui.py +0 -1921
- claude_mpm/cli/commands/socketio_monitor.py +0 -233
- 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_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 -424
- claude_mpm/services/cli/socketio_manager.py +0 -498
- 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-4.1.6.dist-info/METADATA +0 -325
- claude_mpm-4.1.6.dist-info/RECORD +0 -550
- {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.1.6.dist-info → claude_mpm-4.24.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Auto-Configuration Parser for Claude MPM CLI
|
|
3
|
+
============================================
|
|
4
|
+
|
|
5
|
+
WHY: This module provides argument parsing for auto-configuration commands,
|
|
6
|
+
enabling users to customize detection, recommendation, and deployment behavior.
|
|
7
|
+
|
|
8
|
+
DESIGN DECISION: Follows existing parser patterns in the codebase, using
|
|
9
|
+
add_common_arguments for consistency. Provides sensible defaults while
|
|
10
|
+
allowing full customization.
|
|
11
|
+
|
|
12
|
+
Part of TSK-0054: Auto-Configuration Feature - Phase 5
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import argparse
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
|
|
18
|
+
from .base_parser import add_common_arguments
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def add_auto_configure_subparser(subparsers) -> argparse.ArgumentParser:
|
|
22
|
+
"""
|
|
23
|
+
Add the auto-configure subparser for automated agent configuration.
|
|
24
|
+
|
|
25
|
+
WHY: Auto-configuration simplifies onboarding by detecting project toolchain
|
|
26
|
+
and deploying appropriate agents automatically.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
subparsers: The subparsers object from the main parser
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
The configured auto-configure subparser
|
|
33
|
+
"""
|
|
34
|
+
# Auto-configure command
|
|
35
|
+
auto_configure_parser = subparsers.add_parser(
|
|
36
|
+
"auto-configure",
|
|
37
|
+
help="Auto-configure agents based on project toolchain detection",
|
|
38
|
+
description="""
|
|
39
|
+
Auto-configure agents for your project based on detected toolchain.
|
|
40
|
+
|
|
41
|
+
This command analyzes your project to detect languages, frameworks, and
|
|
42
|
+
deployment targets, then recommends and deploys appropriate specialized
|
|
43
|
+
agents automatically.
|
|
44
|
+
|
|
45
|
+
The command provides safety features including:
|
|
46
|
+
• Preview mode to see changes before applying
|
|
47
|
+
• Confidence thresholds to ensure quality matches
|
|
48
|
+
• Validation gates to block invalid configurations
|
|
49
|
+
• Rollback on failure to maintain consistency
|
|
50
|
+
""",
|
|
51
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
52
|
+
epilog="""
|
|
53
|
+
Examples:
|
|
54
|
+
# Interactive configuration with confirmation
|
|
55
|
+
claude-mpm auto-configure
|
|
56
|
+
|
|
57
|
+
# Preview configuration without deploying
|
|
58
|
+
claude-mpm auto-configure --preview
|
|
59
|
+
|
|
60
|
+
# Auto-approve deployment (for scripts)
|
|
61
|
+
claude-mpm auto-configure --yes
|
|
62
|
+
|
|
63
|
+
# Require 90% confidence for recommendations
|
|
64
|
+
claude-mpm auto-configure --min-confidence 0.9
|
|
65
|
+
|
|
66
|
+
# JSON output for scripting
|
|
67
|
+
claude-mpm auto-configure --json
|
|
68
|
+
|
|
69
|
+
# Configure specific project directory
|
|
70
|
+
claude-mpm auto-configure --project-path /path/to/project
|
|
71
|
+
""",
|
|
72
|
+
)
|
|
73
|
+
add_common_arguments(auto_configure_parser)
|
|
74
|
+
|
|
75
|
+
# Configuration mode
|
|
76
|
+
mode_group = auto_configure_parser.add_mutually_exclusive_group()
|
|
77
|
+
mode_group.add_argument(
|
|
78
|
+
"--preview",
|
|
79
|
+
"--dry-run",
|
|
80
|
+
dest="preview",
|
|
81
|
+
action="store_true",
|
|
82
|
+
help="Show what would be configured without deploying (preview mode)",
|
|
83
|
+
)
|
|
84
|
+
mode_group.add_argument(
|
|
85
|
+
"--yes",
|
|
86
|
+
"-y",
|
|
87
|
+
action="store_true",
|
|
88
|
+
help="Skip confirmation prompts and deploy automatically",
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Configuration options
|
|
92
|
+
auto_configure_parser.add_argument(
|
|
93
|
+
"--min-confidence",
|
|
94
|
+
type=float,
|
|
95
|
+
default=0.8,
|
|
96
|
+
metavar="FLOAT",
|
|
97
|
+
help="Minimum confidence threshold for recommendations (0.0-1.0, default: 0.8)",
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
auto_configure_parser.add_argument(
|
|
101
|
+
"--project-path",
|
|
102
|
+
type=Path,
|
|
103
|
+
metavar="PATH",
|
|
104
|
+
help="Project path to analyze (default: current directory)",
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
return auto_configure_parser
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def add_agents_detect_subparser(agents_subparsers) -> argparse.ArgumentParser:
|
|
111
|
+
"""
|
|
112
|
+
Add the agents detect subparser for toolchain detection.
|
|
113
|
+
|
|
114
|
+
WHY: Allows users to see what toolchain is detected without making changes,
|
|
115
|
+
useful for debugging and verification.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
agents_subparsers: The agents subparsers object
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
The configured detect subparser
|
|
122
|
+
"""
|
|
123
|
+
detect_parser = agents_subparsers.add_parser(
|
|
124
|
+
"detect",
|
|
125
|
+
help="Detect project toolchain without deploying",
|
|
126
|
+
description="""
|
|
127
|
+
Detect and display project toolchain without making any changes.
|
|
128
|
+
|
|
129
|
+
This command analyzes your project to detect:
|
|
130
|
+
• Programming languages and versions
|
|
131
|
+
• Frameworks and libraries
|
|
132
|
+
• Deployment targets and platforms
|
|
133
|
+
|
|
134
|
+
Useful for debugging toolchain detection and verifying what would be
|
|
135
|
+
detected before running auto-configure.
|
|
136
|
+
""",
|
|
137
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
138
|
+
epilog="""
|
|
139
|
+
Examples:
|
|
140
|
+
# Detect toolchain in current directory
|
|
141
|
+
claude-mpm agents detect
|
|
142
|
+
|
|
143
|
+
# Detect with verbose output showing evidence
|
|
144
|
+
claude-mpm agents detect --verbose
|
|
145
|
+
|
|
146
|
+
# JSON output for scripting
|
|
147
|
+
claude-mpm agents detect --json
|
|
148
|
+
|
|
149
|
+
# Detect specific project
|
|
150
|
+
claude-mpm agents detect --project-path /path/to/project
|
|
151
|
+
""",
|
|
152
|
+
)
|
|
153
|
+
add_common_arguments(detect_parser)
|
|
154
|
+
|
|
155
|
+
detect_parser.add_argument(
|
|
156
|
+
"--project-path",
|
|
157
|
+
type=Path,
|
|
158
|
+
metavar="PATH",
|
|
159
|
+
help="Project path to analyze (default: current directory)",
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
return detect_parser
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def add_agents_recommend_subparser(
|
|
166
|
+
agents_subparsers,
|
|
167
|
+
) -> argparse.ArgumentParser:
|
|
168
|
+
"""
|
|
169
|
+
Add the agents recommend subparser for agent recommendations.
|
|
170
|
+
|
|
171
|
+
WHY: Allows users to see what agents would be recommended without deploying,
|
|
172
|
+
useful for reviewing recommendations before committing to deployment.
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
agents_subparsers: The agents subparsers object
|
|
176
|
+
|
|
177
|
+
Returns:
|
|
178
|
+
The configured recommend subparser
|
|
179
|
+
"""
|
|
180
|
+
recommend_parser = agents_subparsers.add_parser(
|
|
181
|
+
"recommend",
|
|
182
|
+
help="Show recommended agents without deploying",
|
|
183
|
+
description="""
|
|
184
|
+
Show recommended agents based on project toolchain without deploying.
|
|
185
|
+
|
|
186
|
+
This command analyzes your project toolchain and recommends appropriate
|
|
187
|
+
agents with detailed reasoning for each recommendation. No changes are
|
|
188
|
+
made to your project.
|
|
189
|
+
|
|
190
|
+
Useful for:
|
|
191
|
+
• Reviewing recommendations before deployment
|
|
192
|
+
• Understanding why agents are recommended
|
|
193
|
+
• Adjusting confidence thresholds
|
|
194
|
+
""",
|
|
195
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
196
|
+
epilog="""
|
|
197
|
+
Examples:
|
|
198
|
+
# Show recommendations with reasoning
|
|
199
|
+
claude-mpm agents recommend
|
|
200
|
+
|
|
201
|
+
# Require 90% confidence for recommendations
|
|
202
|
+
claude-mpm agents recommend --min-confidence 0.9
|
|
203
|
+
|
|
204
|
+
# JSON output for scripting
|
|
205
|
+
claude-mpm agents recommend --json
|
|
206
|
+
|
|
207
|
+
# Hide detailed reasoning
|
|
208
|
+
claude-mpm agents recommend --no-reasoning
|
|
209
|
+
|
|
210
|
+
# Recommend for specific project
|
|
211
|
+
claude-mpm agents recommend --project-path /path/to/project
|
|
212
|
+
""",
|
|
213
|
+
)
|
|
214
|
+
add_common_arguments(recommend_parser)
|
|
215
|
+
|
|
216
|
+
recommend_parser.add_argument(
|
|
217
|
+
"--project-path",
|
|
218
|
+
type=Path,
|
|
219
|
+
metavar="PATH",
|
|
220
|
+
help="Project path to analyze (default: current directory)",
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
recommend_parser.add_argument(
|
|
224
|
+
"--min-confidence",
|
|
225
|
+
type=float,
|
|
226
|
+
default=0.8,
|
|
227
|
+
metavar="FLOAT",
|
|
228
|
+
help="Minimum confidence threshold for recommendations (0.0-1.0, default: 0.8)",
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
recommend_parser.add_argument(
|
|
232
|
+
"--show-reasoning",
|
|
233
|
+
action="store_true",
|
|
234
|
+
default=True,
|
|
235
|
+
help="Show detailed reasoning for recommendations (default)",
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
recommend_parser.add_argument(
|
|
239
|
+
"--no-reasoning",
|
|
240
|
+
dest="show_reasoning",
|
|
241
|
+
action="store_false",
|
|
242
|
+
help="Hide detailed reasoning for recommendations",
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
return recommend_parser
|
|
@@ -11,11 +11,96 @@ and reduce duplication across command parsers.
|
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
import argparse
|
|
14
|
+
import sys
|
|
14
15
|
from typing import List, Optional
|
|
15
16
|
|
|
16
17
|
from ...constants import CLICommands, CLIPrefix, LogLevel
|
|
17
18
|
|
|
18
19
|
|
|
20
|
+
class SuggestingArgumentParser(argparse.ArgumentParser):
|
|
21
|
+
"""
|
|
22
|
+
Custom ArgumentParser that suggests similar commands on error.
|
|
23
|
+
|
|
24
|
+
WHY: Provides better user experience by suggesting corrections for typos
|
|
25
|
+
and invalid commands instead of just showing an error message.
|
|
26
|
+
|
|
27
|
+
DESIGN DECISION: Extends ArgumentParser.error() to add suggestions before
|
|
28
|
+
exiting. This catches all parser errors including invalid subcommands and
|
|
29
|
+
invalid options.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
def error(self, message: str) -> None:
|
|
33
|
+
"""
|
|
34
|
+
Override error method to add command suggestions.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
message: Error message from argparse
|
|
38
|
+
"""
|
|
39
|
+
from ..utils import suggest_similar_commands
|
|
40
|
+
|
|
41
|
+
# Try to extract the invalid command/option from the error message
|
|
42
|
+
invalid_value = None
|
|
43
|
+
valid_choices = []
|
|
44
|
+
|
|
45
|
+
# Handle invalid subcommand errors
|
|
46
|
+
# Format: "argument COMMAND: invalid choice: 'tickts' (choose from ...)"
|
|
47
|
+
if "invalid choice:" in message:
|
|
48
|
+
try:
|
|
49
|
+
# Extract the invalid choice
|
|
50
|
+
parts = message.split("invalid choice: '")
|
|
51
|
+
if len(parts) > 1:
|
|
52
|
+
invalid_value = parts[1].split("'")[0]
|
|
53
|
+
|
|
54
|
+
# Extract valid choices
|
|
55
|
+
if "(choose from" in message:
|
|
56
|
+
choices_part = message.split("(choose from")[1]
|
|
57
|
+
# Remove trailing parenthesis and split
|
|
58
|
+
choices_str = choices_part.rstrip(")")
|
|
59
|
+
# Parse choices - they may be quoted or unquoted
|
|
60
|
+
valid_choices = [
|
|
61
|
+
c.strip().strip("'\"")
|
|
62
|
+
for c in choices_str.split(",")
|
|
63
|
+
if c.strip()
|
|
64
|
+
]
|
|
65
|
+
except (IndexError, ValueError):
|
|
66
|
+
pass
|
|
67
|
+
|
|
68
|
+
# Handle unrecognized arguments (invalid options)
|
|
69
|
+
# Format: "unrecognized arguments: --verbos"
|
|
70
|
+
elif "unrecognized arguments:" in message:
|
|
71
|
+
try:
|
|
72
|
+
parts = message.split("unrecognized arguments:")
|
|
73
|
+
if len(parts) > 1:
|
|
74
|
+
invalid_value = parts[1].strip().split()[0]
|
|
75
|
+
|
|
76
|
+
# Get common options from parser
|
|
77
|
+
valid_choices = []
|
|
78
|
+
for action in self._actions:
|
|
79
|
+
for option in action.option_strings:
|
|
80
|
+
valid_choices.append(option)
|
|
81
|
+
except (IndexError, ValueError):
|
|
82
|
+
pass
|
|
83
|
+
|
|
84
|
+
# Build error message with suggestions
|
|
85
|
+
from rich.console import Console
|
|
86
|
+
|
|
87
|
+
console = Console(stderr=True)
|
|
88
|
+
|
|
89
|
+
console.print(f"\n[red]Error:[/red] {message}\n", style="bold")
|
|
90
|
+
|
|
91
|
+
# Add suggestions if we found valid choices
|
|
92
|
+
if invalid_value and valid_choices:
|
|
93
|
+
suggestion = suggest_similar_commands(invalid_value, valid_choices)
|
|
94
|
+
if suggestion:
|
|
95
|
+
console.print(f"[yellow]{suggestion}[/yellow]\n")
|
|
96
|
+
|
|
97
|
+
# Show help hint
|
|
98
|
+
console.print(f"[dim]Run '{self.prog} --help' for usage information.[/dim]\n")
|
|
99
|
+
|
|
100
|
+
# Exit with error code
|
|
101
|
+
sys.exit(2)
|
|
102
|
+
|
|
103
|
+
|
|
19
104
|
def _get_enhanced_version(base_version: str) -> str:
|
|
20
105
|
"""
|
|
21
106
|
Get enhanced version string with build number if available.
|
|
@@ -111,15 +196,18 @@ def create_main_parser(
|
|
|
111
196
|
WHY: This creates the foundation parser that other modules will extend
|
|
112
197
|
with their specific subcommands and arguments.
|
|
113
198
|
|
|
199
|
+
DESIGN DECISION: Uses SuggestingArgumentParser to provide helpful suggestions
|
|
200
|
+
for typos and invalid commands, improving user experience.
|
|
201
|
+
|
|
114
202
|
Args:
|
|
115
203
|
prog_name: The program name to use
|
|
116
204
|
version: The version string to display
|
|
117
205
|
|
|
118
206
|
Returns:
|
|
119
|
-
Configured
|
|
207
|
+
Configured SuggestingArgumentParser instance ready for subparser addition
|
|
120
208
|
"""
|
|
121
|
-
# Main parser
|
|
122
|
-
parser =
|
|
209
|
+
# Main parser with suggestion support
|
|
210
|
+
parser = SuggestingArgumentParser(
|
|
123
211
|
prog=prog_name,
|
|
124
212
|
description=f"Claude Multi-Agent Project Manager v{version} - Orchestrate Claude with agent delegation and ticket tracking",
|
|
125
213
|
epilog="By default, runs an orchestrated Claude session. Use 'claude-mpm' for interactive mode or 'claude-mpm -i \"prompt\"' for non-interactive mode.\n\nTo pass arguments to Claude CLI, use -- separator: claude-mpm run -- --model sonnet --temperature 0.1",
|
|
@@ -199,6 +287,11 @@ def add_top_level_run_arguments(parser: argparse.ArgumentParser) -> None:
|
|
|
199
287
|
action="store_true",
|
|
200
288
|
help="Force operations even with warnings (e.g., large .claude.json file)",
|
|
201
289
|
)
|
|
290
|
+
run_group.add_argument(
|
|
291
|
+
"--reload-agents",
|
|
292
|
+
action="store_true",
|
|
293
|
+
help="Force rebuild of all system agents by deleting local claude-mpm agents",
|
|
294
|
+
)
|
|
202
295
|
|
|
203
296
|
# Dependency checking options (for backward compatibility at top level)
|
|
204
297
|
dep_group_top = parser.add_argument_group(
|
|
@@ -296,6 +389,13 @@ def create_parser(
|
|
|
296
389
|
except ImportError:
|
|
297
390
|
pass
|
|
298
391
|
|
|
392
|
+
try:
|
|
393
|
+
from .auto_configure_parser import add_auto_configure_subparser
|
|
394
|
+
|
|
395
|
+
add_auto_configure_subparser(subparsers)
|
|
396
|
+
except ImportError:
|
|
397
|
+
pass
|
|
398
|
+
|
|
299
399
|
try:
|
|
300
400
|
from .memory_parser import add_memory_subparser
|
|
301
401
|
|
|
@@ -303,6 +403,13 @@ def create_parser(
|
|
|
303
403
|
except ImportError:
|
|
304
404
|
pass
|
|
305
405
|
|
|
406
|
+
try:
|
|
407
|
+
from .skills_parser import add_skills_subparser
|
|
408
|
+
|
|
409
|
+
add_skills_subparser(subparsers)
|
|
410
|
+
except ImportError:
|
|
411
|
+
pass
|
|
412
|
+
|
|
306
413
|
try:
|
|
307
414
|
from .config_parser import add_config_subparser
|
|
308
415
|
|
|
@@ -317,6 +424,20 @@ def create_parser(
|
|
|
317
424
|
except ImportError:
|
|
318
425
|
pass
|
|
319
426
|
|
|
427
|
+
try:
|
|
428
|
+
from .dashboard_parser import add_dashboard_subparser
|
|
429
|
+
|
|
430
|
+
add_dashboard_subparser(subparsers)
|
|
431
|
+
except ImportError:
|
|
432
|
+
pass
|
|
433
|
+
|
|
434
|
+
try:
|
|
435
|
+
from .local_deploy_parser import add_local_deploy_arguments
|
|
436
|
+
|
|
437
|
+
add_local_deploy_arguments(subparsers)
|
|
438
|
+
except ImportError:
|
|
439
|
+
pass
|
|
440
|
+
|
|
320
441
|
try:
|
|
321
442
|
from .mcp_parser import add_mcp_subparser
|
|
322
443
|
|
|
@@ -338,6 +459,59 @@ def create_parser(
|
|
|
338
459
|
except ImportError:
|
|
339
460
|
pass
|
|
340
461
|
|
|
462
|
+
# Add uninstall command parser
|
|
463
|
+
try:
|
|
464
|
+
from ..commands.uninstall import add_uninstall_parser
|
|
465
|
+
|
|
466
|
+
add_uninstall_parser(subparsers)
|
|
467
|
+
except ImportError:
|
|
468
|
+
pass
|
|
469
|
+
|
|
470
|
+
# Add debug command parser
|
|
471
|
+
try:
|
|
472
|
+
from .debug_parser import add_debug_subparser
|
|
473
|
+
|
|
474
|
+
add_debug_subparser(subparsers)
|
|
475
|
+
except ImportError:
|
|
476
|
+
pass
|
|
477
|
+
|
|
478
|
+
# Add analyze command parser
|
|
479
|
+
try:
|
|
480
|
+
from .analyze_parser import add_analyze_subparser
|
|
481
|
+
|
|
482
|
+
add_analyze_subparser(subparsers)
|
|
483
|
+
except ImportError:
|
|
484
|
+
pass
|
|
485
|
+
|
|
486
|
+
# Add analyze-code command parser
|
|
487
|
+
try:
|
|
488
|
+
from .analyze_code_parser import AnalyzeCodeParser
|
|
489
|
+
|
|
490
|
+
parser_obj = AnalyzeCodeParser()
|
|
491
|
+
analyze_code_parser = subparsers.add_parser(
|
|
492
|
+
"analyze-code", help=parser_obj.help_text
|
|
493
|
+
)
|
|
494
|
+
parser_obj.add_arguments(analyze_code_parser)
|
|
495
|
+
analyze_code_parser.set_defaults(command="analyze-code")
|
|
496
|
+
except ImportError:
|
|
497
|
+
pass
|
|
498
|
+
|
|
499
|
+
# Add mpm-init command parser
|
|
500
|
+
try:
|
|
501
|
+
from .mpm_init_parser import add_mpm_init_subparser
|
|
502
|
+
|
|
503
|
+
add_mpm_init_subparser(subparsers)
|
|
504
|
+
except ImportError:
|
|
505
|
+
pass
|
|
506
|
+
|
|
507
|
+
# Add search command parser
|
|
508
|
+
try:
|
|
509
|
+
from .search_parser import add_search_subparser
|
|
510
|
+
|
|
511
|
+
add_search_subparser(subparsers)
|
|
512
|
+
except ImportError:
|
|
513
|
+
pass
|
|
514
|
+
|
|
341
515
|
# Import and add additional command parsers from commands module
|
|
342
516
|
try:
|
|
343
517
|
from ..commands.aggregate import add_aggregate_parser
|
|
@@ -357,6 +531,16 @@ def create_parser(
|
|
|
357
531
|
from ..commands.doctor import add_doctor_parser
|
|
358
532
|
|
|
359
533
|
add_doctor_parser(subparsers)
|
|
534
|
+
|
|
535
|
+
# Add upgrade command
|
|
536
|
+
from ..commands.upgrade import add_upgrade_parser
|
|
537
|
+
|
|
538
|
+
add_upgrade_parser(subparsers)
|
|
539
|
+
|
|
540
|
+
# Add verify command for MCP service verification
|
|
541
|
+
from ..commands.verify import add_parser as add_verify_parser
|
|
542
|
+
|
|
543
|
+
add_verify_parser(subparsers)
|
|
360
544
|
except ImportError:
|
|
361
545
|
# Commands module may not be available during testing or refactoring
|
|
362
546
|
pass
|
|
@@ -25,11 +25,11 @@ def add_configure_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
25
25
|
Returns:
|
|
26
26
|
The configured configure subparser
|
|
27
27
|
"""
|
|
28
|
-
# Configure command - interactive
|
|
28
|
+
# Configure command - interactive configuration
|
|
29
29
|
configure_parser = subparsers.add_parser(
|
|
30
30
|
CLICommands.CONFIGURE.value,
|
|
31
|
-
help="Interactive
|
|
32
|
-
description="Launch an interactive Rich-based
|
|
31
|
+
help="Interactive configuration interface for managing agents and behaviors",
|
|
32
|
+
description="Launch an interactive Rich-based menu for configuring claude-mpm agents, templates, and behavior files",
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
# Add common arguments
|
|
@@ -58,6 +58,11 @@ def add_configure_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
58
58
|
action="store_true",
|
|
59
59
|
help="Jump directly to behavior file management",
|
|
60
60
|
)
|
|
61
|
+
nav_group.add_argument(
|
|
62
|
+
"--startup",
|
|
63
|
+
action="store_true",
|
|
64
|
+
help="Configure startup services and agents",
|
|
65
|
+
)
|
|
61
66
|
nav_group.add_argument(
|
|
62
67
|
"--version-info",
|
|
63
68
|
action="store_true",
|
|
@@ -96,24 +101,38 @@ def add_configure_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
96
101
|
help="Import configuration from a file",
|
|
97
102
|
)
|
|
98
103
|
|
|
99
|
-
#
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"--
|
|
104
|
+
# Hook management options
|
|
105
|
+
hooks_group = configure_parser.add_argument_group("hook management")
|
|
106
|
+
hooks_group.add_argument(
|
|
107
|
+
"--install-hooks",
|
|
108
|
+
action="store_true",
|
|
109
|
+
help="Install Claude MPM hooks for Claude Code integration",
|
|
103
110
|
)
|
|
104
|
-
|
|
105
|
-
"--
|
|
111
|
+
hooks_group.add_argument(
|
|
112
|
+
"--verify-hooks",
|
|
113
|
+
action="store_true",
|
|
114
|
+
help="Verify that Claude MPM hooks are properly installed",
|
|
115
|
+
)
|
|
116
|
+
hooks_group.add_argument(
|
|
117
|
+
"--uninstall-hooks",
|
|
118
|
+
action="store_true",
|
|
119
|
+
help="Uninstall Claude MPM hooks",
|
|
120
|
+
)
|
|
121
|
+
hooks_group.add_argument(
|
|
122
|
+
"--force",
|
|
123
|
+
action="store_true",
|
|
124
|
+
help="Force reinstallation of hooks even if they already exist",
|
|
106
125
|
)
|
|
126
|
+
|
|
127
|
+
# Display options
|
|
128
|
+
display_group = configure_parser.add_argument_group("display options")
|
|
107
129
|
display_group.add_argument(
|
|
108
|
-
"--
|
|
130
|
+
"--no-colors",
|
|
109
131
|
action="store_true",
|
|
110
|
-
help="
|
|
132
|
+
help="Disable colored output in the interface",
|
|
111
133
|
)
|
|
112
134
|
display_group.add_argument(
|
|
113
|
-
"--
|
|
114
|
-
dest="use_textual",
|
|
115
|
-
action="store_false",
|
|
116
|
-
help="Disable Textual TUI and use Rich menu interface",
|
|
135
|
+
"--compact", action="store_true", help="Use compact display mode"
|
|
117
136
|
)
|
|
118
137
|
|
|
119
138
|
return configure_parser
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Dashboard command parser for claude-mpm CLI.
|
|
3
|
+
|
|
4
|
+
WHY: This module contains all arguments specific to dashboard management,
|
|
5
|
+
providing a clean interface for starting, stopping, and managing the web dashboard.
|
|
6
|
+
|
|
7
|
+
DESIGN DECISION: Dashboard commands handle web interface management and
|
|
8
|
+
have their own subcommand structure similar to monitor commands.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
|
|
13
|
+
from ...constants import CLICommands, DashboardCommands
|
|
14
|
+
from .base_parser import add_common_arguments
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def add_dashboard_subparser(subparsers) -> argparse.ArgumentParser:
|
|
18
|
+
"""
|
|
19
|
+
Add the dashboard subparser with all dashboard management commands.
|
|
20
|
+
|
|
21
|
+
WHY: Dashboard management has multiple subcommands for starting, stopping,
|
|
22
|
+
checking status, and opening the web interface in a browser.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
subparsers: The subparsers object from the main parser
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
The configured dashboard subparser
|
|
29
|
+
"""
|
|
30
|
+
# Dashboard command with subcommands
|
|
31
|
+
dashboard_parser = subparsers.add_parser(
|
|
32
|
+
CLICommands.DASHBOARD.value,
|
|
33
|
+
help="Manage the web dashboard interface for monitoring and analysis",
|
|
34
|
+
)
|
|
35
|
+
add_common_arguments(dashboard_parser)
|
|
36
|
+
|
|
37
|
+
dashboard_subparsers = dashboard_parser.add_subparsers(
|
|
38
|
+
dest="dashboard_command", help="Dashboard commands", metavar="SUBCOMMAND"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Start dashboard
|
|
42
|
+
start_dashboard_parser = dashboard_subparsers.add_parser(
|
|
43
|
+
DashboardCommands.START.value,
|
|
44
|
+
help="Start the web dashboard server",
|
|
45
|
+
)
|
|
46
|
+
start_dashboard_parser.add_argument(
|
|
47
|
+
"--port",
|
|
48
|
+
type=int,
|
|
49
|
+
default=8765,
|
|
50
|
+
help="Port to start dashboard on (default: 8765)",
|
|
51
|
+
)
|
|
52
|
+
start_dashboard_parser.add_argument(
|
|
53
|
+
"--host",
|
|
54
|
+
default="localhost",
|
|
55
|
+
help="Host to bind to (default: localhost)",
|
|
56
|
+
)
|
|
57
|
+
start_dashboard_parser.add_argument(
|
|
58
|
+
"--background",
|
|
59
|
+
action="store_true",
|
|
60
|
+
help="Run dashboard server in background",
|
|
61
|
+
)
|
|
62
|
+
start_dashboard_parser.add_argument(
|
|
63
|
+
"--no-browser",
|
|
64
|
+
action="store_true",
|
|
65
|
+
help="Don't open browser automatically",
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
# Stop dashboard
|
|
69
|
+
stop_dashboard_parser = dashboard_subparsers.add_parser(
|
|
70
|
+
DashboardCommands.STOP.value,
|
|
71
|
+
help="Stop the web dashboard server",
|
|
72
|
+
)
|
|
73
|
+
stop_dashboard_parser.add_argument(
|
|
74
|
+
"--port",
|
|
75
|
+
type=int,
|
|
76
|
+
default=8765,
|
|
77
|
+
help="Port of dashboard to stop (default: 8765)",
|
|
78
|
+
)
|
|
79
|
+
stop_dashboard_parser.add_argument(
|
|
80
|
+
"--all",
|
|
81
|
+
action="store_true",
|
|
82
|
+
help="Stop all running dashboard instances",
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Status dashboard
|
|
86
|
+
status_dashboard_parser = dashboard_subparsers.add_parser(
|
|
87
|
+
DashboardCommands.STATUS.value,
|
|
88
|
+
help="Check dashboard server status",
|
|
89
|
+
)
|
|
90
|
+
status_dashboard_parser.add_argument(
|
|
91
|
+
"--verbose",
|
|
92
|
+
action="store_true",
|
|
93
|
+
help="Show detailed status information",
|
|
94
|
+
)
|
|
95
|
+
status_dashboard_parser.add_argument(
|
|
96
|
+
"--show-ports",
|
|
97
|
+
action="store_true",
|
|
98
|
+
help="Show status of all ports in the range (8765-8785)",
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Open dashboard
|
|
102
|
+
open_dashboard_parser = dashboard_subparsers.add_parser(
|
|
103
|
+
DashboardCommands.OPEN.value,
|
|
104
|
+
help="Open the dashboard in a web browser (starts if not running)",
|
|
105
|
+
)
|
|
106
|
+
open_dashboard_parser.add_argument(
|
|
107
|
+
"--port",
|
|
108
|
+
type=int,
|
|
109
|
+
default=8765,
|
|
110
|
+
help="Port of dashboard to open (default: 8765)",
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
return dashboard_parser
|