claude-mpm 4.1.26__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 +420 -158
- claude_mpm/agents/BASE_PROMPT_ENGINEER.md +787 -0
- claude_mpm/agents/BASE_QA.md +167 -0
- claude_mpm/agents/BASE_RESEARCH.md +53 -0
- claude_mpm/agents/OUTPUT_STYLE.md +299 -29
- claude_mpm/agents/PM_INSTRUCTIONS.md +1159 -0
- claude_mpm/agents/WORKFLOW.md +355 -191
- claude_mpm/agents/agent_loader.py +40 -10
- claude_mpm/agents/agent_loader_integration.py +3 -2
- 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/README.md +465 -0
- claude_mpm/agents/templates/agent-manager.json +7 -4
- claude_mpm/agents/templates/{agentic_coder_optimizer.json → agentic-coder-optimizer.json} +33 -7
- 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 +10 -4
- 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 +43 -9
- 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_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 +14 -4
- 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 +25 -5
- claude_mpm/agents/templates/react_engineer.json +239 -0
- claude_mpm/agents/templates/refactoring_engineer.json +15 -5
- claude_mpm/agents/templates/research.json +46 -21
- 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 +167 -21
- claude_mpm/agents/templates/web_ui.json +18 -5
- claude_mpm/cli/__init__.py +38 -378
- claude_mpm/cli/commands/__init__.py +2 -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 +15 -10
- claude_mpm/cli/commands/analyze_code.py +8 -4
- 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 +469 -1064
- 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 +50 -52
- claude_mpm/cli/commands/debug.py +7 -7
- 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 +160 -70
- 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 +114 -4
- 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/auto_configure_parser.py +245 -0
- claude_mpm/cli/parsers/base_parser.py +143 -3
- claude_mpm/cli/parsers/configure_parser.py +11 -15
- claude_mpm/cli/parsers/local_deploy_parser.py +227 -0
- claude_mpm/cli/parsers/mcp_parser.py +15 -0
- claude_mpm/cli/parsers/monitor_parser.py +12 -2
- claude_mpm/cli/parsers/mpm_init_parser.py +179 -9
- claude_mpm/cli/parsers/run_parser.py +5 -0
- claude_mpm/cli/parsers/search_parser.py +245 -0
- claude_mpm/cli/parsers/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/mpm-agents-detect.md +168 -0
- claude_mpm/commands/mpm-agents-recommend.md +214 -0
- claude_mpm/commands/mpm-agents.md +118 -8
- claude_mpm/commands/mpm-auto-configure.md +269 -0
- claude_mpm/commands/mpm-config.md +137 -14
- claude_mpm/commands/mpm-help.md +285 -5
- claude_mpm/commands/mpm-init.md +374 -15
- 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 +71 -9
- claude_mpm/commands/mpm-tickets.md +56 -7
- claude_mpm/commands/mpm-version.md +113 -0
- claude_mpm/commands/mpm.md +2 -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 +3 -3
- claude_mpm/constants.py +15 -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 +85 -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 +321 -1631
- claude_mpm/core/hook_manager.py +8 -6
- claude_mpm/core/injectable_service.py +11 -8
- claude_mpm/core/instruction_reinforcement_hook.py +4 -3
- 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 +92 -23
- 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 +18 -12
- 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 +115 -11
- claude_mpm/core/unified_config.py +6 -6
- claude_mpm/core/unified_paths.py +23 -20
- claude_mpm/dashboard/analysis_runner.py +4 -4
- claude_mpm/dashboard/api/simple_directory.py +261 -0
- claude_mpm/dashboard/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 +1 -1
- 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 +1 -1
- claude_mpm/dashboard/static/built/components/code-viewer.js +1 -1
- 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 +1 -1
- 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/dashboard.css +588 -6
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +1 -0
- claude_mpm/dashboard/static/dist/components/activity-tree.js +1 -1
- claude_mpm/dashboard/static/dist/components/agent-inference.js +1 -1
- claude_mpm/dashboard/static/dist/components/code-tree.js +1 -1
- claude_mpm/dashboard/static/dist/components/code-viewer.js +1 -1
- 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 +1 -1
- 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 +3 -17
- 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 +8 -0
- 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 -0
- claude_mpm/dashboard/static/js/components/event-viewer.js +39 -2
- 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 +26 -0
- claude_mpm/dashboard/static/js/components/session-manager.js +7 -7
- claude_mpm/dashboard/static/js/components/socket-manager.js +4 -0
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +356 -41
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +455 -23
- claude_mpm/dashboard/static/js/components/working-directory.js +44 -9
- claude_mpm/dashboard/static/js/dashboard.js +245 -132
- 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 +49 -22
- 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 +112 -109
- 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 +29 -22
- claude_mpm/hooks/claude_hooks/installer.py +67 -22
- claude_mpm/hooks/claude_hooks/memory_integration.py +3 -3
- claude_mpm/hooks/claude_hooks/response_tracking.py +57 -17
- claude_mpm/hooks/claude_hooks/services/connection_manager.py +62 -64
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +140 -76
- claude_mpm/hooks/claude_hooks/services/state_manager.py +11 -9
- claude_mpm/hooks/claude_hooks/services/subagent_processor.py +3 -3
- claude_mpm/hooks/failure_learning/__init__.py +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/scripts/claude-hook-handler.sh +33 -7
- claude_mpm/scripts/launch_monitor.py +85 -0
- claude_mpm/scripts/mcp_server.py +3 -5
- claude_mpm/scripts/mpm_doctor.py +3 -2
- claude_mpm/scripts/socketio_daemon.py +159 -512
- claude_mpm/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_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 +4 -4
- claude_mpm/services/agents/deployment/agent_state_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_template_builder.py +715 -47
- claude_mpm/services/agents/deployment/agent_validator.py +31 -7
- claude_mpm/services/agents/deployment/agent_version_manager.py +8 -5
- claude_mpm/services/agents/deployment/agent_versioning.py +1 -1
- claude_mpm/services/agents/deployment/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 +6 -4
- claude_mpm/services/agents/memory/memory_limits_service.py +4 -2
- claude_mpm/services/agents/memory/template_generator.py +3 -3
- claude_mpm/services/agents/observers.py +547 -0
- claude_mpm/services/agents/recommender.py +615 -0
- claude_mpm/services/agents/registry/deployed_agent_discovery.py +3 -3
- claude_mpm/services/agents/registry/modification_tracker.py +30 -19
- claude_mpm/services/async_session_logger.py +141 -98
- claude_mpm/services/claude_session_logger.py +82 -74
- claude_mpm/services/cli/agent_cleanup_service.py +5 -0
- claude_mpm/services/cli/agent_listing_service.py +5 -5
- claude_mpm/services/cli/agent_validation_service.py +3 -1
- claude_mpm/services/cli/memory_crud_service.py +12 -7
- claude_mpm/services/cli/memory_output_formatter.py +2 -2
- claude_mpm/services/cli/resume_service.py +617 -0
- claude_mpm/services/cli/session_manager.py +104 -13
- claude_mpm/services/cli/session_pause_manager.py +504 -0
- claude_mpm/services/cli/session_resume_helper.py +372 -0
- claude_mpm/services/cli/startup_checker.py +13 -10
- claude_mpm/services/cli/unified_dashboard_manager.py +439 -0
- claude_mpm/services/command_deployment_service.py +9 -7
- 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/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 +36 -14
- 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 +20 -19
- 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 +8 -4
- 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 +1 -1
- 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/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 +5 -5
- claude_mpm/services/project/archive_manager.py +1045 -0
- claude_mpm/services/project/dependency_analyzer.py +4 -4
- claude_mpm/services/project/detection_strategies.py +719 -0
- claude_mpm/services/project/documentation_manager.py +553 -0
- claude_mpm/services/project/enhanced_analyzer.py +572 -0
- claude_mpm/services/project/metrics_collector.py +4 -4
- claude_mpm/services/project/project_organizer.py +1005 -0
- claude_mpm/services/project/registry.py +13 -7
- claude_mpm/services/project/toolchain_analyzer.py +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 +10 -6
- claude_mpm/services/socketio/handlers/__init__.py +5 -2
- claude_mpm/services/socketio/handlers/base.py +2 -2
- claude_mpm/services/socketio/handlers/code_analysis.py +90 -27
- claude_mpm/services/socketio/handlers/connection.py +21 -40
- claude_mpm/services/socketio/handlers/connection_handler.py +13 -10
- claude_mpm/services/socketio/handlers/file.py +46 -10
- claude_mpm/services/socketio/handlers/git.py +8 -8
- claude_mpm/services/socketio/handlers/hook.py +29 -17
- claude_mpm/services/socketio/handlers/registry.py +4 -2
- claude_mpm/services/socketio/monitor_client.py +364 -0
- claude_mpm/services/socketio/server/broadcaster.py +9 -7
- claude_mpm/services/socketio/server/connection_manager.py +2 -2
- claude_mpm/services/socketio/server/core.py +141 -4
- claude_mpm/services/socketio/server/eventbus_integration.py +20 -14
- claude_mpm/services/socketio/server/main.py +23 -21
- 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/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/__main__.py +1 -1
- claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
- claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
- claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
- claude_mpm/tools/code_tree_analyzer/core.py +380 -0
- claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
- claude_mpm/tools/code_tree_analyzer/events.py +168 -0
- claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
- claude_mpm/tools/code_tree_analyzer/models.py +39 -0
- claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
- claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
- claude_mpm/tools/code_tree_builder.py +6 -6
- claude_mpm/tools/code_tree_events.py +14 -10
- claude_mpm/tools/socketio_debug.py +11 -11
- claude_mpm/utils/agent_dependency_loader.py +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.26.dist-info → claude_mpm-4.24.0.dist-info}/entry_points.txt +1 -0
- claude_mpm/agents/INSTRUCTIONS.md +0 -261
- claude_mpm/agents/templates/agent-manager.md +0 -619
- claude_mpm/cli/commands/configure_tui.py +0 -1927
- claude_mpm/cli/commands/mpm_init.py +0 -594
- claude_mpm/cli/commands/socketio_monitor.py +0 -233
- claude_mpm/dashboard/static/css/code-tree.css +0 -1408
- claude_mpm/dashboard/static/js/components/code-tree.js +0 -3220
- claude_mpm/dashboard/static/js/components/code-viewer.js +0 -480
- claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
- claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1040
- claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
- claude_mpm/scripts/socketio_daemon_hardened.py +0 -937
- claude_mpm/scripts/socketio_daemon_wrapper.py +0 -78
- claude_mpm/scripts/socketio_server_manager.py +0 -349
- claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
- claude_mpm/services/cli/dashboard_launcher.py +0 -423
- claude_mpm/services/cli/socketio_manager.py +0 -537
- claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -286
- claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -645
- claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -602
- claude_mpm/services/project/analyzer_refactored.py +0 -450
- claude_mpm/tools/code_tree_analyzer.py +0 -1693
- claude_mpm-4.1.26.dist-info/METADATA +0 -332
- claude_mpm-4.1.26.dist-info/RECORD +0 -606
- {claude_mpm-4.1.26.dist-info → claude_mpm-4.24.0.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.26.dist-info → claude_mpm-4.24.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.1.26.dist-info → claude_mpm-4.24.0.dist-info}/top_level.txt +0 -0
|
@@ -30,10 +30,19 @@ def add_mpm_init_subparser(subparsers: Any) -> None:
|
|
|
30
30
|
),
|
|
31
31
|
epilog=(
|
|
32
32
|
"Examples:\n"
|
|
33
|
-
" claude-mpm mpm-init
|
|
34
|
-
" claude-mpm mpm-init --
|
|
35
|
-
" claude-mpm mpm-init --
|
|
36
|
-
" claude-mpm mpm-init
|
|
33
|
+
" claude-mpm mpm-init # Initialize/update current directory\n"
|
|
34
|
+
" claude-mpm mpm-init --catchup # Show recent git history for context\n"
|
|
35
|
+
" claude-mpm mpm-init --review # Review project state without changes\n"
|
|
36
|
+
" claude-mpm mpm-init --update # Update existing CLAUDE.md\n"
|
|
37
|
+
" claude-mpm mpm-init --quick-update # Quick update based on recent git activity\n"
|
|
38
|
+
" claude-mpm mpm-init --quick-update --non-interactive # View activity report only\n"
|
|
39
|
+
" claude-mpm mpm-init --quick-update --days 7 # Analyze last 7 days\n"
|
|
40
|
+
" claude-mpm mpm-init --quick-update --export # Export report to default location\n"
|
|
41
|
+
" claude-mpm mpm-init --quick-update --export report.md # Export to specific file\n"
|
|
42
|
+
" claude-mpm mpm-init --organize # Organize project structure\n"
|
|
43
|
+
" claude-mpm mpm-init --project-type web # Initialize as web project\n"
|
|
44
|
+
" claude-mpm mpm-init --framework react # Initialize with React framework\n"
|
|
45
|
+
" claude-mpm mpm-init /path/to/project --force # Force reinitialize project"
|
|
37
46
|
),
|
|
38
47
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
39
48
|
)
|
|
@@ -73,6 +82,46 @@ def add_mpm_init_subparser(subparsers: Any) -> None:
|
|
|
73
82
|
action="store_true",
|
|
74
83
|
help="Force reinitialization even if project is already configured",
|
|
75
84
|
)
|
|
85
|
+
init_group.add_argument(
|
|
86
|
+
"--update",
|
|
87
|
+
action="store_true",
|
|
88
|
+
help="Update existing CLAUDE.md instead of recreating (smart merge)",
|
|
89
|
+
)
|
|
90
|
+
init_group.add_argument(
|
|
91
|
+
"--quick-update",
|
|
92
|
+
action="store_true",
|
|
93
|
+
help="Perform lightweight update based on recent git activity (default: 30 days)",
|
|
94
|
+
)
|
|
95
|
+
init_group.add_argument(
|
|
96
|
+
"--catchup",
|
|
97
|
+
action="store_true",
|
|
98
|
+
help="Show recent commit history from all branches for PM context",
|
|
99
|
+
)
|
|
100
|
+
init_group.add_argument(
|
|
101
|
+
"--non-interactive",
|
|
102
|
+
action="store_true",
|
|
103
|
+
help="Non-interactive mode - display report only without prompting for changes (use with --quick-update)",
|
|
104
|
+
)
|
|
105
|
+
init_group.add_argument(
|
|
106
|
+
"--days",
|
|
107
|
+
type=int,
|
|
108
|
+
default=30,
|
|
109
|
+
choices=[7, 14, 30, 60, 90],
|
|
110
|
+
help="Number of days for git history analysis in quick update mode (default: 30)",
|
|
111
|
+
)
|
|
112
|
+
init_group.add_argument(
|
|
113
|
+
"--export",
|
|
114
|
+
type=str,
|
|
115
|
+
nargs="?",
|
|
116
|
+
const="auto",
|
|
117
|
+
metavar="PATH",
|
|
118
|
+
help="Export activity report to file (default: docs/reports/activity-report-{timestamp}.md)",
|
|
119
|
+
)
|
|
120
|
+
init_group.add_argument(
|
|
121
|
+
"--review",
|
|
122
|
+
action="store_true",
|
|
123
|
+
help="Review project state without making changes (analysis only)",
|
|
124
|
+
)
|
|
76
125
|
init_group.add_argument(
|
|
77
126
|
"--minimal",
|
|
78
127
|
action="store_true",
|
|
@@ -83,11 +132,6 @@ def add_mpm_init_subparser(subparsers: Any) -> None:
|
|
|
83
132
|
action="store_true",
|
|
84
133
|
help="Create comprehensive setup including CI/CD, testing, and deployment configs",
|
|
85
134
|
)
|
|
86
|
-
init_group.add_argument(
|
|
87
|
-
"--use-venv",
|
|
88
|
-
action="store_true",
|
|
89
|
-
help="Use traditional Python venv instead of mamba/conda environment",
|
|
90
|
-
)
|
|
91
135
|
init_group.add_argument(
|
|
92
136
|
"--ast-analysis",
|
|
93
137
|
action="store_true",
|
|
@@ -113,6 +157,31 @@ def add_mpm_init_subparser(subparsers: Any) -> None:
|
|
|
113
157
|
"--list-templates", action="store_true", help="List available project templates"
|
|
114
158
|
)
|
|
115
159
|
|
|
160
|
+
# Project organization options
|
|
161
|
+
org_group = mpm_init_parser.add_argument_group("organization options")
|
|
162
|
+
org_group.add_argument(
|
|
163
|
+
"--organize",
|
|
164
|
+
action="store_true",
|
|
165
|
+
help="Organize misplaced files into proper directories",
|
|
166
|
+
)
|
|
167
|
+
org_group.add_argument(
|
|
168
|
+
"--preserve-custom/--no-preserve-custom",
|
|
169
|
+
default=True,
|
|
170
|
+
dest="preserve_custom",
|
|
171
|
+
help="Preserve custom sections when updating (default: preserve)",
|
|
172
|
+
)
|
|
173
|
+
org_group.add_argument(
|
|
174
|
+
"--skip-archive",
|
|
175
|
+
action="store_true",
|
|
176
|
+
help="Skip archiving existing files before updating",
|
|
177
|
+
)
|
|
178
|
+
org_group.add_argument(
|
|
179
|
+
"--archive-dir",
|
|
180
|
+
type=str,
|
|
181
|
+
default="docs/_archive",
|
|
182
|
+
help="Directory for archiving old documentation (default: docs/_archive)",
|
|
183
|
+
)
|
|
184
|
+
|
|
116
185
|
# Output options
|
|
117
186
|
output_group = mpm_init_parser.add_argument_group("output options")
|
|
118
187
|
output_group.add_argument(
|
|
@@ -137,5 +206,106 @@ def add_mpm_init_subparser(subparsers: Any) -> None:
|
|
|
137
206
|
help="Path to project directory (default: current directory)",
|
|
138
207
|
)
|
|
139
208
|
|
|
209
|
+
# Add subparsers for context commands
|
|
210
|
+
subcommands = mpm_init_parser.add_subparsers(
|
|
211
|
+
dest="subcommand",
|
|
212
|
+
title="context management",
|
|
213
|
+
description="Commands for managing project context",
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
# Context subcommand (primary name)
|
|
217
|
+
context_parser = subcommands.add_parser(
|
|
218
|
+
"context",
|
|
219
|
+
help="Provide intelligent context for resuming work",
|
|
220
|
+
description="Analyze git history to provide context for resuming work",
|
|
221
|
+
epilog="Note: 'resume' is deprecated, use 'context' instead",
|
|
222
|
+
)
|
|
223
|
+
context_parser.add_argument(
|
|
224
|
+
"--session-id",
|
|
225
|
+
"-i",
|
|
226
|
+
type=str,
|
|
227
|
+
help="Unused (for compatibility) - will be removed in future version",
|
|
228
|
+
)
|
|
229
|
+
context_parser.add_argument(
|
|
230
|
+
"--days",
|
|
231
|
+
type=int,
|
|
232
|
+
default=7,
|
|
233
|
+
help="Number of days of git history to analyze (default: 7)",
|
|
234
|
+
)
|
|
235
|
+
context_parser.add_argument(
|
|
236
|
+
"project_path",
|
|
237
|
+
nargs="?",
|
|
238
|
+
default=".",
|
|
239
|
+
help="Path to project directory (default: current directory)",
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
# Resume subcommand (deprecated alias for backward compatibility)
|
|
243
|
+
resume_parser = subcommands.add_parser(
|
|
244
|
+
"resume",
|
|
245
|
+
help="[DEPRECATED] Use 'context' instead",
|
|
246
|
+
description="[DEPRECATED] This command is deprecated. Use 'context' instead.\n\n"
|
|
247
|
+
"Analyze git history to provide context for resuming work",
|
|
248
|
+
)
|
|
249
|
+
resume_parser.add_argument(
|
|
250
|
+
"--session-id",
|
|
251
|
+
"-i",
|
|
252
|
+
type=str,
|
|
253
|
+
help="Unused (for compatibility) - will be removed in future version",
|
|
254
|
+
)
|
|
255
|
+
resume_parser.add_argument(
|
|
256
|
+
"--days",
|
|
257
|
+
type=int,
|
|
258
|
+
default=7,
|
|
259
|
+
help="Number of days of git history to analyze (default: 7)",
|
|
260
|
+
)
|
|
261
|
+
resume_parser.add_argument(
|
|
262
|
+
"project_path",
|
|
263
|
+
nargs="?",
|
|
264
|
+
default=".",
|
|
265
|
+
help="Path to project directory (default: current directory)",
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
# Pause subcommand - Create session pause documents
|
|
269
|
+
pause_parser = subcommands.add_parser(
|
|
270
|
+
"pause",
|
|
271
|
+
help="Pause current session and save state",
|
|
272
|
+
description="Create session pause documents for later resume. Captures git context, "
|
|
273
|
+
"conversation state, todos, and working directory state.\n\n"
|
|
274
|
+
"Creates three file formats:\n"
|
|
275
|
+
" - JSON: Machine-readable structured data\n"
|
|
276
|
+
" - YAML: Human-readable configuration style\n"
|
|
277
|
+
" - Markdown: Full documentation format",
|
|
278
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
279
|
+
epilog="Examples:\n"
|
|
280
|
+
" claude-mpm mpm-init pause # Basic pause\n"
|
|
281
|
+
" claude-mpm mpm-init pause -m 'End of day' # With message\n"
|
|
282
|
+
" claude-mpm mpm-init pause --no-commit # Skip git commit\n"
|
|
283
|
+
" claude-mpm mpm-init pause --export session.json # Export copy",
|
|
284
|
+
)
|
|
285
|
+
pause_parser.add_argument(
|
|
286
|
+
"--message",
|
|
287
|
+
"-m",
|
|
288
|
+
type=str,
|
|
289
|
+
default=None,
|
|
290
|
+
help="Optional message describing pause reason or context",
|
|
291
|
+
)
|
|
292
|
+
pause_parser.add_argument(
|
|
293
|
+
"--no-commit",
|
|
294
|
+
action="store_true",
|
|
295
|
+
help="Skip git commit of session state",
|
|
296
|
+
)
|
|
297
|
+
pause_parser.add_argument(
|
|
298
|
+
"--export",
|
|
299
|
+
type=str,
|
|
300
|
+
default=None,
|
|
301
|
+
help="Export session state to custom location",
|
|
302
|
+
)
|
|
303
|
+
pause_parser.add_argument(
|
|
304
|
+
"project_path",
|
|
305
|
+
nargs="?",
|
|
306
|
+
default=".",
|
|
307
|
+
help="Path to project directory (default: current directory)",
|
|
308
|
+
)
|
|
309
|
+
|
|
140
310
|
# Set the command handler
|
|
141
311
|
mpm_init_parser.set_defaults(command="mpm-init")
|
|
@@ -68,6 +68,11 @@ def add_run_arguments(parser: argparse.ArgumentParser) -> None:
|
|
|
68
68
|
action="store_true",
|
|
69
69
|
help="Force operations even with warnings (e.g., large .claude.json file)",
|
|
70
70
|
)
|
|
71
|
+
run_group.add_argument(
|
|
72
|
+
"--reload-agents",
|
|
73
|
+
action="store_true",
|
|
74
|
+
help="Force rebuild of all system agents by deleting local claude-mpm agents",
|
|
75
|
+
)
|
|
71
76
|
run_group.add_argument(
|
|
72
77
|
"--mpm-resume",
|
|
73
78
|
type=str,
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Search command parser for mcp-vector-search integration.
|
|
3
|
+
|
|
4
|
+
This module provides argument parsing for the /mpm-search command.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import argparse
|
|
8
|
+
from typing import Optional
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def add_search_subparser(
|
|
12
|
+
subparsers: argparse._SubParsersAction,
|
|
13
|
+
) -> argparse.ArgumentParser:
|
|
14
|
+
"""
|
|
15
|
+
Add the search command parser.
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
subparsers: The subparsers action to add the search parser to.
|
|
19
|
+
|
|
20
|
+
Returns:
|
|
21
|
+
The created search parser.
|
|
22
|
+
"""
|
|
23
|
+
search_parser = subparsers.add_parser(
|
|
24
|
+
"mpm-search",
|
|
25
|
+
aliases=["search"],
|
|
26
|
+
help="Search codebase using semantic search",
|
|
27
|
+
description=(
|
|
28
|
+
"Search the codebase using semantic search powered by mcp-vector-search. "
|
|
29
|
+
"Can search by query, find similar code, search by context, or manage the search index."
|
|
30
|
+
),
|
|
31
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
32
|
+
epilog="""
|
|
33
|
+
Examples:
|
|
34
|
+
# Search for code by query
|
|
35
|
+
claude-mpm mpm-search "authentication logic"
|
|
36
|
+
|
|
37
|
+
# Find code similar to a file
|
|
38
|
+
claude-mpm mpm-search --similar src/auth.py
|
|
39
|
+
|
|
40
|
+
# Search by contextual description
|
|
41
|
+
claude-mpm mpm-search --context "find all API endpoints"
|
|
42
|
+
|
|
43
|
+
# Index the project (required before searching)
|
|
44
|
+
claude-mpm mpm-search --index
|
|
45
|
+
|
|
46
|
+
# Force reindex the project
|
|
47
|
+
claude-mpm mpm-search --index --force
|
|
48
|
+
|
|
49
|
+
# Check index status
|
|
50
|
+
claude-mpm mpm-search --status
|
|
51
|
+
|
|
52
|
+
# Search with filters
|
|
53
|
+
claude-mpm mpm-search "database" --language python --limit 20
|
|
54
|
+
|
|
55
|
+
# Search with multiple file extensions
|
|
56
|
+
claude-mpm mpm-search "test" --extensions .py --extensions .js
|
|
57
|
+
|
|
58
|
+
# Find similar code to a specific function
|
|
59
|
+
claude-mpm mpm-search --similar src/auth.py --function authenticate_user
|
|
60
|
+
|
|
61
|
+
# Search with context and focus areas
|
|
62
|
+
claude-mpm mpm-search --context "security vulnerabilities" --focus authentication --focus encryption
|
|
63
|
+
|
|
64
|
+
# Output as JSON for processing
|
|
65
|
+
claude-mpm mpm-search "api" --json
|
|
66
|
+
""",
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# Primary search modes (mutually exclusive)
|
|
70
|
+
search_mode = search_parser.add_mutually_exclusive_group()
|
|
71
|
+
|
|
72
|
+
search_mode.add_argument(
|
|
73
|
+
"query",
|
|
74
|
+
nargs="?",
|
|
75
|
+
help="Search query for semantic code search",
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
search_mode.add_argument(
|
|
79
|
+
"--similar",
|
|
80
|
+
"-s",
|
|
81
|
+
metavar="FILE",
|
|
82
|
+
help="Find code similar to the specified file",
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
search_mode.add_argument(
|
|
86
|
+
"--context",
|
|
87
|
+
"-c",
|
|
88
|
+
metavar="DESCRIPTION",
|
|
89
|
+
help="Search by contextual description of what you're looking for",
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
# Index management options
|
|
93
|
+
search_parser.add_argument(
|
|
94
|
+
"--index",
|
|
95
|
+
action="store_true",
|
|
96
|
+
help="Index or reindex the project codebase",
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
search_parser.add_argument(
|
|
100
|
+
"--status",
|
|
101
|
+
action="store_true",
|
|
102
|
+
help="Check project indexing status and statistics",
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
# Search filters and options
|
|
106
|
+
search_parser.add_argument(
|
|
107
|
+
"--limit",
|
|
108
|
+
"-l",
|
|
109
|
+
type=int,
|
|
110
|
+
default=10,
|
|
111
|
+
metavar="N",
|
|
112
|
+
help="Maximum number of results to return (default: 10, max: 50)",
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
search_parser.add_argument(
|
|
116
|
+
"--threshold",
|
|
117
|
+
"-t",
|
|
118
|
+
type=float,
|
|
119
|
+
default=0.3,
|
|
120
|
+
metavar="SCORE",
|
|
121
|
+
help="Similarity threshold between 0.0 and 1.0 (default: 0.3)",
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
search_parser.add_argument(
|
|
125
|
+
"--language",
|
|
126
|
+
metavar="LANG",
|
|
127
|
+
help="Filter by programming language (e.g., python, javascript, go)",
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
search_parser.add_argument(
|
|
131
|
+
"--extensions",
|
|
132
|
+
action="append",
|
|
133
|
+
metavar="EXT",
|
|
134
|
+
help="Filter by file extensions (e.g., .py, .js). Can be specified multiple times",
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
# Options for --similar mode
|
|
138
|
+
search_parser.add_argument(
|
|
139
|
+
"--function",
|
|
140
|
+
"-f",
|
|
141
|
+
metavar="NAME",
|
|
142
|
+
help="Function name within the file (used with --similar)",
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
# Options for --context mode
|
|
146
|
+
search_parser.add_argument(
|
|
147
|
+
"--focus",
|
|
148
|
+
action="append",
|
|
149
|
+
metavar="AREA",
|
|
150
|
+
help="Focus areas for contextual search (e.g., security, performance). Can be specified multiple times",
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
# Options for --index mode
|
|
154
|
+
search_parser.add_argument(
|
|
155
|
+
"--force",
|
|
156
|
+
action="store_true",
|
|
157
|
+
help="Force reindexing even if index already exists (used with --index)",
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
# Output options
|
|
161
|
+
search_parser.add_argument(
|
|
162
|
+
"--json",
|
|
163
|
+
action="store_true",
|
|
164
|
+
dest="output_json",
|
|
165
|
+
help="Output results as JSON instead of formatted text",
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
# Additional filters
|
|
169
|
+
search_parser.add_argument(
|
|
170
|
+
"--class",
|
|
171
|
+
dest="class_name",
|
|
172
|
+
metavar="NAME",
|
|
173
|
+
help="Filter by class name",
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
search_parser.add_argument(
|
|
177
|
+
"--files",
|
|
178
|
+
metavar="PATTERN",
|
|
179
|
+
help="Filter by file patterns (e.g., '*.py' or 'src/*.js')",
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
# Verbose output
|
|
183
|
+
search_parser.add_argument(
|
|
184
|
+
"-v",
|
|
185
|
+
"--verbose",
|
|
186
|
+
action="store_true",
|
|
187
|
+
help="Enable verbose output with additional details",
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
return search_parser
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def validate_search_args(args: argparse.Namespace) -> Optional[str]:
|
|
194
|
+
"""
|
|
195
|
+
Validate search command arguments.
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
args: Parsed command line arguments.
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
Error message if validation fails, None otherwise.
|
|
202
|
+
"""
|
|
203
|
+
# Check threshold is in valid range
|
|
204
|
+
if hasattr(args, "threshold") and args.threshold is not None:
|
|
205
|
+
if not 0.0 <= args.threshold <= 1.0:
|
|
206
|
+
return "Similarity threshold must be between 0.0 and 1.0"
|
|
207
|
+
|
|
208
|
+
# Check limit is reasonable
|
|
209
|
+
if hasattr(args, "limit") and args.limit is not None:
|
|
210
|
+
if args.limit < 1:
|
|
211
|
+
return "Limit must be at least 1"
|
|
212
|
+
if args.limit > 50:
|
|
213
|
+
return "Limit cannot exceed 50"
|
|
214
|
+
|
|
215
|
+
# Check that function is only used with --similar
|
|
216
|
+
if (
|
|
217
|
+
hasattr(args, "function")
|
|
218
|
+
and args.function
|
|
219
|
+
and not getattr(args, "similar", None)
|
|
220
|
+
):
|
|
221
|
+
return "--function can only be used with --similar"
|
|
222
|
+
|
|
223
|
+
# Check that focus is only used with --context
|
|
224
|
+
if hasattr(args, "focus") and args.focus and not getattr(args, "context", None):
|
|
225
|
+
return "--focus can only be used with --context"
|
|
226
|
+
|
|
227
|
+
# Check that force is only used with --index
|
|
228
|
+
if hasattr(args, "force") and args.force and not getattr(args, "index", False):
|
|
229
|
+
return "--force can only be used with --index"
|
|
230
|
+
|
|
231
|
+
# Ensure at least one operation is specified
|
|
232
|
+
if hasattr(args, "command") and args.command in ["mpm-search", "search"]:
|
|
233
|
+
has_operation = any(
|
|
234
|
+
[
|
|
235
|
+
getattr(args, "query", None),
|
|
236
|
+
getattr(args, "similar", None),
|
|
237
|
+
getattr(args, "context", None),
|
|
238
|
+
getattr(args, "index", False),
|
|
239
|
+
getattr(args, "status", False),
|
|
240
|
+
]
|
|
241
|
+
)
|
|
242
|
+
if not has_operation:
|
|
243
|
+
return "No search operation specified. Use --help for options."
|
|
244
|
+
|
|
245
|
+
return None
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Skills command parser for claude-mpm CLI.
|
|
3
|
+
|
|
4
|
+
WHY: This module contains all arguments specific to skills management commands,
|
|
5
|
+
providing CLI access to the Skills Integration system.
|
|
6
|
+
|
|
7
|
+
DESIGN DECISION: Skills commands expose the SkillsService functionality via CLI
|
|
8
|
+
for listing, deploying, validating, updating, and configuring Claude Code skills.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
|
|
13
|
+
from ...constants import CLICommands, SkillsCommands
|
|
14
|
+
from .base_parser import add_common_arguments
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def add_skills_subparser(subparsers) -> argparse.ArgumentParser:
|
|
18
|
+
"""
|
|
19
|
+
Add the skills subparser with all skills management commands.
|
|
20
|
+
|
|
21
|
+
WHY: Skills management has multiple subcommands for discovery, deployment,
|
|
22
|
+
validation, updates, and configuration that need their own argument structures.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
subparsers: The subparsers object from the main parser
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
The configured skills subparser
|
|
29
|
+
"""
|
|
30
|
+
# Skills command with subcommands
|
|
31
|
+
skills_parser = subparsers.add_parser(
|
|
32
|
+
CLICommands.SKILLS.value, help="Manage Claude Code skills"
|
|
33
|
+
)
|
|
34
|
+
add_common_arguments(skills_parser)
|
|
35
|
+
|
|
36
|
+
skills_subparsers = skills_parser.add_subparsers(
|
|
37
|
+
dest="skills_command", help="Skills commands", metavar="SUBCOMMAND"
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# List command
|
|
41
|
+
list_parser = skills_subparsers.add_parser(
|
|
42
|
+
SkillsCommands.LIST.value, help="List available skills"
|
|
43
|
+
)
|
|
44
|
+
list_parser.add_argument(
|
|
45
|
+
"--category",
|
|
46
|
+
help="Filter by category (e.g., development, infrastructure, web-development)",
|
|
47
|
+
)
|
|
48
|
+
list_parser.add_argument(
|
|
49
|
+
"--agent", help="Show skills for specific agent (e.g., engineer, pm)"
|
|
50
|
+
)
|
|
51
|
+
list_parser.add_argument(
|
|
52
|
+
"--verbose",
|
|
53
|
+
"-v",
|
|
54
|
+
action="store_true",
|
|
55
|
+
help="Show detailed skill information",
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# Deploy command
|
|
59
|
+
deploy_parser = skills_subparsers.add_parser(
|
|
60
|
+
SkillsCommands.DEPLOY.value, help="Deploy bundled skills to project"
|
|
61
|
+
)
|
|
62
|
+
deploy_parser.add_argument(
|
|
63
|
+
"--force",
|
|
64
|
+
action="store_true",
|
|
65
|
+
help="Force redeployment of already deployed skills",
|
|
66
|
+
)
|
|
67
|
+
deploy_parser.add_argument(
|
|
68
|
+
"--skill",
|
|
69
|
+
action="append",
|
|
70
|
+
dest="skills",
|
|
71
|
+
help="Deploy specific skill(s) only (can be used multiple times)",
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
# Validate command
|
|
75
|
+
validate_parser = skills_subparsers.add_parser(
|
|
76
|
+
SkillsCommands.VALIDATE.value, help="Validate skill structure and metadata"
|
|
77
|
+
)
|
|
78
|
+
validate_parser.add_argument("skill_name", help="Name of the skill to validate")
|
|
79
|
+
validate_parser.add_argument(
|
|
80
|
+
"--strict",
|
|
81
|
+
action="store_true",
|
|
82
|
+
help="Use strict validation (treat warnings as errors)",
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Update command
|
|
86
|
+
update_parser = skills_subparsers.add_parser(
|
|
87
|
+
SkillsCommands.UPDATE.value, help="Check for and install skill updates"
|
|
88
|
+
)
|
|
89
|
+
update_parser.add_argument(
|
|
90
|
+
"skill_names",
|
|
91
|
+
nargs="*",
|
|
92
|
+
help="Specific skills to update (default: all)",
|
|
93
|
+
)
|
|
94
|
+
update_parser.add_argument(
|
|
95
|
+
"--check-only",
|
|
96
|
+
action="store_true",
|
|
97
|
+
help="Check for updates without installing them",
|
|
98
|
+
)
|
|
99
|
+
update_parser.add_argument(
|
|
100
|
+
"--force",
|
|
101
|
+
action="store_true",
|
|
102
|
+
help="Force update even if versions match",
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
# Info command
|
|
106
|
+
info_parser = skills_subparsers.add_parser(
|
|
107
|
+
SkillsCommands.INFO.value, help="Show detailed skill information"
|
|
108
|
+
)
|
|
109
|
+
info_parser.add_argument("skill_name", help="Name of the skill")
|
|
110
|
+
info_parser.add_argument(
|
|
111
|
+
"--show-content",
|
|
112
|
+
action="store_true",
|
|
113
|
+
help="Show full skill content (SKILL.md)",
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
# Config command
|
|
117
|
+
config_parser = skills_subparsers.add_parser(
|
|
118
|
+
SkillsCommands.CONFIG.value, help="View or edit skills configuration"
|
|
119
|
+
)
|
|
120
|
+
config_parser.add_argument(
|
|
121
|
+
"--scope",
|
|
122
|
+
choices=["system", "user", "project"],
|
|
123
|
+
default="project",
|
|
124
|
+
help="Configuration scope (default: project)",
|
|
125
|
+
)
|
|
126
|
+
config_parser.add_argument(
|
|
127
|
+
"--edit",
|
|
128
|
+
action="store_true",
|
|
129
|
+
help="Open configuration in $EDITOR",
|
|
130
|
+
)
|
|
131
|
+
config_parser.add_argument(
|
|
132
|
+
"--path",
|
|
133
|
+
action="store_true",
|
|
134
|
+
help="Show configuration file path",
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
return skills_parser
|