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
|
@@ -29,11 +29,9 @@ class CommandHandlerService(BaseService, CommandHandlerInterface):
|
|
|
29
29
|
|
|
30
30
|
async def _initialize(self) -> None:
|
|
31
31
|
"""Initialize the service. No special initialization needed."""
|
|
32
|
-
pass
|
|
33
32
|
|
|
34
33
|
async def _cleanup(self) -> None:
|
|
35
34
|
"""Cleanup service resources. No cleanup needed."""
|
|
36
|
-
pass
|
|
37
35
|
|
|
38
36
|
def handle_mpm_command(self, prompt: str) -> bool:
|
|
39
37
|
"""Handle /mpm: commands directly without going to Claude.
|
|
@@ -59,12 +57,11 @@ class CommandHandlerService(BaseService, CommandHandlerInterface):
|
|
|
59
57
|
# Route to appropriate handler
|
|
60
58
|
if command == "test":
|
|
61
59
|
return self._handle_test_command(args)
|
|
62
|
-
|
|
60
|
+
if command == "agents":
|
|
63
61
|
return self._handle_agents_command(args)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return True
|
|
62
|
+
print(f"Unknown command: {command}")
|
|
63
|
+
print("Available commands: test, agents")
|
|
64
|
+
return True
|
|
68
65
|
|
|
69
66
|
except KeyboardInterrupt:
|
|
70
67
|
print("\nCommand interrupted")
|
|
@@ -175,28 +172,29 @@ class CommandHandlerService(BaseService, CommandHandlerInterface):
|
|
|
175
172
|
"success": success,
|
|
176
173
|
"command": command,
|
|
177
174
|
"args": args,
|
|
178
|
-
"message":
|
|
179
|
-
|
|
180
|
-
|
|
175
|
+
"message": (
|
|
176
|
+
"Test command executed" if success else "Test command failed"
|
|
177
|
+
),
|
|
181
178
|
}
|
|
182
|
-
|
|
179
|
+
if command == "agents":
|
|
183
180
|
success = self._handle_agents_command(args)
|
|
184
181
|
return {
|
|
185
182
|
"success": success,
|
|
186
183
|
"command": command,
|
|
187
184
|
"args": args,
|
|
188
|
-
"message":
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return {
|
|
194
|
-
"success": False,
|
|
195
|
-
"command": command,
|
|
196
|
-
"args": args,
|
|
197
|
-
"error": f"Unknown command: {command}",
|
|
198
|
-
"available_commands": self.get_available_commands(),
|
|
185
|
+
"message": (
|
|
186
|
+
"Agents command executed"
|
|
187
|
+
if success
|
|
188
|
+
else "Agents command failed"
|
|
189
|
+
),
|
|
199
190
|
}
|
|
191
|
+
return {
|
|
192
|
+
"success": False,
|
|
193
|
+
"command": command,
|
|
194
|
+
"args": args,
|
|
195
|
+
"error": f"Unknown command: {command}",
|
|
196
|
+
"available_commands": self.get_available_commands(),
|
|
197
|
+
}
|
|
200
198
|
except Exception as e:
|
|
201
199
|
return {"success": False, "command": command, "args": args, "error": str(e)}
|
|
202
200
|
|
|
@@ -40,37 +40,37 @@ from .interfaces import ( # Core dependency injection; Configuration management
|
|
|
40
40
|
)
|
|
41
41
|
|
|
42
42
|
__all__ = [
|
|
43
|
-
#
|
|
44
|
-
"
|
|
45
|
-
"ServiceType",
|
|
46
|
-
"IConfigurationService",
|
|
47
|
-
"IConfigurationManager",
|
|
48
|
-
"IAgentRegistry",
|
|
43
|
+
# Service interfaces
|
|
44
|
+
"AgentDeploymentInterface",
|
|
49
45
|
"AgentMetadata",
|
|
50
|
-
|
|
46
|
+
# Base classes
|
|
47
|
+
"BaseService",
|
|
48
|
+
"CacheEntry",
|
|
51
49
|
"HealthStatus",
|
|
50
|
+
"HookServiceInterface",
|
|
51
|
+
"IAgentRegistry",
|
|
52
|
+
"ICacheService",
|
|
53
|
+
"IConfigurationManager",
|
|
54
|
+
"IConfigurationService",
|
|
55
|
+
"IErrorHandler",
|
|
56
|
+
"IEventBus",
|
|
57
|
+
"IHealthMonitor",
|
|
58
|
+
"IPerformanceMonitor",
|
|
52
59
|
"IPromptCache",
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
"TemplateRenderContext",
|
|
60
|
+
# Core interfaces
|
|
61
|
+
"IServiceContainer",
|
|
56
62
|
"IServiceFactory",
|
|
57
|
-
"IEventBus",
|
|
58
|
-
"IStructuredLogger",
|
|
59
63
|
"IServiceLifecycle",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"ICacheService",
|
|
63
|
-
# Service interfaces
|
|
64
|
-
"AgentDeploymentInterface",
|
|
65
|
-
"MemoryServiceInterface",
|
|
66
|
-
"HookServiceInterface",
|
|
67
|
-
"SocketIOServiceInterface",
|
|
68
|
-
"ProjectAnalyzerInterface",
|
|
69
|
-
"TicketManagerInterface",
|
|
64
|
+
"IStructuredLogger",
|
|
65
|
+
"ITemplateManager",
|
|
70
66
|
# Registry
|
|
71
67
|
"InterfaceRegistry",
|
|
72
|
-
|
|
73
|
-
"
|
|
74
|
-
"
|
|
68
|
+
"MemoryServiceInterface",
|
|
69
|
+
"ProjectAnalyzerInterface",
|
|
70
|
+
"ServiceType",
|
|
75
71
|
"SingletonService",
|
|
72
|
+
"SocketIOServiceInterface",
|
|
73
|
+
"SyncBaseService",
|
|
74
|
+
"TemplateRenderContext",
|
|
75
|
+
"TicketManagerInterface",
|
|
76
76
|
]
|
claude_mpm/services/core/base.py
CHANGED
|
@@ -9,7 +9,6 @@ and lifecycle management.
|
|
|
9
9
|
Part of TSK-0046: Service Layer Architecture Reorganization
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
import logging
|
|
13
12
|
from abc import ABC, abstractmethod
|
|
14
13
|
from typing import Any, Dict, Optional
|
|
15
14
|
|
|
@@ -56,7 +55,6 @@ class BaseService(ABC):
|
|
|
56
55
|
Returns:
|
|
57
56
|
True if initialization successful, False otherwise
|
|
58
57
|
"""
|
|
59
|
-
pass
|
|
60
58
|
|
|
61
59
|
@abstractmethod
|
|
62
60
|
async def shutdown(self) -> None:
|
|
@@ -65,7 +63,6 @@ class BaseService(ABC):
|
|
|
65
63
|
|
|
66
64
|
This method should clean up any resources held by the service.
|
|
67
65
|
"""
|
|
68
|
-
pass
|
|
69
66
|
|
|
70
67
|
def get_config(self, key: str, default: Any = None) -> Any:
|
|
71
68
|
"""
|
|
@@ -157,7 +154,6 @@ class SyncBaseService(ABC):
|
|
|
157
154
|
Returns:
|
|
158
155
|
True if initialization successful, False otherwise
|
|
159
156
|
"""
|
|
160
|
-
pass
|
|
161
157
|
|
|
162
158
|
@abstractmethod
|
|
163
159
|
def shutdown(self) -> None:
|
|
@@ -166,7 +162,6 @@ class SyncBaseService(ABC):
|
|
|
166
162
|
|
|
167
163
|
This method should clean up any resources held by the service.
|
|
168
164
|
"""
|
|
169
|
-
pass
|
|
170
165
|
|
|
171
166
|
def get_config(self, key: str, default: Any = None) -> Any:
|
|
172
167
|
"""
|
|
@@ -143,46 +143,46 @@ class InterfaceRegistry:
|
|
|
143
143
|
|
|
144
144
|
# Re-export everything for backward compatibility
|
|
145
145
|
__all__ = [
|
|
146
|
-
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
# Infrastructure interfaces
|
|
150
|
-
"IServiceContainer",
|
|
151
|
-
"IConfigurationService",
|
|
152
|
-
"IConfigurationManager",
|
|
153
|
-
"ICacheService",
|
|
154
|
-
"IPromptCache",
|
|
146
|
+
"AgentCapabilitiesInterface",
|
|
147
|
+
"AgentDeploymentInterface",
|
|
148
|
+
"AgentMetadata",
|
|
155
149
|
"CacheEntry",
|
|
156
|
-
"
|
|
150
|
+
"CommandHandlerInterface",
|
|
157
151
|
"HealthStatus",
|
|
158
|
-
"
|
|
159
|
-
"TemplateRenderContext",
|
|
160
|
-
"IServiceFactory",
|
|
161
|
-
"IStructuredLogger",
|
|
162
|
-
"IServiceLifecycle",
|
|
163
|
-
"IErrorHandler",
|
|
164
|
-
"IPerformanceMonitor",
|
|
165
|
-
"IEventBus",
|
|
152
|
+
"HookServiceInterface",
|
|
166
153
|
# Agent interfaces
|
|
167
154
|
"IAgentRegistry",
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
|
|
175
|
-
"
|
|
176
|
-
|
|
155
|
+
"ICacheService",
|
|
156
|
+
"IConfigurationManager",
|
|
157
|
+
"IConfigurationService",
|
|
158
|
+
"IErrorHandler",
|
|
159
|
+
"IEventBus",
|
|
160
|
+
"IHealthMonitor",
|
|
161
|
+
"IPerformanceMonitor",
|
|
162
|
+
"IPromptCache",
|
|
163
|
+
# Infrastructure interfaces
|
|
164
|
+
"IServiceContainer",
|
|
165
|
+
"IServiceFactory",
|
|
166
|
+
"IServiceLifecycle",
|
|
167
|
+
"IStructuredLogger",
|
|
168
|
+
"ITemplateManager",
|
|
169
|
+
# Registry
|
|
170
|
+
"InterfaceRegistry",
|
|
177
171
|
"MemoryHookInterface",
|
|
178
172
|
"MemoryServiceInterface",
|
|
173
|
+
"ProjectAnalyzerInterface",
|
|
174
|
+
"RunnerConfigurationInterface",
|
|
175
|
+
"ServiceType",
|
|
179
176
|
"SessionManagementInterface",
|
|
180
|
-
"UtilityServiceInterface",
|
|
181
|
-
"HookServiceInterface",
|
|
182
177
|
# Communication interfaces
|
|
183
178
|
"SocketIOServiceInterface",
|
|
184
|
-
"
|
|
179
|
+
"SubprocessLauncherInterface",
|
|
180
|
+
"SystemInstructionsInterface",
|
|
181
|
+
# Type variables
|
|
182
|
+
"T",
|
|
183
|
+
"TemplateRenderContext",
|
|
185
184
|
"TicketManagerInterface",
|
|
186
|
-
|
|
187
|
-
|
|
185
|
+
"UtilityServiceInterface",
|
|
186
|
+
# Service interfaces
|
|
187
|
+
"VersionServiceInterface",
|
|
188
188
|
]
|
|
@@ -68,29 +68,24 @@ class IAgentRegistry(ABC):
|
|
|
68
68
|
self, force_refresh: bool = False
|
|
69
69
|
) -> Dict[str, AgentMetadata]:
|
|
70
70
|
"""Discover all available agents"""
|
|
71
|
-
pass
|
|
72
71
|
|
|
73
72
|
@abstractmethod
|
|
74
73
|
async def get_agent(self, agent_name: str) -> Optional[AgentMetadata]:
|
|
75
74
|
"""Get specific agent metadata"""
|
|
76
|
-
pass
|
|
77
75
|
|
|
78
76
|
@abstractmethod
|
|
79
77
|
async def list_agents(
|
|
80
78
|
self, agent_type: Optional[str] = None, tier: Optional[str] = None
|
|
81
79
|
) -> List[AgentMetadata]:
|
|
82
80
|
"""List agents with optional filtering"""
|
|
83
|
-
pass
|
|
84
81
|
|
|
85
82
|
@abstractmethod
|
|
86
83
|
async def get_specialized_agents(self, agent_type: str) -> List[AgentMetadata]:
|
|
87
84
|
"""Get agents of a specific specialized type"""
|
|
88
|
-
pass
|
|
89
85
|
|
|
90
86
|
@abstractmethod
|
|
91
87
|
async def refresh_agent_cache(self) -> None:
|
|
92
88
|
"""Refresh the agent metadata cache"""
|
|
93
|
-
pass
|
|
94
89
|
|
|
95
90
|
|
|
96
91
|
# Agent deployment interface
|
|
@@ -118,7 +113,6 @@ class AgentDeploymentInterface(ABC):
|
|
|
118
113
|
Returns:
|
|
119
114
|
Dictionary with deployment results and status
|
|
120
115
|
"""
|
|
121
|
-
pass
|
|
122
116
|
|
|
123
117
|
@abstractmethod
|
|
124
118
|
def validate_agent(self, agent_path: Path) -> Tuple[bool, List[str]]:
|
|
@@ -130,7 +124,6 @@ class AgentDeploymentInterface(ABC):
|
|
|
130
124
|
Returns:
|
|
131
125
|
Tuple of (is_valid, list_of_errors)
|
|
132
126
|
"""
|
|
133
|
-
pass
|
|
134
127
|
|
|
135
128
|
@abstractmethod
|
|
136
129
|
def get_deployment_status(self, agent_name: str) -> Dict[str, Any]:
|
|
@@ -142,7 +135,6 @@ class AgentDeploymentInterface(ABC):
|
|
|
142
135
|
Returns:
|
|
143
136
|
Dictionary with deployment status information
|
|
144
137
|
"""
|
|
145
|
-
pass
|
|
146
138
|
|
|
147
139
|
|
|
148
140
|
# Agent capabilities interface
|
|
@@ -168,7 +160,6 @@ class AgentCapabilitiesInterface(ABC):
|
|
|
168
160
|
Returns:
|
|
169
161
|
Formatted capabilities string for Claude consumption
|
|
170
162
|
"""
|
|
171
|
-
pass
|
|
172
163
|
|
|
173
164
|
|
|
174
165
|
# System instructions interface
|
|
@@ -194,7 +185,6 @@ class SystemInstructionsInterface(ABC):
|
|
|
194
185
|
Returns:
|
|
195
186
|
Processed system instructions string
|
|
196
187
|
"""
|
|
197
|
-
pass
|
|
198
188
|
|
|
199
189
|
@abstractmethod
|
|
200
190
|
def get_available_instruction_types(self) -> List[str]:
|
|
@@ -203,7 +193,6 @@ class SystemInstructionsInterface(ABC):
|
|
|
203
193
|
Returns:
|
|
204
194
|
List of available instruction type names
|
|
205
195
|
"""
|
|
206
|
-
pass
|
|
207
196
|
|
|
208
197
|
@abstractmethod
|
|
209
198
|
def validate_instructions(self, instructions: str) -> Tuple[bool, List[str]]:
|
|
@@ -215,7 +204,6 @@ class SystemInstructionsInterface(ABC):
|
|
|
215
204
|
Returns:
|
|
216
205
|
Tuple of (is_valid, list_of_errors)
|
|
217
206
|
"""
|
|
218
|
-
pass
|
|
219
207
|
|
|
220
208
|
|
|
221
209
|
# Subprocess launcher interface
|
|
@@ -241,7 +229,6 @@ class SubprocessLauncherInterface(ABC):
|
|
|
241
229
|
Returns:
|
|
242
230
|
Dictionary with subprocess information and handles
|
|
243
231
|
"""
|
|
244
|
-
pass
|
|
245
232
|
|
|
246
233
|
@abstractmethod
|
|
247
234
|
async def launch_subprocess_async(
|
|
@@ -256,7 +243,6 @@ class SubprocessLauncherInterface(ABC):
|
|
|
256
243
|
Returns:
|
|
257
244
|
Dictionary with subprocess information and handles
|
|
258
245
|
"""
|
|
259
|
-
pass
|
|
260
246
|
|
|
261
247
|
@abstractmethod
|
|
262
248
|
def terminate_subprocess(self, process_id: str) -> bool:
|
|
@@ -268,7 +254,6 @@ class SubprocessLauncherInterface(ABC):
|
|
|
268
254
|
Returns:
|
|
269
255
|
True if termination successful
|
|
270
256
|
"""
|
|
271
|
-
pass
|
|
272
257
|
|
|
273
258
|
@abstractmethod
|
|
274
259
|
def get_subprocess_status(self, process_id: str) -> Dict[str, Any]:
|
|
@@ -280,7 +265,6 @@ class SubprocessLauncherInterface(ABC):
|
|
|
280
265
|
Returns:
|
|
281
266
|
Dictionary with process status information
|
|
282
267
|
"""
|
|
283
|
-
pass
|
|
284
268
|
|
|
285
269
|
|
|
286
270
|
# Runner configuration interface
|
|
@@ -306,7 +290,6 @@ class RunnerConfigurationInterface(ABC):
|
|
|
306
290
|
Returns:
|
|
307
291
|
Dictionary with initialization results
|
|
308
292
|
"""
|
|
309
|
-
pass
|
|
310
293
|
|
|
311
294
|
@abstractmethod
|
|
312
295
|
def register_services(self, service_container) -> None:
|
|
@@ -315,7 +298,6 @@ class RunnerConfigurationInterface(ABC):
|
|
|
315
298
|
Args:
|
|
316
299
|
service_container: Service container for registration
|
|
317
300
|
"""
|
|
318
|
-
pass
|
|
319
301
|
|
|
320
302
|
@abstractmethod
|
|
321
303
|
def load_configuration(self, config_path: Optional[Path] = None) -> Dict[str, Any]:
|
|
@@ -327,7 +309,6 @@ class RunnerConfigurationInterface(ABC):
|
|
|
327
309
|
Returns:
|
|
328
310
|
Loaded configuration dictionary
|
|
329
311
|
"""
|
|
330
|
-
pass
|
|
331
312
|
|
|
332
313
|
@abstractmethod
|
|
333
314
|
def validate_configuration(self, config: Dict[str, Any]) -> Tuple[bool, List[str]]:
|
|
@@ -339,7 +320,6 @@ class RunnerConfigurationInterface(ABC):
|
|
|
339
320
|
Returns:
|
|
340
321
|
Tuple of (is_valid, list_of_errors)
|
|
341
322
|
"""
|
|
342
|
-
pass
|
|
343
323
|
|
|
344
324
|
@abstractmethod
|
|
345
325
|
def setup_logging(self, config: Dict[str, Any]) -> None:
|
|
@@ -348,4 +328,3 @@ class RunnerConfigurationInterface(ABC):
|
|
|
348
328
|
Args:
|
|
349
329
|
config: Logging configuration
|
|
350
330
|
"""
|
|
351
|
-
pass
|
|
@@ -36,12 +36,10 @@ class SocketIOServiceInterface(ABC):
|
|
|
36
36
|
@abstractmethod
|
|
37
37
|
def start_sync(self) -> None:
|
|
38
38
|
"""Start the WebSocket server synchronously."""
|
|
39
|
-
pass
|
|
40
39
|
|
|
41
40
|
@abstractmethod
|
|
42
41
|
def stop_sync(self) -> None:
|
|
43
42
|
"""Stop the WebSocket server synchronously."""
|
|
44
|
-
pass
|
|
45
43
|
|
|
46
44
|
@abstractmethod
|
|
47
45
|
def broadcast_event(self, event_type: str, data: Dict[str, Any]) -> None:
|
|
@@ -51,7 +49,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
51
49
|
event_type: Type of event to broadcast
|
|
52
50
|
data: Event data to send
|
|
53
51
|
"""
|
|
54
|
-
pass
|
|
55
52
|
|
|
56
53
|
@abstractmethod
|
|
57
54
|
def send_to_client(
|
|
@@ -67,7 +64,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
67
64
|
Returns:
|
|
68
65
|
True if message sent successfully
|
|
69
66
|
"""
|
|
70
|
-
pass
|
|
71
67
|
|
|
72
68
|
@abstractmethod
|
|
73
69
|
def get_connection_count(self) -> int:
|
|
@@ -76,7 +72,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
76
72
|
Returns:
|
|
77
73
|
Number of connected clients
|
|
78
74
|
"""
|
|
79
|
-
pass
|
|
80
75
|
|
|
81
76
|
@abstractmethod
|
|
82
77
|
def is_running(self) -> bool:
|
|
@@ -85,7 +80,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
85
80
|
Returns:
|
|
86
81
|
True if server is active
|
|
87
82
|
"""
|
|
88
|
-
pass
|
|
89
83
|
|
|
90
84
|
@abstractmethod
|
|
91
85
|
def session_started(
|
|
@@ -98,12 +92,10 @@ class SocketIOServiceInterface(ABC):
|
|
|
98
92
|
launch_method: Method used to launch the session
|
|
99
93
|
working_dir: Working directory of the session
|
|
100
94
|
"""
|
|
101
|
-
pass
|
|
102
95
|
|
|
103
96
|
@abstractmethod
|
|
104
97
|
def session_ended(self) -> None:
|
|
105
98
|
"""Notify that a session has ended."""
|
|
106
|
-
pass
|
|
107
99
|
|
|
108
100
|
@abstractmethod
|
|
109
101
|
def claude_status_changed(
|
|
@@ -116,7 +108,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
116
108
|
pid: Process ID if applicable
|
|
117
109
|
message: Optional status message
|
|
118
110
|
"""
|
|
119
|
-
pass
|
|
120
111
|
|
|
121
112
|
@abstractmethod
|
|
122
113
|
def agent_delegated(self, agent: str, task: str, status: str = "started") -> None:
|
|
@@ -127,7 +118,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
127
118
|
task: Task assigned to the agent
|
|
128
119
|
status: Status of the delegation
|
|
129
120
|
"""
|
|
130
|
-
pass
|
|
131
121
|
|
|
132
122
|
@abstractmethod
|
|
133
123
|
def todo_updated(self, todos: List[Dict[str, Any]]) -> None:
|
|
@@ -136,7 +126,6 @@ class SocketIOServiceInterface(ABC):
|
|
|
136
126
|
Args:
|
|
137
127
|
todos: Updated list of todo items
|
|
138
128
|
"""
|
|
139
|
-
pass
|
|
140
129
|
|
|
141
130
|
|
|
142
131
|
# Project analyzer interface
|
|
@@ -161,7 +150,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
161
150
|
Returns:
|
|
162
151
|
Dictionary with project analysis results
|
|
163
152
|
"""
|
|
164
|
-
pass
|
|
165
153
|
|
|
166
154
|
@abstractmethod
|
|
167
155
|
def detect_technology_stack(self) -> List[str]:
|
|
@@ -170,7 +158,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
170
158
|
Returns:
|
|
171
159
|
List of detected technologies
|
|
172
160
|
"""
|
|
173
|
-
pass
|
|
174
161
|
|
|
175
162
|
@abstractmethod
|
|
176
163
|
def analyze_code_patterns(self) -> Dict[str, Any]:
|
|
@@ -179,7 +166,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
179
166
|
Returns:
|
|
180
167
|
Dictionary of pattern analysis results
|
|
181
168
|
"""
|
|
182
|
-
pass
|
|
183
169
|
|
|
184
170
|
@abstractmethod
|
|
185
171
|
def get_project_structure(self) -> Dict[str, Any]:
|
|
@@ -188,7 +174,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
188
174
|
Returns:
|
|
189
175
|
Dictionary representing project structure
|
|
190
176
|
"""
|
|
191
|
-
pass
|
|
192
177
|
|
|
193
178
|
@abstractmethod
|
|
194
179
|
def identify_entry_points(self) -> List[Path]:
|
|
@@ -197,7 +182,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
197
182
|
Returns:
|
|
198
183
|
List of entry point paths
|
|
199
184
|
"""
|
|
200
|
-
pass
|
|
201
185
|
|
|
202
186
|
@abstractmethod
|
|
203
187
|
def get_dependencies(self) -> Dict[str, List[str]]:
|
|
@@ -206,7 +190,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
206
190
|
Returns:
|
|
207
191
|
Dictionary mapping dependency types to lists of dependencies
|
|
208
192
|
"""
|
|
209
|
-
pass
|
|
210
193
|
|
|
211
194
|
@abstractmethod
|
|
212
195
|
def analyze_test_coverage(self) -> Dict[str, Any]:
|
|
@@ -215,7 +198,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
215
198
|
Returns:
|
|
216
199
|
Dictionary with test coverage information
|
|
217
200
|
"""
|
|
218
|
-
pass
|
|
219
201
|
|
|
220
202
|
@abstractmethod
|
|
221
203
|
def get_build_configuration(self) -> Dict[str, Any]:
|
|
@@ -224,7 +206,6 @@ class ProjectAnalyzerInterface(ABC):
|
|
|
224
206
|
Returns:
|
|
225
207
|
Dictionary with build configuration details
|
|
226
208
|
"""
|
|
227
|
-
pass
|
|
228
209
|
|
|
229
210
|
|
|
230
211
|
# Ticket manager interface
|
|
@@ -253,7 +234,6 @@ class TicketManagerInterface(ABC):
|
|
|
253
234
|
Returns:
|
|
254
235
|
Ticket ID
|
|
255
236
|
"""
|
|
256
|
-
pass
|
|
257
237
|
|
|
258
238
|
@abstractmethod
|
|
259
239
|
def get_ticket(self, ticket_id: str) -> Optional[Dict[str, Any]]:
|
|
@@ -265,7 +245,6 @@ class TicketManagerInterface(ABC):
|
|
|
265
245
|
Returns:
|
|
266
246
|
Ticket data or None if not found
|
|
267
247
|
"""
|
|
268
|
-
pass
|
|
269
248
|
|
|
270
249
|
@abstractmethod
|
|
271
250
|
def update_ticket(self, ticket_id: str, updates: Dict[str, Any]) -> bool:
|
|
@@ -278,7 +257,6 @@ class TicketManagerInterface(ABC):
|
|
|
278
257
|
Returns:
|
|
279
258
|
True if update successful
|
|
280
259
|
"""
|
|
281
|
-
pass
|
|
282
260
|
|
|
283
261
|
@abstractmethod
|
|
284
262
|
def list_tickets(
|
|
@@ -293,7 +271,6 @@ class TicketManagerInterface(ABC):
|
|
|
293
271
|
Returns:
|
|
294
272
|
List of ticket data
|
|
295
273
|
"""
|
|
296
|
-
pass
|
|
297
274
|
|
|
298
275
|
@abstractmethod
|
|
299
276
|
def assign_ticket(self, ticket_id: str, assignee: str) -> bool:
|
|
@@ -306,7 +283,6 @@ class TicketManagerInterface(ABC):
|
|
|
306
283
|
Returns:
|
|
307
284
|
True if assignment successful
|
|
308
285
|
"""
|
|
309
|
-
pass
|
|
310
286
|
|
|
311
287
|
@abstractmethod
|
|
312
288
|
def close_ticket(self, ticket_id: str, resolution: Optional[str] = None) -> bool:
|
|
@@ -319,7 +295,6 @@ class TicketManagerInterface(ABC):
|
|
|
319
295
|
Returns:
|
|
320
296
|
True if close successful
|
|
321
297
|
"""
|
|
322
|
-
pass
|
|
323
298
|
|
|
324
299
|
@abstractmethod
|
|
325
300
|
def search_tickets(self, query: str) -> List[Dict[str, Any]]:
|
|
@@ -331,7 +306,6 @@ class TicketManagerInterface(ABC):
|
|
|
331
306
|
Returns:
|
|
332
307
|
List of matching ticket data
|
|
333
308
|
"""
|
|
334
|
-
pass
|
|
335
309
|
|
|
336
310
|
@abstractmethod
|
|
337
311
|
def get_ticket_statistics(self) -> Dict[str, Any]:
|
|
@@ -340,4 +314,3 @@ class TicketManagerInterface(ABC):
|
|
|
340
314
|
Returns:
|
|
341
315
|
Dictionary with ticket statistics
|
|
342
316
|
"""
|
|
343
|
-
pass
|