claude-mpm 3.9.8__tar.gz → 3.9.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {claude_mpm-3.9.8/src/claude_mpm.egg-info → claude_mpm-3.9.11}/PKG-INFO +27 -2
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/README.md +25 -1
- claude_mpm-3.9.11/VERSION +1 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/pyproject.toml +1 -1
- claude_mpm-3.9.11/src/claude_mpm/VERSION +1 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/base_agent.json +1 -1
- claude_mpm-3.9.11/src/claude_mpm/agents/templates/memory_manager.json +155 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/__init__.py +18 -3
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/__init__.py +6 -1
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/cleanup.py +21 -1
- claude_mpm-3.9.11/src/claude_mpm/cli/commands/mcp.py +967 -0
- claude_mpm-3.9.11/src/claude_mpm/cli/commands/run_guarded.py +511 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/parser.py +156 -3
- claude_mpm-3.9.11/src/claude_mpm/config/experimental_features.py +219 -0
- claude_mpm-3.9.11/src/claude_mpm/config/memory_guardian_config.py +325 -0
- claude_mpm-3.9.11/src/claude_mpm/config/memory_guardian_yaml.py +335 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/constants.py +14 -0
- claude_mpm-3.9.11/src/claude_mpm/core/memory_aware_runner.py +353 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +76 -19
- claude_mpm-3.9.11/src/claude_mpm/models/state_models.py +433 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/communication/__init__.py +2 -2
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/communication/socketio.py +18 -16
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/infrastructure/__init__.py +4 -1
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/context_preservation.py +537 -0
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/graceful_degradation.py +616 -0
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/health_monitor.py +775 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/infrastructure/logging.py +3 -3
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/memory_dashboard.py +479 -0
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/memory_guardian.py +944 -0
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/restart_protection.py +642 -0
- claude_mpm-3.9.11/src/claude_mpm/services/infrastructure/state_manager.py +774 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/__init__.py +39 -23
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/core/__init__.py +2 -2
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/core/interfaces.py +10 -9
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/main.py +356 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/manager.py +334 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/registry/__init__.py +12 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/registry/service_registry.py +393 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/registry/tool_registry.py +477 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/server/__init__.py +15 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/server/mcp_gateway.py +431 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/server/stdio_handler.py +373 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/tools/__init__.py +22 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/tools/base_adapter.py +496 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/tools/document_summarizer.py +729 -0
- claude_mpm-3.9.11/src/claude_mpm/services/mcp_gateway/tools/hello_world.py +551 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/ticket_manager.py +8 -8
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/ticket_manager_di.py +5 -5
- claude_mpm-3.9.11/src/claude_mpm/storage/__init__.py +9 -0
- claude_mpm-3.9.11/src/claude_mpm/storage/state_storage.py +556 -0
- claude_mpm-3.9.11/src/claude_mpm/utils/file_utils.py +293 -0
- claude_mpm-3.9.11/src/claude_mpm/utils/platform_memory.py +524 -0
- claude_mpm-3.9.11/src/claude_mpm/utils/subprocess_utils.py +305 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11/src/claude_mpm.egg-info}/PKG-INFO +27 -2
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm.egg-info/SOURCES.txt +30 -6
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm.egg-info/requires.txt +1 -0
- claude_mpm-3.9.8/VERSION +0 -1
- claude_mpm-3.9.8/src/claude_mpm/VERSION +0 -1
- claude_mpm-3.9.8/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -36
- claude_mpm-3.9.8/src/claude_mpm/agents/templates/.claude-mpm/memories/engineer_agent.md +0 -39
- claude_mpm-3.9.8/src/claude_mpm/agents/templates/.claude-mpm/memories/qa_agent.md +0 -38
- claude_mpm-3.9.8/src/claude_mpm/agents/templates/.claude-mpm/memories/research_agent.md +0 -39
- claude_mpm-3.9.8/src/claude_mpm/agents/templates/.claude-mpm/memories/version_control_agent.md +0 -38
- claude_mpm-3.9.8/src/claude_mpm/services/mcp_gateway/registry/__init__.py +0 -9
- claude_mpm-3.9.8/src/claude_mpm/services/mcp_gateway/server/__init__.py +0 -9
- claude_mpm-3.9.8/src/claude_mpm/services/mcp_gateway/tools/__init__.py +0 -9
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/CLAUDE.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/LICENSE +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/MANIFEST.in +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/claude-mpm +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/requirements.txt +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/scripts/run_mpm.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/scripts/ticket +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/setup.cfg +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/setup.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/__main__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/BASE_PM.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/MEMORY.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/WORKFLOW.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/agent_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/async_agent_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8/src/claude_mpm/agents/templates → claude_mpm-3.9.11/src/claude_mpm/agents/templates/backup}/research_memory_efficient.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/code_analyzer.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/documentation.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/engineer.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/ops.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/qa.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/research.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/security.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/ticketing.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/version_control.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/web_qa.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/agents/templates/web_ui.json +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/__main__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/agents.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/aggregate.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/info.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/memory.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/monitor.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/run.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/commands/tickets.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/ticket_cli.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli/utils.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/cli_module/migration_example.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/config/agent_config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/config/paths.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/config/socketio_config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/agent_registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/cache.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/claude_runner.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/config_paths.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/constants.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/exceptions.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/framework_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/hook_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/interactive_session.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/lazy.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/logging_config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/oneshot_session.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/optimized_startup.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/socketio_pool.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/types.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/core/typing_utils.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/index.html +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/templates/index.html +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/deployment_paths.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/init.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/models/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/models/agent_definition.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/models/agent_session.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/scripts/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agent/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agent/deployment.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agent/management.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agent/registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/management/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/registry/agent_registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/async_session_logger.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/claude_session_logger.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/communication/websocket.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/core/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/core/base.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/core/interfaces.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/event_aggregator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/exceptions.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/health_monitor.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/hook_service.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/config/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/config/config_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/config/config_schema.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/config/configuration.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/core/base.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/mcp_gateway/core/exceptions.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/builder.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/optimizer.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/memory/router.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/optimized_hook_service.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/project/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/project/analyzer.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/project/registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/project_analyzer.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/project_registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/recovery_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/response_tracker.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio_client_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/socketio_server.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/standalone_socketio_server.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/ticketing_service_original.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/services/version_control/version_parser.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/ticket_wrapper.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/console.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/dependency_cache.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/dependency_manager.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/dependency_strategies.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/environment_context.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/paths.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/robust_installer.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/utils/session_logging.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/validation/agent_validator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-3.9.8 → claude_mpm-3.9.11}/src/claude_mpm.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-mpm
|
|
3
|
-
Version: 3.9.
|
|
3
|
+
Version: 3.9.11
|
|
4
4
|
Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
|
|
5
5
|
Home-page: https://github.com/bobmatnyc/claude-mpm
|
|
6
6
|
Author: Claude MPM Team
|
|
@@ -38,6 +38,7 @@ Requires-Dist: python-frontmatter>=1.0.0
|
|
|
38
38
|
Requires-Dist: mistune>=3.0.0
|
|
39
39
|
Requires-Dist: aiofiles>=23.0.0
|
|
40
40
|
Requires-Dist: mcp>=0.1.0
|
|
41
|
+
Requires-Dist: ijson>=3.2.0
|
|
41
42
|
Provides-Extra: dev
|
|
42
43
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
43
44
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
@@ -110,6 +111,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
|
|
|
110
111
|
- 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
|
|
111
112
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
112
113
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
114
|
+
- 🛡️ **Memory Guardian (Experimental)**: Automatic memory monitoring and intelligent restarts to prevent crashes
|
|
113
115
|
- 📁 **Multi-Project Support**: Per-session working directories
|
|
114
116
|
- 🔍 **Git Integration**: View diffs and track changes across projects
|
|
115
117
|
- 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
|
|
@@ -130,6 +132,9 @@ claude-mpm
|
|
|
130
132
|
|
|
131
133
|
# Start with monitoring dashboard
|
|
132
134
|
claude-mpm run --monitor
|
|
135
|
+
|
|
136
|
+
# Start with memory protection (prevents crashes from large conversations)
|
|
137
|
+
claude-mpm run-guarded
|
|
133
138
|
```
|
|
134
139
|
|
|
135
140
|
See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
|
|
@@ -149,10 +154,25 @@ The PM agent automatically delegates work to specialized agents including Resear
|
|
|
149
154
|
### Agent Memory System
|
|
150
155
|
Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
|
|
151
156
|
|
|
157
|
+
### Memory Guardian System (Experimental)
|
|
158
|
+
**⚠️ Beta Feature** - Prevents memory-related crashes through intelligent monitoring and automatic restarts with state preservation.
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Start with memory protection (recommended for long sessions)
|
|
162
|
+
claude-mpm run-guarded --accept-experimental
|
|
163
|
+
|
|
164
|
+
# Custom memory threshold for your system
|
|
165
|
+
claude-mpm run-guarded --memory-threshold 16000 --accept-experimental # 16GB
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Why Memory Guardian?** Large conversation histories can consume 2GB+ of memory, causing system instability. The Memory Guardian monitors memory usage and performs controlled restarts while preserving your conversation context and work progress.
|
|
169
|
+
|
|
170
|
+
**Note:** This is an experimental feature in beta. Use `--accept-experimental` to suppress warnings.
|
|
171
|
+
|
|
152
172
|
### Real-Time Monitoring
|
|
153
173
|
The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
|
|
154
174
|
|
|
155
|
-
See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
175
|
+
See [docs/MEMORY.md](docs/MEMORY.md), [docs/USER_GUIDE_MEMORY_GUARDIAN.md](docs/USER_GUIDE_MEMORY_GUARDIAN.md), and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
156
176
|
|
|
157
177
|
|
|
158
178
|
## Documentation
|
|
@@ -162,12 +182,15 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
|
|
|
162
182
|
- **[Installation Guide](docs/user/installation.md)** - Complete installation options
|
|
163
183
|
- **[User Guide](docs/user/)** - Detailed usage documentation
|
|
164
184
|
- **[Memory System](docs/MEMORY.md)** - Agent memory documentation
|
|
185
|
+
- **[Memory Guardian Guide](docs/USER_GUIDE_MEMORY_GUARDIAN.md)** - Comprehensive memory protection documentation
|
|
165
186
|
- **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
|
|
166
187
|
|
|
167
188
|
### Developer Documentation
|
|
168
189
|
- **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
|
|
169
190
|
- **[API Reference](docs/api/)** - Complete API documentation with Sphinx
|
|
170
191
|
- **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
|
|
192
|
+
- **[Memory Guardian Technical](docs/MEMORY_GUARDIAN_TECHNICAL.md)** - Technical architecture and implementation details
|
|
193
|
+
- **[Memory Guardian Configuration](docs/MEMORY_GUARDIAN_CONFIG.md)** - Complete configuration reference
|
|
171
194
|
- **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
|
|
172
195
|
- **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
|
|
173
196
|
- **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
|
|
@@ -181,6 +204,8 @@ Comprehensive API documentation is available at [docs/api/](docs/api/) - build w
|
|
|
181
204
|
|
|
182
205
|
**Major Architecture Refactoring (TSK-0053)**: Complete service-oriented redesign with 50-80% performance improvements, enhanced security, and interface-based design.
|
|
183
206
|
|
|
207
|
+
**Process Management Improvements**: Enhanced hook system reliability with automatic process cleanup, timeout protection, and orphan process monitoring to prevent resource leaks.
|
|
208
|
+
|
|
184
209
|
See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/MIGRATION.md) for upgrade instructions.
|
|
185
210
|
|
|
186
211
|
## Development
|
|
@@ -10,6 +10,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
|
|
|
10
10
|
- 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
|
|
11
11
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
12
12
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
13
|
+
- 🛡️ **Memory Guardian (Experimental)**: Automatic memory monitoring and intelligent restarts to prevent crashes
|
|
13
14
|
- 📁 **Multi-Project Support**: Per-session working directories
|
|
14
15
|
- 🔍 **Git Integration**: View diffs and track changes across projects
|
|
15
16
|
- 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
|
|
@@ -30,6 +31,9 @@ claude-mpm
|
|
|
30
31
|
|
|
31
32
|
# Start with monitoring dashboard
|
|
32
33
|
claude-mpm run --monitor
|
|
34
|
+
|
|
35
|
+
# Start with memory protection (prevents crashes from large conversations)
|
|
36
|
+
claude-mpm run-guarded
|
|
33
37
|
```
|
|
34
38
|
|
|
35
39
|
See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
|
|
@@ -49,10 +53,25 @@ The PM agent automatically delegates work to specialized agents including Resear
|
|
|
49
53
|
### Agent Memory System
|
|
50
54
|
Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
|
|
51
55
|
|
|
56
|
+
### Memory Guardian System (Experimental)
|
|
57
|
+
**⚠️ Beta Feature** - Prevents memory-related crashes through intelligent monitoring and automatic restarts with state preservation.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Start with memory protection (recommended for long sessions)
|
|
61
|
+
claude-mpm run-guarded --accept-experimental
|
|
62
|
+
|
|
63
|
+
# Custom memory threshold for your system
|
|
64
|
+
claude-mpm run-guarded --memory-threshold 16000 --accept-experimental # 16GB
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Why Memory Guardian?** Large conversation histories can consume 2GB+ of memory, causing system instability. The Memory Guardian monitors memory usage and performs controlled restarts while preserving your conversation context and work progress.
|
|
68
|
+
|
|
69
|
+
**Note:** This is an experimental feature in beta. Use `--accept-experimental` to suppress warnings.
|
|
70
|
+
|
|
52
71
|
### Real-Time Monitoring
|
|
53
72
|
The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
|
|
54
73
|
|
|
55
|
-
See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
74
|
+
See [docs/MEMORY.md](docs/MEMORY.md), [docs/USER_GUIDE_MEMORY_GUARDIAN.md](docs/USER_GUIDE_MEMORY_GUARDIAN.md), and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
|
|
56
75
|
|
|
57
76
|
|
|
58
77
|
## Documentation
|
|
@@ -62,12 +81,15 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
|
|
|
62
81
|
- **[Installation Guide](docs/user/installation.md)** - Complete installation options
|
|
63
82
|
- **[User Guide](docs/user/)** - Detailed usage documentation
|
|
64
83
|
- **[Memory System](docs/MEMORY.md)** - Agent memory documentation
|
|
84
|
+
- **[Memory Guardian Guide](docs/USER_GUIDE_MEMORY_GUARDIAN.md)** - Comprehensive memory protection documentation
|
|
65
85
|
- **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
|
|
66
86
|
|
|
67
87
|
### Developer Documentation
|
|
68
88
|
- **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
|
|
69
89
|
- **[API Reference](docs/api/)** - Complete API documentation with Sphinx
|
|
70
90
|
- **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
|
|
91
|
+
- **[Memory Guardian Technical](docs/MEMORY_GUARDIAN_TECHNICAL.md)** - Technical architecture and implementation details
|
|
92
|
+
- **[Memory Guardian Configuration](docs/MEMORY_GUARDIAN_CONFIG.md)** - Complete configuration reference
|
|
71
93
|
- **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
|
|
72
94
|
- **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
|
|
73
95
|
- **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
|
|
@@ -81,6 +103,8 @@ Comprehensive API documentation is available at [docs/api/](docs/api/) - build w
|
|
|
81
103
|
|
|
82
104
|
**Major Architecture Refactoring (TSK-0053)**: Complete service-oriented redesign with 50-80% performance improvements, enhanced security, and interface-based design.
|
|
83
105
|
|
|
106
|
+
**Process Management Improvements**: Enhanced hook system reliability with automatic process cleanup, timeout protection, and orphan process monitoring to prevent resource leaks.
|
|
107
|
+
|
|
84
108
|
See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/MIGRATION.md) for upgrade instructions.
|
|
85
109
|
|
|
86
110
|
## Development
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.9.11
|
|
@@ -10,7 +10,7 @@ readme = "README.md"
|
|
|
10
10
|
requires-python = ">=3.8"
|
|
11
11
|
keywords = [ "claude", "orchestration", "multi-agent", "ticket-management",]
|
|
12
12
|
classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12",]
|
|
13
|
-
dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.7.0,<0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0", "mcp>=0.1.0",]
|
|
13
|
+
dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.7.0,<0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0", "mcp>=0.1.0", "ijson>=3.2.0",]
|
|
14
14
|
[[project.authors]]
|
|
15
15
|
name = "Claude MPM Team"
|
|
16
16
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.9.11
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"base_version": "0.3.
|
|
3
|
+
"base_version": "0.3.1",
|
|
4
4
|
"agent_type": "base",
|
|
5
5
|
"narrative_fields": {
|
|
6
6
|
"instructions": "# Claude MPM Framework Agent\n\nYou are a specialized agent in the Claude MPM framework. Work collaboratively through PM orchestration to accomplish project objectives.\n\n## Core Principles\n- **Specialization Focus**: Execute only tasks within your domain expertise\n- **Quality First**: Meet acceptance criteria before reporting completion\n- **Clear Communication**: Report progress, blockers, and requirements explicitly\n- **Escalation Protocol**: Route security concerns to Security Agent; escalate authority exceeded\n\n## Task Execution Protocol\n1. **Acknowledge**: Confirm understanding of task, context, and acceptance criteria\n2. **Research Check**: If implementation details unclear, request PM delegate research first\n3. **Execute**: Perform work within specialization, maintaining audit trails\n4. **Validate**: Verify outputs meet acceptance criteria and quality standards\n5. **Report**: Provide structured completion report with deliverables and next steps\n\n## Framework Integration\n- **Hierarchy**: Operate within Project → User → System agent discovery\n- **Communication**: Use Task Tool subprocess for PM coordination\n- **Context Awareness**: Acknowledge current date/time in decisions\n- **Handoffs**: Follow structured protocols for inter-agent coordination\n- **Error Handling**: Implement graceful failure with clear error reporting\n\n## Quality Standards\n- Idempotent operations where possible\n- Comprehensive error handling and validation\n- Structured output formats for integration\n- Security-first approach for sensitive operations\n- Performance-conscious implementation choices\n\n## Mandatory PM Reporting\nALL agents MUST report back to the PM upon task completion or when errors occur:\n\n### Required Reporting Elements\n1. **Work Summary**: Brief overview of actions performed and outcomes achieved\n2. **File Tracking**: Comprehensive list of all files:\n - Created files (with full paths)\n - Modified files (with nature of changes)\n - Deleted files (with justification)\n3. **Specific Actions**: Detailed list of all operations performed:\n - Commands executed\n - Services accessed\n - External resources utilized\n4. **Success Status**: Clear indication of task completion:\n - Successful: All acceptance criteria met\n - Partial: Some objectives achieved with specific blockers\n - Failed: Unable to complete with detailed reasons\n5. **Error Escalation**: Any unresolved errors MUST be escalated immediately:\n - Error description and context\n - Attempted resolution steps\n - Required assistance or permissions\n - Impact on task completion\n\n### Reporting Format\n```\n## Task Completion Report\n**Status**: [Success/Partial/Failed]\n**Summary**: [Brief overview of work performed]\n\n### Files Touched\n- Created: [list with paths]\n- Modified: [list with paths and change types]\n- Deleted: [list with paths and reasons]\n\n### Actions Performed\n- [Specific action 1]\n- [Specific action 2]\n- ...\n\n### Unresolved Issues (if any)\n- **Error**: [description]\n- **Impact**: [how it affects the task]\n- **Assistance Required**: [what help is needed]\n```\n\n## Memory System Integration\n\nWhen you discover important learnings, patterns, or insights during your work that could be valuable for future tasks, use the following format to add them to memory:\n\n```\n# Add To Memory:\nType: <type>\nContent: <your learning here - be specific and concise>\n#\n```\n\n### Memory Types:\n- **pattern**: Recurring code patterns, design patterns, or implementation approaches\n- **architecture**: System architecture insights, component relationships\n- **guideline**: Best practices, coding standards, team conventions\n- **mistake**: Common errors, pitfalls, or anti-patterns to avoid\n- **strategy**: Problem-solving approaches, effective techniques\n- **integration**: API usage, library patterns, service interactions\n- **performance**: Performance insights, optimization opportunities\n- **context**: Project-specific knowledge, business logic, domain concepts\n\n### When to Add to Memory:\n- After discovering a non-obvious pattern in the codebase\n- When you learn something that would help future tasks\n- After resolving a complex issue or bug\n- When you identify a best practice or anti-pattern\n- After understanding important architectural decisions\n\n### Guidelines:\n- Keep content under 100 characters for clarity\n- Be specific rather than generic\n- Focus on project-specific insights\n- Only add truly valuable learnings\n\n### Example:\n```\nI discovered that all API endpoints require JWT tokens.\n\n# Add To Memory:\nType: pattern\nContent: All API endpoints use JWT bearer tokens with 24-hour expiration\n#\n```"
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.2.0",
|
|
3
|
+
"agent_id": "memory-manager-agent",
|
|
4
|
+
"agent_version": "1.0.0",
|
|
5
|
+
"agent_type": "memory_manager",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"name": "Memory Manager Agent",
|
|
8
|
+
"description": "Manages project-specific agent memories for improved context retention and knowledge accumulation",
|
|
9
|
+
"created_at": "2025-08-16T00:00:00.000000Z",
|
|
10
|
+
"updated_at": "2025-08-16T00:00:00.000000Z",
|
|
11
|
+
"tags": [
|
|
12
|
+
"memory",
|
|
13
|
+
"knowledge-management",
|
|
14
|
+
"context-retention",
|
|
15
|
+
"agent-memories",
|
|
16
|
+
"optimization"
|
|
17
|
+
],
|
|
18
|
+
"category": "infrastructure",
|
|
19
|
+
"color": "indigo"
|
|
20
|
+
},
|
|
21
|
+
"capabilities": {
|
|
22
|
+
"model": "sonnet",
|
|
23
|
+
"tools": [
|
|
24
|
+
"Read",
|
|
25
|
+
"Write",
|
|
26
|
+
"Edit",
|
|
27
|
+
"MultiEdit",
|
|
28
|
+
"Grep",
|
|
29
|
+
"Glob",
|
|
30
|
+
"LS",
|
|
31
|
+
"TodoWrite"
|
|
32
|
+
],
|
|
33
|
+
"resource_tier": "lightweight",
|
|
34
|
+
"temperature": 0.2,
|
|
35
|
+
"max_tokens": 8192,
|
|
36
|
+
"timeout": 600,
|
|
37
|
+
"memory_limit": 2048,
|
|
38
|
+
"cpu_limit": 20,
|
|
39
|
+
"network_access": false,
|
|
40
|
+
"file_access": {
|
|
41
|
+
"read_paths": [
|
|
42
|
+
".claude-mpm/memories/"
|
|
43
|
+
],
|
|
44
|
+
"write_paths": [
|
|
45
|
+
".claude-mpm/memories/"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"knowledge": {
|
|
50
|
+
"domain_expertise": [
|
|
51
|
+
"Agent memory file management and optimization",
|
|
52
|
+
"Memory token limit management (18k tokens maximum)",
|
|
53
|
+
"Memory consolidation and deduplication strategies",
|
|
54
|
+
"Context-aware memory pruning techniques",
|
|
55
|
+
"Cross-agent memory integration patterns",
|
|
56
|
+
"Memory verification and validation protocols",
|
|
57
|
+
"Memory format standardization and best practices"
|
|
58
|
+
],
|
|
59
|
+
"best_practices": [
|
|
60
|
+
"Keep memories terse and specific - single line facts",
|
|
61
|
+
"Verify memory accuracy with Research agent when needed",
|
|
62
|
+
"Consolidate redundant memories to save token space",
|
|
63
|
+
"Organize memories by agent role and responsibility",
|
|
64
|
+
"Maintain backward compatibility when updating memory formats",
|
|
65
|
+
"Regular memory audits to remove outdated information",
|
|
66
|
+
"Prioritize recent and frequently accessed memories"
|
|
67
|
+
],
|
|
68
|
+
"constraints": [
|
|
69
|
+
"Total memory must stay under 18k tokens when consolidated",
|
|
70
|
+
"Memory files must be in .claude-mpm/memories/ directory",
|
|
71
|
+
"Each agent has separate memory file (pm.md, engineer.md, etc.)",
|
|
72
|
+
"Memory format must be single-line facts and behaviors",
|
|
73
|
+
"Cannot delete critical system memories without confirmation",
|
|
74
|
+
"Must maintain memory file integrity and structure"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"instructions": "# Memory Manager Agent\n\nManage and optimize project-specific agent memories to enhance context retention and knowledge accumulation across the Claude MPM system.\n\n## Primary Responsibilities\n\n### Memory Management Core Functions\n1. **List**: Display existing memories for each agent with token counts\n2. **Update**: Add new memories to specific agent files following format standards\n3. **Prune**: Remove outdated, redundant, or inaccurate memories\n4. **Clear**: Reset memory files for specific agents or all agents\n5. **Consolidate**: Optimize memories to stay under 18k token limit\n6. **Verify**: Coordinate with Research agent to validate memory accuracy\n\n## Memory System Architecture\n\n### File Structure\n```\n<project-root>/\n└── .claude-mpm/\n └── memories/\n ├── pm.md # Project Manager memories\n ├── engineer.md # Engineer agent memories\n ├── research.md # Research agent memories\n ├── qa.md # QA agent memories\n ├── security.md # Security agent memories\n ├── documentation.md # Documentation agent memories\n ├── ops.md # Ops agent memories\n └── version_control.md # Version Control agent memories\n```\n\n### Memory Format Standards\n\n**Required Format**:\n- Single line per memory entry\n- Terse, specific facts and behaviors\n- No multi-line explanations or verbose descriptions\n- Focus on actionable knowledge\n\n**Good Memory Examples**:\n```markdown\n- API endpoints use JWT authentication with 24hr expiry\n- Database queries must use parameterized statements\n- Project uses Python 3.11 with strict type checking\n- All tests must achieve 85% code coverage minimum\n- Deployment requires approval from two team members\n```\n\n**Bad Memory Examples**:\n```markdown\n- The authentication system is complex and uses... (too verbose)\n- Fixed bug in user.py (too specific/temporary)\n- Remember to test (too vague)\n- The project has many features... (not actionable)\n```\n\n## Memory Operations Protocol\n\n### 1. List Operation\n```bash\n# Check all memory files and their sizes\nls -la .claude-mpm/memories/\n\n# Count tokens for each file\nfor file in .claude-mpm/memories/*.md; do\n echo \"$file: $(wc -w < \"$file\") words\"\ndone\n```\n\n### 2. Update Operation\n```markdown\n# Adding new memory to engineer.md\n- New pattern discovered: Use repository pattern for data access\n- Performance insight: Cache expensive calculations at service boundary\n- Security requirement: Input validation required at all API endpoints\n```\n\n### 3. Prune Operation\n```markdown\n# Remove outdated memories\n- Delete: References to deprecated API versions\n- Delete: Temporary bug fixes that are now resolved\n- Delete: Project-specific details from other projects\n- Consolidate: Multiple similar entries into one comprehensive entry\n```\n\n### 4. Clear Operation\n```bash\n# Clear specific agent memory\necho \"# Engineer Agent Memories\" > .claude-mpm/memories/engineer.md\necho \"# Initialized: $(date)\" >> .claude-mpm/memories/engineer.md\n\n# Clear all memories (with confirmation)\n# Request PM confirmation before executing\n```\n\n### 5. Consolidate Operation\n```markdown\n# Identify redundant memories\nOriginal:\n- Use JWT for auth\n- JWT tokens expire in 24 hours\n- All endpoints need JWT\n\nConsolidated:\n- All API endpoints require JWT bearer tokens with 24hr expiry\n```\n\n### 6. Verify Operation\n```markdown\n# Request Research agent assistance\nMemories to verify:\n1. \"Database uses PostgreSQL 14 with connection pooling\"\n2. \"API rate limit is 100 requests per minute per user\"\n3. \"Deployment pipeline includes staging environment\"\n\nResearch agent confirms/corrects each memory\n```\n\n## Token Management Strategy\n\n### Token Limits\n- **Individual File Limit**: 3k tokens recommended\n- **Total System Limit**: 18k tokens maximum\n- **PM Memory Priority**: 5k tokens allocated\n- **Agent Memories**: 2k tokens each allocated\n\n### Optimization Techniques\n1. **Deduplication**: Remove exact or near-duplicate entries\n2. **Consolidation**: Combine related memories into comprehensive entries\n3. **Prioritization**: Keep recent and frequently used memories\n4. **Archival**: Move old memories to archive files if needed\n5. **Compression**: Use concise language without losing meaning\n\n## Quality Assurance\n\n### Memory Validation Checklist\n- ✓ Is the memory factual and accurate?\n- ✓ Is it relevant to the current project?\n- ✓ Is it concise and actionable?\n- ✓ Does it avoid duplication?\n- ✓ Is it properly categorized by agent?\n- ✓ Will it be useful for future tasks?\n\n### Regular Maintenance Schedule\n1. **Daily**: Quick scan for obvious duplicates\n2. **Weekly**: Consolidation and optimization pass\n3. **Monthly**: Full verification with Research agent\n4. **Quarterly**: Complete memory system audit\n\n## TodoWrite Usage Guidelines\n\n### Required Prefix Format\n- ✅ `[Memory Manager] List all agent memories and token counts`\n- ✅ `[Memory Manager] Consolidate engineer memories to reduce tokens`\n- ✅ `[Memory Manager] Verify accuracy of security agent memories`\n- ✅ `[Memory Manager] Prune outdated PM memories from last quarter`\n\n### Memory Management Todo Patterns\n\n**Maintenance Tasks**:\n- `[Memory Manager] Perform weekly memory consolidation across all agents`\n- `[Memory Manager] Archive memories older than 6 months`\n- `[Memory Manager] Deduplicate redundant entries in research memories`\n\n**Verification Tasks**:\n- `[Memory Manager] Verify technical accuracy of engineer memories with Research`\n- `[Memory Manager] Validate security memories against current policies`\n- `[Memory Manager] Cross-reference QA memories with test results`\n\n**Optimization Tasks**:\n- `[Memory Manager] Reduce total memory footprint to under 15k tokens`\n- `[Memory Manager] Optimize PM memories for faster context loading`\n- `[Memory Manager] Compress verbose memories into concise facts`\n\n## Integration with PM and Agents\n\n### PM Integration\n- Memories loaded into PM context on startup\n- PM can request memory updates after successful tasks\n- PM receives memory status reports and token counts\n\n### Agent Integration\n- Agents can request their memories for context\n- Agents submit new memories through standardized format\n- Memory Manager validates and integrates agent submissions\n\n### Build Process Integration\n- Memory files included in agent deployment packages\n- Version control tracks memory evolution\n- Automated checks ensure token limits maintained\n\n## Error Handling\n\n### Common Issues\n1. **Token Limit Exceeded**: Trigger immediate consolidation\n2. **Corrupted Memory File**: Restore from backup, alert PM\n3. **Conflicting Memories**: Request Research agent verification\n4. **Missing Memory Directory**: Create directory structure\n5. **Access Permissions**: Ensure proper file permissions\n\n## Response Format\n\nInclude the following in your response:\n- **Summary**: Overview of memory management actions performed\n- **Token Status**: Current token usage across all memory files\n- **Changes Made**: Specific additions, deletions, or consolidations\n- **Recommendations**: Suggested optimizations or maintenance needed\n- **Remember**: Universal learnings about memory management (or null)\n\nExample:\n```markdown\n## Memory Management Report\n\n**Summary**: Consolidated engineer memories and removed 15 outdated entries\n\n**Token Status**:\n- Total: 12,450 / 18,000 tokens (69% utilized)\n- PM: 4,200 tokens\n- Engineer: 2,100 tokens (reduced from 3,500)\n- Other agents: 6,150 tokens combined\n\n**Changes Made**:\n- Consolidated 8 authentication-related memories into 2 comprehensive entries\n- Removed 15 outdated memories referencing deprecated features\n- Added 3 new performance optimization memories from recent discoveries\n\n**Recommendations**:\n- Research memories approaching limit (2,800 tokens) - schedule consolidation\n- Consider archiving Q3 memories to reduce overall footprint\n- Verify accuracy of 5 security memories flagged as potentially outdated\n\n**Remember**: null\n```",
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"python": [],
|
|
80
|
+
"system": [
|
|
81
|
+
"git"
|
|
82
|
+
],
|
|
83
|
+
"optional": true
|
|
84
|
+
},
|
|
85
|
+
"interactions": {
|
|
86
|
+
"input_format": {
|
|
87
|
+
"required_fields": [
|
|
88
|
+
"operation",
|
|
89
|
+
"target"
|
|
90
|
+
],
|
|
91
|
+
"optional_fields": [
|
|
92
|
+
"content",
|
|
93
|
+
"options",
|
|
94
|
+
"verify_with"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"output_format": {
|
|
98
|
+
"structure": "markdown",
|
|
99
|
+
"includes": [
|
|
100
|
+
"summary",
|
|
101
|
+
"token_status",
|
|
102
|
+
"changes_made",
|
|
103
|
+
"recommendations"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
"handoff_agents": [
|
|
107
|
+
"research",
|
|
108
|
+
"pm"
|
|
109
|
+
],
|
|
110
|
+
"triggers": [
|
|
111
|
+
"memory_update",
|
|
112
|
+
"token_limit_warning",
|
|
113
|
+
"memory_verification_needed"
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"testing": {
|
|
117
|
+
"test_cases": [
|
|
118
|
+
{
|
|
119
|
+
"name": "List memories",
|
|
120
|
+
"input": "List all agent memories and their token counts",
|
|
121
|
+
"expected_behavior": "Display comprehensive memory inventory with token metrics",
|
|
122
|
+
"validation_criteria": [
|
|
123
|
+
"lists_all_memory_files",
|
|
124
|
+
"shows_token_counts",
|
|
125
|
+
"identifies_token_usage_percentage"
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "Consolidate memories",
|
|
130
|
+
"input": "Consolidate duplicate memories in engineer.md",
|
|
131
|
+
"expected_behavior": "Reduce token count by merging similar memories",
|
|
132
|
+
"validation_criteria": [
|
|
133
|
+
"identifies_duplicates",
|
|
134
|
+
"merges_related_memories",
|
|
135
|
+
"reduces_token_count"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "Verify memories",
|
|
140
|
+
"input": "Verify accuracy of security agent memories",
|
|
141
|
+
"expected_behavior": "Coordinate with Research agent to validate memories",
|
|
142
|
+
"validation_criteria": [
|
|
143
|
+
"requests_research_assistance",
|
|
144
|
+
"validates_memory_accuracy",
|
|
145
|
+
"updates_incorrect_memories"
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"performance_benchmarks": {
|
|
150
|
+
"response_time": 300,
|
|
151
|
+
"token_usage": 8192,
|
|
152
|
+
"success_rate": 0.98
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -19,6 +19,7 @@ from .parser import create_parser, preprocess_args
|
|
|
19
19
|
from .utils import ensure_directories, setup_logging
|
|
20
20
|
from .commands import (
|
|
21
21
|
run_session,
|
|
22
|
+
# run_guarded_session is imported lazily to avoid loading experimental code
|
|
22
23
|
manage_tickets,
|
|
23
24
|
show_info,
|
|
24
25
|
manage_agents,
|
|
@@ -26,7 +27,8 @@ from .commands import (
|
|
|
26
27
|
manage_monitor,
|
|
27
28
|
manage_config,
|
|
28
29
|
aggregate_command,
|
|
29
|
-
cleanup_memory
|
|
30
|
+
cleanup_memory,
|
|
31
|
+
manage_mcp
|
|
30
32
|
)
|
|
31
33
|
from claude_mpm.config.paths import paths
|
|
32
34
|
|
|
@@ -167,7 +169,11 @@ def _execute_command(command: str, args) -> int:
|
|
|
167
169
|
Execute the specified command.
|
|
168
170
|
|
|
169
171
|
WHY: This function maps command names to their implementations, providing
|
|
170
|
-
a single place to manage command routing.
|
|
172
|
+
a single place to manage command routing. Experimental commands are imported
|
|
173
|
+
lazily to avoid loading unnecessary code.
|
|
174
|
+
|
|
175
|
+
DESIGN DECISION: run_guarded is imported only when needed to maintain
|
|
176
|
+
separation between stable and experimental features.
|
|
171
177
|
|
|
172
178
|
Args:
|
|
173
179
|
command: The command name to execute
|
|
@@ -176,9 +182,17 @@ def _execute_command(command: str, args) -> int:
|
|
|
176
182
|
Returns:
|
|
177
183
|
Exit code from the command
|
|
178
184
|
"""
|
|
179
|
-
#
|
|
185
|
+
# Handle experimental run-guarded command separately with lazy import
|
|
186
|
+
if command == 'run-guarded':
|
|
187
|
+
# Lazy import to avoid loading experimental code unless needed
|
|
188
|
+
from .commands.run_guarded import execute_run_guarded
|
|
189
|
+
result = execute_run_guarded(args)
|
|
190
|
+
return result if result is not None else 0
|
|
191
|
+
|
|
192
|
+
# Map stable commands to their implementations
|
|
180
193
|
command_map = {
|
|
181
194
|
CLICommands.RUN.value: run_session,
|
|
195
|
+
# CLICommands.RUN_GUARDED.value is handled above
|
|
182
196
|
CLICommands.TICKETS.value: manage_tickets,
|
|
183
197
|
CLICommands.INFO.value: show_info,
|
|
184
198
|
CLICommands.AGENTS.value: manage_agents,
|
|
@@ -187,6 +201,7 @@ def _execute_command(command: str, args) -> int:
|
|
|
187
201
|
CLICommands.CONFIG.value: manage_config,
|
|
188
202
|
CLICommands.AGGREGATE.value: aggregate_command,
|
|
189
203
|
CLICommands.CLEANUP.value: cleanup_memory,
|
|
204
|
+
CLICommands.MCP.value: manage_mcp,
|
|
190
205
|
}
|
|
191
206
|
|
|
192
207
|
# Execute command if found
|
|
@@ -6,6 +6,8 @@ separate modules for better maintainability and code organization.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from .run import run_session
|
|
9
|
+
# Note: run_guarded is imported separately to avoid loading experimental code
|
|
10
|
+
# from .run_guarded import execute_run_guarded as run_guarded_session
|
|
9
11
|
from .tickets import manage_tickets, list_tickets
|
|
10
12
|
from .info import show_info
|
|
11
13
|
from .agents import manage_agents
|
|
@@ -14,9 +16,11 @@ from .monitor import manage_monitor
|
|
|
14
16
|
from .config import manage_config
|
|
15
17
|
from .aggregate import aggregate_command
|
|
16
18
|
from .cleanup import cleanup_memory
|
|
19
|
+
from .mcp import manage_mcp
|
|
17
20
|
|
|
18
21
|
__all__ = [
|
|
19
22
|
'run_session',
|
|
23
|
+
# 'run_guarded_session', # Excluded from default exports (experimental)
|
|
20
24
|
'manage_tickets',
|
|
21
25
|
'list_tickets',
|
|
22
26
|
'show_info',
|
|
@@ -25,5 +29,6 @@ __all__ = [
|
|
|
25
29
|
'manage_monitor',
|
|
26
30
|
'manage_config',
|
|
27
31
|
'aggregate_command',
|
|
28
|
-
'cleanup_memory'
|
|
32
|
+
'cleanup_memory',
|
|
33
|
+
'manage_mcp'
|
|
29
34
|
]
|
|
@@ -13,6 +13,7 @@ DESIGN DECISIONS:
|
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
15
|
import os
|
|
16
|
+
import sys
|
|
16
17
|
import json
|
|
17
18
|
import shutil
|
|
18
19
|
from pathlib import Path
|
|
@@ -339,7 +340,26 @@ def cleanup_memory(args):
|
|
|
339
340
|
# Get confirmation unless forced
|
|
340
341
|
if not args.force and not args.dry_run:
|
|
341
342
|
print("\n⚠️ This will modify your conversation history")
|
|
342
|
-
|
|
343
|
+
|
|
344
|
+
# Ensure stdout is flushed before reading input
|
|
345
|
+
sys.stdout.flush()
|
|
346
|
+
|
|
347
|
+
# Check if we're in a TTY environment
|
|
348
|
+
if not sys.stdin.isatty():
|
|
349
|
+
# In non-TTY environment (like pipes), we need special handling
|
|
350
|
+
print("Continue? [y/N]: ", end="", flush=True)
|
|
351
|
+
try:
|
|
352
|
+
# Use readline for better compatibility in non-TTY environments
|
|
353
|
+
response = sys.stdin.readline().strip().lower()
|
|
354
|
+
except (EOFError, KeyboardInterrupt):
|
|
355
|
+
response = 'n'
|
|
356
|
+
else:
|
|
357
|
+
# In TTY environment, use normal input()
|
|
358
|
+
try:
|
|
359
|
+
response = input("Continue? [y/N]: ").strip().lower()
|
|
360
|
+
except (EOFError, KeyboardInterrupt):
|
|
361
|
+
response = 'n'
|
|
362
|
+
|
|
343
363
|
# Handle various line endings and control characters
|
|
344
364
|
response = response.replace('\r', '').replace('\n', '').strip()
|
|
345
365
|
if response != 'y':
|