claude-mpm 4.0.32__tar.gz → 4.0.34__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-4.0.34/BUILD_NUMBER +1 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/CLAUDE.md +1 -1
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/PKG-INFO +4 -3
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/README.md +2 -2
- claude_mpm-4.0.34/VERSION +1 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/pyproject.toml +5 -2
- claude_mpm-4.0.34/src/claude_mpm/VERSION +1 -0
- claude_mpm-4.0.34/src/claude_mpm/agents/templates/documentation.json +194 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/research.json +0 -11
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/__init__.py +63 -26
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/agent_manager.py +10 -8
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/framework_loader.py +173 -84
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/css/dashboard.css +449 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/components/session-manager.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/dashboard.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/dist/socket-client.js +2 -0
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/js/components/agent-hierarchy.js +774 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +257 -3
- claude_mpm-4.0.34/src/claude_mpm/dashboard/static/js/components/build-tracker.js +289 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +168 -39
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +17 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/session-manager.js +23 -3
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +2 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/dashboard.js +207 -31
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/socket-client.js +85 -6
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/templates/index.html +1 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/connection_pool.py +12 -2
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/event_handlers.py +81 -19
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +72 -10
- claude_mpm-4.0.34/src/claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +398 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/response_tracking.py +10 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_deployment.py +34 -48
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_template_builder.py +18 -10
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +10 -25
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/multi_source_deployment_service.py +189 -3
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +3 -2
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +10 -3
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +10 -14
- claude_mpm-4.0.34/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +103 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/memory/content_manager.py +98 -105
- claude_mpm-4.0.34/src/claude_mpm/services/event_bus/__init__.py +18 -0
- claude_mpm-4.0.34/src/claude_mpm/services/event_bus/event_bus.py +334 -0
- claude_mpm-4.0.34/src/claude_mpm/services/event_bus/relay.py +301 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/__init__.py +44 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/consumers/__init__.py +18 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/consumers/dead_letter.py +296 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/consumers/logging.py +183 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/consumers/metrics.py +242 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/consumers/socketio.py +376 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/core.py +470 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/interfaces.py +230 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/producers/__init__.py +14 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/producers/hook.py +269 -0
- claude_mpm-4.0.34/src/claude_mpm/services/events/producers/system.py +327 -0
- claude_mpm-4.0.34/src/claude_mpm/services/mcp_gateway/core/process_pool.py +411 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +13 -0
- claude_mpm-4.0.34/src/claude_mpm/services/monitor_build_service.py +345 -0
- claude_mpm-4.0.34/src/claude_mpm/services/socketio/event_normalizer.py +667 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/connection.py +78 -20
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/hook.py +14 -5
- claude_mpm-4.0.34/src/claude_mpm/services/socketio/migration_utils.py +329 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/server/broadcaster.py +26 -33
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/server/core.py +4 -3
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm.egg-info/PKG-INFO +4 -3
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm.egg-info/SOURCES.txt +21 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm.egg-info/requires.txt +1 -0
- claude_mpm-4.0.32/BUILD_NUMBER +0 -1
- claude_mpm-4.0.32/VERSION +0 -1
- claude_mpm-4.0.32/src/claude_mpm/VERSION +0 -1
- claude_mpm-4.0.32/src/claude_mpm/agents/templates/documentation.json +0 -177
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm-4.0.32/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +0 -180
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/LICENSE +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/MANIFEST.in +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/scripts/ticket +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/setup.cfg +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/BUILD_NUMBER +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/__main__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/BASE_PM.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/MEMORY.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/OUTPUT_STYLE.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/WORKFLOW.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/agent-template.yaml +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/agent_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/async_agent_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/base_agent.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/agent-manager.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/agent-manager.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/api_qa.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/research_memory_efficient.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/code_analyzer.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/engineer.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/memory_manager.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/ops.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/qa.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/refactoring_engineer.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/security.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/ticketing.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/vercel_ops_agent.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/vercel_ops_instructions.md +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/version_control.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/web_qa.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/agents/templates/web_ui.json +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/__main__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/agents.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/aggregate.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/cleanup.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/doctor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/info.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/mcp.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/mcp_command_router.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/mcp_config_commands.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/mcp_install_commands.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/mcp_server_commands.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/mcp_tool_commands.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/memory.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/monitor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/run.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/run_config_checker.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/socketio_monitor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/commands/tickets.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/agent_manager_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/agents_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/base_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/config_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/mcp_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/memory_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/monitor_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/run_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/parsers/tickets_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/shared/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/shared/argument_patterns.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/shared/base_command.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/shared/error_handling.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/shared/output_formatters.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/startup_logging.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/ticket_cli.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli/utils.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/cli_module/migration_example.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/config/agent_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/config/experimental_features.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/config/paths.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/config/socketio_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/constants.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/agent_registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/cache.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/claude_runner.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/config_constants.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/constants.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/exceptions.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/hook_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/hook_performance_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/interactive_session.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/lazy.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/logging_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/oneshot_session.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/optimized_startup.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/output_style_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/shared/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/shared/config_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/shared/path_resolver.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/shared/singleton_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/socketio_pool.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/types.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/typing_utils.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/unified_agent_registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/unified_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/core/unified_paths.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/index.html +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/agent-inference.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/event-processor.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/event-viewer.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/export-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/hud-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/module-viewer.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/session-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/socket-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/components/working-directory.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/dashboard.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/built/socket-client.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/event-processor.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/export-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/dist/components/working-directory.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/static/js/extension-error-handler.js +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/init.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/models/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/models/agent_definition.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/models/agent_session.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/mcp_server.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/mcp_wrapper.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/socketio_daemon_hardened.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/socketio_server_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agent_capabilities_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/agent_builder.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_config_provider.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_format_converter.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_version_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/config/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/config/deployment_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/deployment_wrapper.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/facade/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/interface_adapter.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/processors/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/results/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/strategies/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/validation/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/validation/template_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/deployment/validation/validation_result.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/management/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/memory/template_generator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/async_session_logger.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/claude_session_logger.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/command_handler_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/communication/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/interfaces/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/interfaces/agent.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/interfaces/communication.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/interfaces/infrastructure.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/interfaces/service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/core/interfaces.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/agent_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/base_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/common_issues_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/configuration_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/filesystem_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/installation_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/mcp_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/monitor_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/checks/startup_log_check.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/diagnostic_runner.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/doctor_reporter.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/diagnostics/models.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/event_aggregator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/exceptions.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/hook_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/infrastructure/context_preservation.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/infrastructure/daemon_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/infrastructure/logging.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/config/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/config/configuration.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/core/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/core/base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/main.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/server/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/builder.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/optimizer.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory/router.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/memory_hook_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/port_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/project/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/project/analyzer.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/project/registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/recovery_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/response_tracker.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/runner_configuration_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/session_management_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/shared/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/shared/async_service_base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/shared/config_service_base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/shared/lifecycle_service_base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/shared/manager_base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/shared/service_factory.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/client_proxy.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/server/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio/server/main.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio_client_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/socketio_server.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/subprocess_launcher_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/system_instructions_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/ticket_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/utility_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_control/version_parser.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/services/version_service.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/storage/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/storage/state_storage.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/ticket_wrapper.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/console.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/dependency_cache.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/dependency_manager.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/dependency_strategies.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/environment_context.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/file_utils.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/robust_installer.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/session_logging.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/utils/subprocess_utils.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/validation/agent_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-4.0.32 → claude_mpm-4.0.34}/src/claude_mpm.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
296
|
|
@@ -186,7 +186,7 @@ def test_service_implements_interface():
|
|
|
186
186
|
1. **Import Errors**: Ensure virtual environment is activated and PYTHONPATH includes `src/`
|
|
187
187
|
2. **Hook Service Errors**: Check port availability (8765-8785)
|
|
188
188
|
3. **Version Errors**: Run `pip install -e .` to ensure proper installation
|
|
189
|
-
4. **Agent
|
|
189
|
+
4. **Agent Deployment**: All agents now deploy to project-level `.claude/agents/` directory (changed in v4.0.32+)
|
|
190
190
|
|
|
191
191
|
## Contributing
|
|
192
192
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-mpm
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.34
|
|
4
4
|
Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
|
|
5
5
|
Author-email: Bob Matsuoka <bob@matsuoka.com>
|
|
6
6
|
Maintainer: Claude MPM Team
|
|
@@ -46,6 +46,7 @@ Requires-Dist: toml>=0.10.2
|
|
|
46
46
|
Requires-Dist: packaging>=21.0
|
|
47
47
|
Requires-Dist: pydantic>=2.0.0
|
|
48
48
|
Requires-Dist: pydantic-settings>=2.0.0
|
|
49
|
+
Requires-Dist: pyee>=13.0.0
|
|
49
50
|
Requires-Dist: importlib-resources>=5.0; python_version < "3.9"
|
|
50
51
|
Provides-Extra: dev
|
|
51
52
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
@@ -116,7 +117,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
|
|
|
116
117
|
## Features
|
|
117
118
|
|
|
118
119
|
- 🤖 **Multi-Agent System**: 15 specialized agents for comprehensive project management
|
|
119
|
-
- 🧠 **Agent Memory System**:
|
|
120
|
+
- 🧠 **Agent Memory System**: Simple list-based persistent learning with JSON response field updates
|
|
120
121
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
121
122
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
122
123
|
- 🔌 **MCP Gateway**: Model Context Protocol integration for extensible tool capabilities
|
|
@@ -200,7 +201,7 @@ Claude MPM includes 15 specialized agents:
|
|
|
200
201
|
- **Code Analyzer** - Static code analysis with AST and tree-sitter
|
|
201
202
|
|
|
202
203
|
### Agent Memory System
|
|
203
|
-
Agents learn project-specific patterns and remember
|
|
204
|
+
Agents learn project-specific patterns using a simple list format and can update memories via JSON response fields (`remember` for incremental updates, `MEMORIES` for complete replacement). Initialize with `claude-mpm memory init`.
|
|
204
205
|
|
|
205
206
|
### MCP Gateway (Model Context Protocol)
|
|
206
207
|
|
|
@@ -7,7 +7,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
9
|
- 🤖 **Multi-Agent System**: 15 specialized agents for comprehensive project management
|
|
10
|
-
- 🧠 **Agent Memory System**:
|
|
10
|
+
- 🧠 **Agent Memory System**: Simple list-based persistent learning with JSON response field updates
|
|
11
11
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
12
12
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
13
13
|
- 🔌 **MCP Gateway**: Model Context Protocol integration for extensible tool capabilities
|
|
@@ -91,7 +91,7 @@ Claude MPM includes 15 specialized agents:
|
|
|
91
91
|
- **Code Analyzer** - Static code analysis with AST and tree-sitter
|
|
92
92
|
|
|
93
93
|
### Agent Memory System
|
|
94
|
-
Agents learn project-specific patterns and remember
|
|
94
|
+
Agents learn project-specific patterns using a simple list format and can update memories via JSON response fields (`remember` for incremental updates, `MEMORIES` for complete replacement). Initialize with `claude-mpm memory init`.
|
|
95
95
|
|
|
96
96
|
### MCP Gateway (Model Context Protocol)
|
|
97
97
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.34
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-mpm"
|
|
7
|
-
version = "4.0.
|
|
7
|
+
version = "4.0.34"
|
|
8
8
|
description = "Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -65,6 +65,9 @@ dependencies = [
|
|
|
65
65
|
"packaging>=21.0",
|
|
66
66
|
"pydantic>=2.0.0",
|
|
67
67
|
"pydantic-settings>=2.0.0",
|
|
68
|
+
|
|
69
|
+
# Event bus for decoupled event handling
|
|
70
|
+
"pyee>=13.0.0",
|
|
68
71
|
|
|
69
72
|
# Python version compatibility
|
|
70
73
|
"importlib-resources>=5.0; python_version < '3.9'",
|
|
@@ -183,7 +186,7 @@ asyncio_mode = "auto"
|
|
|
183
186
|
|
|
184
187
|
[tool.commitizen]
|
|
185
188
|
name = "cz_conventional_commits"
|
|
186
|
-
version = "4.0.
|
|
189
|
+
version = "4.0.34"
|
|
187
190
|
version_files = [
|
|
188
191
|
"VERSION",
|
|
189
192
|
"src/claude_mpm/VERSION",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.34
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.2.0",
|
|
3
|
+
"agent_id": "documentation-agent",
|
|
4
|
+
"agent_version": "3.2.0",
|
|
5
|
+
"template_version": "2.0.1",
|
|
6
|
+
"template_changelog": [
|
|
7
|
+
{
|
|
8
|
+
"version": "3.2.0",
|
|
9
|
+
"date": "2025-08-22",
|
|
10
|
+
"description": "Enhanced: Fixed MCP tool name (document_summarizer), cleaned up overly specific instructions with generic placeholders, added comprehensive memory consumption protection, enhanced file size pre-checking and forbidden practices enforcement"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"version": "2.0.1",
|
|
14
|
+
"date": "2025-08-22",
|
|
15
|
+
"description": "Optimized: Removed redundant instructions, now inherits from BASE_AGENT_TEMPLATE (75% reduction)"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"version": "2.0.0",
|
|
19
|
+
"date": "2025-08-20",
|
|
20
|
+
"description": "Major template restructuring"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"agent_type": "documentation",
|
|
24
|
+
"metadata": {
|
|
25
|
+
"name": "Documentation Agent",
|
|
26
|
+
"description": "Memory-protected documentation generation with MANDATORY file size checks, 20KB/200-line thresholds, progressive summarization, forbidden practices enforcement, and immediate content discard after pattern extraction",
|
|
27
|
+
"category": "specialized",
|
|
28
|
+
"tags": [
|
|
29
|
+
"documentation",
|
|
30
|
+
"memory-efficient",
|
|
31
|
+
"strategic-sampling",
|
|
32
|
+
"pattern-extraction",
|
|
33
|
+
"writing",
|
|
34
|
+
"api-docs",
|
|
35
|
+
"guides",
|
|
36
|
+
"mcp-summarizer",
|
|
37
|
+
"line-tracking",
|
|
38
|
+
"content-thresholds",
|
|
39
|
+
"progressive-summarization"
|
|
40
|
+
],
|
|
41
|
+
"author": "Claude MPM Team",
|
|
42
|
+
"created_at": "2025-07-27T03:45:51.468276Z",
|
|
43
|
+
"updated_at": "2025-08-22T12:00:00.000000Z",
|
|
44
|
+
"color": "cyan"
|
|
45
|
+
},
|
|
46
|
+
"capabilities": {
|
|
47
|
+
"model": "sonnet",
|
|
48
|
+
"tools": [
|
|
49
|
+
"Read",
|
|
50
|
+
"Write",
|
|
51
|
+
"Edit",
|
|
52
|
+
"MultiEdit",
|
|
53
|
+
"Grep",
|
|
54
|
+
"Glob",
|
|
55
|
+
"LS",
|
|
56
|
+
"WebSearch",
|
|
57
|
+
"TodoWrite",
|
|
58
|
+
"mcp__claude-mpm-gateway__document_summarizer"
|
|
59
|
+
],
|
|
60
|
+
"resource_tier": "lightweight",
|
|
61
|
+
"max_tokens": 8192,
|
|
62
|
+
"temperature": 0.2,
|
|
63
|
+
"timeout": 600,
|
|
64
|
+
"memory_limit": 1024,
|
|
65
|
+
"cpu_limit": 20,
|
|
66
|
+
"network_access": true,
|
|
67
|
+
"file_access": {
|
|
68
|
+
"read_paths": [
|
|
69
|
+
"./"
|
|
70
|
+
],
|
|
71
|
+
"write_paths": [
|
|
72
|
+
"./"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"instructions": "# Documentation Agent\n\n**Inherits from**: BASE_AGENT_TEMPLATE.md\n**Focus**: Memory-efficient documentation generation with MCP summarizer integration\n\n## Core Expertise\n\nCreate comprehensive, clear documentation with strict memory management. Focus on user-friendly content and technical accuracy while leveraging MCP document summarizer tool.\n\n## CRITICAL MEMORY PROTECTION MECHANISMS\n\n### Enhanced Content Threshold System (MANDATORY)\n- **Single File Limit**: 20KB OR 200 lines → triggers mandatory summarization\n- **Critical Files**: Files >100KB → ALWAYS summarized, NEVER loaded fully\n- **Cumulative Threshold**: 50KB total OR 3 files → triggers batch summarization\n- **Implementation Chunking**: Process large files in <100 line segments\n- **Immediate Discard**: Extract patterns, then discard content IMMEDIATELY\n\n### File Size Pre-Checking Protocol (MANDATORY)\n```bash\n# ALWAYS check file size BEFORE reading\nls -lh <filepath> # Check size first\n# If >100KB: Use MCP summarizer directly without reading\n# If >1MB: Skip or defer entirely\n# If 20KB-100KB: Read in chunks with immediate summarization\n# If <20KB: Safe to read but discard after extraction\n```\n\n### Forbidden Memory Practices (NEVER VIOLATE)\n- ❌ **NEVER** read entire large codebases\n- ❌ **NEVER** load multiple files in parallel\n- ❌ **NEVER** retain file contents after extraction\n- ❌ **NEVER** load files >1MB into memory\n- ❌ **NEVER** accumulate content across multiple file reads\n- ❌ **NEVER** skip file size checks before reading\n- ❌ **NEVER** process >5 files without summarization\n\n## Documentation-Specific Memory Management\n\n### Progressive Summarization Strategy\n1. **Immediate Summarization**: When single file hits 20KB/200 lines\n2. **Batch Summarization**: After processing 3 files or 50KB cumulative\n3. **Counter Reset**: Reset cumulative counter after batch summarization\n4. **Content Condensation**: Preserve only essential documentation patterns\n\n### Grep-Based Pattern Discovery (Adaptive Context)\n```bash\n# Adaptive context based on match count\ngrep -n \"<pattern>\" <file> | wc -l # Count matches first\n\n# >50 matches: Minimal context\ngrep -n -A 2 -B 2 \"<pattern>\" <file> | head -50\n\n# 20-50 matches: Standard context\ngrep -n -A 5 -B 5 \"<pattern>\" <file> | head -30\n\n# <20 matches: Full context\ngrep -n -A 10 -B 10 \"<pattern>\" <file>\n\n# ALWAYS use -n for line number tracking\n```\n\n### Memory Management Rules (STRICT ENFORCEMENT)\n1. **Process ONE file at a time** - NEVER parallel\n2. **Extract patterns, not full implementations**\n3. **Use targeted reads with Grep** for specific content\n4. **Maximum 3-5 files** handled simultaneously\n5. **Discard content immediately** after extraction\n6. **Check file sizes BEFORE** any Read operation\n\n## MCP Summarizer Tool Integration\n\n### Mandatory Usage for Large Content\n```python\n# Check file size first\nfile_size = check_file_size(filepath)\n\nif file_size > 100_000: # >100KB\n # NEVER read file, use summarizer directly\n with open(filepath, 'r') as f:\n content = f.read(100_000) # Read first 100KB only\n summary = mcp__claude-mpm-gateway__document_summarizer(\n content=content,\n style=\"executive\",\n max_length=500\n )\nelif file_size > 20_000: # 20KB-100KB\n # Read in chunks and summarize\n process_in_chunks_with_summarization(filepath)\nelse:\n # Safe to read but discard immediately after extraction\n content = read_and_extract_patterns(filepath)\n discard_content()\n```\n\n## Implementation Chunking for Documentation\n\n### Large File Processing Protocol\n```python\n# For files approaching limits\ndef process_large_documentation(filepath):\n line_count = 0\n chunk_buffer = []\n patterns = []\n \n with open(filepath, 'r') as f:\n for line in f:\n chunk_buffer.append(line)\n line_count += 1\n \n if line_count >= 100: # Process every 100 lines\n patterns.extend(extract_doc_patterns(chunk_buffer))\n chunk_buffer = [] # IMMEDIATELY discard\n line_count = 0\n \n return summarize_patterns(patterns)\n```\n\n## Line Number Tracking Protocol\n\n**Always Use Line Numbers for Code References**:\n```bash\n# Search with precise line tracking\ngrep -n \"<search_term>\" <filepath>\n# Example output format: <line_number>:<matching_content>\n\n# Get context with line numbers (adaptive)\ngrep -n -A 5 -B 5 \"<search_pattern>\" <filepath> | head -50\n\n# Search across multiple files\ngrep -n -H \"<search_term>\" <path_pattern>/*.py | head -30\n```\n\n## Documentation Workflow with Memory Protection\n\n### Phase 1: File Size Assessment\n```bash\n# MANDATORY first step for all files\nls -lh docs/*.md | awk '{print $9, $5}' # List files with sizes\nfind . -name \"*.md\" -size +100k # Find large documentation files\n```\n\n### Phase 2: Strategic Sampling\n```bash\n# Sample without full reading\ngrep -n \"^#\" docs/*.md | head -50 # Get section headers\ngrep -n \"```\" docs/*.md | wc -l # Count code blocks\n```\n\n### Phase 3: Pattern Extraction with Summarization\n```python\n# Process with thresholds\nfor doc_file in documentation_files[:5]: # MAX 5 files\n size = check_file_size(doc_file)\n if size > 100_000:\n summary = auto_summarize_without_reading(doc_file)\n elif size > 20_000:\n patterns = extract_with_chunking(doc_file)\n summary = summarize_patterns(patterns)\n else:\n patterns = quick_extract(doc_file)\n \n # IMMEDIATELY discard all content\n clear_memory()\n```\n\n## Documentation-Specific Todo Patterns\n\n**Memory-Safe Documentation**:\n- `[Documentation] Document API with chunked processing`\n- `[Documentation] Create guide using pattern extraction`\n- `[Documentation] Generate docs with file size checks`\n\n**Pattern-Based Documentation**:\n- `[Documentation] Extract and document patterns (<5 files)`\n- `[Documentation] Summarize large documentation sets`\n- `[Documentation] Create overview from sampled content`\n\n## Documentation Memory Categories\n\n**Pattern Memories**: Content organization patterns (NOT full content)\n**Extraction Memories**: Key documentation structures only\n**Summary Memories**: Condensed overviews, not full text\n**Reference Memories**: Line numbers and file paths only\n**Threshold Memories**: File size limits and triggers\n\n## Quality Standards with Memory Protection\n\n- **Accuracy**: Line references without full file retention\n- **Efficiency**: Pattern extraction over full reading\n- **Safety**: File size checks before ALL operations\n- **Summarization**: Mandatory for content >20KB\n- **Chunking**: Required for files >100 lines\n- **Discarding**: Immediate after pattern extraction",
|
|
77
|
+
"knowledge": {
|
|
78
|
+
"domain_expertise": [
|
|
79
|
+
"Memory-efficient documentation with MANDATORY file size pre-checking",
|
|
80
|
+
"Immediate summarization at 20KB/200 line thresholds",
|
|
81
|
+
"Progressive summarization for cumulative content (50KB/3 files)",
|
|
82
|
+
"Critical file handling (>100KB auto-summarized, >1MB skipped)",
|
|
83
|
+
"Implementation chunking in <100 line segments",
|
|
84
|
+
"Adaptive grep context based on match count for memory efficiency",
|
|
85
|
+
"Pattern extraction with immediate content discard",
|
|
86
|
+
"Technical writing standards with memory constraints",
|
|
87
|
+
"Documentation frameworks optimized for large codebases",
|
|
88
|
+
"API documentation through strategic sampling only",
|
|
89
|
+
"MCP document summarizer integration for threshold management",
|
|
90
|
+
"Precise code referencing with line numbers without full retention",
|
|
91
|
+
"Sequential processing to prevent parallel memory accumulation",
|
|
92
|
+
"Forbidden practice enforcement (no parallel loads, no retention)"
|
|
93
|
+
],
|
|
94
|
+
"best_practices": [
|
|
95
|
+
"ALWAYS check file size with LS before any Read operation",
|
|
96
|
+
"Extract key patterns from 3-5 representative files maximum",
|
|
97
|
+
"Use grep with line numbers (-n) and adaptive context based on match count",
|
|
98
|
+
"Leverage MCP summarizer tool for ALL files exceeding thresholds",
|
|
99
|
+
"Trigger MANDATORY summarization at 20KB or 200 lines for single files",
|
|
100
|
+
"Apply batch summarization after 3 files or 50KB cumulative content",
|
|
101
|
+
"Process files sequentially - NEVER in parallel",
|
|
102
|
+
"Auto-summarize >100KB files WITHOUT reading them",
|
|
103
|
+
"Skip or defer files >1MB entirely",
|
|
104
|
+
"Reset cumulative counters after batch summarization",
|
|
105
|
+
"Extract patterns and IMMEDIATELY discard full file contents",
|
|
106
|
+
"Use adaptive grep context: >50 matches (-A 2 -B 2 | head -50), <20 matches (-A 10 -B 10)",
|
|
107
|
+
"Process large files in <100 line chunks with immediate discard",
|
|
108
|
+
"Create clear technical documentation with precise line references",
|
|
109
|
+
"Generate comprehensive API documentation from sampled patterns only",
|
|
110
|
+
"NEVER accumulate content across multiple file reads",
|
|
111
|
+
"Always use grep -n for line number tracking in code references",
|
|
112
|
+
"Use targeted grep searches instead of full file reads",
|
|
113
|
+
"Implement progressive summarization for cumulative content management"
|
|
114
|
+
],
|
|
115
|
+
"constraints": [
|
|
116
|
+
"❌ NEVER read entire large codebases",
|
|
117
|
+
"❌ NEVER load multiple files in parallel",
|
|
118
|
+
"❌ NEVER retain file contents after extraction",
|
|
119
|
+
"❌ NEVER load files >1MB into memory",
|
|
120
|
+
"❌ NEVER accumulate content across multiple file reads",
|
|
121
|
+
"❌ NEVER skip file size checks before reading",
|
|
122
|
+
"❌ NEVER process >5 files without summarization",
|
|
123
|
+
"Process files sequentially to prevent memory accumulation",
|
|
124
|
+
"Maximum 3-5 files for documentation analysis without summarization",
|
|
125
|
+
"Critical files >100KB MUST be summarized, NEVER fully read",
|
|
126
|
+
"Single file threshold: 20KB or 200 lines triggers MANDATORY summarization",
|
|
127
|
+
"Cumulative threshold: 50KB total or 3 files triggers batch summarization",
|
|
128
|
+
"Adaptive grep context: >50 matches use -A 2 -B 2 | head -50, <20 matches use -A 10 -B 10",
|
|
129
|
+
"Content MUST be discarded IMMEDIATELY after extraction",
|
|
130
|
+
"File size checking is MANDATORY before ALL Read operations",
|
|
131
|
+
"Check MCP summarizer tool availability before use",
|
|
132
|
+
"Always include line numbers in code references",
|
|
133
|
+
"Implementation chunking: Process large files in <100 line segments",
|
|
134
|
+
"Sequential processing is MANDATORY for documentation generation"
|
|
135
|
+
],
|
|
136
|
+
"examples": []
|
|
137
|
+
},
|
|
138
|
+
"interactions": {
|
|
139
|
+
"input_format": {
|
|
140
|
+
"required_fields": [
|
|
141
|
+
"task"
|
|
142
|
+
],
|
|
143
|
+
"optional_fields": [
|
|
144
|
+
"context",
|
|
145
|
+
"constraints"
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
"output_format": {
|
|
149
|
+
"structure": "markdown",
|
|
150
|
+
"includes": [
|
|
151
|
+
"analysis",
|
|
152
|
+
"recommendations",
|
|
153
|
+
"code"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
"handoff_agents": [
|
|
157
|
+
"version_control"
|
|
158
|
+
],
|
|
159
|
+
"triggers": []
|
|
160
|
+
},
|
|
161
|
+
"testing": {
|
|
162
|
+
"test_cases": [
|
|
163
|
+
{
|
|
164
|
+
"name": "Basic documentation task",
|
|
165
|
+
"input": "Perform a basic documentation analysis",
|
|
166
|
+
"expected_behavior": "Agent performs documentation tasks correctly",
|
|
167
|
+
"validation_criteria": [
|
|
168
|
+
"completes_task",
|
|
169
|
+
"follows_format"
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"performance_benchmarks": {
|
|
174
|
+
"response_time": 300,
|
|
175
|
+
"token_usage": 8192,
|
|
176
|
+
"success_rate": 0.95
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"dependencies": {
|
|
180
|
+
"python": [
|
|
181
|
+
"sphinx>=7.2.0",
|
|
182
|
+
"mkdocs>=1.5.0",
|
|
183
|
+
"pydoc-markdown>=4.8.0",
|
|
184
|
+
"diagrams>=0.23.0",
|
|
185
|
+
"mermaid-py>=0.2.0",
|
|
186
|
+
"docstring-parser>=0.15.0"
|
|
187
|
+
],
|
|
188
|
+
"system": [
|
|
189
|
+
"python3",
|
|
190
|
+
"git"
|
|
191
|
+
],
|
|
192
|
+
"optional": false
|
|
193
|
+
}
|
|
194
|
+
}
|
|
@@ -37,17 +37,6 @@
|
|
|
37
37
|
},
|
|
38
38
|
"capabilities": {
|
|
39
39
|
"model": "opus",
|
|
40
|
-
"tools": [
|
|
41
|
-
"Read",
|
|
42
|
-
"Grep",
|
|
43
|
-
"Glob",
|
|
44
|
-
"LS",
|
|
45
|
-
"WebSearch",
|
|
46
|
-
"WebFetch",
|
|
47
|
-
"Bash",
|
|
48
|
-
"TodoWrite",
|
|
49
|
-
"mcp__claude-mpm-gateway__document_summarizer"
|
|
50
|
-
],
|
|
51
40
|
"resource_tier": "high",
|
|
52
41
|
"temperature": 0.2,
|
|
53
42
|
"max_tokens": 16384,
|
|
@@ -178,53 +178,90 @@ def _initialize_project_registry():
|
|
|
178
178
|
|
|
179
179
|
def _verify_mcp_gateway_startup():
|
|
180
180
|
"""
|
|
181
|
-
Verify MCP Gateway configuration on startup.
|
|
181
|
+
Verify MCP Gateway configuration on startup and pre-warm MCP services.
|
|
182
182
|
|
|
183
183
|
WHY: The MCP gateway should be automatically configured and verified on startup
|
|
184
184
|
to provide a seamless experience with diagnostic tools, file summarizer, and
|
|
185
|
-
ticket service.
|
|
185
|
+
ticket service. Pre-warming MCP services eliminates the 11.9s delay on first use.
|
|
186
186
|
|
|
187
187
|
DESIGN DECISION: This is non-blocking - failures are logged but don't prevent
|
|
188
188
|
startup to ensure claude-mpm remains functional even if MCP gateway has issues.
|
|
189
189
|
"""
|
|
190
190
|
try:
|
|
191
191
|
import asyncio
|
|
192
|
+
import time
|
|
192
193
|
from ..services.mcp_gateway.core.startup_verification import (
|
|
193
194
|
verify_mcp_gateway_on_startup,
|
|
194
195
|
is_mcp_gateway_configured,
|
|
195
196
|
)
|
|
197
|
+
from ..services.mcp_gateway.core.process_pool import pre_warm_mcp_servers
|
|
198
|
+
from ..core.logger import get_logger
|
|
199
|
+
|
|
200
|
+
logger = get_logger("mcp_prewarm")
|
|
196
201
|
|
|
197
202
|
# Quick check first - if already configured, skip detailed verification
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
#
|
|
202
|
-
|
|
203
|
-
def run_verification():
|
|
203
|
+
gateway_configured = is_mcp_gateway_configured()
|
|
204
|
+
|
|
205
|
+
# Pre-warm MCP servers regardless of gateway config
|
|
206
|
+
# This eliminates the 11.9s delay on first agent invocation
|
|
207
|
+
def run_pre_warming():
|
|
204
208
|
try:
|
|
209
|
+
start_time = time.time()
|
|
205
210
|
loop = asyncio.new_event_loop()
|
|
206
211
|
asyncio.set_event_loop(loop)
|
|
207
|
-
|
|
212
|
+
|
|
213
|
+
# Pre-warm MCP servers (especially vector search)
|
|
214
|
+
logger.info("Pre-warming MCP servers to eliminate startup delay...")
|
|
215
|
+
loop.run_until_complete(pre_warm_mcp_servers())
|
|
216
|
+
|
|
217
|
+
pre_warm_time = time.time() - start_time
|
|
218
|
+
if pre_warm_time > 1.0:
|
|
219
|
+
logger.info(f"MCP servers pre-warmed in {pre_warm_time:.2f}s")
|
|
220
|
+
|
|
221
|
+
# Also run gateway verification if needed
|
|
222
|
+
if not gateway_configured:
|
|
223
|
+
results = loop.run_until_complete(verify_mcp_gateway_on_startup())
|
|
224
|
+
|
|
208
225
|
loop.close()
|
|
209
|
-
|
|
210
|
-
# Log results but don't block
|
|
211
|
-
from ..core.logger import get_logger
|
|
212
|
-
logger = get_logger("cli")
|
|
213
|
-
|
|
214
|
-
if results.get("gateway_configured"):
|
|
215
|
-
logger.debug("MCP Gateway verification completed successfully")
|
|
216
|
-
else:
|
|
217
|
-
logger.debug("MCP Gateway verification completed with warnings")
|
|
218
|
-
|
|
219
226
|
except Exception as e:
|
|
220
|
-
|
|
221
|
-
logger
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
# Run in background thread to avoid blocking startup
|
|
227
|
+
# Non-blocking - log but don't fail
|
|
228
|
+
logger.debug(f"MCP pre-warming error (non-critical): {e}")
|
|
229
|
+
|
|
230
|
+
# Run pre-warming in background thread
|
|
225
231
|
import threading
|
|
226
|
-
|
|
227
|
-
|
|
232
|
+
pre_warm_thread = threading.Thread(target=run_pre_warming, daemon=True)
|
|
233
|
+
pre_warm_thread.start()
|
|
234
|
+
|
|
235
|
+
return
|
|
236
|
+
|
|
237
|
+
# Run detailed verification in background if not configured
|
|
238
|
+
if not gateway_configured:
|
|
239
|
+
# Note: We don't await this to avoid blocking startup
|
|
240
|
+
def run_verification():
|
|
241
|
+
try:
|
|
242
|
+
loop = asyncio.new_event_loop()
|
|
243
|
+
asyncio.set_event_loop(loop)
|
|
244
|
+
results = loop.run_until_complete(verify_mcp_gateway_on_startup())
|
|
245
|
+
loop.close()
|
|
246
|
+
|
|
247
|
+
# Log results but don't block
|
|
248
|
+
from ..core.logger import get_logger
|
|
249
|
+
logger = get_logger("cli")
|
|
250
|
+
|
|
251
|
+
if results.get("gateway_configured"):
|
|
252
|
+
logger.debug("MCP Gateway verification completed successfully")
|
|
253
|
+
else:
|
|
254
|
+
logger.debug("MCP Gateway verification completed with warnings")
|
|
255
|
+
|
|
256
|
+
except Exception as e:
|
|
257
|
+
from ..core.logger import get_logger
|
|
258
|
+
logger = get_logger("cli")
|
|
259
|
+
logger.debug(f"MCP Gateway verification failed: {e}")
|
|
260
|
+
|
|
261
|
+
# Run in background thread to avoid blocking startup
|
|
262
|
+
import threading
|
|
263
|
+
verification_thread = threading.Thread(target=run_verification, daemon=True)
|
|
264
|
+
verification_thread.start()
|
|
228
265
|
|
|
229
266
|
except Exception as e:
|
|
230
267
|
# Import logger here to avoid circular imports
|
|
@@ -181,14 +181,15 @@ class AgentManagerCommand(AgentCommand):
|
|
|
181
181
|
"""Deploy an agent to specified tier."""
|
|
182
182
|
try:
|
|
183
183
|
agent_id = args.agent_id
|
|
184
|
-
tier = getattr(args, 'tier', 'user')
|
|
184
|
+
tier = getattr(args, 'tier', 'project') # Default to project (changed from 'user')
|
|
185
185
|
|
|
186
|
-
#
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
186
|
+
# Always deploy to project directory
|
|
187
|
+
# Regardless of tier, all agents go to project .claude/agents
|
|
188
|
+
deploy_path = Path.cwd() / ".claude" / "agents"
|
|
189
|
+
|
|
190
|
+
# Note: We're keeping the tier parameter for backward compatibility
|
|
191
|
+
# but it no longer affects the deployment location
|
|
192
|
+
if tier not in ['project', 'user']:
|
|
192
193
|
return CommandResult.error_result("Invalid tier. Use 'project' or 'user'")
|
|
193
194
|
|
|
194
195
|
# Create directory if needed
|
|
@@ -203,7 +204,8 @@ class AgentManagerCommand(AgentCommand):
|
|
|
203
204
|
return CommandResult.error_result(f"Agent '{agent_id}' not found")
|
|
204
205
|
|
|
205
206
|
# Deploy using deployment service
|
|
206
|
-
|
|
207
|
+
# Pass Path object, not string
|
|
208
|
+
self.deployment.deploy_agent(agent_id, deploy_path)
|
|
207
209
|
|
|
208
210
|
return CommandResult.success_result(
|
|
209
211
|
f"Agent '{agent_id}' deployed to {tier} level"
|