claude-mpm 4.1.0__py3-none-any.whl → 4.1.2__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/BUILD_NUMBER +1 -1
- claude_mpm/VERSION +1 -1
- claude_mpm/__main__.py +1 -1
- claude_mpm/agents/BASE_PM.md +74 -46
- claude_mpm/agents/INSTRUCTIONS.md +11 -153
- claude_mpm/agents/WORKFLOW.md +61 -321
- claude_mpm/agents/__init__.py +11 -11
- claude_mpm/agents/agent_loader.py +23 -20
- claude_mpm/agents/agent_loader_integration.py +1 -1
- claude_mpm/agents/agents_metadata.py +27 -0
- claude_mpm/agents/async_agent_loader.py +5 -8
- claude_mpm/agents/base_agent_loader.py +36 -25
- claude_mpm/agents/frontmatter_validator.py +6 -6
- claude_mpm/agents/schema/agent_schema.json +1 -1
- claude_mpm/agents/system_agent_config.py +9 -9
- claude_mpm/agents/templates/api_qa.json +47 -2
- claude_mpm/agents/templates/imagemagick.json +256 -0
- claude_mpm/agents/templates/qa.json +41 -2
- claude_mpm/agents/templates/ticketing.json +5 -5
- claude_mpm/agents/templates/web_qa.json +133 -58
- claude_mpm/agents/templates/web_ui.json +3 -3
- claude_mpm/cli/__init__.py +51 -46
- claude_mpm/cli/__main__.py +1 -1
- claude_mpm/cli/commands/__init__.py +10 -12
- claude_mpm/cli/commands/agent_manager.py +186 -181
- claude_mpm/cli/commands/agents.py +271 -268
- claude_mpm/cli/commands/aggregate.py +30 -29
- claude_mpm/cli/commands/cleanup.py +50 -44
- claude_mpm/cli/commands/cleanup_orphaned_agents.py +25 -25
- claude_mpm/cli/commands/config.py +162 -127
- claude_mpm/cli/commands/doctor.py +52 -62
- claude_mpm/cli/commands/info.py +37 -25
- claude_mpm/cli/commands/mcp.py +3 -7
- claude_mpm/cli/commands/mcp_command_router.py +14 -18
- claude_mpm/cli/commands/mcp_install_commands.py +28 -23
- claude_mpm/cli/commands/mcp_pipx_config.py +58 -49
- claude_mpm/cli/commands/mcp_server_commands.py +23 -17
- claude_mpm/cli/commands/memory.py +192 -141
- claude_mpm/cli/commands/monitor.py +117 -88
- claude_mpm/cli/commands/run.py +120 -84
- claude_mpm/cli/commands/run_config_checker.py +4 -5
- claude_mpm/cli/commands/socketio_monitor.py +17 -19
- claude_mpm/cli/commands/tickets.py +92 -92
- claude_mpm/cli/parser.py +1 -5
- claude_mpm/cli/parsers/__init__.py +1 -1
- claude_mpm/cli/parsers/agent_manager_parser.py +50 -98
- claude_mpm/cli/parsers/agents_parser.py +2 -3
- claude_mpm/cli/parsers/base_parser.py +7 -5
- claude_mpm/cli/parsers/mcp_parser.py +4 -2
- claude_mpm/cli/parsers/monitor_parser.py +26 -18
- claude_mpm/cli/shared/__init__.py +10 -10
- claude_mpm/cli/shared/argument_patterns.py +57 -71
- claude_mpm/cli/shared/base_command.py +61 -53
- claude_mpm/cli/shared/error_handling.py +62 -58
- claude_mpm/cli/shared/output_formatters.py +78 -77
- claude_mpm/cli/startup_logging.py +204 -172
- claude_mpm/cli/utils.py +10 -11
- claude_mpm/cli_module/__init__.py +1 -1
- claude_mpm/cli_module/args.py +1 -1
- claude_mpm/cli_module/migration_example.py +5 -5
- claude_mpm/config/__init__.py +9 -9
- claude_mpm/config/agent_config.py +15 -14
- claude_mpm/config/experimental_features.py +4 -4
- claude_mpm/config/paths.py +0 -1
- claude_mpm/config/socketio_config.py +5 -6
- claude_mpm/constants.py +1 -2
- claude_mpm/core/__init__.py +8 -8
- claude_mpm/core/agent_name_normalizer.py +1 -1
- claude_mpm/core/agent_registry.py +20 -23
- claude_mpm/core/agent_session_manager.py +3 -3
- claude_mpm/core/base_service.py +7 -15
- claude_mpm/core/cache.py +4 -6
- claude_mpm/core/claude_runner.py +85 -113
- claude_mpm/core/config.py +43 -28
- claude_mpm/core/config_aliases.py +0 -9
- claude_mpm/core/config_constants.py +52 -30
- claude_mpm/core/constants.py +0 -1
- claude_mpm/core/container.py +18 -27
- claude_mpm/core/exceptions.py +2 -2
- claude_mpm/core/factories.py +10 -12
- claude_mpm/core/framework_loader.py +581 -280
- claude_mpm/core/hook_manager.py +26 -22
- claude_mpm/core/hook_performance_config.py +58 -47
- claude_mpm/core/injectable_service.py +1 -1
- claude_mpm/core/interactive_session.py +61 -152
- claude_mpm/core/interfaces.py +1 -100
- claude_mpm/core/lazy.py +5 -5
- claude_mpm/core/log_manager.py +587 -0
- claude_mpm/core/logger.py +125 -8
- claude_mpm/core/logging_config.py +15 -15
- claude_mpm/core/minimal_framework_loader.py +5 -8
- claude_mpm/core/oneshot_session.py +15 -33
- claude_mpm/core/optimized_agent_loader.py +4 -6
- claude_mpm/core/optimized_startup.py +2 -1
- claude_mpm/core/output_style_manager.py +147 -106
- claude_mpm/core/pm_hook_interceptor.py +0 -1
- claude_mpm/core/service_registry.py +11 -8
- claude_mpm/core/session_manager.py +1 -2
- claude_mpm/core/shared/__init__.py +1 -1
- claude_mpm/core/shared/config_loader.py +101 -97
- claude_mpm/core/shared/path_resolver.py +72 -68
- claude_mpm/core/shared/singleton_manager.py +56 -50
- claude_mpm/core/socketio_pool.py +26 -6
- claude_mpm/core/tool_access_control.py +4 -5
- claude_mpm/core/typing_utils.py +50 -59
- claude_mpm/core/unified_agent_registry.py +14 -19
- claude_mpm/core/unified_config.py +4 -6
- claude_mpm/core/unified_paths.py +197 -109
- claude_mpm/dashboard/open_dashboard.py +2 -4
- claude_mpm/experimental/cli_enhancements.py +51 -36
- claude_mpm/generators/agent_profile_generator.py +2 -4
- claude_mpm/hooks/base_hook.py +1 -2
- claude_mpm/hooks/claude_hooks/connection_pool.py +72 -26
- claude_mpm/hooks/claude_hooks/event_handlers.py +93 -38
- claude_mpm/hooks/claude_hooks/hook_handler.py +130 -76
- claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +104 -77
- claude_mpm/hooks/claude_hooks/memory_integration.py +2 -4
- claude_mpm/hooks/claude_hooks/response_tracking.py +15 -11
- claude_mpm/hooks/claude_hooks/tool_analysis.py +12 -18
- claude_mpm/hooks/memory_integration_hook.py +5 -5
- claude_mpm/hooks/tool_call_interceptor.py +1 -1
- claude_mpm/hooks/validation_hooks.py +4 -4
- claude_mpm/init.py +4 -9
- claude_mpm/models/__init__.py +2 -2
- claude_mpm/models/agent_session.py +11 -14
- claude_mpm/scripts/mcp_server.py +20 -11
- claude_mpm/scripts/mcp_wrapper.py +5 -5
- claude_mpm/scripts/mpm_doctor.py +321 -0
- claude_mpm/scripts/socketio_daemon.py +28 -25
- claude_mpm/scripts/socketio_daemon_hardened.py +298 -258
- claude_mpm/scripts/socketio_server_manager.py +116 -95
- claude_mpm/services/__init__.py +49 -49
- claude_mpm/services/agent_capabilities_service.py +12 -18
- claude_mpm/services/agents/__init__.py +22 -22
- claude_mpm/services/agents/agent_builder.py +140 -119
- claude_mpm/services/agents/deployment/__init__.py +3 -3
- claude_mpm/services/agents/deployment/agent_config_provider.py +9 -9
- claude_mpm/services/agents/deployment/agent_configuration_manager.py +19 -20
- claude_mpm/services/agents/deployment/agent_definition_factory.py +1 -5
- claude_mpm/services/agents/deployment/agent_deployment.py +136 -106
- claude_mpm/services/agents/deployment/agent_discovery_service.py +4 -8
- claude_mpm/services/agents/deployment/agent_environment_manager.py +2 -7
- claude_mpm/services/agents/deployment/agent_filesystem_manager.py +6 -10
- claude_mpm/services/agents/deployment/agent_format_converter.py +11 -15
- claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +2 -3
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +5 -5
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +13 -19
- claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -1
- claude_mpm/services/agents/deployment/agent_template_builder.py +26 -35
- claude_mpm/services/agents/deployment/agent_validator.py +0 -1
- claude_mpm/services/agents/deployment/agent_version_manager.py +7 -9
- claude_mpm/services/agents/deployment/agent_versioning.py +3 -3
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +6 -7
- claude_mpm/services/agents/deployment/async_agent_deployment.py +51 -38
- claude_mpm/services/agents/deployment/config/__init__.py +1 -1
- claude_mpm/services/agents/deployment/config/deployment_config.py +7 -8
- claude_mpm/services/agents/deployment/deployment_type_detector.py +1 -1
- claude_mpm/services/agents/deployment/deployment_wrapper.py +18 -18
- claude_mpm/services/agents/deployment/facade/__init__.py +1 -1
- claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -3
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -4
- claude_mpm/services/agents/deployment/interface_adapter.py +5 -7
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +345 -276
- claude_mpm/services/agents/deployment/pipeline/__init__.py +2 -2
- claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +1 -1
- claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +6 -4
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +3 -3
- claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +2 -2
- claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +14 -13
- claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -1
- claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +1 -1
- claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +8 -9
- claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +1 -1
- claude_mpm/services/agents/deployment/processors/__init__.py +1 -1
- claude_mpm/services/agents/deployment/processors/agent_processor.py +20 -16
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +5 -12
- claude_mpm/services/agents/deployment/results/__init__.py +1 -1
- claude_mpm/services/agents/deployment/results/deployment_result_builder.py +1 -1
- claude_mpm/services/agents/deployment/strategies/__init__.py +2 -2
- claude_mpm/services/agents/deployment/strategies/base_strategy.py +1 -7
- claude_mpm/services/agents/deployment/strategies/project_strategy.py +1 -4
- claude_mpm/services/agents/deployment/strategies/system_strategy.py +2 -3
- claude_mpm/services/agents/deployment/strategies/user_strategy.py +3 -7
- claude_mpm/services/agents/deployment/validation/__init__.py +1 -1
- claude_mpm/services/agents/deployment/validation/agent_validator.py +1 -1
- claude_mpm/services/agents/deployment/validation/template_validator.py +2 -2
- claude_mpm/services/agents/deployment/validation/validation_result.py +2 -6
- claude_mpm/services/agents/loading/__init__.py +1 -1
- claude_mpm/services/agents/loading/agent_profile_loader.py +6 -12
- claude_mpm/services/agents/loading/base_agent_manager.py +5 -5
- claude_mpm/services/agents/loading/framework_agent_loader.py +2 -4
- claude_mpm/services/agents/management/__init__.py +1 -1
- claude_mpm/services/agents/management/agent_capabilities_generator.py +1 -3
- claude_mpm/services/agents/management/agent_management_service.py +5 -9
- claude_mpm/services/agents/memory/__init__.py +4 -4
- claude_mpm/services/agents/memory/agent_memory_manager.py +280 -160
- claude_mpm/services/agents/memory/agent_persistence_service.py +0 -2
- claude_mpm/services/agents/memory/content_manager.py +44 -38
- claude_mpm/services/agents/memory/template_generator.py +4 -6
- claude_mpm/services/agents/registry/__init__.py +10 -6
- claude_mpm/services/agents/registry/deployed_agent_discovery.py +30 -27
- claude_mpm/services/agents/registry/modification_tracker.py +3 -6
- claude_mpm/services/async_session_logger.py +1 -2
- claude_mpm/services/claude_session_logger.py +1 -2
- claude_mpm/services/command_deployment_service.py +173 -0
- claude_mpm/services/command_handler_service.py +20 -22
- claude_mpm/services/core/__init__.py +25 -25
- claude_mpm/services/core/base.py +0 -5
- claude_mpm/services/core/interfaces/__init__.py +32 -32
- claude_mpm/services/core/interfaces/agent.py +0 -21
- claude_mpm/services/core/interfaces/communication.py +0 -27
- claude_mpm/services/core/interfaces/infrastructure.py +0 -56
- claude_mpm/services/core/interfaces/service.py +0 -29
- claude_mpm/services/diagnostics/__init__.py +1 -1
- claude_mpm/services/diagnostics/checks/__init__.py +6 -6
- claude_mpm/services/diagnostics/checks/agent_check.py +89 -80
- claude_mpm/services/diagnostics/checks/base_check.py +12 -16
- claude_mpm/services/diagnostics/checks/claude_desktop_check.py +84 -81
- claude_mpm/services/diagnostics/checks/common_issues_check.py +99 -91
- claude_mpm/services/diagnostics/checks/configuration_check.py +82 -77
- claude_mpm/services/diagnostics/checks/filesystem_check.py +67 -68
- claude_mpm/services/diagnostics/checks/installation_check.py +254 -94
- claude_mpm/services/diagnostics/checks/mcp_check.py +90 -88
- claude_mpm/services/diagnostics/checks/monitor_check.py +75 -76
- claude_mpm/services/diagnostics/checks/startup_log_check.py +67 -73
- claude_mpm/services/diagnostics/diagnostic_runner.py +67 -59
- claude_mpm/services/diagnostics/doctor_reporter.py +107 -70
- claude_mpm/services/diagnostics/models.py +21 -19
- claude_mpm/services/event_aggregator.py +10 -17
- claude_mpm/services/event_bus/__init__.py +1 -1
- claude_mpm/services/event_bus/config.py +54 -35
- claude_mpm/services/event_bus/event_bus.py +76 -71
- claude_mpm/services/event_bus/relay.py +74 -64
- claude_mpm/services/events/__init__.py +11 -11
- claude_mpm/services/events/consumers/__init__.py +3 -3
- claude_mpm/services/events/consumers/dead_letter.py +71 -63
- claude_mpm/services/events/consumers/logging.py +39 -37
- claude_mpm/services/events/consumers/metrics.py +56 -57
- claude_mpm/services/events/consumers/socketio.py +82 -81
- claude_mpm/services/events/core.py +110 -99
- claude_mpm/services/events/interfaces.py +56 -72
- claude_mpm/services/events/producers/__init__.py +1 -1
- claude_mpm/services/events/producers/hook.py +38 -38
- claude_mpm/services/events/producers/system.py +46 -44
- claude_mpm/services/exceptions.py +81 -80
- claude_mpm/services/framework_claude_md_generator/__init__.py +2 -4
- claude_mpm/services/framework_claude_md_generator/content_assembler.py +3 -5
- claude_mpm/services/framework_claude_md_generator/content_validator.py +1 -1
- claude_mpm/services/framework_claude_md_generator/deployment_manager.py +4 -4
- claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -1
- claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -2
- claude_mpm/services/framework_claude_md_generator/version_manager.py +4 -5
- claude_mpm/services/hook_service.py +6 -9
- claude_mpm/services/infrastructure/__init__.py +1 -1
- claude_mpm/services/infrastructure/context_preservation.py +8 -12
- claude_mpm/services/infrastructure/monitoring.py +21 -23
- claude_mpm/services/mcp_gateway/__init__.py +37 -37
- claude_mpm/services/mcp_gateway/auto_configure.py +95 -103
- claude_mpm/services/mcp_gateway/config/__init__.py +1 -1
- claude_mpm/services/mcp_gateway/config/config_loader.py +23 -25
- claude_mpm/services/mcp_gateway/config/config_schema.py +5 -5
- claude_mpm/services/mcp_gateway/config/configuration.py +9 -6
- claude_mpm/services/mcp_gateway/core/__init__.py +10 -10
- claude_mpm/services/mcp_gateway/core/base.py +0 -3
- claude_mpm/services/mcp_gateway/core/interfaces.py +1 -38
- claude_mpm/services/mcp_gateway/core/process_pool.py +99 -93
- claude_mpm/services/mcp_gateway/core/singleton_manager.py +65 -62
- claude_mpm/services/mcp_gateway/core/startup_verification.py +75 -74
- claude_mpm/services/mcp_gateway/main.py +2 -1
- claude_mpm/services/mcp_gateway/registry/service_registry.py +5 -8
- claude_mpm/services/mcp_gateway/registry/tool_registry.py +1 -1
- claude_mpm/services/mcp_gateway/server/__init__.py +1 -1
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +12 -19
- claude_mpm/services/mcp_gateway/server/stdio_handler.py +4 -3
- claude_mpm/services/mcp_gateway/server/stdio_server.py +79 -71
- claude_mpm/services/mcp_gateway/tools/__init__.py +2 -2
- claude_mpm/services/mcp_gateway/tools/base_adapter.py +5 -6
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +13 -22
- claude_mpm/services/mcp_gateway/tools/health_check_tool.py +79 -78
- claude_mpm/services/mcp_gateway/tools/hello_world.py +12 -14
- claude_mpm/services/mcp_gateway/tools/ticket_tools.py +42 -49
- claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +51 -55
- claude_mpm/services/memory/__init__.py +3 -3
- claude_mpm/services/memory/builder.py +3 -6
- claude_mpm/services/memory/cache/__init__.py +1 -1
- claude_mpm/services/memory/cache/shared_prompt_cache.py +3 -5
- claude_mpm/services/memory/cache/simple_cache.py +1 -1
- claude_mpm/services/memory/indexed_memory.py +5 -7
- claude_mpm/services/memory/optimizer.py +7 -10
- claude_mpm/services/memory/router.py +8 -9
- claude_mpm/services/memory_hook_service.py +48 -34
- claude_mpm/services/monitor_build_service.py +77 -73
- claude_mpm/services/port_manager.py +130 -108
- claude_mpm/services/project/analyzer.py +12 -10
- claude_mpm/services/project/registry.py +11 -11
- claude_mpm/services/recovery_manager.py +10 -19
- claude_mpm/services/response_tracker.py +0 -1
- claude_mpm/services/runner_configuration_service.py +19 -20
- claude_mpm/services/session_management_service.py +7 -11
- claude_mpm/services/shared/__init__.py +1 -1
- claude_mpm/services/shared/async_service_base.py +58 -50
- claude_mpm/services/shared/config_service_base.py +73 -67
- claude_mpm/services/shared/lifecycle_service_base.py +82 -78
- claude_mpm/services/shared/manager_base.py +94 -82
- claude_mpm/services/shared/service_factory.py +96 -98
- claude_mpm/services/socketio/__init__.py +3 -3
- claude_mpm/services/socketio/client_proxy.py +5 -5
- claude_mpm/services/socketio/event_normalizer.py +199 -181
- claude_mpm/services/socketio/handlers/__init__.py +3 -3
- claude_mpm/services/socketio/handlers/base.py +5 -4
- claude_mpm/services/socketio/handlers/connection.py +163 -136
- claude_mpm/services/socketio/handlers/file.py +13 -14
- claude_mpm/services/socketio/handlers/git.py +12 -7
- claude_mpm/services/socketio/handlers/hook.py +49 -44
- claude_mpm/services/socketio/handlers/memory.py +0 -1
- claude_mpm/services/socketio/handlers/project.py +0 -1
- claude_mpm/services/socketio/handlers/registry.py +37 -19
- claude_mpm/services/socketio/migration_utils.py +98 -84
- claude_mpm/services/socketio/server/__init__.py +1 -1
- claude_mpm/services/socketio/server/broadcaster.py +81 -87
- claude_mpm/services/socketio/server/core.py +65 -54
- claude_mpm/services/socketio/server/eventbus_integration.py +95 -56
- claude_mpm/services/socketio/server/main.py +64 -38
- claude_mpm/services/socketio_client_manager.py +10 -12
- claude_mpm/services/subprocess_launcher_service.py +4 -7
- claude_mpm/services/system_instructions_service.py +13 -14
- claude_mpm/services/ticket_manager.py +2 -2
- claude_mpm/services/utility_service.py +5 -13
- claude_mpm/services/version_control/__init__.py +16 -16
- claude_mpm/services/version_control/branch_strategy.py +5 -8
- claude_mpm/services/version_control/conflict_resolution.py +9 -23
- claude_mpm/services/version_control/git_operations.py +5 -7
- claude_mpm/services/version_control/semantic_versioning.py +16 -17
- claude_mpm/services/version_control/version_parser.py +13 -18
- claude_mpm/services/version_service.py +10 -11
- claude_mpm/storage/__init__.py +1 -1
- claude_mpm/storage/state_storage.py +22 -28
- claude_mpm/utils/__init__.py +6 -6
- claude_mpm/utils/agent_dependency_loader.py +47 -33
- claude_mpm/utils/config_manager.py +11 -14
- claude_mpm/utils/dependency_cache.py +1 -1
- claude_mpm/utils/dependency_manager.py +13 -17
- claude_mpm/utils/dependency_strategies.py +8 -10
- claude_mpm/utils/environment_context.py +3 -9
- claude_mpm/utils/error_handler.py +3 -13
- claude_mpm/utils/file_utils.py +1 -1
- claude_mpm/utils/path_operations.py +8 -12
- claude_mpm/utils/robust_installer.py +110 -33
- claude_mpm/utils/subprocess_utils.py +5 -6
- claude_mpm/validation/agent_validator.py +3 -6
- claude_mpm/validation/frontmatter_validator.py +1 -1
- {claude_mpm-4.1.0.dist-info → claude_mpm-4.1.2.dist-info}/METADATA +1 -1
- claude_mpm-4.1.2.dist-info/RECORD +498 -0
- claude_mpm-4.1.0.dist-info/RECORD +0 -494
- {claude_mpm-4.1.0.dist-info → claude_mpm-4.1.2.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.0.dist-info → claude_mpm-4.1.2.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.1.0.dist-info → claude_mpm-4.1.2.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.1.0.dist-info → claude_mpm-4.1.2.dist-info}/top_level.txt +0 -0
|
@@ -11,7 +11,7 @@ import argparse
|
|
|
11
11
|
def add_agent_manager_subparser(subparsers: argparse._SubParsersAction) -> None:
|
|
12
12
|
"""
|
|
13
13
|
Add the agent-manager subcommand to the parser.
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
Args:
|
|
16
16
|
subparsers: The subparsers object to add to
|
|
17
17
|
"""
|
|
@@ -32,216 +32,168 @@ Examples:
|
|
|
32
32
|
claude-mpm agent-manager show --id engineer # Show agent details
|
|
33
33
|
claude-mpm agent-manager test --id my-agent # Test agent configuration
|
|
34
34
|
claude-mpm agent-manager templates # List available templates
|
|
35
|
-
"""
|
|
35
|
+
""",
|
|
36
36
|
)
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
# Create subcommands for agent-manager
|
|
39
39
|
agent_subparsers = agent_manager_parser.add_subparsers(
|
|
40
40
|
dest="agent_manager_command",
|
|
41
41
|
help="Agent management operations",
|
|
42
|
-
metavar="OPERATION"
|
|
42
|
+
metavar="OPERATION",
|
|
43
43
|
)
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
# List command
|
|
46
46
|
list_parser = agent_subparsers.add_parser(
|
|
47
|
-
"list",
|
|
48
|
-
help="List all agents across tiers with hierarchy"
|
|
47
|
+
"list", help="List all agents across tiers with hierarchy"
|
|
49
48
|
)
|
|
50
49
|
list_parser.add_argument(
|
|
51
50
|
"--format",
|
|
52
51
|
choices=["text", "json", "yaml"],
|
|
53
52
|
default="text",
|
|
54
|
-
help="Output format (default: text)"
|
|
53
|
+
help="Output format (default: text)",
|
|
55
54
|
)
|
|
56
|
-
|
|
55
|
+
|
|
57
56
|
# Create command
|
|
58
57
|
create_parser = agent_subparsers.add_parser(
|
|
59
|
-
"create",
|
|
60
|
-
help="Create a new agent (interactive or with arguments)"
|
|
61
|
-
)
|
|
62
|
-
create_parser.add_argument(
|
|
63
|
-
"--id",
|
|
64
|
-
dest="agent_id",
|
|
65
|
-
help="Agent ID (lowercase, hyphens only)"
|
|
58
|
+
"create", help="Create a new agent (interactive or with arguments)"
|
|
66
59
|
)
|
|
67
60
|
create_parser.add_argument(
|
|
68
|
-
"--
|
|
69
|
-
help="Display name for the agent"
|
|
70
|
-
)
|
|
71
|
-
create_parser.add_argument(
|
|
72
|
-
"--description",
|
|
73
|
-
help="Agent purpose and capabilities"
|
|
61
|
+
"--id", dest="agent_id", help="Agent ID (lowercase, hyphens only)"
|
|
74
62
|
)
|
|
63
|
+
create_parser.add_argument("--name", help="Display name for the agent")
|
|
64
|
+
create_parser.add_argument("--description", help="Agent purpose and capabilities")
|
|
75
65
|
create_parser.add_argument(
|
|
76
66
|
"--model",
|
|
77
67
|
choices=["sonnet", "opus", "haiku"],
|
|
78
68
|
default="sonnet",
|
|
79
|
-
help="LLM model to use (default: sonnet)"
|
|
69
|
+
help="LLM model to use (default: sonnet)",
|
|
80
70
|
)
|
|
81
71
|
create_parser.add_argument(
|
|
82
72
|
"--tool-choice",
|
|
83
73
|
choices=["auto", "required", "any", "none"],
|
|
84
74
|
default="auto",
|
|
85
|
-
help="Tool selection strategy (default: auto)"
|
|
86
|
-
)
|
|
87
|
-
create_parser.add_argument(
|
|
88
|
-
"--template",
|
|
89
|
-
help="Base template to extend from"
|
|
75
|
+
help="Tool selection strategy (default: auto)",
|
|
90
76
|
)
|
|
77
|
+
create_parser.add_argument("--template", help="Base template to extend from")
|
|
91
78
|
create_parser.add_argument(
|
|
92
79
|
"--format",
|
|
93
80
|
choices=["text", "json"],
|
|
94
81
|
default="text",
|
|
95
|
-
help="Output format (default: text)"
|
|
82
|
+
help="Output format (default: text)",
|
|
96
83
|
)
|
|
97
|
-
|
|
84
|
+
|
|
98
85
|
# Variant command
|
|
99
86
|
variant_parser = agent_subparsers.add_parser(
|
|
100
|
-
"variant",
|
|
101
|
-
help="Create an agent variant based on existing agent"
|
|
87
|
+
"variant", help="Create an agent variant based on existing agent"
|
|
102
88
|
)
|
|
103
89
|
variant_parser.add_argument(
|
|
104
90
|
"--base",
|
|
105
91
|
dest="base_agent",
|
|
106
92
|
required=True,
|
|
107
|
-
help="Base agent ID to create variant from"
|
|
108
|
-
)
|
|
109
|
-
variant_parser.add_argument(
|
|
110
|
-
"--id",
|
|
111
|
-
dest="variant_id",
|
|
112
|
-
required=True,
|
|
113
|
-
help="Variant agent ID"
|
|
93
|
+
help="Base agent ID to create variant from",
|
|
114
94
|
)
|
|
115
95
|
variant_parser.add_argument(
|
|
116
|
-
"--
|
|
117
|
-
help="Display name for the variant"
|
|
96
|
+
"--id", dest="variant_id", required=True, help="Variant agent ID"
|
|
118
97
|
)
|
|
98
|
+
variant_parser.add_argument("--name", help="Display name for the variant")
|
|
119
99
|
variant_parser.add_argument(
|
|
120
100
|
"--model",
|
|
121
101
|
choices=["sonnet", "opus", "haiku"],
|
|
122
|
-
help="Override model for variant"
|
|
102
|
+
help="Override model for variant",
|
|
123
103
|
)
|
|
124
104
|
variant_parser.add_argument(
|
|
125
105
|
"--tool-choice",
|
|
126
106
|
choices=["auto", "required", "any", "none"],
|
|
127
|
-
help="Override tool choice for variant"
|
|
107
|
+
help="Override tool choice for variant",
|
|
128
108
|
)
|
|
129
109
|
variant_parser.add_argument(
|
|
130
|
-
"--instructions",
|
|
131
|
-
help="Additional instructions to append for variant"
|
|
110
|
+
"--instructions", help="Additional instructions to append for variant"
|
|
132
111
|
)
|
|
133
112
|
variant_parser.add_argument(
|
|
134
113
|
"--format",
|
|
135
114
|
choices=["text", "json"],
|
|
136
115
|
default="text",
|
|
137
|
-
help="Output format (default: text)"
|
|
116
|
+
help="Output format (default: text)",
|
|
138
117
|
)
|
|
139
|
-
|
|
118
|
+
|
|
140
119
|
# Deploy command
|
|
141
120
|
deploy_parser = agent_subparsers.add_parser(
|
|
142
|
-
"deploy",
|
|
143
|
-
help="Deploy agent to specified tier"
|
|
121
|
+
"deploy", help="Deploy agent to specified tier"
|
|
144
122
|
)
|
|
145
123
|
deploy_parser.add_argument(
|
|
146
|
-
"--id",
|
|
147
|
-
dest="agent_id",
|
|
148
|
-
required=True,
|
|
149
|
-
help="Agent ID to deploy"
|
|
124
|
+
"--id", dest="agent_id", required=True, help="Agent ID to deploy"
|
|
150
125
|
)
|
|
151
126
|
deploy_parser.add_argument(
|
|
152
127
|
"--tier",
|
|
153
128
|
choices=["project", "user"],
|
|
154
129
|
default="user",
|
|
155
|
-
help="Deployment tier (default: user)"
|
|
130
|
+
help="Deployment tier (default: user)",
|
|
156
131
|
)
|
|
157
132
|
deploy_parser.add_argument(
|
|
158
|
-
"--force",
|
|
159
|
-
action="store_true",
|
|
160
|
-
help="Force deployment even if agent exists"
|
|
133
|
+
"--force", action="store_true", help="Force deployment even if agent exists"
|
|
161
134
|
)
|
|
162
135
|
deploy_parser.add_argument(
|
|
163
136
|
"--format",
|
|
164
137
|
choices=["text", "json"],
|
|
165
138
|
default="text",
|
|
166
|
-
help="Output format (default: text)"
|
|
139
|
+
help="Output format (default: text)",
|
|
167
140
|
)
|
|
168
|
-
|
|
141
|
+
|
|
169
142
|
# Customize PM command
|
|
170
143
|
pm_parser = agent_subparsers.add_parser(
|
|
171
|
-
"customize-pm",
|
|
172
|
-
help="Customize PM instructions via .claude-mpm/INSTRUCTIONS.md"
|
|
144
|
+
"customize-pm", help="Customize PM instructions via .claude-mpm/INSTRUCTIONS.md"
|
|
173
145
|
)
|
|
174
146
|
pm_parser.add_argument(
|
|
175
147
|
"--level",
|
|
176
148
|
choices=["user", "project"],
|
|
177
149
|
default="user",
|
|
178
|
-
help="PM instruction level - user (~/.claude-mpm) or project (./.claude-mpm) (default: user)"
|
|
179
|
-
)
|
|
180
|
-
pm_parser.add_argument(
|
|
181
|
-
"--template",
|
|
182
|
-
help="Use predefined PM template"
|
|
183
|
-
)
|
|
184
|
-
pm_parser.add_argument(
|
|
185
|
-
"--patterns",
|
|
186
|
-
nargs="+",
|
|
187
|
-
help="Custom delegation patterns"
|
|
188
|
-
)
|
|
189
|
-
pm_parser.add_argument(
|
|
190
|
-
"--rules",
|
|
191
|
-
nargs="+",
|
|
192
|
-
help="Additional PM rules"
|
|
150
|
+
help="PM instruction level - user (~/.claude-mpm) or project (./.claude-mpm) (default: user)",
|
|
193
151
|
)
|
|
152
|
+
pm_parser.add_argument("--template", help="Use predefined PM template")
|
|
153
|
+
pm_parser.add_argument("--patterns", nargs="+", help="Custom delegation patterns")
|
|
154
|
+
pm_parser.add_argument("--rules", nargs="+", help="Additional PM rules")
|
|
194
155
|
pm_parser.add_argument(
|
|
195
156
|
"--format",
|
|
196
157
|
choices=["text", "json"],
|
|
197
158
|
default="text",
|
|
198
|
-
help="Output format (default: text)"
|
|
159
|
+
help="Output format (default: text)",
|
|
199
160
|
)
|
|
200
|
-
|
|
161
|
+
|
|
201
162
|
# Show command
|
|
202
163
|
show_parser = agent_subparsers.add_parser(
|
|
203
|
-
"show",
|
|
204
|
-
help="Display detailed agent information"
|
|
164
|
+
"show", help="Display detailed agent information"
|
|
205
165
|
)
|
|
206
166
|
show_parser.add_argument(
|
|
207
|
-
"--id",
|
|
208
|
-
dest="agent_id",
|
|
209
|
-
required=True,
|
|
210
|
-
help="Agent ID to show"
|
|
167
|
+
"--id", dest="agent_id", required=True, help="Agent ID to show"
|
|
211
168
|
)
|
|
212
169
|
show_parser.add_argument(
|
|
213
170
|
"--format",
|
|
214
171
|
choices=["text", "json", "yaml"],
|
|
215
172
|
default="text",
|
|
216
|
-
help="Output format (default: text)"
|
|
173
|
+
help="Output format (default: text)",
|
|
217
174
|
)
|
|
218
|
-
|
|
175
|
+
|
|
219
176
|
# Test command
|
|
220
177
|
test_parser = agent_subparsers.add_parser(
|
|
221
|
-
"test",
|
|
222
|
-
help="Test and validate agent configuration"
|
|
178
|
+
"test", help="Test and validate agent configuration"
|
|
223
179
|
)
|
|
224
180
|
test_parser.add_argument(
|
|
225
|
-
"--id",
|
|
226
|
-
dest="agent_id",
|
|
227
|
-
required=True,
|
|
228
|
-
help="Agent ID to test"
|
|
181
|
+
"--id", dest="agent_id", required=True, help="Agent ID to test"
|
|
229
182
|
)
|
|
230
183
|
test_parser.add_argument(
|
|
231
184
|
"--format",
|
|
232
185
|
choices=["text", "json"],
|
|
233
186
|
default="text",
|
|
234
|
-
help="Output format (default: text)"
|
|
187
|
+
help="Output format (default: text)",
|
|
235
188
|
)
|
|
236
|
-
|
|
189
|
+
|
|
237
190
|
# Templates command
|
|
238
191
|
templates_parser = agent_subparsers.add_parser(
|
|
239
|
-
"templates",
|
|
240
|
-
help="List available agent templates"
|
|
192
|
+
"templates", help="List available agent templates"
|
|
241
193
|
)
|
|
242
194
|
templates_parser.add_argument(
|
|
243
195
|
"--format",
|
|
244
196
|
choices=["text", "json", "yaml"],
|
|
245
197
|
default="text",
|
|
246
|
-
help="Output format (default: text)"
|
|
247
|
-
)
|
|
198
|
+
help="Output format (default: text)",
|
|
199
|
+
)
|
|
@@ -132,11 +132,10 @@ def add_agents_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
132
132
|
default=3,
|
|
133
133
|
help="Maximum retry attempts per package (default: 3)",
|
|
134
134
|
)
|
|
135
|
-
|
|
135
|
+
|
|
136
136
|
# Cleanup orphaned agents
|
|
137
137
|
cleanup_orphaned_parser = agents_subparsers.add_parser(
|
|
138
|
-
"cleanup-orphaned",
|
|
139
|
-
help="Clean up orphaned agents that don't have templates"
|
|
138
|
+
"cleanup-orphaned", help="Clean up orphaned agents that don't have templates"
|
|
140
139
|
)
|
|
141
140
|
cleanup_orphaned_parser.add_argument(
|
|
142
141
|
"--agents-dir",
|
|
@@ -35,7 +35,7 @@ def _get_enhanced_version(base_version: str) -> str:
|
|
|
35
35
|
|
|
36
36
|
# If we got an enhanced version (with build number), use it
|
|
37
37
|
# Remove the 'v' prefix since argparse will add the program name
|
|
38
|
-
if enhanced and enhanced.startswith(
|
|
38
|
+
if enhanced and enhanced.startswith("v"):
|
|
39
39
|
enhanced = enhanced[1:] # Remove 'v' prefix
|
|
40
40
|
|
|
41
41
|
if enhanced and enhanced != base_version:
|
|
@@ -47,7 +47,9 @@ def _get_enhanced_version(base_version: str) -> str:
|
|
|
47
47
|
return base_version
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
def add_common_arguments(
|
|
50
|
+
def add_common_arguments(
|
|
51
|
+
parser: argparse.ArgumentParser, version: Optional[str] = None
|
|
52
|
+
) -> None:
|
|
51
53
|
"""
|
|
52
54
|
Add common arguments that apply to all commands.
|
|
53
55
|
|
|
@@ -342,11 +344,11 @@ def create_parser(
|
|
|
342
344
|
# MCP pipx configuration command
|
|
343
345
|
if hasattr(CLICommands, "MCP_PIPX_CONFIG") or True: # Always add for now
|
|
344
346
|
from ..commands.mcp_pipx_config import add_parser as add_mcp_pipx_parser
|
|
345
|
-
|
|
347
|
+
|
|
346
348
|
add_mcp_pipx_parser(subparsers)
|
|
347
|
-
|
|
349
|
+
|
|
348
350
|
from ..commands.doctor import add_doctor_parser
|
|
349
|
-
|
|
351
|
+
|
|
350
352
|
add_doctor_parser(subparsers)
|
|
351
353
|
except ImportError:
|
|
352
354
|
# Commands module may not be available during testing or refactoring
|
|
@@ -79,7 +79,7 @@ def add_mcp_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
79
79
|
)
|
|
80
80
|
|
|
81
81
|
# Stop MCP server
|
|
82
|
-
|
|
82
|
+
mcp_subparsers.add_parser(
|
|
83
83
|
MCPCommands.STOP.value, help="Stop the MCP Gateway server"
|
|
84
84
|
)
|
|
85
85
|
|
|
@@ -172,7 +172,9 @@ def add_mcp_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
172
172
|
"--test", action="store_true", help="Run in test mode with debug output"
|
|
173
173
|
)
|
|
174
174
|
server_mcp_parser.add_argument(
|
|
175
|
-
"--instructions",
|
|
175
|
+
"--instructions",
|
|
176
|
+
action="store_true",
|
|
177
|
+
help="Show setup instructions for Claude Code",
|
|
176
178
|
)
|
|
177
179
|
|
|
178
180
|
return mcp_parser
|
|
@@ -42,7 +42,9 @@ def add_monitor_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
42
42
|
MonitorCommands.START.value, help="Start Socket.IO monitoring server"
|
|
43
43
|
)
|
|
44
44
|
start_monitor_parser.add_argument(
|
|
45
|
-
"--port",
|
|
45
|
+
"--port",
|
|
46
|
+
type=int,
|
|
47
|
+
help="Port to start server on (auto-select if not specified)",
|
|
46
48
|
)
|
|
47
49
|
start_monitor_parser.add_argument(
|
|
48
50
|
"--host", default="localhost", help="Host to bind to (default: localhost)"
|
|
@@ -60,12 +62,16 @@ def add_monitor_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
60
62
|
"--background", action="store_true", help="Run server in background"
|
|
61
63
|
)
|
|
62
64
|
start_monitor_parser.add_argument(
|
|
63
|
-
"--force",
|
|
64
|
-
|
|
65
|
+
"--force",
|
|
66
|
+
action="store_true",
|
|
67
|
+
help="Force kill daemon processes to reclaim ports (use with caution)",
|
|
65
68
|
)
|
|
66
69
|
start_monitor_parser.add_argument(
|
|
67
|
-
"--no-reclaim",
|
|
68
|
-
|
|
70
|
+
"--no-reclaim",
|
|
71
|
+
dest="reclaim",
|
|
72
|
+
action="store_false",
|
|
73
|
+
default=True,
|
|
74
|
+
help="Don't automatically reclaim ports from debug scripts",
|
|
69
75
|
)
|
|
70
76
|
|
|
71
77
|
# Stop monitor
|
|
@@ -83,9 +89,7 @@ def add_monitor_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
83
89
|
restart_monitor_parser = monitor_subparsers.add_parser(
|
|
84
90
|
MonitorCommands.RESTART.value, help="Restart Socket.IO monitoring server"
|
|
85
91
|
)
|
|
86
|
-
restart_monitor_parser.add_argument(
|
|
87
|
-
"--port", type=int, help="Port to restart on"
|
|
88
|
-
)
|
|
92
|
+
restart_monitor_parser.add_argument("--port", type=int, help="Port to restart on")
|
|
89
93
|
restart_monitor_parser.add_argument(
|
|
90
94
|
"--host", default="localhost", help="Host to bind to (default: localhost)"
|
|
91
95
|
)
|
|
@@ -98,27 +102,31 @@ def add_monitor_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
98
102
|
"--verbose", action="store_true", help="Show detailed status information"
|
|
99
103
|
)
|
|
100
104
|
status_monitor_parser.add_argument(
|
|
101
|
-
"--show-ports",
|
|
102
|
-
|
|
105
|
+
"--show-ports",
|
|
106
|
+
action="store_true",
|
|
107
|
+
help="Show status of all ports in the range (8765-8785)",
|
|
103
108
|
)
|
|
104
109
|
|
|
105
110
|
# Port monitor (start/restart on specific port)
|
|
106
111
|
port_monitor_parser = monitor_subparsers.add_parser(
|
|
107
|
-
MonitorCommands.PORT.value,
|
|
108
|
-
|
|
109
|
-
port_monitor_parser.add_argument(
|
|
110
|
-
"port", type=int, help="Port number to use"
|
|
112
|
+
MonitorCommands.PORT.value,
|
|
113
|
+
help="Start/restart monitoring server on specific port",
|
|
111
114
|
)
|
|
115
|
+
port_monitor_parser.add_argument("port", type=int, help="Port number to use")
|
|
112
116
|
port_monitor_parser.add_argument(
|
|
113
117
|
"--host", default="localhost", help="Host to bind to (default: localhost)"
|
|
114
118
|
)
|
|
115
119
|
port_monitor_parser.add_argument(
|
|
116
|
-
"--force",
|
|
117
|
-
|
|
120
|
+
"--force",
|
|
121
|
+
action="store_true",
|
|
122
|
+
help="Force kill daemon processes to reclaim port (use with caution)",
|
|
118
123
|
)
|
|
119
124
|
port_monitor_parser.add_argument(
|
|
120
|
-
"--no-reclaim",
|
|
121
|
-
|
|
125
|
+
"--no-reclaim",
|
|
126
|
+
dest="reclaim",
|
|
127
|
+
action="store_false",
|
|
128
|
+
default=True,
|
|
129
|
+
help="Don't automatically reclaim port from debug scripts",
|
|
122
130
|
)
|
|
123
131
|
|
|
124
132
|
return monitor_parser
|
|
@@ -18,23 +18,23 @@ from .error_handling import CLIErrorHandler, handle_cli_errors
|
|
|
18
18
|
from .output_formatters import OutputFormatter, format_output
|
|
19
19
|
|
|
20
20
|
__all__ = [
|
|
21
|
+
# Command base
|
|
22
|
+
"AgentCommand",
|
|
23
|
+
"BaseCommand",
|
|
24
|
+
# Error handling
|
|
25
|
+
"CLIErrorHandler",
|
|
26
|
+
"CommandResult",
|
|
21
27
|
# Argument patterns
|
|
22
28
|
"CommonArguments",
|
|
29
|
+
"MemoryCommand",
|
|
30
|
+
# Output formatting
|
|
31
|
+
"OutputFormatter",
|
|
23
32
|
"add_agent_arguments",
|
|
24
33
|
"add_common_arguments",
|
|
25
34
|
"add_config_arguments",
|
|
26
35
|
"add_logging_arguments",
|
|
27
36
|
"add_memory_arguments",
|
|
28
37
|
"add_output_arguments",
|
|
29
|
-
# Command base
|
|
30
|
-
"AgentCommand",
|
|
31
|
-
"BaseCommand",
|
|
32
|
-
"CommandResult",
|
|
33
|
-
"MemoryCommand",
|
|
34
|
-
# Error handling
|
|
35
|
-
"CLIErrorHandler",
|
|
36
|
-
"handle_cli_errors",
|
|
37
|
-
# Output formatting
|
|
38
|
-
"OutputFormatter",
|
|
39
38
|
"format_output",
|
|
39
|
+
"handle_cli_errors",
|
|
40
40
|
]
|