claude-mpm 4.1.7__tar.gz → 4.1.8__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.1.8/BUILD_NUMBER +1 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/PKG-INFO +1 -1
- claude_mpm-4.1.8/VERSION +1 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/pyproject.toml +2 -2
- claude_mpm-4.1.8/src/claude_mpm/VERSION +1 -0
- claude_mpm-4.1.8/src/claude_mpm/agents/OUTPUT_STYLE.md +73 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/agent-manager.json +1 -1
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/agent-manager.md +248 -10
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/configure.py +151 -2
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/configure_tui.py +5 -1
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/configure_parser.py +23 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/config/socketio_config.py +21 -21
- claude_mpm-4.1.8/src/claude_mpm/hooks/claude_hooks/installer.py +455 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_config_provider.py +127 -27
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/instructions_check.py +1 -3
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/event_bus/direct_relay.py +98 -20
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/server/connection_manager.py +91 -61
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/server/core.py +25 -6
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/server/main.py +36 -3
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm.egg-info/PKG-INFO +1 -1
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm.egg-info/SOURCES.txt +2 -0
- claude_mpm-4.1.7/BUILD_NUMBER +0 -1
- claude_mpm-4.1.7/VERSION +0 -1
- claude_mpm-4.1.7/src/claude_mpm/VERSION +0 -1
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/CLAUDE.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/LICENSE +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/MANIFEST.in +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/README.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/scripts/ticket +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/setup.cfg +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/BUILD_NUMBER +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/__main__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/BASE_PM.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/MEMORY.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/WORKFLOW.md +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/agent-template.yaml +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/agent_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/async_agent_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/base_agent.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/api_qa.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/code_analyzer.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/documentation.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/engineer.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/imagemagick.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/memory_manager.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/ops.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/qa.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/refactoring_engineer.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/research.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/security.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/ticketing.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/vercel_ops_agent.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/version_control.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/web_qa.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/agents/templates/web_ui.json +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/__main__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/agent_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/agents.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/aggregate.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/cleanup.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/cleanup_orphaned_agents.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/doctor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/info.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp_command_router.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp_config_commands.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp_install_commands.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp_pipx_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp_server_commands.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/mcp_tool_commands.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/memory.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/monitor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/run.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/socketio_monitor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/commands/tickets.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/agent_manager_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/agents_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/base_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/config_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/mcp_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/memory_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/monitor_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/run_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/parsers/tickets_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/shared/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/shared/argument_patterns.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/shared/base_command.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/shared/error_handling.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/shared/output_formatters.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/startup_logging.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/ticket_cli.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli/utils.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/cli_module/migration_example.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/config/agent_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/config/experimental_features.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/config/paths.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/constants.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/agent_registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/cache.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/claude_runner.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/config_constants.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/constants.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/exceptions.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/framework_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/hook_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/hook_performance_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/interactive_session.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/lazy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/log_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/logging_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/oneshot_session.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/optimized_startup.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/output_style_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/shared/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/shared/config_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/shared/path_resolver.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/shared/singleton_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/socketio_pool.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/types.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/typing_utils.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/unified_agent_registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/unified_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/core/unified_paths.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/index.html +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/agent-inference.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/event-processor.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/event-viewer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/export-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/hud-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/module-viewer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/session-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/socket-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/components/working-directory.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/dashboard.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/built/socket-client.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/css/connection-status.css +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/event-processor.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/export-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/session-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/components/working-directory.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/dashboard.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/dist/socket-client.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/agent-hierarchy.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/build-tracker.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/connection-debug.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/connection-manager.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/extension-error-handler.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/templates/index.html +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/connection_pool.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/services/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/services/connection_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/services/duplicate_detector.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/services/state_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/services/subagent_processor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/init.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/models/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/models/agent_definition.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/models/agent_session.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/mcp_server.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/mcp_wrapper.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/mpm_doctor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/socketio_daemon_hardened.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/socketio_server_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agent_capabilities_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/agent_builder.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_format_converter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_operation_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_record_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_state_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_template_builder.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_version_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/base_agent_locator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/config/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/config/deployment_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/deployment_results_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/deployment_wrapper.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/facade/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/interface_adapter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/multi_source_deployment_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/processors/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/results/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/single_agent_deployer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/strategies/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/validation/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/validation/template_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/deployment/validation/validation_result.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/management/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/content_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/memory_categorization_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/memory_file_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/memory_format_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/memory_limits_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/memory/template_generator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/async_session_logger.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/claude_session_logger.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/agent_cleanup_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/agent_dependency_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/agent_listing_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/agent_output_formatter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/agent_validation_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/dashboard_launcher.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/memory_crud_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/memory_output_formatter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/session_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/socketio_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/cli/startup_checker.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/command_deployment_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/command_handler_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/communication/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/cache_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/interfaces/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/interfaces/agent.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/interfaces/communication.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/interfaces/infrastructure.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/interfaces/service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/interfaces.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/memory_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/path_resolver.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/service_container.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/core/service_interfaces.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/agent_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/base_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/common_issues_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/configuration_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/filesystem_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/installation_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/mcp_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/monitor_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/checks/startup_log_check.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/diagnostic_runner.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/doctor_reporter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/diagnostics/models.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/event_aggregator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/event_bus/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/event_bus/config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/event_bus/event_bus.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/event_bus/relay.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/consumers/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/consumers/dead_letter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/consumers/logging.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/consumers/metrics.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/consumers/socketio.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/core.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/interfaces.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/producers/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/producers/hook.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/events/producers/system.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/exceptions.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/hook_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/context_preservation.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/daemon_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/logging.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/aggregator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/legacy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/network.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/process.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/resources.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring/service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/auto_configure.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/config/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/config/configuration.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/process_pool.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/main.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/server/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/builder.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/optimizer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory/router.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/memory_hook_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/monitor_build_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/port_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/analyzer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/analyzer_refactored.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/analyzer_v2.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/architecture_analyzer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/dependency_analyzer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/language_analyzer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/metrics_collector.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/project/registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/recovery_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/response_tracker.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/runner_configuration_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/session_management_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/shared/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/shared/async_service_base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/shared/config_service_base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/shared/lifecycle_service_base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/shared/manager_base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/shared/service_factory.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/client_proxy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/event_normalizer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/connection_handler.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/hook.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/migration_utils.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/server/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/server/broadcaster.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio/server/eventbus_integration.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio_client_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/socketio_server.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/subprocess_launcher_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/system_instructions_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_services/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_services/crud_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_services/formatter_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_services/search_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_services/validation_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/ticket_services/workflow_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/utility_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_control/version_parser.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/services/version_service.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/storage/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/storage/state_storage.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/ticket_wrapper.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/console.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/dependency_cache.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/dependency_manager.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/dependency_strategies.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/environment_context.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/file_utils.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/robust_installer.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/session_logging.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/utils/subprocess_utils.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/validation/agent_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm.egg-info/requires.txt +0 -0
- {claude_mpm-4.1.7 → claude_mpm-4.1.8}/src/claude_mpm.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
305
|
claude_mpm-4.1.8/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.1.8
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-mpm"
|
|
7
|
-
version = "4.1.
|
|
7
|
+
version = "4.1.8"
|
|
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"
|
|
@@ -244,7 +244,7 @@ ignore-imports = false
|
|
|
244
244
|
|
|
245
245
|
[tool.commitizen]
|
|
246
246
|
name = "cz_conventional_commits"
|
|
247
|
-
version = "4.1.
|
|
247
|
+
version = "4.1.8"
|
|
248
248
|
version_files = [
|
|
249
249
|
"VERSION",
|
|
250
250
|
"src/claude_mpm/VERSION",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.1.8
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Claude MPM
|
|
3
|
+
description: Multi-Agent Project Manager orchestration mode for delegation and coordination
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are Claude Multi-Agent PM, a PROJECT MANAGER whose SOLE PURPOSE is to delegate work to specialized agents.
|
|
7
|
+
|
|
8
|
+
## Core Operating Rules
|
|
9
|
+
|
|
10
|
+
**DEFAULT BEHAVIOR - ALWAYS DELEGATE**:
|
|
11
|
+
- 🔴 You MUST delegate 100% of ALL work to specialized agents by default
|
|
12
|
+
- 🔴 Direct action is STRICTLY FORBIDDEN without explicit user override
|
|
13
|
+
- 🔴 Even the simplest tasks MUST be delegated - NO EXCEPTIONS
|
|
14
|
+
- 🔴 When in doubt, ALWAYS DELEGATE - never act directly
|
|
15
|
+
|
|
16
|
+
**Allowed Tools**:
|
|
17
|
+
- **Task** for delegation (YOUR PRIMARY FUNCTION)
|
|
18
|
+
- **TodoWrite** for tracking delegation progress ONLY
|
|
19
|
+
- **WebSearch/WebFetch** for gathering context BEFORE delegation
|
|
20
|
+
- **Direct answers** ONLY for questions about PM capabilities
|
|
21
|
+
|
|
22
|
+
## Communication Standards
|
|
23
|
+
|
|
24
|
+
- **Tone**: Professional, neutral by default
|
|
25
|
+
- **Use**: "Understood", "Confirmed", "Noted"
|
|
26
|
+
- **No simplification** without explicit user request
|
|
27
|
+
- **No mocks** outside test environments
|
|
28
|
+
- **Complete implementations** only - no placeholders
|
|
29
|
+
- **FORBIDDEN**: Overeager enthusiasm ("Excellent!", "Perfect!", "Amazing!")
|
|
30
|
+
|
|
31
|
+
## Error Handling Protocol
|
|
32
|
+
|
|
33
|
+
**3-Attempt Process**:
|
|
34
|
+
1. **First Failure**: Re-delegate with enhanced context
|
|
35
|
+
2. **Second Failure**: Mark "ERROR - Attempt 2/3", escalate if needed
|
|
36
|
+
3. **Third Failure**: TodoWrite escalation with user decision required
|
|
37
|
+
|
|
38
|
+
## Standard Operating Procedure
|
|
39
|
+
|
|
40
|
+
1. **Analysis**: Parse request, assess context (NO TOOLS)
|
|
41
|
+
2. **Planning**: Agent selection, task breakdown, priority assignment
|
|
42
|
+
3. **Delegation**: Task Tool with enhanced format
|
|
43
|
+
4. **Monitoring**: Track progress via TodoWrite
|
|
44
|
+
5. **Integration**: Synthesize results, validate, report
|
|
45
|
+
|
|
46
|
+
## TodoWrite Requirements
|
|
47
|
+
|
|
48
|
+
### Mandatory [Agent] Prefix Rules
|
|
49
|
+
|
|
50
|
+
**ALWAYS use [Agent] prefix for delegated tasks**:
|
|
51
|
+
- ✅ `[Research] Analyze authentication patterns`
|
|
52
|
+
- ✅ `[Engineer] Implement user registration`
|
|
53
|
+
- ✅ `[QA] Test payment flow`
|
|
54
|
+
- ✅ `[Documentation] Update API docs`
|
|
55
|
+
|
|
56
|
+
**NEVER use [PM] prefix for implementation tasks**
|
|
57
|
+
|
|
58
|
+
### Task Status Management
|
|
59
|
+
|
|
60
|
+
- `pending` - Task not yet started
|
|
61
|
+
- `in_progress` - Currently being worked on (ONE at a time)
|
|
62
|
+
- `completed` - Task finished successfully
|
|
63
|
+
|
|
64
|
+
## Response Format
|
|
65
|
+
|
|
66
|
+
When completing delegations, provide structured summaries including:
|
|
67
|
+
- Request summary
|
|
68
|
+
- Agents used and task counts
|
|
69
|
+
- Tasks completed with [Agent] prefixes
|
|
70
|
+
- Files affected across all agents
|
|
71
|
+
- Blockers encountered and resolutions
|
|
72
|
+
- Next steps for user
|
|
73
|
+
- Key information to remember
|
|
@@ -56,24 +56,99 @@ You manage a comprehensive PM (Project Manager) customization system:
|
|
|
56
56
|
|
|
57
57
|
### Configuration System
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
#### Configuration Files (YAML Format)
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
2. **User Config** (`~/.claude-mpm/configuration.yaml`)
|
|
63
|
-
3. **System Config** (`/etc/claude-mpm/configuration.yaml`)
|
|
61
|
+
The Claude MPM configuration system uses **YAML files**, not JSON:
|
|
64
62
|
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
1. **Project Config** (`./.claude-mpm/configuration.yaml`) - Project-specific settings
|
|
64
|
+
2. **User Config** (`~/.claude-mpm/configuration.yaml`) - User's personal settings
|
|
65
|
+
3. **System Config** (`/etc/claude-mpm/configuration.yaml`) - System defaults
|
|
66
|
+
|
|
67
|
+
#### Agent Deployment Configuration
|
|
68
|
+
|
|
69
|
+
Control agent deployment through the `agent_deployment` section:
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
# .claude-mpm/configuration.yaml
|
|
73
|
+
agent_deployment:
|
|
74
|
+
excluded_agents: ["research", "qa", "documentation"] # List agents to exclude
|
|
75
|
+
case_sensitive: false # Case-insensitive agent name matching (default: false)
|
|
76
|
+
exclude_dependencies: false # Whether to exclude agent dependencies (default: false)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Complete Configuration Example
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
# .claude-mpm/configuration.yaml
|
|
83
|
+
# Agent deployment settings
|
|
84
|
+
agent_deployment:
|
|
85
|
+
excluded_agents: ["research", "qa", "documentation"]
|
|
86
|
+
case_sensitive: false
|
|
87
|
+
exclude_dependencies: false
|
|
88
|
+
|
|
89
|
+
# Memory system settings
|
|
90
|
+
memory:
|
|
91
|
+
enabled: true
|
|
92
|
+
auto_learning: true
|
|
93
|
+
limits:
|
|
94
|
+
default_size_kb: 80
|
|
95
|
+
max_sections: 10
|
|
96
|
+
max_items_per_section: 15
|
|
97
|
+
|
|
98
|
+
# Response tracking
|
|
99
|
+
response_tracking:
|
|
100
|
+
enabled: true
|
|
101
|
+
track_all_interactions: false
|
|
102
|
+
max_response_age_hours: 24
|
|
103
|
+
max_responses_per_agent: 100
|
|
104
|
+
|
|
105
|
+
# Response logging
|
|
106
|
+
response_logging:
|
|
107
|
+
enabled: true
|
|
108
|
+
track_all_interactions: false
|
|
109
|
+
format: json
|
|
110
|
+
|
|
111
|
+
# SocketIO server
|
|
112
|
+
socketio:
|
|
113
|
+
enabled: true
|
|
114
|
+
port_range: [8080, 8099]
|
|
115
|
+
default_port: 8080
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### Important Configuration Notes
|
|
119
|
+
|
|
120
|
+
- **Configuration is YAML**: All configuration files use YAML format, not JSON
|
|
121
|
+
- **No `use_custom_only` setting**: Use `excluded_agents` list to control deployment
|
|
122
|
+
- **Agent exclusion**: List agent IDs in `excluded_agents` to prevent deployment
|
|
123
|
+
- **Case sensitivity**: Control with `case_sensitive` field (default: false)
|
|
71
124
|
|
|
72
125
|
**IMPORTANT NOTES**:
|
|
73
126
|
- CLAUDE.md files are NOT loaded by MPM (handled by Claude Code directly)
|
|
74
127
|
- SystemInstructionsDeployer auto-deploys PM instructions on first run
|
|
75
128
|
- FrameworkLoader orchestrates all customization loading
|
|
76
129
|
- Template variable {{CAPABILITIES}} is dynamically replaced with agent list
|
|
130
|
+
- Configuration uses YAML format (`.claude-mpm/configuration.yaml`), not JSON
|
|
131
|
+
- Agents excluded via `agent_deployment.excluded_agents` list in configuration
|
|
132
|
+
|
|
133
|
+
## Agent Storage and Deployment
|
|
134
|
+
|
|
135
|
+
### Directory Structure
|
|
136
|
+
|
|
137
|
+
**Development/Source Templates** (JSON format):
|
|
138
|
+
- `.claude-mpm/agents/*.json` - Project-level agent source templates
|
|
139
|
+
- `~/.claude-mpm/agents/*.json` - User-level agent source templates
|
|
140
|
+
- These JSON files are compiled to Markdown during deployment
|
|
141
|
+
|
|
142
|
+
**Runtime/Deployed Agents** (Markdown format):
|
|
143
|
+
- `.claude/agents/*.md` - Project-level deployed agents (what Claude Code reads)
|
|
144
|
+
- `~/.claude/agents/*.md` - User-level deployed agents
|
|
145
|
+
- `/src/claude_mpm/agents/templates/*.md` - System-level agent templates
|
|
146
|
+
|
|
147
|
+
**Key Points**:
|
|
148
|
+
- JSON files in `.claude-mpm/agents/` are source templates for development
|
|
149
|
+
- MD files in `.claude/agents/` are deployed agents that Claude Code reads
|
|
150
|
+
- Agent deployment compiles JSON templates to Markdown format
|
|
151
|
+
- Version-based precedence determines which agent is used (highest version wins)
|
|
77
152
|
|
|
78
153
|
## Core Responsibilities
|
|
79
154
|
|
|
@@ -209,12 +284,127 @@ When creating agents, use this structure:
|
|
|
209
284
|
}
|
|
210
285
|
```
|
|
211
286
|
|
|
287
|
+
## Complete Agent JSON Schema
|
|
288
|
+
|
|
289
|
+
### Required Fields for Deployment
|
|
290
|
+
|
|
291
|
+
When deploying agents, ensure ALL fields use the correct data types:
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"agent_id": "custom-agent", // Required: unique identifier
|
|
296
|
+
"version": "1.0.0", // Required: semantic version
|
|
297
|
+
"metadata": { // Required: agent metadata
|
|
298
|
+
"name": "Custom Agent",
|
|
299
|
+
"description": "Agent description",
|
|
300
|
+
"tags": ["tag1", "tag2"], // MUST be a list, NOT a string!
|
|
301
|
+
"capabilities": ["capability1", "capability2"] // MUST be a list!
|
|
302
|
+
},
|
|
303
|
+
"capabilities": { // Optional but recommended
|
|
304
|
+
"model": "sonnet", // Default: "sonnet"
|
|
305
|
+
"tools": ["Read", "Write", "Edit"], // MUST be a list, NOT a JSON string!
|
|
306
|
+
"resource_tier": "standard" // Default: "standard"
|
|
307
|
+
},
|
|
308
|
+
"specializations": ["spec1", "spec2"], // Optional: MUST be a list if provided!
|
|
309
|
+
"when_to_use": ["scenario1", "scenario2"], // Optional: MUST be a list if provided!
|
|
310
|
+
"network_access": true, // Optional: boolean
|
|
311
|
+
"temperature": 0.3 // Optional: float between 0 and 1
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Common Data Type Errors
|
|
316
|
+
|
|
317
|
+
**❌ WRONG - These will cause deployment errors:**
|
|
318
|
+
```json
|
|
319
|
+
{
|
|
320
|
+
"tools": '["Read", "Write", "Edit"]', // String containing JSON - WRONG!
|
|
321
|
+
"tags": '["tag1", "tag2"]', // String containing JSON - WRONG!
|
|
322
|
+
"specializations": '["spec1", "spec2"]' // String containing JSON - WRONG!
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**✅ CORRECT - Use actual lists/arrays:**
|
|
327
|
+
```json
|
|
328
|
+
{
|
|
329
|
+
"tools": ["Read", "Write", "Edit"], // Actual list - CORRECT!
|
|
330
|
+
"tags": ["tag1", "tag2"], // Actual list - CORRECT!
|
|
331
|
+
"specializations": ["spec1", "spec2"] // Actual list - CORRECT!
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Available Tools
|
|
336
|
+
|
|
337
|
+
When specifying tools, use these exact names (case-sensitive):
|
|
338
|
+
|
|
339
|
+
- **File Operations**: `Read`, `Write`, `Edit`, `MultiEdit`
|
|
340
|
+
- **Search & Navigation**: `Grep`, `Glob`, `LS`
|
|
341
|
+
- **System Operations**: `Bash`, `BashOutput`, `KillBash`
|
|
342
|
+
- **Web Operations**: `WebSearch`, `WebFetch`
|
|
343
|
+
- **Project Management**: `TodoWrite`
|
|
344
|
+
- **Notebook Operations**: `NotebookEdit`
|
|
345
|
+
- **MCP Tools**: Any tools starting with `mcp__` (if available)
|
|
346
|
+
|
|
212
347
|
### Version Guidelines
|
|
213
348
|
- Production versions: Use standard semantic versioning (1.0.0, 1.1.0, 2.0.0)
|
|
214
349
|
- Development versions: Use 999.x.x to override all other versions
|
|
215
350
|
- Version determines precedence across ALL sources (project/user/system)
|
|
216
351
|
- Higher version always wins regardless of deployment location
|
|
217
352
|
|
|
353
|
+
## Common Deployment Errors and Solutions
|
|
354
|
+
|
|
355
|
+
### 1. TypeError: can only concatenate list (not 'str') to list
|
|
356
|
+
|
|
357
|
+
**Cause**: The `tools`, `tags`, `capabilities`, or `specializations` field is a JSON string instead of a list.
|
|
358
|
+
|
|
359
|
+
**Solution**: Ensure all list fields are actual Python lists, not JSON strings:
|
|
360
|
+
```python
|
|
361
|
+
# WRONG
|
|
362
|
+
"tools": '["Read", "Write"]' # This is a string!
|
|
363
|
+
|
|
364
|
+
# CORRECT
|
|
365
|
+
"tools": ["Read", "Write"] # This is a list!
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### 2. Version Conflict Errors
|
|
369
|
+
|
|
370
|
+
**Cause**: An agent with the same ID but higher version exists elsewhere.
|
|
371
|
+
|
|
372
|
+
**Solution**:
|
|
373
|
+
- Use version 999.x.x for development to override all versions
|
|
374
|
+
- Check existing versions with `mpm list`
|
|
375
|
+
- Increment version appropriately for production releases
|
|
376
|
+
|
|
377
|
+
### 3. Missing Required Fields
|
|
378
|
+
|
|
379
|
+
**Cause**: Agent JSON is missing required fields like `agent_id`, `version`, or `metadata`.
|
|
380
|
+
|
|
381
|
+
**Solution**: Use the complete schema above and ensure all required fields are present:
|
|
382
|
+
```json
|
|
383
|
+
{
|
|
384
|
+
"agent_id": "my-agent", // Required
|
|
385
|
+
"version": "1.0.0", // Required
|
|
386
|
+
"metadata": { // Required
|
|
387
|
+
"name": "My Agent",
|
|
388
|
+
"description": "Description"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### 4. Invalid Tool Names
|
|
394
|
+
|
|
395
|
+
**Cause**: Specifying tools that don't exist in the environment.
|
|
396
|
+
|
|
397
|
+
**Solution**: Use only valid tool names from the Available Tools list above. Check case-sensitivity!
|
|
398
|
+
|
|
399
|
+
### 5. File Not Found Errors
|
|
400
|
+
|
|
401
|
+
**Cause**: Agent prompt file doesn't exist at the specified location.
|
|
402
|
+
|
|
403
|
+
**Solution**:
|
|
404
|
+
- Place agent files in `.claude/agents/` directory
|
|
405
|
+
- Ensure both JSON and markdown files exist
|
|
406
|
+
- Use matching filenames (e.g., `my-agent.json` and `my-agent.md`)
|
|
407
|
+
|
|
218
408
|
## Validation Rules
|
|
219
409
|
|
|
220
410
|
### Agent ID Validation
|
|
@@ -235,6 +425,32 @@ When creating agents, use this structure:
|
|
|
235
425
|
- Ensure backup of overridden agents
|
|
236
426
|
- Validate against schema if available
|
|
237
427
|
|
|
428
|
+
### Pre-Deployment Validation Commands
|
|
429
|
+
|
|
430
|
+
**Test agent configuration before deployment:**
|
|
431
|
+
```bash
|
|
432
|
+
# Validate JSON structure
|
|
433
|
+
mpm validate-agent ./my-agent.json
|
|
434
|
+
|
|
435
|
+
# Test deployment without applying
|
|
436
|
+
mpm deploy --dry-run ./my-agent.json
|
|
437
|
+
|
|
438
|
+
# Check for conflicts
|
|
439
|
+
mpm list --show-conflicts my-agent
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
**Verify agent files:**
|
|
443
|
+
```bash
|
|
444
|
+
# Check both files exist
|
|
445
|
+
ls -la .claude/agents/my-agent.*
|
|
446
|
+
|
|
447
|
+
# Validate JSON syntax
|
|
448
|
+
python -m json.tool .claude/agents/my-agent.json
|
|
449
|
+
|
|
450
|
+
# Test agent loading
|
|
451
|
+
mpm test-agent my-agent
|
|
452
|
+
```
|
|
453
|
+
|
|
238
454
|
## Error Handling
|
|
239
455
|
|
|
240
456
|
### Common Errors and Solutions
|
|
@@ -366,6 +582,28 @@ Brief description of action taken
|
|
|
366
582
|
- Development Mode: Yes/No (if version 999.x.x)
|
|
367
583
|
```
|
|
368
584
|
|
|
585
|
+
## Common Misconceptions
|
|
586
|
+
|
|
587
|
+
### Configuration Format
|
|
588
|
+
❌ **INCORRECT**: "Configuration is in `.claude-mpm/config/agents.json`"
|
|
589
|
+
✅ **CORRECT**: Configuration is in `.claude-mpm/configuration.yaml` (YAML format)
|
|
590
|
+
|
|
591
|
+
### Agent Exclusion
|
|
592
|
+
❌ **INCORRECT**: "Use `use_custom_only: true` to control agents"
|
|
593
|
+
✅ **CORRECT**: Use `agent_deployment.excluded_agents` list in configuration.yaml
|
|
594
|
+
|
|
595
|
+
### Agent Storage
|
|
596
|
+
❌ **INCORRECT**: "Agents are stored as JSON at runtime"
|
|
597
|
+
✅ **CORRECT**:
|
|
598
|
+
- Source templates: `.claude-mpm/agents/*.json` (development)
|
|
599
|
+
- Deployed agents: `.claude/agents/*.md` (runtime, what Claude Code reads)
|
|
600
|
+
|
|
601
|
+
### Configuration Files
|
|
602
|
+
❌ **INCORRECT**: "Individual agent configs in `.claude-mpm/agents/[agent-name].json`"
|
|
603
|
+
✅ **CORRECT**:
|
|
604
|
+
- Main config: `.claude-mpm/configuration.yaml` (YAML)
|
|
605
|
+
- Agent templates: `.claude-mpm/agents/*.json` (compiled to MD on deployment)
|
|
606
|
+
|
|
369
607
|
## Security Considerations
|
|
370
608
|
|
|
371
609
|
- Validate all user inputs
|
|
@@ -222,6 +222,16 @@ class ConfigureCommand(BaseCommand):
|
|
|
222
222
|
if getattr(args, "version_info", False):
|
|
223
223
|
return self._show_version_info()
|
|
224
224
|
|
|
225
|
+
# Handle hook installation
|
|
226
|
+
if getattr(args, "install_hooks", False):
|
|
227
|
+
return self._install_hooks(force=getattr(args, "force", False))
|
|
228
|
+
|
|
229
|
+
if getattr(args, "verify_hooks", False):
|
|
230
|
+
return self._verify_hooks()
|
|
231
|
+
|
|
232
|
+
if getattr(args, "uninstall_hooks", False):
|
|
233
|
+
return self._uninstall_hooks()
|
|
234
|
+
|
|
225
235
|
# Handle direct navigation options
|
|
226
236
|
if getattr(args, "agents", False):
|
|
227
237
|
return self._run_agent_management()
|
|
@@ -1018,7 +1028,11 @@ class ConfigureCommand(BaseCommand):
|
|
|
1018
1028
|
import subprocess
|
|
1019
1029
|
|
|
1020
1030
|
result = subprocess.run(
|
|
1021
|
-
["claude", "--version"],
|
|
1031
|
+
["claude", "--version"],
|
|
1032
|
+
capture_output=True,
|
|
1033
|
+
text=True,
|
|
1034
|
+
timeout=5,
|
|
1035
|
+
check=False,
|
|
1022
1036
|
)
|
|
1023
1037
|
if result.returncode == 0:
|
|
1024
1038
|
claude_version = result.stdout.strip()
|
|
@@ -1157,7 +1171,11 @@ Directory: {self.project_dir}
|
|
|
1157
1171
|
import subprocess
|
|
1158
1172
|
|
|
1159
1173
|
result = subprocess.run(
|
|
1160
|
-
["claude", "--version"],
|
|
1174
|
+
["claude", "--version"],
|
|
1175
|
+
capture_output=True,
|
|
1176
|
+
text=True,
|
|
1177
|
+
timeout=5,
|
|
1178
|
+
check=False,
|
|
1161
1179
|
)
|
|
1162
1180
|
if result.returncode == 0:
|
|
1163
1181
|
data["claude_version"] = result.stdout.strip()
|
|
@@ -1175,6 +1193,137 @@ Directory: {self.project_dir}
|
|
|
1175
1193
|
|
|
1176
1194
|
return CommandResult.success_result("Version information displayed", data=data)
|
|
1177
1195
|
|
|
1196
|
+
def _install_hooks(self, force: bool = False) -> CommandResult:
|
|
1197
|
+
"""Install Claude MPM hooks for Claude Code integration."""
|
|
1198
|
+
try:
|
|
1199
|
+
from ...hooks.claude_hooks.installer import HookInstaller
|
|
1200
|
+
|
|
1201
|
+
installer = HookInstaller()
|
|
1202
|
+
|
|
1203
|
+
# Check current status first
|
|
1204
|
+
status = installer.get_status()
|
|
1205
|
+
if status["installed"] and not force:
|
|
1206
|
+
self.console.print("[yellow]Hooks are already installed.[/yellow]")
|
|
1207
|
+
self.console.print("Use --force to reinstall.")
|
|
1208
|
+
|
|
1209
|
+
if not status["valid"]:
|
|
1210
|
+
self.console.print("\n[red]However, there are issues:[/red]")
|
|
1211
|
+
for issue in status["issues"]:
|
|
1212
|
+
self.console.print(f" - {issue}")
|
|
1213
|
+
|
|
1214
|
+
return CommandResult.success_result(
|
|
1215
|
+
"Hooks already installed", data=status
|
|
1216
|
+
)
|
|
1217
|
+
|
|
1218
|
+
# Install hooks
|
|
1219
|
+
self.console.print("[cyan]Installing Claude MPM hooks...[/cyan]")
|
|
1220
|
+
success = installer.install_hooks(force=force)
|
|
1221
|
+
|
|
1222
|
+
if success:
|
|
1223
|
+
self.console.print("[green]✓ Hooks installed successfully![/green]")
|
|
1224
|
+
self.console.print("\nYou can now use /mpm commands in Claude Code:")
|
|
1225
|
+
self.console.print(" /mpm - Show help")
|
|
1226
|
+
self.console.print(" /mpm status - Show claude-mpm status")
|
|
1227
|
+
|
|
1228
|
+
# Verify installation
|
|
1229
|
+
is_valid, issues = installer.verify_hooks()
|
|
1230
|
+
if not is_valid:
|
|
1231
|
+
self.console.print(
|
|
1232
|
+
"\n[yellow]Warning: Installation completed but verification found issues:[/yellow]"
|
|
1233
|
+
)
|
|
1234
|
+
for issue in issues:
|
|
1235
|
+
self.console.print(f" - {issue}")
|
|
1236
|
+
|
|
1237
|
+
return CommandResult.success_result("Hooks installed successfully")
|
|
1238
|
+
self.console.print("[red]✗ Hook installation failed[/red]")
|
|
1239
|
+
return CommandResult.error_result("Hook installation failed")
|
|
1240
|
+
|
|
1241
|
+
except ImportError:
|
|
1242
|
+
self.console.print("[red]Error: HookInstaller module not found[/red]")
|
|
1243
|
+
self.console.print("Please ensure claude-mpm is properly installed.")
|
|
1244
|
+
return CommandResult.error_result("HookInstaller module not found")
|
|
1245
|
+
except Exception as e:
|
|
1246
|
+
self.logger.error(f"Hook installation error: {e}", exc_info=True)
|
|
1247
|
+
return CommandResult.error_result(f"Hook installation failed: {e}")
|
|
1248
|
+
|
|
1249
|
+
def _verify_hooks(self) -> CommandResult:
|
|
1250
|
+
"""Verify that Claude MPM hooks are properly installed."""
|
|
1251
|
+
try:
|
|
1252
|
+
from ...hooks.claude_hooks.installer import HookInstaller
|
|
1253
|
+
|
|
1254
|
+
installer = HookInstaller()
|
|
1255
|
+
status = installer.get_status()
|
|
1256
|
+
|
|
1257
|
+
self.console.print("[bold]Hook Installation Status[/bold]\n")
|
|
1258
|
+
|
|
1259
|
+
if status["installed"]:
|
|
1260
|
+
self.console.print(
|
|
1261
|
+
f"[green]✓[/green] Hooks installed at: {status['hook_script']}"
|
|
1262
|
+
)
|
|
1263
|
+
else:
|
|
1264
|
+
self.console.print("[red]✗[/red] Hooks not installed")
|
|
1265
|
+
|
|
1266
|
+
if status["settings_file"]:
|
|
1267
|
+
self.console.print(
|
|
1268
|
+
f"[green]✓[/green] Settings file: {status['settings_file']}"
|
|
1269
|
+
)
|
|
1270
|
+
else:
|
|
1271
|
+
self.console.print("[red]✗[/red] Settings file not found")
|
|
1272
|
+
|
|
1273
|
+
if status.get("configured_events"):
|
|
1274
|
+
self.console.print(
|
|
1275
|
+
f"[green]✓[/green] Configured events: {', '.join(status['configured_events'])}"
|
|
1276
|
+
)
|
|
1277
|
+
else:
|
|
1278
|
+
self.console.print("[red]✗[/red] No events configured")
|
|
1279
|
+
|
|
1280
|
+
if status["valid"]:
|
|
1281
|
+
self.console.print("\n[green]All checks passed![/green]")
|
|
1282
|
+
else:
|
|
1283
|
+
self.console.print("\n[red]Issues found:[/red]")
|
|
1284
|
+
for issue in status["issues"]:
|
|
1285
|
+
self.console.print(f" - {issue}")
|
|
1286
|
+
|
|
1287
|
+
return CommandResult.success_result(
|
|
1288
|
+
"Hook verification complete", data=status
|
|
1289
|
+
)
|
|
1290
|
+
|
|
1291
|
+
except ImportError:
|
|
1292
|
+
self.console.print("[red]Error: HookInstaller module not found[/red]")
|
|
1293
|
+
return CommandResult.error_result("HookInstaller module not found")
|
|
1294
|
+
except Exception as e:
|
|
1295
|
+
self.logger.error(f"Hook verification error: {e}", exc_info=True)
|
|
1296
|
+
return CommandResult.error_result(f"Hook verification failed: {e}")
|
|
1297
|
+
|
|
1298
|
+
def _uninstall_hooks(self) -> CommandResult:
|
|
1299
|
+
"""Uninstall Claude MPM hooks."""
|
|
1300
|
+
try:
|
|
1301
|
+
from ...hooks.claude_hooks.installer import HookInstaller
|
|
1302
|
+
|
|
1303
|
+
installer = HookInstaller()
|
|
1304
|
+
|
|
1305
|
+
# Confirm uninstallation
|
|
1306
|
+
if not Confirm.ask(
|
|
1307
|
+
"[yellow]Are you sure you want to uninstall Claude MPM hooks?[/yellow]"
|
|
1308
|
+
):
|
|
1309
|
+
return CommandResult.success_result("Uninstallation cancelled")
|
|
1310
|
+
|
|
1311
|
+
self.console.print("[cyan]Uninstalling Claude MPM hooks...[/cyan]")
|
|
1312
|
+
success = installer.uninstall_hooks()
|
|
1313
|
+
|
|
1314
|
+
if success:
|
|
1315
|
+
self.console.print("[green]✓ Hooks uninstalled successfully![/green]")
|
|
1316
|
+
return CommandResult.success_result("Hooks uninstalled successfully")
|
|
1317
|
+
self.console.print("[red]✗ Hook uninstallation failed[/red]")
|
|
1318
|
+
return CommandResult.error_result("Hook uninstallation failed")
|
|
1319
|
+
|
|
1320
|
+
except ImportError:
|
|
1321
|
+
self.console.print("[red]Error: HookInstaller module not found[/red]")
|
|
1322
|
+
return CommandResult.error_result("HookInstaller module not found")
|
|
1323
|
+
except Exception as e:
|
|
1324
|
+
self.logger.error(f"Hook uninstallation error: {e}", exc_info=True)
|
|
1325
|
+
return CommandResult.error_result(f"Hook uninstallation failed: {e}")
|
|
1326
|
+
|
|
1178
1327
|
def _run_agent_management(self) -> CommandResult:
|
|
1179
1328
|
"""Jump directly to agent management."""
|
|
1180
1329
|
try:
|
|
@@ -1200,7 +1200,11 @@ class SettingsScreen(Container):
|
|
|
1200
1200
|
import subprocess
|
|
1201
1201
|
|
|
1202
1202
|
result = subprocess.run(
|
|
1203
|
-
["claude", "--version"],
|
|
1203
|
+
["claude", "--version"],
|
|
1204
|
+
capture_output=True,
|
|
1205
|
+
text=True,
|
|
1206
|
+
timeout=5,
|
|
1207
|
+
check=False,
|
|
1204
1208
|
)
|
|
1205
1209
|
if result.returncode == 0:
|
|
1206
1210
|
claude_version = result.stdout.strip()
|
|
@@ -96,6 +96,29 @@ def add_configure_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
96
96
|
help="Import configuration from a file",
|
|
97
97
|
)
|
|
98
98
|
|
|
99
|
+
# Hook management options
|
|
100
|
+
hooks_group = configure_parser.add_argument_group("hook management")
|
|
101
|
+
hooks_group.add_argument(
|
|
102
|
+
"--install-hooks",
|
|
103
|
+
action="store_true",
|
|
104
|
+
help="Install Claude MPM hooks for Claude Code integration",
|
|
105
|
+
)
|
|
106
|
+
hooks_group.add_argument(
|
|
107
|
+
"--verify-hooks",
|
|
108
|
+
action="store_true",
|
|
109
|
+
help="Verify that Claude MPM hooks are properly installed",
|
|
110
|
+
)
|
|
111
|
+
hooks_group.add_argument(
|
|
112
|
+
"--uninstall-hooks",
|
|
113
|
+
action="store_true",
|
|
114
|
+
help="Uninstall Claude MPM hooks",
|
|
115
|
+
)
|
|
116
|
+
hooks_group.add_argument(
|
|
117
|
+
"--force",
|
|
118
|
+
action="store_true",
|
|
119
|
+
help="Force reinstallation of hooks even if they already exist",
|
|
120
|
+
)
|
|
121
|
+
|
|
99
122
|
# Display options
|
|
100
123
|
display_group = configure_parser.add_argument_group("display options")
|
|
101
124
|
display_group.add_argument(
|