claude-mpm 4.1.6__tar.gz → 4.1.7__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.7/BUILD_NUMBER +1 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/PKG-INFO +1 -1
- claude_mpm-4.1.7/VERSION +1 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/pyproject.toml +2 -2
- claude_mpm-4.1.7/src/claude_mpm/VERSION +1 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/agent-manager.json +1 -1
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/agent-manager.md +111 -34
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/config/socketio_config.py +33 -4
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/socket-client.js +40 -16
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/services/connection_manager.py +17 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/event_bus/direct_relay.py +59 -2
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/connection_handler.py +3 -18
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/server/connection_manager.py +50 -19
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/server/core.py +15 -7
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/server/main.py +47 -18
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm.egg-info/PKG-INFO +1 -1
- claude_mpm-4.1.6/BUILD_NUMBER +0 -1
- claude_mpm-4.1.6/VERSION +0 -1
- claude_mpm-4.1.6/src/claude_mpm/VERSION +0 -1
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/CLAUDE.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/LICENSE +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/MANIFEST.in +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/README.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/scripts/ticket +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/setup.cfg +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/BUILD_NUMBER +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/__main__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/BASE_PM.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/MEMORY.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/WORKFLOW.md +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/agent-template.yaml +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/agent_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/async_agent_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/base_agent.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/api_qa.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/code_analyzer.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/documentation.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/engineer.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/imagemagick.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/memory_manager.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/ops.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/qa.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/refactoring_engineer.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/research.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/security.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/ticketing.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/vercel_ops_agent.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/version_control.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/web_qa.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/agents/templates/web_ui.json +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/__main__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/agent_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/agents.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/aggregate.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/cleanup.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/cleanup_orphaned_agents.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/configure.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/configure_tui.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/doctor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/info.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp_command_router.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp_config_commands.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp_install_commands.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp_pipx_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp_server_commands.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/mcp_tool_commands.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/memory.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/monitor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/run.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/socketio_monitor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/commands/tickets.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/agent_manager_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/agents_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/base_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/config_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/configure_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/mcp_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/memory_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/monitor_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/run_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/parsers/tickets_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/shared/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/shared/argument_patterns.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/shared/base_command.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/shared/error_handling.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/shared/output_formatters.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/startup_logging.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/ticket_cli.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli/utils.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/cli_module/migration_example.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/config/agent_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/config/experimental_features.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/config/paths.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/constants.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/agent_registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/cache.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/claude_runner.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/config_constants.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/constants.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/exceptions.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/framework_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/hook_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/hook_performance_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/interactive_session.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/lazy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/log_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/logging_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/oneshot_session.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/optimized_startup.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/output_style_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/shared/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/shared/config_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/shared/path_resolver.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/shared/singleton_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/socketio_pool.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/types.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/typing_utils.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/unified_agent_registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/unified_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/core/unified_paths.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/index.html +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/agent-inference.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/event-processor.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/event-viewer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/export-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/hud-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/module-viewer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/session-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/socket-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/components/working-directory.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/dashboard.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/built/socket-client.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/css/connection-status.css +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/event-processor.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/export-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/session-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/components/working-directory.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/dashboard.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/dist/socket-client.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/agent-hierarchy.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/build-tracker.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/connection-debug.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/connection-manager.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/static/js/extension-error-handler.js +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/templates/index.html +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/connection_pool.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/services/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/services/duplicate_detector.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/services/state_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/services/subagent_processor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/init.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/models/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/models/agent_definition.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/models/agent_session.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/mcp_server.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/mcp_wrapper.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/mpm_doctor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/socketio_daemon_hardened.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/socketio_server_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agent_capabilities_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/agent_builder.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_config_provider.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_format_converter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_operation_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_record_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_state_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_template_builder.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_version_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/base_agent_locator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/config/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/config/deployment_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/deployment_results_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/deployment_wrapper.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/facade/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/interface_adapter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/multi_source_deployment_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/processors/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/results/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/single_agent_deployer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/strategies/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/validation/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/validation/template_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/deployment/validation/validation_result.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/management/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/content_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/memory_categorization_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/memory_file_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/memory_format_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/memory_limits_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/memory/template_generator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/async_session_logger.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/claude_session_logger.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/agent_cleanup_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/agent_dependency_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/agent_listing_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/agent_output_formatter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/agent_validation_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/dashboard_launcher.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/memory_crud_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/memory_output_formatter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/session_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/socketio_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/cli/startup_checker.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/command_deployment_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/command_handler_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/communication/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/cache_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/interfaces/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/interfaces/agent.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/interfaces/communication.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/interfaces/infrastructure.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/interfaces/service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/interfaces.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/memory_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/path_resolver.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/service_container.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/core/service_interfaces.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/agent_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/base_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/claude_desktop_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/common_issues_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/configuration_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/filesystem_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/installation_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/instructions_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/mcp_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/monitor_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/checks/startup_log_check.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/diagnostic_runner.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/doctor_reporter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/diagnostics/models.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/event_aggregator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/event_bus/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/event_bus/config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/event_bus/event_bus.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/event_bus/relay.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/consumers/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/consumers/dead_letter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/consumers/logging.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/consumers/metrics.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/consumers/socketio.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/core.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/interfaces.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/producers/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/producers/hook.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/events/producers/system.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/exceptions.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/hook_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/context_preservation.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/daemon_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/logging.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/aggregator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/legacy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/network.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/process.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/resources.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring/service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/auto_configure.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/config/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/config/configuration.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/process_pool.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/main.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/registry/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/server/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/ticket_tools.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/builder.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/optimizer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory/router.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/memory_hook_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/monitor_build_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/port_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/analyzer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/analyzer_refactored.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/analyzer_v2.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/architecture_analyzer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/dependency_analyzer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/language_analyzer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/metrics_collector.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/project/registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/recovery_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/response_tracker.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/runner_configuration_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/session_management_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/shared/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/shared/async_service_base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/shared/config_service_base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/shared/lifecycle_service_base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/shared/manager_base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/shared/service_factory.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/client_proxy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/event_normalizer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/hook.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/migration_utils.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/server/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/server/broadcaster.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio/server/eventbus_integration.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio_client_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/socketio_server.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/subprocess_launcher_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/system_instructions_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_services/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_services/crud_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_services/formatter_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_services/search_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_services/validation_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/ticket_services/workflow_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/utility_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_control/version_parser.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/services/version_service.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/storage/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/storage/state_storage.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/ticket_wrapper.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/console.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/dependency_cache.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/dependency_manager.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/dependency_strategies.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/environment_context.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/file_utils.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/robust_installer.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/session_logging.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/utils/subprocess_utils.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/validation/agent_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm.egg-info/SOURCES.txt +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm.egg-info/requires.txt +0 -0
- {claude_mpm-4.1.6 → claude_mpm-4.1.7}/src/claude_mpm.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
304
|
claude_mpm-4.1.7/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.1.7
|
|
@@ -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.7"
|
|
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.7"
|
|
248
248
|
version_files = [
|
|
249
249
|
"VERSION",
|
|
250
250
|
"src/claude_mpm/VERSION",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.1.7
|
|
@@ -8,30 +8,72 @@ You are the Agent Manager, responsible for creating, customizing, deploying, and
|
|
|
8
8
|
|
|
9
9
|
## Agent Hierarchy Understanding
|
|
10
10
|
|
|
11
|
-
You operate within a three-
|
|
11
|
+
You operate within a three-source agent hierarchy with VERSION-BASED precedence:
|
|
12
12
|
|
|
13
|
-
1. **Project Level** (`.claude/agents/`) -
|
|
14
|
-
- Project-specific agents
|
|
15
|
-
- Deployed per-project for
|
|
13
|
+
1. **Project Level** (`.claude/agents/`) - Project-specific deployment
|
|
14
|
+
- Project-specific agents for custom workflows
|
|
15
|
+
- Deployed per-project for team collaboration
|
|
16
16
|
- Persists with project repository
|
|
17
17
|
|
|
18
|
-
2. **User Level** (`~/.claude/agents/`) -
|
|
18
|
+
2. **User Level** (`~/.claude/agents/`) - User's personal deployment
|
|
19
19
|
- User's personal agent collection
|
|
20
20
|
- Shared across all projects for that user
|
|
21
|
-
-
|
|
21
|
+
- Personal customizations and preferences
|
|
22
22
|
|
|
23
|
-
3. **System Level** (
|
|
23
|
+
3. **System Level** (`/src/claude_mpm/agents/templates/`) - Framework built-in
|
|
24
24
|
- Default agents shipped with claude-mpm
|
|
25
25
|
- Available to all users and projects
|
|
26
|
-
-
|
|
26
|
+
- Base templates and standard agents
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
**IMPORTANT: VERSION-BASED PRECEDENCE**
|
|
29
|
+
- The agent with the HIGHEST semantic version wins, regardless of source
|
|
30
|
+
- Example: Project agent v1.0.0 < User agent v2.0.0 < System agent v3.0.0
|
|
31
|
+
- Development agents use version 999.x.x to always override production versions
|
|
32
|
+
- MultiSourceAgentDeploymentService handles version resolution
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
## PM Instructions Customization System
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
You manage a comprehensive PM (Project Manager) customization system:
|
|
37
|
+
|
|
38
|
+
### Instruction Loading Order (Highest to Lowest Priority)
|
|
39
|
+
|
|
40
|
+
1. **Project Instructions** (`./.claude-mpm/`) - Project-specific PM behavior
|
|
41
|
+
- `INSTRUCTIONS.md` - Main PM instructions
|
|
42
|
+
- `WORKFLOW.md` - Custom workflow patterns
|
|
43
|
+
- `MEMORY.md` - Memory system configuration
|
|
44
|
+
- `OUTPUT_STYLE.md` - Response formatting preferences
|
|
45
|
+
- Highest priority, overrides all others
|
|
46
|
+
|
|
47
|
+
2. **User Instructions** (`~/.claude-mpm/`) - User's personal PM settings
|
|
48
|
+
- Same files as project level
|
|
49
|
+
- Applied across all user's projects
|
|
50
|
+
- Overrides system defaults
|
|
51
|
+
|
|
52
|
+
3. **System Instructions** (Framework built-in) - Default PM behavior
|
|
53
|
+
- `BASE_PM.md` - Core PM framework
|
|
54
|
+
- `INSTRUCTIONS.md` - Default instructions
|
|
55
|
+
- Base behavior for all deployments
|
|
56
|
+
|
|
57
|
+
### Configuration System
|
|
58
|
+
|
|
59
|
+
Additionally manage configuration files:
|
|
60
|
+
|
|
61
|
+
1. **Project Config** (`./.claude-mpm/configuration.yaml`)
|
|
62
|
+
2. **User Config** (`~/.claude-mpm/configuration.yaml`)
|
|
63
|
+
3. **System Config** (`/etc/claude-mpm/configuration.yaml`)
|
|
64
|
+
|
|
65
|
+
Features configured:
|
|
66
|
+
- Response logging settings
|
|
67
|
+
- Agent exclusion lists
|
|
68
|
+
- Memory system parameters
|
|
69
|
+
- SocketIO server configuration
|
|
70
|
+
- Performance tuning
|
|
71
|
+
|
|
72
|
+
**IMPORTANT NOTES**:
|
|
73
|
+
- CLAUDE.md files are NOT loaded by MPM (handled by Claude Code directly)
|
|
74
|
+
- SystemInstructionsDeployer auto-deploys PM instructions on first run
|
|
75
|
+
- FrameworkLoader orchestrates all customization loading
|
|
76
|
+
- Template variable {{CAPABILITIES}} is dynamically replaced with agent list
|
|
35
77
|
|
|
36
78
|
## Core Responsibilities
|
|
37
79
|
|
|
@@ -61,10 +103,13 @@ You also manage PM (Project Manager) instruction files:
|
|
|
61
103
|
- Clean deployment of obsolete agents
|
|
62
104
|
|
|
63
105
|
### 5. PM Instruction Management
|
|
64
|
-
- Create and edit
|
|
65
|
-
- Customize delegation patterns
|
|
66
|
-
-
|
|
67
|
-
-
|
|
106
|
+
- Create and edit INSTRUCTIONS.md files at project/user levels
|
|
107
|
+
- Customize WORKFLOW.md for delegation patterns
|
|
108
|
+
- Configure MEMORY.md for memory system behavior
|
|
109
|
+
- Manage OUTPUT_STYLE.md for response formatting
|
|
110
|
+
- Edit configuration.yaml for system settings
|
|
111
|
+
- Deploy instruction templates with SystemInstructionsDeployer
|
|
112
|
+
- Note: CLAUDE.md is for Claude Code, not MPM
|
|
68
113
|
|
|
69
114
|
### 6. Discovery & Listing
|
|
70
115
|
- List all available agents across tiers
|
|
@@ -111,11 +156,17 @@ You also manage PM (Project Manager) instruction files:
|
|
|
111
156
|
|
|
112
157
|
### `customize-pm` - Edit PM Instructions
|
|
113
158
|
```python
|
|
114
|
-
# Edit
|
|
115
|
-
#
|
|
116
|
-
#
|
|
159
|
+
# Edit instruction files at user or project level:
|
|
160
|
+
# - INSTRUCTIONS.md (main PM behavior)
|
|
161
|
+
# - WORKFLOW.md (delegation patterns)
|
|
162
|
+
# - MEMORY.md (memory configuration)
|
|
163
|
+
# - OUTPUT_STYLE.md (response formatting)
|
|
164
|
+
# Edit configuration.yaml for system settings
|
|
165
|
+
# Provide templates if creating new
|
|
166
|
+
# Validate file structure
|
|
117
167
|
# Show diff of changes
|
|
118
168
|
# Backup before modification
|
|
169
|
+
# Note: CLAUDE.md is separate (for Claude Code)
|
|
119
170
|
```
|
|
120
171
|
|
|
121
172
|
### `show` - Display Agent Details
|
|
@@ -149,7 +200,7 @@ When creating agents, use this structure:
|
|
|
149
200
|
"tool_choice": "auto|required|any",
|
|
150
201
|
"metadata": {
|
|
151
202
|
"description": "Agent purpose and capabilities",
|
|
152
|
-
"version": "1.0.0",
|
|
203
|
+
"version": "1.0.0", // Semantic version - determines precedence!
|
|
153
204
|
"capabilities": ["capability1", "capability2"],
|
|
154
205
|
"tags": ["tag1", "tag2"],
|
|
155
206
|
"author": "Creator Name",
|
|
@@ -158,6 +209,12 @@ When creating agents, use this structure:
|
|
|
158
209
|
}
|
|
159
210
|
```
|
|
160
211
|
|
|
212
|
+
### Version Guidelines
|
|
213
|
+
- Production versions: Use standard semantic versioning (1.0.0, 1.1.0, 2.0.0)
|
|
214
|
+
- Development versions: Use 999.x.x to override all other versions
|
|
215
|
+
- Version determines precedence across ALL sources (project/user/system)
|
|
216
|
+
- Higher version always wins regardless of deployment location
|
|
217
|
+
|
|
161
218
|
## Validation Rules
|
|
162
219
|
|
|
163
220
|
### Agent ID Validation
|
|
@@ -218,9 +275,12 @@ When creating agents, use this structure:
|
|
|
218
275
|
|
|
219
276
|
### PM Customization
|
|
220
277
|
- Keep instructions focused and clear
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
-
|
|
278
|
+
- Use INSTRUCTIONS.md for main behavior (not CLAUDE.md)
|
|
279
|
+
- Document workflows in WORKFLOW.md
|
|
280
|
+
- Configure memory in MEMORY.md
|
|
281
|
+
- Set output style in OUTPUT_STYLE.md
|
|
282
|
+
- Test delegation patterns thoroughly
|
|
283
|
+
- Version control all .claude-mpm/ files
|
|
224
284
|
|
|
225
285
|
### Deployment Strategy
|
|
226
286
|
- Start with user level for testing
|
|
@@ -237,16 +297,31 @@ When creating agents, use this structure:
|
|
|
237
297
|
- Integrate with discovery service
|
|
238
298
|
|
|
239
299
|
### With MultiSourceAgentDeploymentService
|
|
240
|
-
- Handle multi-
|
|
241
|
-
- Manage
|
|
242
|
-
- Coordinate cross-
|
|
243
|
-
- Track deployment sources
|
|
300
|
+
- Handle multi-source deployments
|
|
301
|
+
- Manage VERSION-BASED precedence (highest version wins)
|
|
302
|
+
- Coordinate cross-source operations
|
|
303
|
+
- Track deployment sources and versions
|
|
304
|
+
- Resolve agent conflicts by semantic version
|
|
305
|
+
- Support development versions (999.x.x)
|
|
244
306
|
|
|
245
307
|
### With Agent Discovery
|
|
246
|
-
- Register new agents
|
|
247
|
-
- Update agent registry
|
|
248
|
-
- Refresh discovery cache
|
|
249
|
-
- Notify of
|
|
308
|
+
- Register new agents with version tracking
|
|
309
|
+
- Update agent registry with version resolution
|
|
310
|
+
- Refresh discovery cache after deployments
|
|
311
|
+
- Notify of version conflicts or overrides
|
|
312
|
+
- Display effective agent (highest version)
|
|
313
|
+
|
|
314
|
+
### With SystemInstructionsDeployer
|
|
315
|
+
- Auto-deploy PM instructions on first run
|
|
316
|
+
- Create .claude-mpm directories as needed
|
|
317
|
+
- Deploy instruction templates
|
|
318
|
+
- Handle user/project customization
|
|
319
|
+
|
|
320
|
+
### With FrameworkLoader
|
|
321
|
+
- Load PM instructions in priority order
|
|
322
|
+
- Process {{CAPABILITIES}} template variable
|
|
323
|
+
- Merge instruction files appropriately
|
|
324
|
+
- Handle configuration loading
|
|
250
325
|
|
|
251
326
|
## Memory Considerations
|
|
252
327
|
|
|
@@ -285,8 +360,10 @@ Brief description of action taken
|
|
|
285
360
|
### Agent Information (if relevant)
|
|
286
361
|
- ID: agent-id
|
|
287
362
|
- Location: [P/U/S] /path/to/agent
|
|
288
|
-
- Version: 1.0.0
|
|
289
|
-
-
|
|
363
|
+
- Version: 1.0.0 (determines precedence)
|
|
364
|
+
- Effective Source: [Project/User/System] based on version
|
|
365
|
+
- Overridden Versions: [list lower versions if any]
|
|
366
|
+
- Development Mode: Yes/No (if version 999.x.x)
|
|
290
367
|
```
|
|
291
368
|
|
|
292
369
|
## Security Considerations
|
|
@@ -10,6 +10,8 @@ WHY configuration management:
|
|
|
10
10
|
- Supports multiple deployment scenarios (local, PyPI, Docker, etc.)
|
|
11
11
|
- Provides environment-specific defaults
|
|
12
12
|
- Allows runtime configuration overrides
|
|
13
|
+
|
|
14
|
+
CRITICAL: Ping/pong settings MUST match between client and server to prevent disconnections!
|
|
13
15
|
"""
|
|
14
16
|
|
|
15
17
|
import os
|
|
@@ -19,6 +21,33 @@ from typing import Any, Dict, List, Optional
|
|
|
19
21
|
# Import constants for default values
|
|
20
22
|
from claude_mpm.core.constants import NetworkConfig, RetryConfig, SystemLimits
|
|
21
23
|
|
|
24
|
+
# Connection stability settings - MUST be consistent between client and server
|
|
25
|
+
CONNECTION_CONFIG = {
|
|
26
|
+
# Ping/pong intervals (milliseconds for client, seconds for server)
|
|
27
|
+
'ping_interval_ms': 45000, # 45 seconds (for client JavaScript)
|
|
28
|
+
'ping_interval': 45, # 45 seconds (for server Python)
|
|
29
|
+
'ping_timeout_ms': 20000, # 20 seconds (for client JavaScript)
|
|
30
|
+
'ping_timeout': 20, # 20 seconds (for server Python)
|
|
31
|
+
|
|
32
|
+
# Connection management
|
|
33
|
+
'stale_timeout': 180, # 3 minutes before considering connection stale
|
|
34
|
+
'health_check_interval': 30, # Health check every 30 seconds
|
|
35
|
+
'event_ttl': 300, # Keep events for 5 minutes for replay
|
|
36
|
+
|
|
37
|
+
# Client reconnection settings
|
|
38
|
+
'reconnection_attempts': 5, # Number of reconnection attempts
|
|
39
|
+
'reconnection_delay': 1000, # Initial delay in ms
|
|
40
|
+
'reconnection_delay_max': 5000, # Maximum delay in ms
|
|
41
|
+
|
|
42
|
+
# Feature flags
|
|
43
|
+
'enable_extra_heartbeat': False, # Disable redundant heartbeats
|
|
44
|
+
'enable_health_monitoring': True, # Enable connection health monitoring
|
|
45
|
+
|
|
46
|
+
# Buffer settings
|
|
47
|
+
'max_events_buffer': 1000, # Maximum events to buffer per client
|
|
48
|
+
'max_http_buffer_size': 1e8, # 100MB max buffer for large payloads
|
|
49
|
+
}
|
|
50
|
+
|
|
22
51
|
|
|
23
52
|
@dataclass
|
|
24
53
|
class SocketIOConfig:
|
|
@@ -29,11 +58,11 @@ class SocketIOConfig:
|
|
|
29
58
|
port: int = NetworkConfig.DEFAULT_DASHBOARD_PORT
|
|
30
59
|
server_id: Optional[str] = None
|
|
31
60
|
|
|
32
|
-
# Connection settings
|
|
61
|
+
# Connection settings - Use centralized config for consistency
|
|
33
62
|
cors_allowed_origins: str = "*" # Configure properly for production
|
|
34
|
-
ping_timeout: int =
|
|
35
|
-
ping_interval: int =
|
|
36
|
-
max_http_buffer_size: int =
|
|
63
|
+
ping_timeout: int = CONNECTION_CONFIG['ping_timeout'] # 20 seconds
|
|
64
|
+
ping_interval: int = CONNECTION_CONFIG['ping_interval'] # 45 seconds
|
|
65
|
+
max_http_buffer_size: int = int(CONNECTION_CONFIG['max_http_buffer_size'])
|
|
37
66
|
|
|
38
67
|
# Compatibility settings
|
|
39
68
|
min_client_version: str = "0.7.0"
|
|
@@ -38,10 +38,10 @@ class SocketClient {
|
|
|
38
38
|
this.eventQueue = [];
|
|
39
39
|
this.maxQueueSize = 100;
|
|
40
40
|
|
|
41
|
-
// Retry configuration
|
|
41
|
+
// Retry configuration - Match server settings
|
|
42
42
|
this.retryAttempts = 0;
|
|
43
|
-
this.maxRetryAttempts = 3
|
|
44
|
-
this.retryDelays = [1000, 2000, 4000]; // Exponential backoff
|
|
43
|
+
this.maxRetryAttempts = 5; // Increased from 3 to 5 for better stability
|
|
44
|
+
this.retryDelays = [1000, 2000, 3000, 4000, 5000]; // Exponential backoff with 5 attempts
|
|
45
45
|
this.pendingEmissions = new Map(); // Track pending emissions for retry
|
|
46
46
|
|
|
47
47
|
// Health monitoring
|
|
@@ -98,12 +98,12 @@ class SocketClient {
|
|
|
98
98
|
reconnection: true,
|
|
99
99
|
reconnectionDelay: 1000,
|
|
100
100
|
reconnectionDelayMax: 5000,
|
|
101
|
-
reconnectionAttempts:
|
|
102
|
-
timeout: 20000, //
|
|
101
|
+
reconnectionAttempts: 5, // Try 5 times then stop (was Infinity which can cause issues)
|
|
102
|
+
timeout: 20000, // Connection timeout
|
|
103
103
|
forceNew: true,
|
|
104
104
|
transports: ['websocket', 'polling'],
|
|
105
|
-
pingInterval:
|
|
106
|
-
pingTimeout:
|
|
105
|
+
pingInterval: 45000, // CRITICAL: Must match server's 45 seconds
|
|
106
|
+
pingTimeout: 20000 // CRITICAL: Must match server's 20 seconds
|
|
107
107
|
});
|
|
108
108
|
|
|
109
109
|
this.setupSocketHandlers();
|
|
@@ -143,17 +143,22 @@ class SocketClient {
|
|
|
143
143
|
});
|
|
144
144
|
|
|
145
145
|
this.socket.on('disconnect', (reason) => {
|
|
146
|
-
|
|
146
|
+
// Enhanced logging for debugging disconnection issues
|
|
147
|
+
const disconnectInfo = {
|
|
148
|
+
reason: reason,
|
|
149
|
+
timestamp: new Date().toISOString(),
|
|
150
|
+
wasConnected: this.isConnected,
|
|
151
|
+
uptimeSeconds: this.lastConnectTime ? ((Date.now() - this.lastConnectTime) / 1000).toFixed(1) : 0,
|
|
152
|
+
lastPing: this.lastPingTime ? ((Date.now() - this.lastPingTime) / 1000).toFixed(1) + 's ago' : 'never',
|
|
153
|
+
lastPong: this.lastPongTime ? ((Date.now() - this.lastPongTime) / 1000).toFixed(1) + 's ago' : 'never'
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
console.log('Disconnected from server:', disconnectInfo);
|
|
157
|
+
|
|
147
158
|
this.isConnected = false;
|
|
148
159
|
this.isConnecting = false;
|
|
149
160
|
this.disconnectTime = Date.now();
|
|
150
161
|
|
|
151
|
-
// Calculate uptime
|
|
152
|
-
if (this.lastConnectTime) {
|
|
153
|
-
const uptime = (Date.now() - this.lastConnectTime) / 1000;
|
|
154
|
-
console.log(`Connection uptime was ${uptime.toFixed(1)}s`);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
162
|
this.notifyConnectionStatus(`Disconnected: ${reason}`, 'disconnected');
|
|
158
163
|
|
|
159
164
|
// Emit disconnect callback
|
|
@@ -161,8 +166,21 @@ class SocketClient {
|
|
|
161
166
|
callback(reason)
|
|
162
167
|
);
|
|
163
168
|
|
|
164
|
-
//
|
|
165
|
-
|
|
169
|
+
// Detailed reason analysis for auto-reconnect decision
|
|
170
|
+
const reconnectReasons = [
|
|
171
|
+
'transport close', // Network issue
|
|
172
|
+
'ping timeout', // Server not responding
|
|
173
|
+
'transport error', // Connection error
|
|
174
|
+
'io server disconnect', // Server initiated disconnect (might be restart)
|
|
175
|
+
];
|
|
176
|
+
|
|
177
|
+
if (reconnectReasons.includes(reason)) {
|
|
178
|
+
console.log(`Auto-reconnect triggered for reason: ${reason}`);
|
|
179
|
+
this.scheduleReconnect();
|
|
180
|
+
} else if (reason === 'io client disconnect') {
|
|
181
|
+
console.log('Client-initiated disconnect, not auto-reconnecting');
|
|
182
|
+
} else {
|
|
183
|
+
console.log(`Unknown disconnect reason: ${reason}, attempting reconnect anyway`);
|
|
166
184
|
this.scheduleReconnect();
|
|
167
185
|
}
|
|
168
186
|
});
|
|
@@ -222,6 +240,12 @@ class SocketClient {
|
|
|
222
240
|
});
|
|
223
241
|
});
|
|
224
242
|
|
|
243
|
+
// Track pong responses from server
|
|
244
|
+
this.socket.on('pong', (data) => {
|
|
245
|
+
this.lastPongTime = Date.now();
|
|
246
|
+
// console.log('Received pong from server');
|
|
247
|
+
});
|
|
248
|
+
|
|
225
249
|
// Session and event handlers (legacy/fallback)
|
|
226
250
|
this.socket.on('session.started', (data) => {
|
|
227
251
|
this.addEvent({ type: 'session', subtype: 'started', timestamp: new Date().toISOString(), data });
|
|
@@ -170,11 +170,28 @@ class ConnectionManagerService:
|
|
|
170
170
|
# Publish to EventBus with topic format: hook.{event}
|
|
171
171
|
topic = f"hook.{event}"
|
|
172
172
|
self.event_bus.publish(topic, claude_event_data)
|
|
173
|
+
|
|
174
|
+
# Enhanced verification logging
|
|
173
175
|
if DEBUG:
|
|
174
176
|
print(f"✅ Published to EventBus: {topic}", file=sys.stderr)
|
|
177
|
+
# Get EventBus stats to verify publication
|
|
178
|
+
if hasattr(self.event_bus, "get_stats"):
|
|
179
|
+
stats = self.event_bus.get_stats()
|
|
180
|
+
print(
|
|
181
|
+
f"📊 EventBus stats after publish: {stats}", file=sys.stderr
|
|
182
|
+
)
|
|
183
|
+
# Log the number of data keys being published
|
|
184
|
+
if isinstance(claude_event_data, dict):
|
|
185
|
+
print(
|
|
186
|
+
f"📦 Published data keys: {list(claude_event_data.keys())}",
|
|
187
|
+
file=sys.stderr,
|
|
188
|
+
)
|
|
175
189
|
except Exception as e:
|
|
176
190
|
if DEBUG:
|
|
177
191
|
print(f"⚠️ Failed to publish to EventBus: {e}", file=sys.stderr)
|
|
192
|
+
import traceback
|
|
193
|
+
|
|
194
|
+
traceback.print_exc(file=sys.stderr)
|
|
178
195
|
|
|
179
196
|
# Warn if neither method is available
|
|
180
197
|
if not self.connection_pool and not self.event_bus and DEBUG:
|
|
@@ -59,9 +59,30 @@ class DirectSocketIORelay:
|
|
|
59
59
|
|
|
60
60
|
# Add debug logging for verification
|
|
61
61
|
logger.info("[DirectRelay] Subscribed to hook.* events on EventBus")
|
|
62
|
+
|
|
63
|
+
# Check and log broadcaster availability
|
|
64
|
+
broadcaster_available = (
|
|
65
|
+
self.server
|
|
66
|
+
and hasattr(self.server, "broadcaster")
|
|
67
|
+
and self.server.broadcaster is not None
|
|
68
|
+
)
|
|
62
69
|
logger.info(
|
|
63
|
-
f"[DirectRelay] Server broadcaster available: {
|
|
70
|
+
f"[DirectRelay] Server broadcaster available: {broadcaster_available}"
|
|
64
71
|
)
|
|
72
|
+
if not broadcaster_available:
|
|
73
|
+
if not self.server:
|
|
74
|
+
logger.warning(
|
|
75
|
+
"[DirectRelay] No server instance provided - events will not be relayed!"
|
|
76
|
+
)
|
|
77
|
+
elif not hasattr(self.server, "broadcaster"):
|
|
78
|
+
logger.warning(
|
|
79
|
+
"[DirectRelay] Server has no broadcaster attribute - events will not be relayed!"
|
|
80
|
+
)
|
|
81
|
+
else:
|
|
82
|
+
logger.warning(
|
|
83
|
+
"[DirectRelay] Server broadcaster is None - events will not be relayed!"
|
|
84
|
+
)
|
|
85
|
+
|
|
65
86
|
logger.info(f"[DirectRelay] EventBus instance: {self.event_bus is not None}")
|
|
66
87
|
|
|
67
88
|
# Mark as connected after successful subscription
|
|
@@ -76,9 +97,28 @@ class DirectSocketIORelay:
|
|
|
76
97
|
data: The event data
|
|
77
98
|
"""
|
|
78
99
|
try:
|
|
79
|
-
#
|
|
100
|
+
# Enhanced debug logging for troubleshooting
|
|
80
101
|
if self.debug:
|
|
81
102
|
logger.debug(f"[DirectRelay] Received event: {event_type}")
|
|
103
|
+
logger.debug(f"[DirectRelay] Event data type: {type(data).__name__}")
|
|
104
|
+
logger.debug(
|
|
105
|
+
f"[DirectRelay] Event data keys: {list(data.keys()) if isinstance(data, dict) else 'not-dict'}"
|
|
106
|
+
)
|
|
107
|
+
logger.debug(
|
|
108
|
+
f"[DirectRelay] Relay state - enabled: {self.enabled}, connected: {self.connected}"
|
|
109
|
+
)
|
|
110
|
+
logger.debug(
|
|
111
|
+
f"[DirectRelay] Server state - has_server: {self.server is not None}, has_broadcaster: {self.server and hasattr(self.server, 'broadcaster') and self.server.broadcaster is not None}"
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
# Always log reception of important events
|
|
115
|
+
if event_type in [
|
|
116
|
+
"hook.pre_tool",
|
|
117
|
+
"hook.post_tool",
|
|
118
|
+
"hook.user_prompt",
|
|
119
|
+
"hook.subagent_stop",
|
|
120
|
+
]:
|
|
121
|
+
logger.info(f"[DirectRelay] Processing important event: {event_type}")
|
|
82
122
|
|
|
83
123
|
# Only relay hook events
|
|
84
124
|
if event_type.startswith("hook."):
|
|
@@ -143,9 +183,26 @@ class DirectSocketIORelay:
|
|
|
143
183
|
f"[DirectRelay] Broadcasted hook event: {event_type}"
|
|
144
184
|
)
|
|
145
185
|
else:
|
|
186
|
+
# Enhanced logging when broadcaster is not available
|
|
146
187
|
logger.warning(
|
|
147
188
|
f"[DirectRelay] Server broadcaster not available for {event_type}"
|
|
148
189
|
)
|
|
190
|
+
if self.server:
|
|
191
|
+
logger.warning(
|
|
192
|
+
f"[DirectRelay] Server exists but broadcaster is None"
|
|
193
|
+
)
|
|
194
|
+
logger.warning(
|
|
195
|
+
f"[DirectRelay] Server type: {type(self.server).__name__}"
|
|
196
|
+
)
|
|
197
|
+
logger.warning(
|
|
198
|
+
f"[DirectRelay] Server has broadcaster attr: {hasattr(self.server, 'broadcaster')}"
|
|
199
|
+
)
|
|
200
|
+
if hasattr(self.server, "broadcaster"):
|
|
201
|
+
logger.warning(
|
|
202
|
+
f"[DirectRelay] Broadcaster value: {self.server.broadcaster}"
|
|
203
|
+
)
|
|
204
|
+
else:
|
|
205
|
+
logger.warning(f"[DirectRelay] Server is None")
|
|
149
206
|
self.stats["events_failed"] += 1
|
|
150
207
|
|
|
151
208
|
except Exception as e:
|
|
@@ -177,7 +177,7 @@ class EnhancedConnectionEventHandler(BaseEventHandler):
|
|
|
177
177
|
async def ping(sid):
|
|
178
178
|
"""Handle ping from client for health monitoring."""
|
|
179
179
|
try:
|
|
180
|
-
# Update activity in connection manager
|
|
180
|
+
# Update activity in connection manager - CRITICAL for preventing stale connections
|
|
181
181
|
if self.server.connection_manager:
|
|
182
182
|
await self.server.connection_manager.update_activity(sid, "ping")
|
|
183
183
|
|
|
@@ -293,23 +293,8 @@ class EnhancedConnectionEventHandler(BaseEventHandler):
|
|
|
293
293
|
except Exception as e:
|
|
294
294
|
self.logger.error(f"Error getting connection stats for {sid}: {e}")
|
|
295
295
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
"""Handle client heartbeat for connection monitoring."""
|
|
299
|
-
try:
|
|
300
|
-
# Update activity
|
|
301
|
-
if self.server.connection_manager:
|
|
302
|
-
await self.server.connection_manager.update_activity(sid, "event")
|
|
303
|
-
|
|
304
|
-
# Send heartbeat response
|
|
305
|
-
await sio.emit(
|
|
306
|
-
"heartbeat_response",
|
|
307
|
-
{"timestamp": datetime.now().isoformat(), "status": "alive"},
|
|
308
|
-
room=sid,
|
|
309
|
-
)
|
|
310
|
-
|
|
311
|
-
except Exception as e:
|
|
312
|
-
self.logger.error(f"Error handling heartbeat from {sid}: {e}")
|
|
296
|
+
# Heartbeat handler removed - Using Socket.IO's built-in ping/pong instead
|
|
297
|
+
# This prevents conflicting heartbeat systems that can cause disconnections
|
|
313
298
|
|
|
314
299
|
self.logger.info("Enhanced connection event handlers registered")
|
|
315
300
|
|