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.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_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,396 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MPM-Init Command - Initialize projects for optimal Claude Code and Claude MPM success.
|
|
3
|
+
|
|
4
|
+
This command delegates to the Agentic Coder Optimizer agent to establish clear,
|
|
5
|
+
single-path project standards for documentation, tooling, and workflows.
|
|
6
|
+
|
|
7
|
+
Enhanced with AST inspection capabilities for generating comprehensive developer
|
|
8
|
+
documentation with code structure analysis.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import sys
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
|
|
14
|
+
import click
|
|
15
|
+
from rich.console import Console
|
|
16
|
+
from rich.prompt import Confirm
|
|
17
|
+
from rich.table import Table
|
|
18
|
+
|
|
19
|
+
# Import the core command class from the mpm_init subpackage
|
|
20
|
+
from claude_mpm.cli.commands.mpm_init.core import MPMInitCommand
|
|
21
|
+
from claude_mpm.core.enums import OperationResult
|
|
22
|
+
|
|
23
|
+
console = Console()
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@click.group(name="mpm-init", invoke_without_command=True)
|
|
27
|
+
@click.option(
|
|
28
|
+
"--project-type",
|
|
29
|
+
type=click.Choice(
|
|
30
|
+
["web", "api", "cli", "library", "mobile", "desktop", "fullstack"]
|
|
31
|
+
),
|
|
32
|
+
help="Type of project to initialize",
|
|
33
|
+
)
|
|
34
|
+
@click.option(
|
|
35
|
+
"--framework",
|
|
36
|
+
type=str,
|
|
37
|
+
help="Specific framework (e.g., react, django, fastapi, express)",
|
|
38
|
+
)
|
|
39
|
+
@click.option(
|
|
40
|
+
"--force",
|
|
41
|
+
is_flag=True,
|
|
42
|
+
help="Force reinitialization even if project is already configured",
|
|
43
|
+
)
|
|
44
|
+
@click.option(
|
|
45
|
+
"--update",
|
|
46
|
+
is_flag=True,
|
|
47
|
+
help="Update existing CLAUDE.md instead of recreating",
|
|
48
|
+
)
|
|
49
|
+
@click.option(
|
|
50
|
+
"--review",
|
|
51
|
+
is_flag=True,
|
|
52
|
+
help="Review project state without making changes",
|
|
53
|
+
)
|
|
54
|
+
@click.option(
|
|
55
|
+
"--organize",
|
|
56
|
+
is_flag=True,
|
|
57
|
+
help="Automatically organize misplaced files into proper directories",
|
|
58
|
+
)
|
|
59
|
+
@click.option(
|
|
60
|
+
"--auto-safe/--no-auto-safe",
|
|
61
|
+
default=True,
|
|
62
|
+
help="Only move files with high confidence (default: safe mode on)",
|
|
63
|
+
)
|
|
64
|
+
@click.option(
|
|
65
|
+
"--preserve-custom/--no-preserve-custom",
|
|
66
|
+
default=True,
|
|
67
|
+
help="Preserve custom sections when updating (default: preserve)",
|
|
68
|
+
)
|
|
69
|
+
@click.option(
|
|
70
|
+
"--skip-archive",
|
|
71
|
+
is_flag=True,
|
|
72
|
+
help="Skip archiving existing files before updating",
|
|
73
|
+
)
|
|
74
|
+
@click.option(
|
|
75
|
+
"--verbose", is_flag=True, help="Show detailed output during initialization"
|
|
76
|
+
)
|
|
77
|
+
@click.option(
|
|
78
|
+
"--ast-analysis/--no-ast-analysis",
|
|
79
|
+
default=True,
|
|
80
|
+
help="Enable/disable AST analysis for enhanced documentation (default: enabled)",
|
|
81
|
+
)
|
|
82
|
+
@click.option(
|
|
83
|
+
"--quick-update",
|
|
84
|
+
is_flag=True,
|
|
85
|
+
help="Perform lightweight update based on recent git activity (default: 30 days)",
|
|
86
|
+
)
|
|
87
|
+
@click.option(
|
|
88
|
+
"--catchup",
|
|
89
|
+
is_flag=True,
|
|
90
|
+
help="Show recent commit history from all branches for PM context",
|
|
91
|
+
)
|
|
92
|
+
@click.option(
|
|
93
|
+
"--non-interactive",
|
|
94
|
+
is_flag=True,
|
|
95
|
+
help="Non-interactive mode - display report only without prompting (use with --quick-update)",
|
|
96
|
+
)
|
|
97
|
+
@click.option(
|
|
98
|
+
"--days",
|
|
99
|
+
type=int,
|
|
100
|
+
default=30,
|
|
101
|
+
help="Number of days for git history analysis in quick update mode (default: 30)",
|
|
102
|
+
)
|
|
103
|
+
@click.option(
|
|
104
|
+
"--export",
|
|
105
|
+
type=str,
|
|
106
|
+
default=None,
|
|
107
|
+
help="Export activity report to file (default: docs/reports/activity-report-{timestamp}.md)",
|
|
108
|
+
)
|
|
109
|
+
@click.argument(
|
|
110
|
+
"project_path",
|
|
111
|
+
type=click.Path(exists=True, file_okay=False, dir_okay=True),
|
|
112
|
+
required=False,
|
|
113
|
+
default=".",
|
|
114
|
+
)
|
|
115
|
+
@click.pass_context
|
|
116
|
+
def mpm_init(
|
|
117
|
+
ctx,
|
|
118
|
+
project_type,
|
|
119
|
+
framework,
|
|
120
|
+
force,
|
|
121
|
+
update,
|
|
122
|
+
review,
|
|
123
|
+
organize,
|
|
124
|
+
auto_safe,
|
|
125
|
+
preserve_custom,
|
|
126
|
+
skip_archive,
|
|
127
|
+
verbose,
|
|
128
|
+
ast_analysis,
|
|
129
|
+
quick_update,
|
|
130
|
+
catchup,
|
|
131
|
+
non_interactive,
|
|
132
|
+
days,
|
|
133
|
+
export,
|
|
134
|
+
project_path,
|
|
135
|
+
):
|
|
136
|
+
"""
|
|
137
|
+
Initialize or update a project for optimal use with Claude Code and Claude MPM.
|
|
138
|
+
|
|
139
|
+
This command uses the Agentic Coder Optimizer agent to:
|
|
140
|
+
- Create or update comprehensive CLAUDE.md documentation
|
|
141
|
+
- Establish single-path workflows (ONE way to do ANYTHING)
|
|
142
|
+
- Configure development tools and standards
|
|
143
|
+
- Set up memory systems for project knowledge
|
|
144
|
+
- Optimize for AI agent understanding
|
|
145
|
+
- Perform AST analysis for enhanced developer documentation
|
|
146
|
+
|
|
147
|
+
Context Management:
|
|
148
|
+
- resume: Analyze git history to provide context for resuming work
|
|
149
|
+
- --catchup: Show recent commit history for PM context
|
|
150
|
+
|
|
151
|
+
Update Mode:
|
|
152
|
+
When CLAUDE.md exists, the command offers to update rather than recreate,
|
|
153
|
+
preserving custom content while refreshing standard sections.
|
|
154
|
+
|
|
155
|
+
Examples:
|
|
156
|
+
claude-mpm mpm-init # Initialize/update current directory
|
|
157
|
+
claude-mpm mpm-init --catchup # Show recent git history for context
|
|
158
|
+
claude-mpm mpm-init --review # Review project state without changes
|
|
159
|
+
claude-mpm mpm-init --update # Force update mode
|
|
160
|
+
claude-mpm mpm-init --organize # Organize misplaced files
|
|
161
|
+
claude-mpm mpm-init --project-type web # Initialize as web project
|
|
162
|
+
claude-mpm mpm-init /path/to/project --force # Force reinitialize project
|
|
163
|
+
"""
|
|
164
|
+
# If a subcommand is being invoked, don't run the main command
|
|
165
|
+
if ctx.invoked_subcommand is not None:
|
|
166
|
+
return
|
|
167
|
+
|
|
168
|
+
try:
|
|
169
|
+
# Create command instance
|
|
170
|
+
command = MPMInitCommand(Path(project_path))
|
|
171
|
+
|
|
172
|
+
# Run initialization (now synchronous)
|
|
173
|
+
result = command.initialize_project(
|
|
174
|
+
project_type=project_type,
|
|
175
|
+
framework=framework,
|
|
176
|
+
force=force,
|
|
177
|
+
verbose=verbose,
|
|
178
|
+
ast_analysis=ast_analysis,
|
|
179
|
+
update_mode=update,
|
|
180
|
+
review_only=review,
|
|
181
|
+
organize_files=organize,
|
|
182
|
+
preserve_custom=preserve_custom,
|
|
183
|
+
skip_archive=skip_archive,
|
|
184
|
+
quick_update=quick_update,
|
|
185
|
+
catchup=catchup,
|
|
186
|
+
non_interactive=non_interactive,
|
|
187
|
+
days=days,
|
|
188
|
+
export=export,
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
# Exit with appropriate code
|
|
192
|
+
if result["status"] == OperationResult.SUCCESS:
|
|
193
|
+
sys.exit(0)
|
|
194
|
+
else:
|
|
195
|
+
sys.exit(1)
|
|
196
|
+
|
|
197
|
+
except KeyboardInterrupt:
|
|
198
|
+
console.print("\n[yellow]Initialization cancelled by user[/yellow]")
|
|
199
|
+
sys.exit(130)
|
|
200
|
+
except Exception as e:
|
|
201
|
+
console.print(f"[red]Initialization failed: {e}[/red]")
|
|
202
|
+
sys.exit(1)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
@mpm_init.command(name="context")
|
|
206
|
+
@click.option(
|
|
207
|
+
"--session-id",
|
|
208
|
+
"-i",
|
|
209
|
+
type=str,
|
|
210
|
+
help="Unused (for compatibility) - will be removed in future version",
|
|
211
|
+
)
|
|
212
|
+
@click.option(
|
|
213
|
+
"--days",
|
|
214
|
+
type=int,
|
|
215
|
+
default=7,
|
|
216
|
+
help="Number of days of git history to analyze (default: 7)",
|
|
217
|
+
)
|
|
218
|
+
@click.argument(
|
|
219
|
+
"project_path",
|
|
220
|
+
type=click.Path(exists=True, file_okay=False, dir_okay=True),
|
|
221
|
+
required=False,
|
|
222
|
+
default=".",
|
|
223
|
+
)
|
|
224
|
+
def context_command(session_id, days, project_path):
|
|
225
|
+
"""
|
|
226
|
+
Provide intelligent context for resuming work based on git history.
|
|
227
|
+
|
|
228
|
+
Analyzes recent git history and generates a Research agent delegation
|
|
229
|
+
prompt for intelligent project context reconstruction.
|
|
230
|
+
|
|
231
|
+
Examples:
|
|
232
|
+
claude-mpm mpm-init context # Analyze last 7 days
|
|
233
|
+
claude-mpm mpm-init context --days 14 # Analyze last 14 days
|
|
234
|
+
claude-mpm mpm-init context --days 30 # Analyze last 30 days
|
|
235
|
+
|
|
236
|
+
Note: 'resume' is deprecated, use 'context' instead.
|
|
237
|
+
"""
|
|
238
|
+
try:
|
|
239
|
+
command = MPMInitCommand(Path(project_path))
|
|
240
|
+
|
|
241
|
+
result = command.handle_context(session_id=session_id, days=days)
|
|
242
|
+
|
|
243
|
+
if (
|
|
244
|
+
result["status"] == OperationResult.SUCCESS
|
|
245
|
+
or result["status"] == OperationResult.CONTEXT_READY
|
|
246
|
+
):
|
|
247
|
+
sys.exit(0)
|
|
248
|
+
else:
|
|
249
|
+
sys.exit(1)
|
|
250
|
+
|
|
251
|
+
except KeyboardInterrupt:
|
|
252
|
+
console.print("\n[yellow]Context analysis cancelled by user[/yellow]")
|
|
253
|
+
sys.exit(130)
|
|
254
|
+
except Exception as e:
|
|
255
|
+
console.print(f"[red]Context analysis failed: {e}[/red]")
|
|
256
|
+
sys.exit(1)
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
# Resume command - NEW: reads from stop event logs
|
|
260
|
+
@mpm_init.command(name="resume")
|
|
261
|
+
@click.option(
|
|
262
|
+
"--list",
|
|
263
|
+
"list_sessions",
|
|
264
|
+
is_flag=True,
|
|
265
|
+
help="List available sessions from logs",
|
|
266
|
+
)
|
|
267
|
+
@click.option(
|
|
268
|
+
"--session-id",
|
|
269
|
+
"-s",
|
|
270
|
+
type=str,
|
|
271
|
+
help="Resume specific session by ID",
|
|
272
|
+
)
|
|
273
|
+
@click.option(
|
|
274
|
+
"--last",
|
|
275
|
+
type=int,
|
|
276
|
+
help="Show last N sessions",
|
|
277
|
+
)
|
|
278
|
+
@click.argument(
|
|
279
|
+
"project_path",
|
|
280
|
+
type=click.Path(exists=True, file_okay=False, dir_okay=True),
|
|
281
|
+
required=False,
|
|
282
|
+
default=".",
|
|
283
|
+
)
|
|
284
|
+
def resume_command(list_sessions, session_id, last, project_path):
|
|
285
|
+
"""
|
|
286
|
+
Resume work from previous session using stop event logs.
|
|
287
|
+
|
|
288
|
+
Reads from:
|
|
289
|
+
- .claude-mpm/resume-logs/ (structured summaries, preferred)
|
|
290
|
+
- .claude-mpm/responses/ (raw conversation logs, fallback)
|
|
291
|
+
|
|
292
|
+
Examples:
|
|
293
|
+
claude-mpm mpm-init resume # Show latest session
|
|
294
|
+
claude-mpm mpm-init resume --list # List all sessions
|
|
295
|
+
claude-mpm mpm-init resume --session-id ID # Resume specific session
|
|
296
|
+
claude-mpm mpm-init resume --last 5 # Show last 5 sessions
|
|
297
|
+
"""
|
|
298
|
+
from claude_mpm.services.cli.resume_service import ResumeService
|
|
299
|
+
|
|
300
|
+
try:
|
|
301
|
+
service = ResumeService(Path(project_path))
|
|
302
|
+
|
|
303
|
+
# Handle --list flag
|
|
304
|
+
if list_sessions:
|
|
305
|
+
sessions = service.list_sessions()
|
|
306
|
+
if not sessions:
|
|
307
|
+
console.print("[yellow]No sessions found in response logs.[/yellow]")
|
|
308
|
+
console.print(
|
|
309
|
+
"[dim]Sessions are stored in .claude-mpm/responses/[/dim]\n"
|
|
310
|
+
)
|
|
311
|
+
sys.exit(1)
|
|
312
|
+
|
|
313
|
+
# Limit by --last if specified
|
|
314
|
+
if last and last > 0:
|
|
315
|
+
sessions = sessions[:last]
|
|
316
|
+
|
|
317
|
+
console.print(
|
|
318
|
+
f"\n[bold cyan]📋 Available Sessions ({len(sessions)})[/bold cyan]\n"
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
table = Table(show_header=True, header_style="bold magenta")
|
|
322
|
+
table.add_column("Session ID", style="cyan", width=25)
|
|
323
|
+
table.add_column("Time", style="yellow", width=20)
|
|
324
|
+
table.add_column("Agent", style="green", width=15)
|
|
325
|
+
table.add_column("Stop Reason", style="white", width=20)
|
|
326
|
+
table.add_column("Tokens", style="dim", width=10)
|
|
327
|
+
|
|
328
|
+
for session in sessions:
|
|
329
|
+
time_str = session.timestamp.strftime("%Y-%m-%d %H:%M")
|
|
330
|
+
tokens_str = (
|
|
331
|
+
f"{session.token_usage // 1000}k"
|
|
332
|
+
if session.token_usage > 0
|
|
333
|
+
else "-"
|
|
334
|
+
)
|
|
335
|
+
|
|
336
|
+
table.add_row(
|
|
337
|
+
session.session_id,
|
|
338
|
+
time_str,
|
|
339
|
+
session.last_agent,
|
|
340
|
+
session.stop_reason,
|
|
341
|
+
tokens_str,
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
console.print(table)
|
|
345
|
+
console.print()
|
|
346
|
+
sys.exit(0)
|
|
347
|
+
|
|
348
|
+
# Handle --session-id
|
|
349
|
+
if session_id:
|
|
350
|
+
context = service.get_session_context(session_id)
|
|
351
|
+
if not context:
|
|
352
|
+
console.print(f"[red]Session '{session_id}' not found.[/red]")
|
|
353
|
+
console.print("[dim]Use --list to see available sessions.[/dim]\n")
|
|
354
|
+
sys.exit(1)
|
|
355
|
+
else:
|
|
356
|
+
# Default: get latest session
|
|
357
|
+
context = service.get_latest_session()
|
|
358
|
+
if not context:
|
|
359
|
+
console.print("[yellow]No sessions found in logs.[/yellow]")
|
|
360
|
+
console.print(
|
|
361
|
+
"[dim]Sessions are stored in .claude-mpm/responses/[/dim]\n"
|
|
362
|
+
)
|
|
363
|
+
sys.exit(1)
|
|
364
|
+
|
|
365
|
+
# Display context
|
|
366
|
+
display_text = service.format_resume_display(context)
|
|
367
|
+
console.print(display_text)
|
|
368
|
+
|
|
369
|
+
# Ask if user wants to continue
|
|
370
|
+
should_continue = Confirm.ask(
|
|
371
|
+
"\n[bold]Would you like to continue this work?[/bold]", default=True
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
if should_continue:
|
|
375
|
+
console.print(
|
|
376
|
+
"\n[green]✅ Great! Use this context to continue your work.[/green]\n"
|
|
377
|
+
)
|
|
378
|
+
sys.exit(0)
|
|
379
|
+
else:
|
|
380
|
+
console.print("\n[cyan]Starting fresh session instead.[/cyan]\n")
|
|
381
|
+
sys.exit(0)
|
|
382
|
+
|
|
383
|
+
except KeyboardInterrupt:
|
|
384
|
+
console.print("\n[yellow]Resume cancelled by user[/yellow]")
|
|
385
|
+
sys.exit(130)
|
|
386
|
+
except Exception as e:
|
|
387
|
+
from claude_mpm.core.logging_utils import get_logger
|
|
388
|
+
|
|
389
|
+
logger = get_logger(__name__)
|
|
390
|
+
logger.error(f"Resume failed: {e}")
|
|
391
|
+
console.print(f"[red]Resume failed: {e}[/red]")
|
|
392
|
+
sys.exit(1)
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
# Export for CLI registration
|
|
396
|
+
__all__ = ["mpm_init"]
|
|
@@ -8,6 +8,8 @@ from pathlib import Path
|
|
|
8
8
|
|
|
9
9
|
from rich.console import Console
|
|
10
10
|
|
|
11
|
+
from claude_mpm.core.enums import OperationResult
|
|
12
|
+
|
|
11
13
|
console = Console()
|
|
12
14
|
|
|
13
15
|
|
|
@@ -23,7 +25,7 @@ def manage_mpm_init(args):
|
|
|
23
25
|
"""
|
|
24
26
|
try:
|
|
25
27
|
# Import the command implementation
|
|
26
|
-
from .mpm_init import MPMInitCommand
|
|
28
|
+
from .mpm_init.core import MPMInitCommand
|
|
27
29
|
|
|
28
30
|
# Handle context subcommands
|
|
29
31
|
subcommand = getattr(args, "subcommand", None)
|
|
@@ -51,10 +53,79 @@ def manage_mpm_init(args):
|
|
|
51
53
|
)
|
|
52
54
|
|
|
53
55
|
# Return appropriate exit code
|
|
54
|
-
if result.get("status") in (
|
|
56
|
+
if result.get("status") in (
|
|
57
|
+
OperationResult.SUCCESS,
|
|
58
|
+
OperationResult.CONTEXT_READY,
|
|
59
|
+
):
|
|
55
60
|
return 0
|
|
56
61
|
return 1
|
|
57
62
|
|
|
63
|
+
if subcommand == "pause":
|
|
64
|
+
# Handle pause subcommand
|
|
65
|
+
from datetime import datetime, timezone
|
|
66
|
+
|
|
67
|
+
from claude_mpm.services.cli.session_pause_manager import (
|
|
68
|
+
SessionPauseManager,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Get project path
|
|
72
|
+
project_path = (
|
|
73
|
+
Path(args.project_path) if hasattr(args, "project_path") else Path.cwd()
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
console.print("\n[cyan]Creating session pause...[/cyan]")
|
|
77
|
+
|
|
78
|
+
# Create pause session
|
|
79
|
+
pause_manager = SessionPauseManager(project_path)
|
|
80
|
+
session_id = pause_manager.create_pause_session(
|
|
81
|
+
message=getattr(args, "message", None),
|
|
82
|
+
skip_commit=getattr(args, "no_commit", False),
|
|
83
|
+
export_path=getattr(args, "export", None),
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
# Display success message
|
|
87
|
+
console.print()
|
|
88
|
+
console.print("[green]✅ Session Paused Successfully[/green]", style="bold")
|
|
89
|
+
console.print()
|
|
90
|
+
console.print(f"[cyan]Session ID:[/cyan] {session_id}")
|
|
91
|
+
console.print(
|
|
92
|
+
f"[cyan]Paused At:[/cyan] {datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M:%S %Z')}"
|
|
93
|
+
)
|
|
94
|
+
console.print(f"[cyan]Location:[/cyan] .claude-mpm/sessions/{session_id}.*")
|
|
95
|
+
|
|
96
|
+
# Show what was captured
|
|
97
|
+
console.print()
|
|
98
|
+
console.print("[blue]📝 Files Created:[/blue]")
|
|
99
|
+
console.print(f" • [dim]{session_id}.json[/dim] - Machine-readable data")
|
|
100
|
+
console.print(f" • [dim]{session_id}.yaml[/dim] - Human-readable config")
|
|
101
|
+
console.print(f" • [dim]{session_id}.md[/dim] - Full documentation")
|
|
102
|
+
console.print(" • [dim]LATEST-SESSION.txt[/dim] - Quick reference pointer")
|
|
103
|
+
|
|
104
|
+
# Git commit info
|
|
105
|
+
if not getattr(args, "no_commit", False) and pause_manager._is_git_repo():
|
|
106
|
+
console.print()
|
|
107
|
+
console.print("[green]✓[/green] Git commit created")
|
|
108
|
+
|
|
109
|
+
# Export info
|
|
110
|
+
if getattr(args, "export", None):
|
|
111
|
+
console.print()
|
|
112
|
+
console.print(f"[green]✓[/green] Exported to: {args.export}")
|
|
113
|
+
|
|
114
|
+
# Show message if provided
|
|
115
|
+
if getattr(args, "message", None):
|
|
116
|
+
console.print()
|
|
117
|
+
console.print(f"[yellow]Context:[/yellow] {args.message}")
|
|
118
|
+
|
|
119
|
+
# Resume instructions
|
|
120
|
+
console.print()
|
|
121
|
+
console.print("[yellow]Resume with:[/yellow] claude-mpm mpm-init context")
|
|
122
|
+
console.print(
|
|
123
|
+
"[yellow]Quick view:[/yellow] cat .claude-mpm/sessions/LATEST-SESSION.txt"
|
|
124
|
+
)
|
|
125
|
+
console.print()
|
|
126
|
+
|
|
127
|
+
return 0
|
|
128
|
+
|
|
58
129
|
# Handle special flags
|
|
59
130
|
if getattr(args, "list_templates", False):
|
|
60
131
|
# List available templates
|
|
@@ -102,9 +173,9 @@ def manage_mpm_init(args):
|
|
|
102
173
|
result = command.initialize_project(**init_params)
|
|
103
174
|
|
|
104
175
|
# Return appropriate exit code
|
|
105
|
-
if result.get("status") ==
|
|
176
|
+
if result.get("status") == OperationResult.SUCCESS:
|
|
106
177
|
return 0
|
|
107
|
-
if result.get("status") ==
|
|
178
|
+
if result.get("status") == OperationResult.CANCELLED:
|
|
108
179
|
return 130 # User cancelled
|
|
109
180
|
return 1 # Error
|
|
110
181
|
|