claude-mpm 4.14.6__py3-none-any.whl → 4.21.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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_ENGINEER.md +286 -0
- claude_mpm/agents/BASE_PM.md +272 -23
- claude_mpm/agents/OUTPUT_STYLE.md +48 -3
- claude_mpm/agents/PM_INSTRUCTIONS.md +49 -0
- claude_mpm/agents/agent_loader.py +17 -5
- claude_mpm/agents/frontmatter_validator.py +284 -253
- claude_mpm/agents/templates/agentic-coder-optimizer.json +9 -2
- claude_mpm/agents/templates/api_qa.json +7 -1
- claude_mpm/agents/templates/clerk-ops.json +8 -1
- claude_mpm/agents/templates/code_analyzer.json +4 -1
- claude_mpm/agents/templates/dart_engineer.json +11 -1
- claude_mpm/agents/templates/data_engineer.json +11 -1
- claude_mpm/agents/templates/documentation.json +6 -1
- claude_mpm/agents/templates/engineer.json +18 -1
- claude_mpm/agents/templates/gcp_ops_agent.json +8 -1
- claude_mpm/agents/templates/golang_engineer.json +11 -1
- claude_mpm/agents/templates/java_engineer.json +12 -2
- claude_mpm/agents/templates/local_ops_agent.json +216 -37
- claude_mpm/agents/templates/nextjs_engineer.json +11 -1
- claude_mpm/agents/templates/ops.json +8 -1
- claude_mpm/agents/templates/php-engineer.json +20 -4
- claude_mpm/agents/templates/project_organizer.json +10 -3
- claude_mpm/agents/templates/prompt-engineer.json +5 -1
- claude_mpm/agents/templates/python_engineer.json +19 -4
- claude_mpm/agents/templates/qa.json +7 -1
- claude_mpm/agents/templates/react_engineer.json +11 -1
- claude_mpm/agents/templates/refactoring_engineer.json +8 -1
- claude_mpm/agents/templates/research.json +4 -1
- claude_mpm/agents/templates/ruby-engineer.json +11 -1
- claude_mpm/agents/templates/rust_engineer.json +23 -8
- claude_mpm/agents/templates/security.json +6 -1
- claude_mpm/agents/templates/svelte-engineer.json +225 -0
- claude_mpm/agents/templates/ticketing.json +6 -1
- claude_mpm/agents/templates/typescript_engineer.json +11 -1
- claude_mpm/agents/templates/vercel_ops_agent.json +8 -1
- claude_mpm/agents/templates/version_control.json +8 -1
- claude_mpm/agents/templates/web_qa.json +7 -1
- claude_mpm/agents/templates/web_ui.json +11 -1
- claude_mpm/cli/__init__.py +34 -740
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/agent_manager.py +25 -12
- claude_mpm/cli/commands/agent_state_manager.py +186 -0
- claude_mpm/cli/commands/agents.py +204 -148
- claude_mpm/cli/commands/aggregate.py +7 -3
- claude_mpm/cli/commands/analyze.py +9 -4
- claude_mpm/cli/commands/analyze_code.py +7 -2
- claude_mpm/cli/commands/auto_configure.py +7 -9
- claude_mpm/cli/commands/config.py +47 -13
- claude_mpm/cli/commands/configure.py +294 -1788
- 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/local_deploy.py +3 -2
- claude_mpm/cli/commands/memory.py +54 -20
- 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 +75 -4
- claude_mpm/cli/commands/skills.py +488 -0
- claude_mpm/cli/executor.py +204 -0
- claude_mpm/cli/helpers.py +105 -0
- claude_mpm/cli/interactive/__init__.py +3 -0
- claude_mpm/cli/interactive/skills_wizard.py +491 -0
- claude_mpm/cli/parsers/base_parser.py +7 -0
- claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
- claude_mpm/cli/parsers/skills_parser.py +137 -0
- claude_mpm/cli/shared/output_formatters.py +28 -19
- claude_mpm/cli/startup.py +538 -0
- claude_mpm/commands/mpm-auto-configure.md +52 -0
- claude_mpm/commands/mpm-help.md +3 -0
- claude_mpm/commands/mpm-init.md +112 -6
- claude_mpm/commands/mpm-version.md +113 -0
- claude_mpm/commands/mpm.md +1 -0
- claude_mpm/config/agent_config.py +2 -2
- claude_mpm/constants.py +12 -0
- claude_mpm/core/base_service.py +13 -12
- claude_mpm/core/config.py +42 -0
- claude_mpm/core/enums.py +452 -0
- claude_mpm/core/factories.py +1 -1
- claude_mpm/core/instruction_reinforcement_hook.py +2 -1
- claude_mpm/core/interactive_session.py +6 -3
- claude_mpm/core/interfaces.py +56 -1
- claude_mpm/core/logging_config.py +6 -2
- claude_mpm/core/oneshot_session.py +8 -4
- claude_mpm/core/optimized_agent_loader.py +3 -3
- claude_mpm/core/output_style_manager.py +12 -192
- claude_mpm/core/service_registry.py +5 -1
- claude_mpm/core/types.py +2 -9
- claude_mpm/core/typing_utils.py +7 -6
- claude_mpm/dashboard/static/js/dashboard.js +0 -14
- claude_mpm/dashboard/templates/index.html +3 -41
- claude_mpm/hooks/__init__.py +8 -0
- claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
- claude_mpm/hooks/instruction_reinforcement.py +7 -2
- claude_mpm/hooks/session_resume_hook.py +121 -0
- claude_mpm/models/resume_log.py +340 -0
- claude_mpm/services/agents/auto_config_manager.py +10 -11
- claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
- claude_mpm/services/agents/deployment/agent_validator.py +17 -1
- claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
- claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
- claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
- claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +7 -6
- 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 +5 -3
- 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/validation/__init__.py +3 -1
- claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
- claude_mpm/services/agents/local_template_manager.py +1 -1
- claude_mpm/services/agents/memory/agent_memory_manager.py +5 -2
- claude_mpm/services/agents/recommender.py +47 -0
- claude_mpm/services/agents/registry/modification_tracker.py +5 -2
- claude_mpm/services/cli/resume_service.py +617 -0
- claude_mpm/services/cli/session_manager.py +87 -0
- claude_mpm/services/cli/session_pause_manager.py +504 -0
- claude_mpm/services/cli/session_resume_helper.py +372 -0
- claude_mpm/services/command_handler_service.py +11 -5
- claude_mpm/services/core/interfaces/process.py +6 -6
- claude_mpm/services/core/interfaces.py +56 -1
- claude_mpm/services/core/models/__init__.py +0 -2
- claude_mpm/services/core/models/agent_config.py +15 -28
- claude_mpm/services/core/models/health.py +1 -28
- claude_mpm/services/core/models/process.py +22 -41
- claude_mpm/services/core/path_resolver.py +1 -1
- claude_mpm/services/diagnostics/__init__.py +2 -2
- claude_mpm/services/diagnostics/checks/agent_check.py +25 -24
- claude_mpm/services/diagnostics/checks/claude_code_check.py +24 -23
- claude_mpm/services/diagnostics/checks/common_issues_check.py +25 -24
- claude_mpm/services/diagnostics/checks/configuration_check.py +24 -23
- claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
- claude_mpm/services/diagnostics/checks/installation_check.py +30 -29
- claude_mpm/services/diagnostics/checks/instructions_check.py +20 -19
- claude_mpm/services/diagnostics/checks/mcp_check.py +50 -36
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +36 -31
- claude_mpm/services/diagnostics/checks/monitor_check.py +23 -22
- claude_mpm/services/diagnostics/checks/startup_log_check.py +9 -8
- claude_mpm/services/diagnostics/diagnostic_runner.py +6 -5
- claude_mpm/services/diagnostics/doctor_reporter.py +28 -25
- claude_mpm/services/diagnostics/models.py +37 -21
- 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 +7 -6
- 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 +5 -3
- claude_mpm/services/local_ops/crash_detector.py +1 -1
- claude_mpm/services/local_ops/health_checks/http_check.py +2 -1
- claude_mpm/services/local_ops/health_checks/process_check.py +2 -1
- claude_mpm/services/local_ops/health_checks/resource_check.py +2 -1
- claude_mpm/services/local_ops/health_manager.py +1 -1
- claude_mpm/services/local_ops/process_manager.py +12 -12
- claude_mpm/services/local_ops/restart_manager.py +1 -1
- claude_mpm/services/local_ops/state_manager.py +6 -5
- claude_mpm/services/local_ops/unified_manager.py +2 -2
- claude_mpm/services/mcp_config_manager.py +7 -126
- claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
- claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
- claude_mpm/services/mcp_gateway/core/base.py +18 -31
- claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +97 -45
- claude_mpm/services/mcp_gateway/tools/health_check_tool.py +30 -28
- claude_mpm/services/memory_hook_service.py +4 -1
- claude_mpm/services/monitor/daemon_manager.py +3 -2
- claude_mpm/services/monitor/handlers/dashboard.py +2 -1
- claude_mpm/services/monitor/handlers/hooks.py +2 -1
- claude_mpm/services/monitor/management/lifecycle.py +3 -2
- claude_mpm/services/monitor/server.py +2 -1
- claude_mpm/services/session_management_service.py +3 -2
- claude_mpm/services/session_manager.py +205 -1
- claude_mpm/services/shared/async_service_base.py +16 -27
- claude_mpm/services/shared/lifecycle_service_base.py +1 -14
- claude_mpm/services/socketio/handlers/__init__.py +5 -2
- claude_mpm/services/socketio/handlers/hook.py +13 -2
- claude_mpm/services/socketio/handlers/registry.py +4 -2
- claude_mpm/services/socketio/server/main.py +10 -8
- claude_mpm/services/subprocess_launcher_service.py +14 -5
- claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +8 -7
- claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +6 -5
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +8 -7
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +7 -6
- claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +5 -4
- claude_mpm/services/unified/config_strategies/validation_strategy.py +13 -9
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +10 -3
- claude_mpm/services/unified/deployment_strategies/local.py +6 -5
- claude_mpm/services/unified/deployment_strategies/utils.py +6 -5
- claude_mpm/services/unified/deployment_strategies/vercel.py +7 -6
- claude_mpm/services/unified/interfaces.py +3 -1
- claude_mpm/services/unified/unified_analyzer.py +14 -10
- claude_mpm/services/unified/unified_config.py +2 -1
- claude_mpm/services/unified/unified_deployment.py +9 -4
- 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/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 +567 -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/tools/code_tree_analyzer.py +177 -141
- claude_mpm/tools/code_tree_events.py +4 -2
- claude_mpm/utils/agent_dependency_loader.py +2 -2
- {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/METADATA +211 -33
- {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/RECORD +339 -199
- claude_mpm/agents/INSTRUCTIONS_OLD_DEPRECATED.md +0 -602
- claude_mpm/cli/commands/mpm_init.py +0 -1994
- claude_mpm/dashboard/static/css/code-tree.css +0 -1639
- claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
- claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
- claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
- claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1041
- claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
- claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
- claude_mpm/services/project/analyzer_refactored.py +0 -450
- {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/WHEEL +0 -0
- {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/top_level.txt +0 -0
|
@@ -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
|
|
@@ -7,6 +7,8 @@ from typing import Any, Dict, List, Optional, Union
|
|
|
7
7
|
|
|
8
8
|
import yaml
|
|
9
9
|
|
|
10
|
+
from claude_mpm.core.enums import OutputFormat
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
class OutputFormatter:
|
|
12
14
|
"""Handles formatting output in different formats."""
|
|
@@ -104,13 +106,13 @@ class OutputFormatter:
|
|
|
104
106
|
return str(data)
|
|
105
107
|
|
|
106
108
|
|
|
107
|
-
def format_output(data: Any, format_type: str =
|
|
109
|
+
def format_output(data: Any, format_type: str = OutputFormat.TEXT, **kwargs) -> str:
|
|
108
110
|
"""
|
|
109
111
|
Format data according to the specified format.
|
|
110
112
|
|
|
111
113
|
Args:
|
|
112
114
|
data: Data to format
|
|
113
|
-
format_type: Output format (
|
|
115
|
+
format_type: Output format (use OutputFormat enum or string)
|
|
114
116
|
**kwargs: Additional formatting options
|
|
115
117
|
|
|
116
118
|
Returns:
|
|
@@ -118,20 +120,23 @@ def format_output(data: Any, format_type: str = "text", **kwargs) -> str:
|
|
|
118
120
|
"""
|
|
119
121
|
formatter = OutputFormatter()
|
|
120
122
|
|
|
121
|
-
|
|
123
|
+
# Convert to string for comparison (handles both enum and string inputs)
|
|
124
|
+
fmt = str(format_type).lower()
|
|
125
|
+
|
|
126
|
+
if fmt == OutputFormat.JSON:
|
|
122
127
|
return formatter.format_json(data, **kwargs)
|
|
123
|
-
if
|
|
128
|
+
if fmt == OutputFormat.YAML:
|
|
124
129
|
return formatter.format_yaml(data)
|
|
125
|
-
if
|
|
130
|
+
if fmt == OutputFormat.TABLE:
|
|
126
131
|
return formatter.format_table(data, **kwargs)
|
|
127
|
-
if
|
|
132
|
+
if fmt == OutputFormat.TEXT:
|
|
128
133
|
return formatter.format_text(data)
|
|
129
134
|
# Fallback to text format
|
|
130
135
|
return formatter.format_text(data)
|
|
131
136
|
|
|
132
137
|
|
|
133
138
|
def format_success_message(
|
|
134
|
-
message: str, data: Any = None, format_type: str =
|
|
139
|
+
message: str, data: Any = None, format_type: str = OutputFormat.TEXT
|
|
135
140
|
) -> str:
|
|
136
141
|
"""
|
|
137
142
|
Format a success message with optional data.
|
|
@@ -139,12 +144,13 @@ def format_success_message(
|
|
|
139
144
|
Args:
|
|
140
145
|
message: Success message
|
|
141
146
|
data: Optional data to include
|
|
142
|
-
format_type: Output format
|
|
147
|
+
format_type: Output format (use OutputFormat enum or string)
|
|
143
148
|
|
|
144
149
|
Returns:
|
|
145
150
|
Formatted success message
|
|
146
151
|
"""
|
|
147
|
-
|
|
152
|
+
fmt = str(format_type).lower()
|
|
153
|
+
if fmt in (OutputFormat.JSON, OutputFormat.YAML):
|
|
148
154
|
result = {"success": True, "message": message}
|
|
149
155
|
if data is not None:
|
|
150
156
|
result["data"] = data
|
|
@@ -158,7 +164,7 @@ def format_success_message(
|
|
|
158
164
|
|
|
159
165
|
|
|
160
166
|
def format_error_message(
|
|
161
|
-
message: str, details: Any = None, format_type: str =
|
|
167
|
+
message: str, details: Any = None, format_type: str = OutputFormat.TEXT
|
|
162
168
|
) -> str:
|
|
163
169
|
"""
|
|
164
170
|
Format an error message with optional details.
|
|
@@ -166,12 +172,13 @@ def format_error_message(
|
|
|
166
172
|
Args:
|
|
167
173
|
message: Error message
|
|
168
174
|
details: Optional error details
|
|
169
|
-
format_type: Output format
|
|
175
|
+
format_type: Output format (use OutputFormat enum or string)
|
|
170
176
|
|
|
171
177
|
Returns:
|
|
172
178
|
Formatted error message
|
|
173
179
|
"""
|
|
174
|
-
|
|
180
|
+
fmt = str(format_type).lower()
|
|
181
|
+
if fmt in (OutputFormat.JSON, OutputFormat.YAML):
|
|
175
182
|
result = {"success": False, "error": message}
|
|
176
183
|
if details is not None:
|
|
177
184
|
result["details"] = details
|
|
@@ -187,7 +194,7 @@ def format_error_message(
|
|
|
187
194
|
def format_list_output(
|
|
188
195
|
items: List[Any],
|
|
189
196
|
title: Optional[str] = None,
|
|
190
|
-
format_type: str =
|
|
197
|
+
format_type: str = OutputFormat.TEXT,
|
|
191
198
|
headers: Optional[List[str]] = None,
|
|
192
199
|
) -> str:
|
|
193
200
|
"""
|
|
@@ -196,29 +203,31 @@ def format_list_output(
|
|
|
196
203
|
Args:
|
|
197
204
|
items: List of items to format
|
|
198
205
|
title: Optional title for the list
|
|
199
|
-
format_type: Output format
|
|
206
|
+
format_type: Output format (use OutputFormat enum or string)
|
|
200
207
|
headers: Optional headers for table format
|
|
201
208
|
|
|
202
209
|
Returns:
|
|
203
210
|
Formatted list output
|
|
204
211
|
"""
|
|
212
|
+
fmt = str(format_type).lower()
|
|
213
|
+
|
|
205
214
|
if not items:
|
|
206
215
|
empty_msg = f"No {title.lower() if title else 'items'} found"
|
|
207
|
-
if
|
|
216
|
+
if fmt in (OutputFormat.JSON, OutputFormat.YAML):
|
|
208
217
|
return format_output({"items": [], "message": empty_msg}, format_type)
|
|
209
218
|
return empty_msg
|
|
210
219
|
|
|
211
|
-
if
|
|
220
|
+
if fmt in (OutputFormat.JSON, OutputFormat.YAML):
|
|
212
221
|
result = {"items": items}
|
|
213
222
|
if title:
|
|
214
223
|
result["title"] = title
|
|
215
224
|
return format_output(result, format_type)
|
|
216
225
|
|
|
217
|
-
if
|
|
226
|
+
if fmt == OutputFormat.TABLE:
|
|
218
227
|
output = ""
|
|
219
228
|
if title:
|
|
220
229
|
output += f"{title}\n{'=' * len(title)}\n\n"
|
|
221
|
-
output += format_output(items,
|
|
230
|
+
output += format_output(items, OutputFormat.TABLE, headers=headers)
|
|
222
231
|
return output
|
|
223
232
|
|
|
224
233
|
# Text format
|
|
@@ -228,5 +237,5 @@ def format_list_output(
|
|
|
228
237
|
lines.append("=" * len(title))
|
|
229
238
|
lines.append("")
|
|
230
239
|
|
|
231
|
-
lines.append(format_output(items,
|
|
240
|
+
lines.append(format_output(items, OutputFormat.TEXT))
|
|
232
241
|
return "\n".join(lines)
|