claude-mpm 3.9.9__tar.gz → 4.0.3__tar.gz
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-3.9.9 → claude_mpm-4.0.3}/LICENSE +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/MANIFEST.in +1 -1
- {claude_mpm-3.9.9/src/claude_mpm.egg-info → claude_mpm-4.0.3}/PKG-INFO +51 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/README.md +48 -1
- claude_mpm-4.0.3/VERSION +1 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/claude-mpm +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/pyproject.toml +14 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/requirements.txt +8 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/scripts/ticket +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/setup.py +66 -25
- claude_mpm-4.0.3/src/claude_mpm/VERSION +1 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/__main__.py +3 -2
- claude_mpm-4.0.3/src/claude_mpm/agents/__init__.py +124 -0
- claude_mpm-4.0.3/src/claude_mpm/agents/agent_loader.py +900 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/agent_loader_integration.py +45 -45
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/agents_metadata.py +29 -30
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/async_agent_loader.py +156 -138
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/base_agent.json +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/base_agent_loader.py +179 -151
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/frontmatter_validator.py +229 -130
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/schema/agent_schema.json +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/system_agent_config.py +213 -147
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/__init__.py +13 -13
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/code_analyzer.json +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/data_engineer.json +1 -1
- claude_mpm-4.0.3/src/claude_mpm/agents/templates/documentation.json +137 -0
- claude_mpm-4.0.3/src/claude_mpm/agents/templates/engineer.json +145 -0
- claude_mpm-4.0.3/src/claude_mpm/agents/templates/memory_manager.json +155 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/ops.json +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/project_organizer.json +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/qa.json +1 -1
- claude_mpm-4.0.3/src/claude_mpm/agents/templates/refactoring_engineer.json +222 -0
- claude_mpm-4.0.3/src/claude_mpm/agents/templates/research.json +94 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/security.json +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/ticketing.json +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/version_control.json +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/web_qa.json +3 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/web_ui.json +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/__init__.py +90 -49
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/__main__.py +3 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/__init__.py +21 -18
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/agents.py +279 -247
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/aggregate.py +138 -157
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/cleanup.py +147 -147
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/config.py +93 -76
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/info.py +17 -16
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp.py +202 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_command_router.py +139 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_config_commands.py +20 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_install_commands.py +20 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_server_commands.py +175 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/mcp_tool_commands.py +34 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/memory.py +239 -203
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/monitor.py +203 -81
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/run.py +380 -429
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/run_config_checker.py +160 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/commands/socketio_monitor.py +235 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/commands/tickets.py +305 -197
- claude_mpm-4.0.3/src/claude_mpm/cli/parser.py +34 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/__init__.py +29 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/agents_parser.py +136 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/base_parser.py +331 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/config_parser.py +85 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/mcp_parser.py +152 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/memory_parser.py +138 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/monitor_parser.py +104 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/run_parser.py +147 -0
- claude_mpm-4.0.3/src/claude_mpm/cli/parsers/tickets_parser.py +203 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/ticket_cli.py +7 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli/utils.py +55 -37
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/__init__.py +6 -6
- claude_mpm-4.0.3/src/claude_mpm/cli_module/args.py +270 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/commands.py +79 -70
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/cli_module/migration_example.py +38 -60
- claude_mpm-4.0.3/src/claude_mpm/config/__init__.py +45 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/config/agent_config.py +151 -119
- claude_mpm-4.0.3/src/claude_mpm/config/experimental_features.py +217 -0
- claude_mpm-4.0.3/src/claude_mpm/config/paths.py +258 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/config/socketio_config.py +84 -73
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/constants.py +36 -18
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/__init__.py +9 -6
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/agent_name_normalizer.py +68 -71
- claude_mpm-4.0.3/src/claude_mpm/core/agent_registry.py +527 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/agent_session_manager.py +74 -63
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/base_service.py +116 -87
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/cache.py +119 -153
- claude_mpm-4.0.3/src/claude_mpm/core/claude_runner.py +793 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/config.py +263 -168
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/config_aliases.py +69 -61
- claude_mpm-4.0.3/src/claude_mpm/core/config_constants.py +292 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/constants.py +57 -99
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/container.py +211 -178
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/exceptions.py +233 -89
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/factories.py +92 -54
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/framework_loader.py +378 -220
- claude_mpm-4.0.3/src/claude_mpm/core/hook_manager.py +311 -0
- claude_mpm-4.0.3/src/claude_mpm/core/hook_performance_config.py +136 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/injectable_service.py +61 -55
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/interactive_session.py +165 -155
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/interfaces.py +221 -195
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/lazy.py +96 -96
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/logger.py +133 -107
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/logging_config.py +185 -157
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/minimal_framework_loader.py +20 -15
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/mixins.py +30 -29
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/oneshot_session.py +215 -181
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/optimized_agent_loader.py +134 -138
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/optimized_startup.py +159 -157
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/pm_hook_interceptor.py +85 -72
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/service_registry.py +103 -101
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/session_manager.py +97 -87
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/socketio_pool.py +212 -158
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/tool_access_control.py +58 -51
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/types.py +46 -24
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/core/typing_utils.py +166 -82
- claude_mpm-4.0.3/src/claude_mpm/core/unified_agent_registry.py +721 -0
- claude_mpm-4.0.3/src/claude_mpm/core/unified_config.py +550 -0
- claude_mpm-4.0.3/src/claude_mpm/core/unified_paths.py +549 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/index.html +1 -1
- claude_mpm-4.0.3/src/claude_mpm/dashboard/open_dashboard.py +68 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/css/dashboard.css +27 -8
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/event-processor.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/export-manager.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/session-manager.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/components/working-directory.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/dashboard.js +2 -0
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/dist/socket-client.js +2 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +80 -76
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/event-processor.js +71 -67
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +74 -70
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/export-manager.js +31 -28
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +106 -92
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +11 -11
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +73 -73
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +163 -163
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +305 -233
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/session-manager.js +32 -29
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +27 -20
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +21 -18
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/components/working-directory.js +74 -71
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/dashboard.js +178 -453
- claude_mpm-4.0.3/src/claude_mpm/dashboard/static/js/extension-error-handler.js +164 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/static/js/socket-client.js +120 -54
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/templates/index.html +40 -50
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/experimental/cli_enhancements.py +60 -58
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/generators/__init__.py +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/generators/agent_profile_generator.py +75 -65
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/__init__.py +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/base_hook.py +33 -28
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/claude_hooks/__init__.py +1 -1
- claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/connection_pool.py +120 -0
- claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/event_handlers.py +743 -0
- claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/hook_handler.py +896 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +4 -4
- claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/memory_integration.py +221 -0
- claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/response_tracking.py +348 -0
- claude_mpm-4.0.3/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +230 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/memory_integration_hook.py +140 -100
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/tool_call_interceptor.py +89 -76
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/hooks/validation_hooks.py +57 -49
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/init.py +145 -121
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/models/__init__.py +9 -9
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/models/agent_definition.py +33 -23
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/models/agent_session.py +228 -200
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/scripts/__init__.py +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/scripts/socketio_daemon.py +192 -75
- claude_mpm-4.0.3/src/claude_mpm/scripts/socketio_server_manager.py +328 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/scripts/start_activity_logging.py +25 -22
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/__init__.py +68 -43
- claude_mpm-4.0.3/src/claude_mpm/services/agent_capabilities_service.py +271 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/__init__.py +23 -32
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/__init__.py +3 -3
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_config_provider.py +310 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +359 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +84 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_deployment.py +969 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +387 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +293 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +387 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_format_converter.py +453 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +161 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +345 -495
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +279 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +88 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_template_builder.py +406 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_validator.py +352 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agent_version_manager.py +313 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/agent_versioning.py +6 -9
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +79 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +298 -234
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/config/__init__.py +13 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/config/deployment_config.py +182 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +200 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +54 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +124 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/__init__.py +18 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +159 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +73 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +270 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +178 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/interface_adapter.py +227 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +85 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +100 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +32 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +158 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +159 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +169 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +19 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +195 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +119 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +79 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +90 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +100 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/__init__.py +15 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +98 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +235 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +258 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +318 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/results/__init__.py +13 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +200 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +249 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/__init__.py +25 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +119 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +150 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +117 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +116 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +137 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +108 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/__init__.py +19 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +323 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +238 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/template_validator.py +299 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/deployment/validation/validation_result.py +226 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +259 -229
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/base_agent_manager.py +90 -81
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +154 -129
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +72 -58
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/management/agent_management_service.py +209 -156
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/memory/__init__.py +9 -6
- claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/agent_memory_manager.py +637 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +20 -16
- claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/analyzer.py +430 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/content_manager.py +376 -0
- claude_mpm-4.0.3/src/claude_mpm/services/agents/memory/template_generator.py +468 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/__init__.py +7 -10
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +122 -97
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/agents/registry/modification_tracker.py +351 -285
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/async_session_logger.py +187 -153
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/claude_session_logger.py +87 -72
- claude_mpm-4.0.3/src/claude_mpm/services/command_handler_service.py +217 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/communication/__init__.py +3 -2
- claude_mpm-4.0.3/src/claude_mpm/services/core/__init__.py +76 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/core/base.py +60 -53
- claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/__init__.py +188 -0
- claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/agent.py +351 -0
- claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/communication.py +343 -0
- claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/infrastructure.py +413 -0
- claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces/service.py +434 -0
- claude_mpm-4.0.3/src/claude_mpm/services/core/interfaces.py +26 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/event_aggregator.py +208 -170
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/exceptions.py +387 -308
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +75 -79
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +69 -60
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +65 -61
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +68 -49
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +34 -34
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +25 -22
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +10 -10
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +4 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +4 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +4 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +6 -5
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +8 -7
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +4 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +6 -5
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +9 -8
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +4 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +5 -4
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +28 -27
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +30 -28
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/hook_service.py +106 -114
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/__init__.py +7 -5
- claude_mpm-4.0.3/src/claude_mpm/services/infrastructure/context_preservation.py +571 -0
- claude_mpm-4.0.3/src/claude_mpm/services/infrastructure/daemon_manager.py +279 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/logging.py +83 -76
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/infrastructure/monitoring.py +547 -404
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/__init__.py +40 -23
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +61 -56
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +50 -41
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/config/configuration.py +82 -75
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/__init__.py +14 -21
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/base.py +80 -67
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +60 -46
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +97 -93
- claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/main.py +506 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +100 -101
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +135 -126
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/server/__init__.py +4 -4
- claude_mpm-3.9.9/src/claude_mpm/services/mcp_gateway/server/mcp_server.py → claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +149 -153
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +105 -107
- claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +691 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +4 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +110 -121
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +283 -215
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +122 -120
- claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +652 -0
- claude_mpm-4.0.3/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +606 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/builder.py +451 -362
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +232 -194
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/cache/simple_cache.py +107 -93
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/indexed_memory.py +195 -193
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/memory/optimizer.py +267 -234
- claude_mpm-4.0.3/src/claude_mpm/services/memory/router.py +846 -0
- claude_mpm-4.0.3/src/claude_mpm/services/memory_hook_service.py +237 -0
- claude_mpm-4.0.3/src/claude_mpm/services/port_manager.py +223 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/project/__init__.py +3 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/project/analyzer.py +451 -305
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/project/registry.py +262 -240
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/recovery_manager.py +287 -231
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/response_tracker.py +87 -67
- claude_mpm-4.0.3/src/claude_mpm/services/runner_configuration_service.py +587 -0
- claude_mpm-4.0.3/src/claude_mpm/services/session_management_service.py +304 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/__init__.py +4 -4
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/client_proxy.py +174 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/__init__.py +3 -3
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/base.py +44 -30
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/connection.py +145 -65
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/handlers/file.py +228 -0
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/handlers/git.py +957 -0
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/handlers/hook.py +170 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/memory.py +4 -4
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/project.py +4 -4
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio/handlers/registry.py +53 -38
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/__init__.py +18 -0
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/broadcaster.py +252 -0
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/core.py +399 -0
- claude_mpm-4.0.3/src/claude_mpm/services/socketio/server/main.py +323 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/socketio_client_manager.py +160 -133
- claude_mpm-4.0.3/src/claude_mpm/services/socketio_server.py +84 -0
- claude_mpm-4.0.3/src/claude_mpm/services/subprocess_launcher_service.py +316 -0
- claude_mpm-4.0.3/src/claude_mpm/services/system_instructions_service.py +258 -0
- claude_mpm-4.0.3/src/claude_mpm/services/ticket_manager.py +25 -0
- claude_mpm-4.0.3/src/claude_mpm/services/utility_service.py +285 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/__init__.py +18 -21
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/branch_strategy.py +20 -10
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/conflict_resolution.py +37 -13
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/git_operations.py +52 -21
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/semantic_versioning.py +92 -53
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/services/version_control/version_parser.py +145 -125
- claude_mpm-4.0.3/src/claude_mpm/services/version_service.py +270 -0
- claude_mpm-4.0.3/src/claude_mpm/storage/__init__.py +9 -0
- claude_mpm-4.0.3/src/claude_mpm/storage/state_storage.py +552 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/ticket_wrapper.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/__init__.py +2 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/agent_dependency_loader.py +453 -243
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/config_manager.py +157 -118
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/console.py +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_cache.py +102 -107
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_manager.py +52 -47
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/dependency_strategies.py +131 -96
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/environment_context.py +110 -102
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/error_handler.py +75 -55
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/file_utils.py +80 -67
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/framework_detection.py +12 -11
- claude_mpm-4.0.3/src/claude_mpm/utils/import_migration_example.py +32 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/imports.py +48 -45
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/path_operations.py +100 -93
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/robust_installer.py +172 -164
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/session_logging.py +30 -23
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/utils/subprocess_utils.py +99 -61
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/validation/__init__.py +1 -1
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/validation/agent_validator.py +151 -111
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/validation/frontmatter_validator.py +92 -71
- {claude_mpm-3.9.9 → claude_mpm-4.0.3/src/claude_mpm.egg-info}/PKG-INFO +51 -2
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/SOURCES.txt +135 -27
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/entry_points.txt +1 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/requires.txt +2 -0
- claude_mpm-3.9.9/VERSION +0 -1
- claude_mpm-3.9.9/scripts/run_mpm.py +0 -21
- claude_mpm-3.9.9/src/claude_mpm/VERSION +0 -1
- claude_mpm-3.9.9/src/claude_mpm/agents/__init__.py +0 -118
- claude_mpm-3.9.9/src/claude_mpm/agents/agent_loader.py +0 -1439
- claude_mpm-3.9.9/src/claude_mpm/agents/templates/documentation.json +0 -125
- claude_mpm-3.9.9/src/claude_mpm/agents/templates/engineer.json +0 -129
- claude_mpm-3.9.9/src/claude_mpm/agents/templates/research.json +0 -88
- claude_mpm-3.9.9/src/claude_mpm/cli/commands/mcp.py +0 -821
- claude_mpm-3.9.9/src/claude_mpm/cli/parser.py +0 -1160
- claude_mpm-3.9.9/src/claude_mpm/cli_module/args.py +0 -222
- claude_mpm-3.9.9/src/claude_mpm/config/__init__.py +0 -38
- claude_mpm-3.9.9/src/claude_mpm/config/memory_guardian_config.py +0 -325
- claude_mpm-3.9.9/src/claude_mpm/config/paths.py +0 -372
- claude_mpm-3.9.9/src/claude_mpm/core/agent_registry.py +0 -676
- claude_mpm-3.9.9/src/claude_mpm/core/claude_runner.py +0 -1488
- claude_mpm-3.9.9/src/claude_mpm/core/config_paths.py +0 -150
- claude_mpm-3.9.9/src/claude_mpm/core/hook_manager.py +0 -196
- claude_mpm-3.9.9/src/claude_mpm/dashboard/open_dashboard.py +0 -34
- claude_mpm-3.9.9/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -4134
- claude_mpm-3.9.9/src/claude_mpm/deployment_paths.py +0 -261
- claude_mpm-3.9.9/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -1812
- claude_mpm-3.9.9/src/claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -454
- claude_mpm-3.9.9/src/claude_mpm/models/state_models.py +0 -433
- claude_mpm-3.9.9/src/claude_mpm/services/agent/__init__.py +0 -24
- claude_mpm-3.9.9/src/claude_mpm/services/agent/deployment.py +0 -2548
- claude_mpm-3.9.9/src/claude_mpm/services/agent/management.py +0 -598
- claude_mpm-3.9.9/src/claude_mpm/services/agent/registry.py +0 -813
- claude_mpm-3.9.9/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -2667
- claude_mpm-3.9.9/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -1571
- claude_mpm-3.9.9/src/claude_mpm/services/agents/registry/agent_registry.py +0 -813
- claude_mpm-3.9.9/src/claude_mpm/services/communication/socketio.py +0 -1935
- claude_mpm-3.9.9/src/claude_mpm/services/communication/websocket.py +0 -479
- claude_mpm-3.9.9/src/claude_mpm/services/core/__init__.py +0 -123
- claude_mpm-3.9.9/src/claude_mpm/services/core/interfaces.py +0 -951
- claude_mpm-3.9.9/src/claude_mpm/services/framework_claude_md_generator.py +0 -624
- claude_mpm-3.9.9/src/claude_mpm/services/health_monitor.py +0 -893
- claude_mpm-3.9.9/src/claude_mpm/services/infrastructure/memory_guardian.py +0 -770
- claude_mpm-3.9.9/src/claude_mpm/services/mcp_gateway/main.py +0 -326
- claude_mpm-3.9.9/src/claude_mpm/services/mcp_gateway/server/mcp_server_simple.py +0 -444
- claude_mpm-3.9.9/src/claude_mpm/services/memory/router.py +0 -538
- claude_mpm-3.9.9/src/claude_mpm/services/optimized_hook_service.py +0 -542
- claude_mpm-3.9.9/src/claude_mpm/services/project_analyzer.py +0 -864
- claude_mpm-3.9.9/src/claude_mpm/services/project_registry.py +0 -608
- claude_mpm-3.9.9/src/claude_mpm/services/socketio/handlers/file.py +0 -213
- claude_mpm-3.9.9/src/claude_mpm/services/socketio/handlers/git.py +0 -723
- claude_mpm-3.9.9/src/claude_mpm/services/socketio_server.py +0 -1933
- claude_mpm-3.9.9/src/claude_mpm/services/standalone_socketio_server.py +0 -1300
- claude_mpm-3.9.9/src/claude_mpm/services/ticket_manager.py +0 -539
- claude_mpm-3.9.9/src/claude_mpm/services/ticket_manager_di.py +0 -318
- claude_mpm-3.9.9/src/claude_mpm/services/ticketing_service_original.py +0 -510
- claude_mpm-3.9.9/src/claude_mpm/utils/import_migration_example.py +0 -80
- claude_mpm-3.9.9/src/claude_mpm/utils/paths.py +0 -395
- claude_mpm-3.9.9/src/claude_mpm/utils/platform_memory.py +0 -524
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/CLAUDE.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/setup.cfg +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/BASE_PM.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/MEMORY.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/WORKFLOW.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/research_memory_efficient.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-3.9.9 → claude_mpm-4.0.3}/src/claude_mpm.egg-info/top_level.txt +0 -0
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-mpm
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.3
|
|
4
4
|
Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
|
|
5
5
|
Home-page: https://github.com/bobmatnyc/claude-mpm
|
|
6
6
|
Author: Claude MPM Team
|
|
@@ -38,6 +38,7 @@ Requires-Dist: python-frontmatter>=1.0.0
|
|
|
38
38
|
Requires-Dist: mistune>=3.0.0
|
|
39
39
|
Requires-Dist: aiofiles>=23.0.0
|
|
40
40
|
Requires-Dist: mcp>=0.1.0
|
|
41
|
+
Requires-Dist: ijson>=3.2.0
|
|
41
42
|
Provides-Extra: dev
|
|
42
43
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
43
44
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
@@ -45,6 +46,7 @@ Requires-Dist: pytest-cov; extra == "dev"
|
|
|
45
46
|
Requires-Dist: black; extra == "dev"
|
|
46
47
|
Requires-Dist: flake8; extra == "dev"
|
|
47
48
|
Requires-Dist: mypy; extra == "dev"
|
|
49
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
48
50
|
Provides-Extra: docs
|
|
49
51
|
Requires-Dist: sphinx>=7.2.0; extra == "docs"
|
|
50
52
|
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
|
|
@@ -110,6 +112,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
|
|
|
110
112
|
- 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
|
|
111
113
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
112
114
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
115
|
+
- 🛡️ **Memory Guardian (Experimental)**: Automatic memory monitoring and intelligent restarts to prevent crashes
|
|
113
116
|
- 📁 **Multi-Project Support**: Per-session working directories
|
|
114
117
|
- 🔍 **Git Integration**: View diffs and track changes across projects
|
|
115
118
|
- 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
|
|
@@ -130,6 +133,9 @@ claude-mpm
|
|
|
130
133
|
|
|
131
134
|
# Start with monitoring dashboard
|
|
132
135
|
claude-mpm run --monitor
|
|
136
|
+
|
|
137
|
+
# Start with memory protection (prevents crashes from large conversations)
|
|
138
|
+
claude-mpm run-guarded
|
|
133
139
|
```
|
|
134
140
|
|
|
135
141
|
See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
|
|
@@ -149,10 +155,25 @@ The PM agent automatically delegates work to specialized agents including Resear
|
|
|
149
155
|
### Agent Memory System
|
|
150
156
|
Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
|
|
151
157
|
|
|
158
|
+
### Memory Guardian System (Experimental)
|
|
159
|
+
**⚠️ Beta Feature** - Prevents memory-related crashes through intelligent monitoring and automatic restarts with state preservation.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Start with memory protection (recommended for long sessions)
|
|
163
|
+
claude-mpm run-guarded --accept-experimental
|
|
164
|
+
|
|
165
|
+
# Custom memory threshold for your system
|
|
166
|
+
claude-mpm run-guarded --memory-threshold 16000 --accept-experimental # 16GB
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Why Memory Guardian?** Large conversation histories can consume 2GB+ of memory, causing system instability. The Memory Guardian monitors memory usage and performs controlled restarts while preserving your conversation context and work progress.
|
|
170
|
+
|
|
171
|
+
**Note:** This is an experimental feature in beta. Use `--accept-experimental` to suppress warnings.
|
|
172
|
+
|
|
152
173
|
### Real-Time Monitoring
|
|
153
174
|
The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
|
|
154
175
|
|
|
155
|
-
See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
176
|
+
See [docs/MEMORY.md](docs/MEMORY.md), [docs/USER_GUIDE_MEMORY_GUARDIAN.md](docs/USER_GUIDE_MEMORY_GUARDIAN.md), and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
156
177
|
|
|
157
178
|
|
|
158
179
|
## Documentation
|
|
@@ -162,12 +183,15 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
|
|
|
162
183
|
- **[Installation Guide](docs/user/installation.md)** - Complete installation options
|
|
163
184
|
- **[User Guide](docs/user/)** - Detailed usage documentation
|
|
164
185
|
- **[Memory System](docs/MEMORY.md)** - Agent memory documentation
|
|
186
|
+
- **[Memory Guardian Guide](docs/USER_GUIDE_MEMORY_GUARDIAN.md)** - Comprehensive memory protection documentation
|
|
165
187
|
- **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
|
|
166
188
|
|
|
167
189
|
### Developer Documentation
|
|
168
190
|
- **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
|
|
169
191
|
- **[API Reference](docs/api/)** - Complete API documentation with Sphinx
|
|
170
192
|
- **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
|
|
193
|
+
- **[Memory Guardian Technical](docs/MEMORY_GUARDIAN_TECHNICAL.md)** - Technical architecture and implementation details
|
|
194
|
+
- **[Memory Guardian Configuration](docs/MEMORY_GUARDIAN_CONFIG.md)** - Complete configuration reference
|
|
171
195
|
- **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
|
|
172
196
|
- **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
|
|
173
197
|
- **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
|
|
@@ -187,9 +211,34 @@ See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/M
|
|
|
187
211
|
|
|
188
212
|
## Development
|
|
189
213
|
|
|
214
|
+
### Quick Development Setup
|
|
215
|
+
```bash
|
|
216
|
+
# Complete development setup with code formatting and quality tools
|
|
217
|
+
make dev-complete
|
|
218
|
+
|
|
219
|
+
# Or step by step:
|
|
220
|
+
make setup-dev # Install in development mode
|
|
221
|
+
make setup-pre-commit # Set up automated code formatting
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Code Quality & Formatting
|
|
225
|
+
The project uses automated code formatting and quality checks:
|
|
226
|
+
- **Black** for code formatting
|
|
227
|
+
- **isort** for import sorting
|
|
228
|
+
- **flake8** for linting
|
|
229
|
+
- **mypy** for type checking
|
|
230
|
+
- **Pre-commit hooks** for automatic enforcement
|
|
231
|
+
|
|
232
|
+
See [docs/developer/CODE_FORMATTING.md](docs/developer/CODE_FORMATTING.md) for details.
|
|
233
|
+
|
|
190
234
|
### Contributing
|
|
191
235
|
Contributions are welcome! Please see our [project structure guide](docs/STRUCTURE.md) and follow the established patterns.
|
|
192
236
|
|
|
237
|
+
**Development Workflow**:
|
|
238
|
+
1. Run `make dev-complete` to set up your environment
|
|
239
|
+
2. Code formatting happens automatically on commit
|
|
240
|
+
3. All code must pass quality checks before merging
|
|
241
|
+
|
|
193
242
|
### Project Structure
|
|
194
243
|
See [docs/STRUCTURE.md](docs/STRUCTURE.md) for codebase organization.
|
|
195
244
|
|
|
@@ -10,6 +10,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
|
|
|
10
10
|
- 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
|
|
11
11
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
12
12
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
13
|
+
- 🛡️ **Memory Guardian (Experimental)**: Automatic memory monitoring and intelligent restarts to prevent crashes
|
|
13
14
|
- 📁 **Multi-Project Support**: Per-session working directories
|
|
14
15
|
- 🔍 **Git Integration**: View diffs and track changes across projects
|
|
15
16
|
- 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
|
|
@@ -30,6 +31,9 @@ claude-mpm
|
|
|
30
31
|
|
|
31
32
|
# Start with monitoring dashboard
|
|
32
33
|
claude-mpm run --monitor
|
|
34
|
+
|
|
35
|
+
# Start with memory protection (prevents crashes from large conversations)
|
|
36
|
+
claude-mpm run-guarded
|
|
33
37
|
```
|
|
34
38
|
|
|
35
39
|
See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
|
|
@@ -49,10 +53,25 @@ The PM agent automatically delegates work to specialized agents including Resear
|
|
|
49
53
|
### Agent Memory System
|
|
50
54
|
Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
|
|
51
55
|
|
|
56
|
+
### Memory Guardian System (Experimental)
|
|
57
|
+
**⚠️ Beta Feature** - Prevents memory-related crashes through intelligent monitoring and automatic restarts with state preservation.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Start with memory protection (recommended for long sessions)
|
|
61
|
+
claude-mpm run-guarded --accept-experimental
|
|
62
|
+
|
|
63
|
+
# Custom memory threshold for your system
|
|
64
|
+
claude-mpm run-guarded --memory-threshold 16000 --accept-experimental # 16GB
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Why Memory Guardian?** Large conversation histories can consume 2GB+ of memory, causing system instability. The Memory Guardian monitors memory usage and performs controlled restarts while preserving your conversation context and work progress.
|
|
68
|
+
|
|
69
|
+
**Note:** This is an experimental feature in beta. Use `--accept-experimental` to suppress warnings.
|
|
70
|
+
|
|
52
71
|
### Real-Time Monitoring
|
|
53
72
|
The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
|
|
54
73
|
|
|
55
|
-
See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
74
|
+
See [docs/MEMORY.md](docs/MEMORY.md), [docs/USER_GUIDE_MEMORY_GUARDIAN.md](docs/USER_GUIDE_MEMORY_GUARDIAN.md), and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
56
75
|
|
|
57
76
|
|
|
58
77
|
## Documentation
|
|
@@ -62,12 +81,15 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
|
|
|
62
81
|
- **[Installation Guide](docs/user/installation.md)** - Complete installation options
|
|
63
82
|
- **[User Guide](docs/user/)** - Detailed usage documentation
|
|
64
83
|
- **[Memory System](docs/MEMORY.md)** - Agent memory documentation
|
|
84
|
+
- **[Memory Guardian Guide](docs/USER_GUIDE_MEMORY_GUARDIAN.md)** - Comprehensive memory protection documentation
|
|
65
85
|
- **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
|
|
66
86
|
|
|
67
87
|
### Developer Documentation
|
|
68
88
|
- **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
|
|
69
89
|
- **[API Reference](docs/api/)** - Complete API documentation with Sphinx
|
|
70
90
|
- **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
|
|
91
|
+
- **[Memory Guardian Technical](docs/MEMORY_GUARDIAN_TECHNICAL.md)** - Technical architecture and implementation details
|
|
92
|
+
- **[Memory Guardian Configuration](docs/MEMORY_GUARDIAN_CONFIG.md)** - Complete configuration reference
|
|
71
93
|
- **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
|
|
72
94
|
- **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
|
|
73
95
|
- **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
|
|
@@ -87,9 +109,34 @@ See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/M
|
|
|
87
109
|
|
|
88
110
|
## Development
|
|
89
111
|
|
|
112
|
+
### Quick Development Setup
|
|
113
|
+
```bash
|
|
114
|
+
# Complete development setup with code formatting and quality tools
|
|
115
|
+
make dev-complete
|
|
116
|
+
|
|
117
|
+
# Or step by step:
|
|
118
|
+
make setup-dev # Install in development mode
|
|
119
|
+
make setup-pre-commit # Set up automated code formatting
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Code Quality & Formatting
|
|
123
|
+
The project uses automated code formatting and quality checks:
|
|
124
|
+
- **Black** for code formatting
|
|
125
|
+
- **isort** for import sorting
|
|
126
|
+
- **flake8** for linting
|
|
127
|
+
- **mypy** for type checking
|
|
128
|
+
- **Pre-commit hooks** for automatic enforcement
|
|
129
|
+
|
|
130
|
+
See [docs/developer/CODE_FORMATTING.md](docs/developer/CODE_FORMATTING.md) for details.
|
|
131
|
+
|
|
90
132
|
### Contributing
|
|
91
133
|
Contributions are welcome! Please see our [project structure guide](docs/STRUCTURE.md) and follow the established patterns.
|
|
92
134
|
|
|
135
|
+
**Development Workflow**:
|
|
136
|
+
1. Run `make dev-complete` to set up your environment
|
|
137
|
+
2. Code formatting happens automatically on commit
|
|
138
|
+
3. All code must pass quality checks before merging
|
|
139
|
+
|
|
93
140
|
### Project Structure
|
|
94
141
|
See [docs/STRUCTURE.md](docs/STRUCTURE.md) for codebase organization.
|
|
95
142
|
|
claude_mpm-4.0.3/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.3
|
|
@@ -26,7 +26,7 @@ elif command -v claude-mpm &> /dev/null; then
|
|
|
26
26
|
FOUND_CLAUDE_MPM=$(command -v claude-mpm)
|
|
27
27
|
RESOLVED_CLAUDE_MPM=$(readlink -f "$FOUND_CLAUDE_MPM" 2>/dev/null || echo "$FOUND_CLAUDE_MPM")
|
|
28
28
|
THIS_SCRIPT=$(readlink -f "$0" 2>/dev/null || echo "$0")
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
if [ "$RESOLVED_CLAUDE_MPM" = "$THIS_SCRIPT" ]; then
|
|
31
31
|
# The found claude-mpm is actually this script, use the scripts version
|
|
32
32
|
if [ -f "$SCRIPT_DIR/scripts/claude-mpm" ]; then
|
|
@@ -42,4 +42,4 @@ elif command -v claude-mpm &> /dev/null; then
|
|
|
42
42
|
else
|
|
43
43
|
echo "Error: claude-mpm not found. Please run ./install.sh"
|
|
44
44
|
exit 1
|
|
45
|
-
fi
|
|
45
|
+
fi
|
|
@@ -10,7 +10,7 @@ readme = "README.md"
|
|
|
10
10
|
requires-python = ">=3.8"
|
|
11
11
|
keywords = [ "claude", "orchestration", "multi-agent", "ticket-management",]
|
|
12
12
|
classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12",]
|
|
13
|
-
dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.7.0,<0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0", "mcp>=0.1.0",]
|
|
13
|
+
dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.7.0,<0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0", "mcp>=0.1.0", "ijson>=3.2.0",]
|
|
14
14
|
[[project.authors]]
|
|
15
15
|
name = "Claude MPM Team"
|
|
16
16
|
|
|
@@ -18,7 +18,7 @@ name = "Claude MPM Team"
|
|
|
18
18
|
text = "MIT"
|
|
19
19
|
|
|
20
20
|
[project.optional-dependencies]
|
|
21
|
-
dev = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]
|
|
21
|
+
dev = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy", "pre-commit",]
|
|
22
22
|
docs = [ "sphinx>=7.2.0", "sphinx-rtd-theme>=1.3.0", "sphinx-autobuild>=2021.3.14",]
|
|
23
23
|
monitor = []
|
|
24
24
|
# Pure Python agent dependencies - no compilation required
|
|
@@ -31,6 +31,7 @@ ticket = "claude_mpm.cli.ticket_cli:main"
|
|
|
31
31
|
claude-mpm-version = "claude_mpm.scripts.manage_version:main"
|
|
32
32
|
claude-mpm-monitor = "claude_mpm.scripts.launch_monitor:main"
|
|
33
33
|
claude-mpm-socketio = "claude_mpm.scripts.socketio_daemon:main"
|
|
34
|
+
claude-mpm-mcp = "claude_mpm.services.mcp_gateway.server.stdio_server:main_sync"
|
|
34
35
|
|
|
35
36
|
[tool.uv]
|
|
36
37
|
dev-dependencies = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]
|
|
@@ -54,3 +55,14 @@ claude_mpm = [ "VERSION", "scripts/*", "dashboard/*.html", "dashboard/templates/
|
|
|
54
55
|
|
|
55
56
|
[tool.setuptools.packages.find]
|
|
56
57
|
where = [ "src",]
|
|
58
|
+
|
|
59
|
+
[tool.commitizen]
|
|
60
|
+
name = "cz_conventional_commits"
|
|
61
|
+
version = "4.0.3"
|
|
62
|
+
version_files = [
|
|
63
|
+
"VERSION",
|
|
64
|
+
"package.json:version"
|
|
65
|
+
]
|
|
66
|
+
tag_format = "v$version"
|
|
67
|
+
update_changelog_on_bump = true
|
|
68
|
+
changelog_incremental = true
|
|
@@ -12,7 +12,14 @@ watchdog>=3.0.0
|
|
|
12
12
|
websockets>=12.0
|
|
13
13
|
python-frontmatter>=1.0.0
|
|
14
14
|
mistune>=3.0.0
|
|
15
|
+
pydantic>=2.0.0
|
|
16
|
+
pydantic-settings>=2.0.0
|
|
15
17
|
|
|
16
18
|
# Build and dependency management dependencies
|
|
17
19
|
toml>=0.10.2
|
|
18
|
-
packaging>=21.0
|
|
20
|
+
packaging>=21.0
|
|
21
|
+
|
|
22
|
+
# Development and type checking dependencies
|
|
23
|
+
mypy>=1.0.0
|
|
24
|
+
types-PyYAML>=6.0.0
|
|
25
|
+
types-requests>=2.25.0
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""Setup script for claude-mpm."""
|
|
3
3
|
|
|
4
|
-
from setuptools import setup, find_packages
|
|
5
|
-
from setuptools.command.install import install
|
|
6
|
-
from setuptools.command.develop import develop
|
|
7
4
|
import os
|
|
8
|
-
import sys
|
|
9
5
|
import shutil
|
|
10
6
|
import subprocess
|
|
7
|
+
import sys
|
|
11
8
|
from pathlib import Path
|
|
12
9
|
|
|
10
|
+
from setuptools import find_packages, setup
|
|
11
|
+
from setuptools.command.develop import develop
|
|
12
|
+
from setuptools.command.install import install
|
|
13
|
+
|
|
13
14
|
# Read version from VERSION file - single source of truth
|
|
14
15
|
version_file = Path(__file__).parent / "VERSION"
|
|
15
16
|
if version_file.exists():
|
|
@@ -17,11 +18,14 @@ if version_file.exists():
|
|
|
17
18
|
else:
|
|
18
19
|
# Default version if VERSION file is missing
|
|
19
20
|
__version__ = "0.0.0"
|
|
20
|
-
print(
|
|
21
|
+
print(
|
|
22
|
+
"WARNING: VERSION file not found, using default version 0.0.0", file=sys.stderr
|
|
23
|
+
)
|
|
21
24
|
|
|
22
25
|
|
|
23
26
|
class PostInstallCommand(install):
|
|
24
27
|
"""Post-installation for installation mode."""
|
|
28
|
+
|
|
25
29
|
def run(self):
|
|
26
30
|
install.run(self)
|
|
27
31
|
self.execute(self._post_install, [], msg="Running post-installation setup...")
|
|
@@ -31,27 +35,30 @@ class PostInstallCommand(install):
|
|
|
31
35
|
# Create user .claude-mpm directory
|
|
32
36
|
user_dir = Path.home() / ".claude-mpm"
|
|
33
37
|
user_dir.mkdir(exist_ok=True)
|
|
34
|
-
|
|
38
|
+
|
|
35
39
|
# Create subdirectories
|
|
36
40
|
(user_dir / "agents" / "user-defined").mkdir(parents=True, exist_ok=True)
|
|
37
41
|
(user_dir / "logs").mkdir(exist_ok=True)
|
|
38
42
|
(user_dir / "config").mkdir(exist_ok=True)
|
|
39
|
-
|
|
43
|
+
|
|
44
|
+
# Build dashboard assets
|
|
45
|
+
build_dashboard_assets()
|
|
46
|
+
|
|
40
47
|
# Install ticket command
|
|
41
48
|
self._install_ticket_command()
|
|
42
|
-
|
|
49
|
+
|
|
43
50
|
def _install_ticket_command(self):
|
|
44
51
|
"""Install ticket command wrapper."""
|
|
45
52
|
import site
|
|
46
|
-
|
|
53
|
+
|
|
47
54
|
# Get the scripts directory
|
|
48
|
-
if hasattr(site,
|
|
55
|
+
if hasattr(site, "USER_BASE"):
|
|
49
56
|
scripts_dir = Path(site.USER_BASE) / "bin"
|
|
50
57
|
else:
|
|
51
58
|
scripts_dir = Path(sys.prefix) / "bin"
|
|
52
|
-
|
|
59
|
+
|
|
53
60
|
scripts_dir.mkdir(exist_ok=True)
|
|
54
|
-
|
|
61
|
+
|
|
55
62
|
# Create ticket wrapper script
|
|
56
63
|
ticket_script = scripts_dir / "ticket"
|
|
57
64
|
ticket_content = '''#!/usr/bin/env python3
|
|
@@ -68,6 +75,7 @@ if __name__ == "__main__":
|
|
|
68
75
|
|
|
69
76
|
class PostDevelopCommand(develop):
|
|
70
77
|
"""Post-installation for development mode."""
|
|
78
|
+
|
|
71
79
|
def run(self):
|
|
72
80
|
develop.run(self)
|
|
73
81
|
self.execute(self._post_develop, [], msg="Running post-development setup...")
|
|
@@ -77,17 +85,44 @@ class PostDevelopCommand(develop):
|
|
|
77
85
|
PostInstallCommand._post_install(self)
|
|
78
86
|
|
|
79
87
|
|
|
88
|
+
def build_dashboard_assets():
|
|
89
|
+
"""Build dashboard assets using Vite if Node.js is available."""
|
|
90
|
+
try:
|
|
91
|
+
build_script = Path(__file__).parent / "scripts" / "build-dashboard.sh"
|
|
92
|
+
if build_script.exists():
|
|
93
|
+
print("Building dashboard assets...")
|
|
94
|
+
result = subprocess.run(
|
|
95
|
+
["bash", str(build_script)],
|
|
96
|
+
capture_output=True,
|
|
97
|
+
text=True,
|
|
98
|
+
cwd=Path(__file__).parent,
|
|
99
|
+
)
|
|
100
|
+
if result.returncode != 0:
|
|
101
|
+
print(f"Warning: Dashboard build failed: {result.stderr}")
|
|
102
|
+
print(
|
|
103
|
+
"Dashboard will use individual script files instead of optimized bundles."
|
|
104
|
+
)
|
|
105
|
+
else:
|
|
106
|
+
print("Dashboard assets built successfully")
|
|
107
|
+
else:
|
|
108
|
+
print("Dashboard build script not found, skipping...")
|
|
109
|
+
except Exception as e:
|
|
110
|
+
print(f"Warning: Failed to build dashboard assets: {e}")
|
|
111
|
+
|
|
112
|
+
|
|
80
113
|
def aggregate_agent_dependencies():
|
|
81
114
|
"""Run agent dependency aggregation script."""
|
|
82
115
|
try:
|
|
83
|
-
script_path =
|
|
116
|
+
script_path = (
|
|
117
|
+
Path(__file__).parent / "scripts" / "aggregate_agent_dependencies.py"
|
|
118
|
+
)
|
|
84
119
|
if script_path.exists():
|
|
85
120
|
print("Aggregating agent dependencies...")
|
|
86
121
|
result = subprocess.run(
|
|
87
122
|
[sys.executable, str(script_path)],
|
|
88
123
|
capture_output=True,
|
|
89
124
|
text=True,
|
|
90
|
-
cwd=Path(__file__).parent
|
|
125
|
+
cwd=Path(__file__).parent,
|
|
91
126
|
)
|
|
92
127
|
if result.returncode != 0:
|
|
93
128
|
print(f"Warning: Agent dependency aggregation failed: {result.stderr}")
|
|
@@ -103,8 +138,10 @@ def read_requirements():
|
|
|
103
138
|
"""Read requirements from requirements.txt if it exists."""
|
|
104
139
|
req_file = Path(__file__).parent / "requirements.txt"
|
|
105
140
|
if req_file.exists():
|
|
106
|
-
with open(req_file,
|
|
107
|
-
return [
|
|
141
|
+
with open(req_file, "r") as f:
|
|
142
|
+
return [
|
|
143
|
+
line.strip() for line in f if line.strip() and not line.startswith("#")
|
|
144
|
+
]
|
|
108
145
|
return []
|
|
109
146
|
|
|
110
147
|
|
|
@@ -116,19 +153,22 @@ def read_optional_dependencies():
|
|
|
116
153
|
# Try different TOML libraries based on Python version
|
|
117
154
|
if sys.version_info >= (3, 11):
|
|
118
155
|
import tomllib
|
|
119
|
-
|
|
156
|
+
|
|
157
|
+
with open(pyproject_path, "rb") as f:
|
|
120
158
|
data = tomllib.load(f)
|
|
121
159
|
else:
|
|
122
160
|
try:
|
|
123
161
|
import tomli as tomllib
|
|
124
|
-
|
|
162
|
+
|
|
163
|
+
with open(pyproject_path, "rb") as f:
|
|
125
164
|
data = tomllib.load(f)
|
|
126
165
|
except ImportError:
|
|
127
166
|
import toml
|
|
128
|
-
|
|
167
|
+
|
|
168
|
+
with open(pyproject_path, "r") as f:
|
|
129
169
|
data = toml.load(f)
|
|
130
|
-
|
|
131
|
-
optional_deps = data.get(
|
|
170
|
+
|
|
171
|
+
optional_deps = data.get("project", {}).get("optional-dependencies", {})
|
|
132
172
|
return optional_deps
|
|
133
173
|
return {}
|
|
134
174
|
except ImportError:
|
|
@@ -156,7 +196,8 @@ setup(
|
|
|
156
196
|
package_dir={"": "src"},
|
|
157
197
|
packages=find_packages(where="src"),
|
|
158
198
|
include_package_data=True,
|
|
159
|
-
install_requires=read_requirements()
|
|
199
|
+
install_requires=read_requirements()
|
|
200
|
+
or [
|
|
160
201
|
"ai-trackdown-pytools>=1.4.0",
|
|
161
202
|
"pyyaml>=6.0",
|
|
162
203
|
"python-dotenv>=0.19.0",
|
|
@@ -181,8 +222,8 @@ setup(
|
|
|
181
222
|
],
|
|
182
223
|
},
|
|
183
224
|
cmdclass={
|
|
184
|
-
|
|
185
|
-
|
|
225
|
+
"install": PostInstallCommand,
|
|
226
|
+
"develop": PostDevelopCommand,
|
|
186
227
|
},
|
|
187
228
|
classifiers=[
|
|
188
229
|
"Development Status :: 3 - Alpha",
|
|
@@ -197,4 +238,4 @@ setup(
|
|
|
197
238
|
"Programming Language :: Python :: 3.12",
|
|
198
239
|
],
|
|
199
240
|
keywords="claude ai orchestration multi-agent project-management",
|
|
200
|
-
)
|
|
241
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.2
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
1
3
|
"""
|
|
2
4
|
Main entry point for claude-mpm package.
|
|
3
5
|
|
|
@@ -9,7 +11,6 @@ keeping this file minimal and focused on its single responsibility.
|
|
|
9
11
|
"""
|
|
10
12
|
|
|
11
13
|
import sys
|
|
12
|
-
from pathlib import Path
|
|
13
14
|
|
|
14
15
|
# Add parent directory to path to ensure proper imports
|
|
15
16
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
@@ -18,4 +19,4 @@ sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
18
19
|
from claude_mpm.cli import main
|
|
19
20
|
|
|
20
21
|
if __name__ == "__main__":
|
|
21
|
-
sys.exit(main())
|
|
22
|
+
sys.exit(main())
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Claude PM Framework Agents Package
|
|
3
|
+
|
|
4
|
+
System-level agent implementations with Task Tool integration.
|
|
5
|
+
These agents provide specialized prompts and capabilities for PM orchestration.
|
|
6
|
+
|
|
7
|
+
Uses unified agent loader to load prompts from JSON templates in agents/templates/
|
|
8
|
+
for better structure and maintainability.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
# Import from unified agent loader
|
|
12
|
+
from .agent_loader import (
|
|
13
|
+
clear_agent_cache,
|
|
14
|
+
get_agent_prompt,
|
|
15
|
+
list_available_agents,
|
|
16
|
+
validate_agent_files,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
# Import agent metadata (previously AGENT_CONFIG)
|
|
20
|
+
from .agents_metadata import (
|
|
21
|
+
ALL_AGENT_CONFIGS,
|
|
22
|
+
DATA_ENGINEER_CONFIG,
|
|
23
|
+
DOCUMENTATION_CONFIG,
|
|
24
|
+
ENGINEER_CONFIG,
|
|
25
|
+
OPS_CONFIG,
|
|
26
|
+
QA_CONFIG,
|
|
27
|
+
RESEARCH_CONFIG,
|
|
28
|
+
SECURITY_CONFIG,
|
|
29
|
+
VERSION_CONTROL_CONFIG,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Available system agents
|
|
33
|
+
__all__ = [
|
|
34
|
+
# Generic agent interface
|
|
35
|
+
"get_agent_prompt",
|
|
36
|
+
# Agent utility functions
|
|
37
|
+
"list_available_agents",
|
|
38
|
+
"clear_agent_cache",
|
|
39
|
+
"validate_agent_files",
|
|
40
|
+
# Agent configs
|
|
41
|
+
"DOCUMENTATION_CONFIG",
|
|
42
|
+
"VERSION_CONTROL_CONFIG",
|
|
43
|
+
"QA_CONFIG",
|
|
44
|
+
"RESEARCH_CONFIG",
|
|
45
|
+
"OPS_CONFIG",
|
|
46
|
+
"SECURITY_CONFIG",
|
|
47
|
+
"ENGINEER_CONFIG",
|
|
48
|
+
"DATA_ENGINEER_CONFIG",
|
|
49
|
+
"ALL_AGENT_CONFIGS",
|
|
50
|
+
# System registry
|
|
51
|
+
"SYSTEM_AGENTS",
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
# System agent registry - using generic agent loading
|
|
55
|
+
SYSTEM_AGENTS = {
|
|
56
|
+
"documentation": {
|
|
57
|
+
"agent_id": "documentation-agent",
|
|
58
|
+
"config": DOCUMENTATION_CONFIG,
|
|
59
|
+
"version": "2.0.0",
|
|
60
|
+
"integration": "claude_pm_framework",
|
|
61
|
+
},
|
|
62
|
+
"version_control": {
|
|
63
|
+
"agent_id": "version-control-agent",
|
|
64
|
+
"config": VERSION_CONTROL_CONFIG,
|
|
65
|
+
"version": "2.0.0",
|
|
66
|
+
"integration": "claude_pm_framework",
|
|
67
|
+
},
|
|
68
|
+
"qa": {
|
|
69
|
+
"agent_id": "qa-agent",
|
|
70
|
+
"config": QA_CONFIG,
|
|
71
|
+
"version": "2.0.0",
|
|
72
|
+
"integration": "claude_pm_framework",
|
|
73
|
+
},
|
|
74
|
+
"research": {
|
|
75
|
+
"agent_id": "research-agent",
|
|
76
|
+
"config": RESEARCH_CONFIG,
|
|
77
|
+
"version": "2.0.0",
|
|
78
|
+
"integration": "claude_pm_framework",
|
|
79
|
+
},
|
|
80
|
+
"ops": {
|
|
81
|
+
"agent_id": "ops-agent",
|
|
82
|
+
"config": OPS_CONFIG,
|
|
83
|
+
"version": "2.0.0",
|
|
84
|
+
"integration": "claude_pm_framework",
|
|
85
|
+
},
|
|
86
|
+
"security": {
|
|
87
|
+
"agent_id": "security-agent",
|
|
88
|
+
"config": SECURITY_CONFIG,
|
|
89
|
+
"version": "2.0.0",
|
|
90
|
+
"integration": "claude_pm_framework",
|
|
91
|
+
},
|
|
92
|
+
"engineer": {
|
|
93
|
+
"agent_id": "engineer-agent",
|
|
94
|
+
"config": ENGINEER_CONFIG,
|
|
95
|
+
"version": "2.0.0",
|
|
96
|
+
"integration": "claude_pm_framework",
|
|
97
|
+
},
|
|
98
|
+
"data_engineer": {
|
|
99
|
+
"agent_id": "data-engineer-agent",
|
|
100
|
+
"config": DATA_ENGINEER_CONFIG,
|
|
101
|
+
"version": "2.0.0",
|
|
102
|
+
"integration": "claude_pm_framework",
|
|
103
|
+
},
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def get_system_agent_prompt(agent_type: str) -> str:
|
|
108
|
+
"""
|
|
109
|
+
Get system agent prompt using the generic interface.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
agent_type: Agent type (e.g., "documentation", "qa", "engineer")
|
|
113
|
+
|
|
114
|
+
Returns:
|
|
115
|
+
Agent prompt string
|
|
116
|
+
|
|
117
|
+
Raises:
|
|
118
|
+
ValueError: If agent type is not found
|
|
119
|
+
"""
|
|
120
|
+
if agent_type not in SYSTEM_AGENTS:
|
|
121
|
+
raise ValueError(f"Unknown agent type: {agent_type}")
|
|
122
|
+
|
|
123
|
+
agent_id = SYSTEM_AGENTS[agent_type]["agent_id"]
|
|
124
|
+
return get_agent_prompt(agent_id)
|