claude-mpm 5.4.41__py3-none-any.whl → 5.6.23__py3-none-any.whl
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.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md +66 -241
- claude_mpm/agents/CLAUDE_MPM_RESEARCH_OUTPUT_STYLE.md +413 -0
- claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +109 -1925
- claude_mpm/agents/PM_INSTRUCTIONS.md +161 -298
- claude_mpm/agents/WORKFLOW.md +2 -0
- claude_mpm/agents/templates/circuit-breakers.md +26 -17
- claude_mpm/cli/__init__.py +5 -1
- claude_mpm/cli/commands/agents.py +2 -4
- claude_mpm/cli/commands/agents_reconcile.py +197 -0
- claude_mpm/cli/commands/autotodos.py +566 -0
- claude_mpm/cli/commands/commander.py +216 -0
- claude_mpm/cli/commands/configure.py +620 -21
- claude_mpm/cli/commands/configure_agent_display.py +3 -1
- claude_mpm/cli/commands/hook_errors.py +60 -60
- claude_mpm/cli/commands/monitor.py +2 -2
- claude_mpm/cli/commands/mpm_init/core.py +15 -8
- claude_mpm/cli/commands/profile.py +9 -10
- claude_mpm/cli/commands/run.py +35 -3
- claude_mpm/cli/commands/skill_source.py +51 -2
- claude_mpm/cli/commands/skills.py +182 -32
- claude_mpm/cli/executor.py +120 -16
- claude_mpm/cli/interactive/__init__.py +10 -0
- claude_mpm/cli/interactive/agent_wizard.py +30 -50
- claude_mpm/cli/interactive/questionary_styles.py +65 -0
- claude_mpm/cli/interactive/skill_selector.py +481 -0
- claude_mpm/cli/parsers/base_parser.py +76 -1
- claude_mpm/cli/parsers/commander_parser.py +116 -0
- claude_mpm/cli/parsers/profile_parser.py +0 -1
- claude_mpm/cli/parsers/run_parser.py +10 -0
- claude_mpm/cli/parsers/skill_source_parser.py +4 -0
- claude_mpm/cli/parsers/skills_parser.py +2 -3
- claude_mpm/cli/startup.py +527 -506
- claude_mpm/cli/startup_display.py +74 -6
- claude_mpm/cli/startup_logging.py +2 -2
- claude_mpm/cli/utils.py +7 -3
- claude_mpm/commander/__init__.py +78 -0
- claude_mpm/commander/adapters/__init__.py +60 -0
- claude_mpm/commander/adapters/auggie.py +260 -0
- claude_mpm/commander/adapters/base.py +288 -0
- claude_mpm/commander/adapters/claude_code.py +392 -0
- claude_mpm/commander/adapters/codex.py +237 -0
- claude_mpm/commander/adapters/communication.py +366 -0
- claude_mpm/commander/adapters/example_usage.py +310 -0
- claude_mpm/commander/adapters/mpm.py +389 -0
- claude_mpm/commander/adapters/registry.py +204 -0
- claude_mpm/commander/api/__init__.py +16 -0
- claude_mpm/commander/api/app.py +121 -0
- claude_mpm/commander/api/errors.py +133 -0
- claude_mpm/commander/api/routes/__init__.py +8 -0
- claude_mpm/commander/api/routes/events.py +184 -0
- claude_mpm/commander/api/routes/inbox.py +171 -0
- claude_mpm/commander/api/routes/messages.py +148 -0
- claude_mpm/commander/api/routes/projects.py +271 -0
- claude_mpm/commander/api/routes/sessions.py +226 -0
- claude_mpm/commander/api/routes/work.py +296 -0
- claude_mpm/commander/api/schemas.py +186 -0
- claude_mpm/commander/chat/__init__.py +7 -0
- claude_mpm/commander/chat/cli.py +146 -0
- claude_mpm/commander/chat/commands.py +96 -0
- claude_mpm/commander/chat/repl.py +310 -0
- claude_mpm/commander/config.py +51 -0
- claude_mpm/commander/config_loader.py +115 -0
- claude_mpm/commander/core/__init__.py +10 -0
- claude_mpm/commander/core/block_manager.py +325 -0
- claude_mpm/commander/core/response_manager.py +323 -0
- claude_mpm/commander/daemon.py +603 -0
- claude_mpm/commander/env_loader.py +59 -0
- claude_mpm/commander/events/__init__.py +26 -0
- claude_mpm/commander/events/manager.py +332 -0
- claude_mpm/commander/frameworks/__init__.py +12 -0
- claude_mpm/commander/frameworks/base.py +146 -0
- claude_mpm/commander/frameworks/claude_code.py +58 -0
- claude_mpm/commander/frameworks/mpm.py +62 -0
- claude_mpm/commander/inbox/__init__.py +16 -0
- claude_mpm/commander/inbox/dedup.py +128 -0
- claude_mpm/commander/inbox/inbox.py +224 -0
- claude_mpm/commander/inbox/models.py +70 -0
- claude_mpm/commander/instance_manager.py +450 -0
- claude_mpm/commander/llm/__init__.py +6 -0
- claude_mpm/commander/llm/openrouter_client.py +167 -0
- claude_mpm/commander/llm/summarizer.py +70 -0
- claude_mpm/commander/memory/__init__.py +45 -0
- claude_mpm/commander/memory/compression.py +347 -0
- claude_mpm/commander/memory/embeddings.py +230 -0
- claude_mpm/commander/memory/entities.py +310 -0
- claude_mpm/commander/memory/example_usage.py +290 -0
- claude_mpm/commander/memory/integration.py +325 -0
- claude_mpm/commander/memory/search.py +381 -0
- claude_mpm/commander/memory/store.py +657 -0
- claude_mpm/commander/models/__init__.py +18 -0
- claude_mpm/commander/models/events.py +121 -0
- claude_mpm/commander/models/project.py +162 -0
- claude_mpm/commander/models/work.py +214 -0
- claude_mpm/commander/parsing/__init__.py +20 -0
- claude_mpm/commander/parsing/extractor.py +132 -0
- claude_mpm/commander/parsing/output_parser.py +270 -0
- claude_mpm/commander/parsing/patterns.py +100 -0
- claude_mpm/commander/persistence/__init__.py +11 -0
- claude_mpm/commander/persistence/event_store.py +274 -0
- claude_mpm/commander/persistence/state_store.py +309 -0
- claude_mpm/commander/persistence/work_store.py +164 -0
- claude_mpm/commander/polling/__init__.py +13 -0
- claude_mpm/commander/polling/event_detector.py +104 -0
- claude_mpm/commander/polling/output_buffer.py +49 -0
- claude_mpm/commander/polling/output_poller.py +153 -0
- claude_mpm/commander/project_session.py +268 -0
- claude_mpm/commander/proxy/__init__.py +12 -0
- claude_mpm/commander/proxy/formatter.py +89 -0
- claude_mpm/commander/proxy/output_handler.py +191 -0
- claude_mpm/commander/proxy/relay.py +155 -0
- claude_mpm/commander/registry.py +410 -0
- claude_mpm/commander/runtime/__init__.py +10 -0
- claude_mpm/commander/runtime/executor.py +191 -0
- claude_mpm/commander/runtime/monitor.py +346 -0
- claude_mpm/commander/session/__init__.py +6 -0
- claude_mpm/commander/session/context.py +81 -0
- claude_mpm/commander/session/manager.py +59 -0
- claude_mpm/commander/tmux_orchestrator.py +361 -0
- claude_mpm/commander/web/__init__.py +1 -0
- claude_mpm/commander/work/__init__.py +30 -0
- claude_mpm/commander/work/executor.py +207 -0
- claude_mpm/commander/work/queue.py +405 -0
- claude_mpm/commander/workflow/__init__.py +27 -0
- claude_mpm/commander/workflow/event_handler.py +241 -0
- claude_mpm/commander/workflow/notifier.py +146 -0
- claude_mpm/commands/mpm-config.md +8 -0
- claude_mpm/commands/mpm-doctor.md +8 -0
- claude_mpm/commands/mpm-help.md +8 -0
- claude_mpm/commands/mpm-init.md +8 -0
- claude_mpm/commands/mpm-monitor.md +8 -0
- claude_mpm/commands/mpm-organize.md +8 -0
- claude_mpm/commands/mpm-postmortem.md +8 -0
- claude_mpm/commands/mpm-session-resume.md +9 -1
- claude_mpm/commands/mpm-status.md +8 -0
- claude_mpm/commands/mpm-ticket-view.md +8 -0
- claude_mpm/commands/mpm-version.md +8 -0
- claude_mpm/commands/mpm.md +8 -0
- claude_mpm/config/agent_presets.py +8 -7
- claude_mpm/config/skill_sources.py +16 -0
- claude_mpm/constants.py +1 -0
- claude_mpm/core/claude_runner.py +154 -2
- claude_mpm/core/config.py +35 -22
- claude_mpm/core/config_constants.py +74 -9
- claude_mpm/core/constants.py +56 -12
- claude_mpm/core/hook_manager.py +51 -3
- claude_mpm/core/interactive_session.py +12 -11
- claude_mpm/core/logger.py +26 -9
- claude_mpm/core/logging_utils.py +35 -11
- claude_mpm/core/network_config.py +148 -0
- claude_mpm/core/oneshot_session.py +7 -6
- claude_mpm/core/optimized_startup.py +3 -1
- claude_mpm/core/output_style_manager.py +63 -18
- claude_mpm/core/shared/config_loader.py +3 -1
- claude_mpm/core/socketio_pool.py +13 -5
- claude_mpm/core/unified_config.py +54 -8
- claude_mpm/core/unified_paths.py +95 -90
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.C33zOoyM.css +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.CW1J-YuA.css +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/1WZnGYqX.js +24 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/67pF3qNn.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/6RxdMKe4.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/8cZrfX0h.js +60 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/9a6T2nm-.js +7 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B443AUzu.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B8AwtY2H.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BF15LAsF.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BQaXIfA_.js +331 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BRcwIQNr.js +4 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{uj46x2Wr.js → BSNlmTZj.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BV6nKitt.js +43 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BViJ8lZt.js +128 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BcQ-Q0FE.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Bpyvgze_.js +30 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BzTRqg-z.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C0Fr8dve.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C3rbW_a-.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C8WYN38h.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C9I8FlXH.js +61 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIQcWgO2.js +36 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIctN7YN.js +7 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CKrS_JZW.js +145 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CR6P9C4A.js +89 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CRRR9MD_.js +2 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CRcR2DqT.js +334 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CSXtMOf0.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CT-sbxSk.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CWm6DJsp.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CmKTTxBW.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CpqQ1Kzn.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Cu_Erd72.js +261 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D2nGpDRe.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D9iCMida.js +267 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D9ykgMoY.js +10 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DL2Ldur1.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DPfltzjH.js +165 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{N4qtv3Hx.js → DR8nis88.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DUliQN2b.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DVp1hx9R.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DXlhR01x.js +122 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D_lyTybS.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DngoTTgh.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DqkmHtDC.js +220 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DsDh8EYs.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DypDmXgd.js +139 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Gi6I4Gst.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/IPYC-LnN.js +162 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/JTLiF7dt.js +24 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/JpevfAFt.js +68 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DjhvlsAc.js → NqQ1dWOy.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/R8CEIRAd.js +2 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Zxy7qc-l.js +64 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/q9Hm6zAU.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/qtd3IeO4.js +15 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/ulBFON_C.js +65 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/wQVh1CoA.js +10 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.Dr7t0z2J.js +2 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.BGhZHUS3.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/{0.CAGBuiOw.js → 0.RgBboRvH.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.DG-KkbDf.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.D_jnf-x6.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/version.json +1 -1
- claude_mpm/dashboard/static/svelte-build/index.html +11 -11
- claude_mpm/dashboard-svelte/node_modules/katex/src/fonts/generate_fonts.py +58 -0
- claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/extract_tfms.py +114 -0
- claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/extract_ttfs.py +122 -0
- claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/format_json.py +28 -0
- claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/parse_tfm.py +211 -0
- claude_mpm/experimental/cli_enhancements.py +2 -1
- claude_mpm/hooks/claude_hooks/INTEGRATION_EXAMPLE.md +243 -0
- claude_mpm/hooks/claude_hooks/README_AUTO_PAUSE.md +403 -0
- claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/auto_pause_handler.py +485 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +305 -87
- claude_mpm/hooks/claude_hooks/hook_handler.py +106 -89
- claude_mpm/hooks/claude_hooks/hook_wrapper.sh +6 -11
- claude_mpm/hooks/claude_hooks/installer.py +116 -8
- claude_mpm/hooks/claude_hooks/memory_integration.py +51 -31
- claude_mpm/hooks/claude_hooks/response_tracking.py +42 -59
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/connection_manager.py +39 -24
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +36 -103
- claude_mpm/hooks/claude_hooks/services/state_manager.py +23 -36
- claude_mpm/hooks/claude_hooks/services/subagent_processor.py +73 -75
- claude_mpm/hooks/kuzu_memory_hook.py +5 -5
- claude_mpm/hooks/session_resume_hook.py +89 -1
- claude_mpm/hooks/templates/pre_tool_use_template.py +10 -2
- claude_mpm/init.py +215 -2
- claude_mpm/scripts/claude-hook-handler.sh +43 -16
- claude_mpm/services/agents/agent_recommendation_service.py +8 -8
- claude_mpm/services/agents/agent_selection_service.py +2 -2
- claude_mpm/services/agents/cache_git_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_discovery_service.py +3 -1
- claude_mpm/services/agents/deployment/agent_format_converter.py +25 -13
- claude_mpm/services/agents/deployment/agent_template_builder.py +37 -17
- claude_mpm/services/agents/deployment/async_agent_deployment.py +31 -27
- claude_mpm/services/agents/deployment/deployment_reconciler.py +577 -0
- claude_mpm/services/agents/deployment/local_template_deployment.py +3 -1
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +36 -8
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +50 -26
- claude_mpm/services/agents/deployment/startup_reconciliation.py +138 -0
- claude_mpm/services/agents/git_source_manager.py +21 -2
- claude_mpm/services/agents/loading/framework_agent_loader.py +75 -2
- claude_mpm/services/agents/single_tier_deployment_service.py +4 -4
- claude_mpm/services/agents/sources/git_source_sync_service.py +116 -5
- claude_mpm/services/agents/startup_sync.py +5 -2
- claude_mpm/services/cli/__init__.py +3 -0
- claude_mpm/services/cli/incremental_pause_manager.py +561 -0
- claude_mpm/services/cli/session_resume_helper.py +10 -2
- claude_mpm/services/delegation_detector.py +175 -0
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +30 -0
- claude_mpm/services/diagnostics/checks/configuration_check.py +24 -0
- claude_mpm/services/diagnostics/checks/installation_check.py +22 -0
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +23 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +31 -1
- claude_mpm/services/diagnostics/models.py +14 -1
- claude_mpm/services/event_log.py +325 -0
- claude_mpm/services/infrastructure/__init__.py +4 -0
- claude_mpm/services/infrastructure/context_usage_tracker.py +291 -0
- claude_mpm/services/infrastructure/resume_log_generator.py +24 -5
- claude_mpm/services/monitor/daemon_manager.py +15 -4
- claude_mpm/services/monitor/management/lifecycle.py +8 -3
- claude_mpm/services/monitor/server.py +106 -16
- claude_mpm/services/pm_skills_deployer.py +302 -94
- claude_mpm/services/profile_manager.py +10 -4
- claude_mpm/services/skills/git_skill_source_manager.py +192 -29
- claude_mpm/services/skills/selective_skill_deployer.py +211 -46
- claude_mpm/services/skills/skill_discovery_service.py +74 -4
- claude_mpm/services/skills_deployer.py +192 -70
- claude_mpm/services/socketio/handlers/hook.py +14 -7
- claude_mpm/services/socketio/server/main.py +12 -4
- claude_mpm/skills/__init__.py +2 -1
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
- claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
- claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
- claude_mpm/skills/bundled/pm/mpm/SKILL.md +38 -0
- claude_mpm/skills/bundled/pm/mpm-agent-update-workflow/SKILL.md +75 -0
- claude_mpm/skills/bundled/pm/mpm-bug-reporting/SKILL.md +248 -0
- claude_mpm/skills/bundled/pm/mpm-circuit-breaker-enforcement/SKILL.md +476 -0
- claude_mpm/skills/bundled/pm/mpm-config/SKILL.md +29 -0
- claude_mpm/skills/bundled/pm/mpm-delegation-patterns/SKILL.md +167 -0
- claude_mpm/skills/bundled/pm/mpm-doctor/SKILL.md +53 -0
- claude_mpm/skills/bundled/pm/mpm-git-file-tracking/SKILL.md +113 -0
- claude_mpm/skills/bundled/pm/mpm-help/SKILL.md +35 -0
- claude_mpm/skills/bundled/pm/mpm-init/SKILL.md +125 -0
- claude_mpm/skills/bundled/pm/mpm-monitor/SKILL.md +32 -0
- claude_mpm/skills/bundled/pm/mpm-organize/SKILL.md +121 -0
- claude_mpm/skills/bundled/pm/mpm-postmortem/SKILL.md +22 -0
- claude_mpm/skills/bundled/pm/mpm-pr-workflow/SKILL.md +124 -0
- claude_mpm/skills/bundled/pm/mpm-session-management/SKILL.md +312 -0
- claude_mpm/skills/bundled/pm/mpm-session-pause/SKILL.md +170 -0
- claude_mpm/skills/bundled/pm/mpm-session-resume/SKILL.md +31 -0
- claude_mpm/skills/bundled/pm/mpm-status/SKILL.md +37 -0
- claude_mpm/skills/bundled/pm/mpm-teaching-mode/SKILL.md +657 -0
- claude_mpm/skills/bundled/pm/mpm-ticket-view/SKILL.md +110 -0
- claude_mpm/skills/bundled/pm/mpm-ticketing-integration/SKILL.md +154 -0
- claude_mpm/skills/bundled/pm/mpm-tool-usage-guide/SKILL.md +386 -0
- claude_mpm/skills/bundled/pm/mpm-verification-protocols/SKILL.md +198 -0
- claude_mpm/skills/bundled/pm/mpm-version/SKILL.md +21 -0
- claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
- claude_mpm/skills/bundled/security-scanning.md +112 -0
- claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
- claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
- claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
- claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
- claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
- claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
- claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
- claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
- claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
- claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
- claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
- claude_mpm/skills/registry.py +295 -90
- claude_mpm/skills/skill_manager.py +29 -23
- claude_mpm/templates/.pre-commit-config.yaml +112 -0
- claude_mpm/utils/agent_dependency_loader.py +103 -4
- claude_mpm/utils/robust_installer.py +45 -24
- claude_mpm-5.6.23.dist-info/METADATA +393 -0
- {claude_mpm-5.4.41.dist-info → claude_mpm-5.6.23.dist-info}/RECORD +447 -149
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.B_FtCwCQ.css +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.Cl_eSA4x.css +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BgChzWQ1.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIXEwuWe.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CWc5urbQ.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DMkZpdF2.js +0 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.DTL5mJO-.js +0 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.DzuEhzqh.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.DFLC8jdE.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.DPvEihJJ.js +0 -10
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-311.pyc +0 -0
- claude_mpm-5.4.41.dist-info/METADATA +0 -998
- {claude_mpm-5.4.41.dist-info → claude_mpm-5.6.23.dist-info}/WHEEL +0 -0
- {claude_mpm-5.4.41.dist-info → claude_mpm-5.6.23.dist-info}/entry_points.txt +0 -0
- {claude_mpm-5.4.41.dist-info → claude_mpm-5.6.23.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-5.4.41.dist-info → claude_mpm-5.6.23.dist-info}/licenses/LICENSE-FAQ.md +0 -0
- {claude_mpm-5.4.41.dist-info → claude_mpm-5.6.23.dist-info}/top_level.txt +0 -0
|
@@ -65,6 +65,7 @@ class AgentDependencyLoader:
|
|
|
65
65
|
self.deployment_state_file = (
|
|
66
66
|
Path.cwd() / ".claude" / "agents" / ".mpm_deployment_state"
|
|
67
67
|
)
|
|
68
|
+
self.is_uv_tool = self._check_uv_tool_installation()
|
|
68
69
|
|
|
69
70
|
def discover_deployed_agents(self) -> Dict[str, Path]:
|
|
70
71
|
"""
|
|
@@ -191,9 +192,42 @@ class AgentDependencyLoader:
|
|
|
191
192
|
logger.debug(f"Loaded dependencies for {len(agent_dependencies)} agents")
|
|
192
193
|
return agent_dependencies
|
|
193
194
|
|
|
195
|
+
def _check_uv_tool_installation(self) -> bool:
|
|
196
|
+
"""
|
|
197
|
+
Check if running in UV tool environment (no pip available).
|
|
198
|
+
|
|
199
|
+
WHY: UV tool environments don't have pip installed. The executable
|
|
200
|
+
path typically contains ".local/share/uv/tools/" and the UV_TOOL_DIR
|
|
201
|
+
environment variable is set. In such environments, we need to use
|
|
202
|
+
'uv pip' instead of 'python -m pip'.
|
|
203
|
+
|
|
204
|
+
Returns:
|
|
205
|
+
True if UV tool environment, False otherwise
|
|
206
|
+
"""
|
|
207
|
+
import os
|
|
208
|
+
|
|
209
|
+
# Check UV_TOOL_DIR environment variable
|
|
210
|
+
uv_tool_dir = os.environ.get("UV_TOOL_DIR", "")
|
|
211
|
+
if uv_tool_dir and "claude-mpm" in uv_tool_dir:
|
|
212
|
+
logger.debug(f"UV tool environment detected via UV_TOOL_DIR: {uv_tool_dir}")
|
|
213
|
+
return True
|
|
214
|
+
|
|
215
|
+
# Check executable path for UV tool patterns
|
|
216
|
+
executable = sys.executable
|
|
217
|
+
if ".local/share/uv/tools/" in executable or "/uv/tools/" in executable:
|
|
218
|
+
logger.debug(
|
|
219
|
+
f"UV tool environment detected via executable path: {executable}"
|
|
220
|
+
)
|
|
221
|
+
return True
|
|
222
|
+
|
|
223
|
+
return False
|
|
224
|
+
|
|
194
225
|
def check_python_dependency(self, package_spec: str) -> Tuple[bool, Optional[str]]:
|
|
195
226
|
"""
|
|
196
|
-
Check if a Python package dependency is satisfied.
|
|
227
|
+
Check if a Python package dependency is satisfied in the TARGET environment.
|
|
228
|
+
|
|
229
|
+
WHY: UV tool environments use a separate Python installation. We must check
|
|
230
|
+
packages in the same environment where they would be installed/used.
|
|
197
231
|
|
|
198
232
|
Args:
|
|
199
233
|
package_spec: Package specification (e.g., "pandas>=2.0.0")
|
|
@@ -221,7 +255,70 @@ class AgentDependencyLoader:
|
|
|
221
255
|
)
|
|
222
256
|
return True, "optional-skipped"
|
|
223
257
|
|
|
224
|
-
#
|
|
258
|
+
# For UV tool environments, check via UV's Python
|
|
259
|
+
if self.is_uv_tool:
|
|
260
|
+
try:
|
|
261
|
+
verify_cmd = [
|
|
262
|
+
"uv",
|
|
263
|
+
"run",
|
|
264
|
+
"--no-project",
|
|
265
|
+
"python",
|
|
266
|
+
"-c",
|
|
267
|
+
f"import importlib.metadata; print(importlib.metadata.version('{package_name}'))",
|
|
268
|
+
]
|
|
269
|
+
result = subprocess.run(
|
|
270
|
+
verify_cmd, capture_output=True, timeout=30, check=False
|
|
271
|
+
)
|
|
272
|
+
if result.returncode == 0:
|
|
273
|
+
version = result.stdout.decode().strip()
|
|
274
|
+
self.checked_packages.add(package_name)
|
|
275
|
+
if req.specifier.contains(version):
|
|
276
|
+
logger.debug(
|
|
277
|
+
f"Package {package_name} {version} satisfied in UV environment"
|
|
278
|
+
)
|
|
279
|
+
return True, version
|
|
280
|
+
logger.debug(
|
|
281
|
+
f"{package_name} {version} does not satisfy {req.specifier}"
|
|
282
|
+
)
|
|
283
|
+
return False, version
|
|
284
|
+
# Check alternatives for optional packages
|
|
285
|
+
if package_name in self.OPTIONAL_DB_PACKAGES:
|
|
286
|
+
for alternative in self.OPTIONAL_DB_PACKAGES[package_name]:
|
|
287
|
+
alt_cmd = [
|
|
288
|
+
"uv",
|
|
289
|
+
"run",
|
|
290
|
+
"--no-project",
|
|
291
|
+
"python",
|
|
292
|
+
"-c",
|
|
293
|
+
f"import importlib.metadata; print(importlib.metadata.version('{alternative}'))",
|
|
294
|
+
]
|
|
295
|
+
alt_result = subprocess.run(
|
|
296
|
+
alt_cmd, capture_output=True, timeout=30, check=False
|
|
297
|
+
)
|
|
298
|
+
if alt_result.returncode == 0:
|
|
299
|
+
alt_version = alt_result.stdout.decode().strip()
|
|
300
|
+
logger.info(
|
|
301
|
+
f"Using {alternative} as alternative to {package_name}"
|
|
302
|
+
)
|
|
303
|
+
self.checked_packages.add(package_name)
|
|
304
|
+
return True, f"{alternative}:{alt_version}"
|
|
305
|
+
# If no alternatives work, mark as optional failure
|
|
306
|
+
self.optional_failed[package_name] = "No alternatives available"
|
|
307
|
+
logger.warning(
|
|
308
|
+
f"Optional package {package_name} not found, marking as optional"
|
|
309
|
+
)
|
|
310
|
+
return True, "optional-not-found"
|
|
311
|
+
return False, None
|
|
312
|
+
except subprocess.TimeoutExpired:
|
|
313
|
+
logger.warning(f"Timeout checking {package_name} in UV environment")
|
|
314
|
+
return False, None
|
|
315
|
+
except Exception as e:
|
|
316
|
+
logger.debug(
|
|
317
|
+
f"Error checking {package_name} in UV environment: {e}"
|
|
318
|
+
)
|
|
319
|
+
return False, None
|
|
320
|
+
|
|
321
|
+
# For normal Python, try to import and check version
|
|
225
322
|
try:
|
|
226
323
|
import importlib.metadata
|
|
227
324
|
|
|
@@ -671,8 +768,10 @@ class AgentDependencyLoader:
|
|
|
671
768
|
)
|
|
672
769
|
|
|
673
770
|
if is_uv_tool:
|
|
674
|
-
cmd = ["uv", "pip", "install"]
|
|
675
|
-
logger.debug(
|
|
771
|
+
cmd = ["uv", "pip", "install", "--python", sys.executable]
|
|
772
|
+
logger.debug(
|
|
773
|
+
f"Using 'uv pip install --python {sys.executable}' for UV tool environment"
|
|
774
|
+
)
|
|
676
775
|
else:
|
|
677
776
|
cmd = [sys.executable, "-m", "pip", "install"]
|
|
678
777
|
|
|
@@ -332,10 +332,12 @@ class RobustPackageInstaller:
|
|
|
332
332
|
Returns:
|
|
333
333
|
Command as list of arguments
|
|
334
334
|
"""
|
|
335
|
-
# UV tool environments don't have pip; use uv pip instead
|
|
335
|
+
# UV tool environments don't have pip; use uv pip install --python instead
|
|
336
336
|
if self.is_uv_tool:
|
|
337
|
-
base_cmd = ["uv", "pip", "install"]
|
|
338
|
-
logger.debug(
|
|
337
|
+
base_cmd = ["uv", "pip", "install", "--python", sys.executable]
|
|
338
|
+
logger.debug(
|
|
339
|
+
f"Using 'uv pip install --python {sys.executable}' for UV tool environment"
|
|
340
|
+
)
|
|
339
341
|
else:
|
|
340
342
|
base_cmd = [sys.executable, "-m", "pip", "install"]
|
|
341
343
|
|
|
@@ -478,42 +480,56 @@ class RobustPackageInstaller:
|
|
|
478
480
|
|
|
479
481
|
def _verify_installation(self, package_spec: str) -> bool:
|
|
480
482
|
"""
|
|
481
|
-
Verify that a package was successfully installed.
|
|
483
|
+
Verify that a package was successfully installed in the TARGET environment.
|
|
484
|
+
|
|
485
|
+
WHY: UV installs packages to its own Python environment, not the current process.
|
|
486
|
+
We must verify in the same environment where packages were installed.
|
|
482
487
|
|
|
483
488
|
Args:
|
|
484
489
|
package_spec: Package specification
|
|
485
490
|
|
|
486
491
|
Returns:
|
|
487
|
-
True if package is installed and importable
|
|
492
|
+
True if package is installed and importable in the target environment
|
|
488
493
|
"""
|
|
489
494
|
package_name = self._extract_package_name(package_spec)
|
|
490
495
|
|
|
491
|
-
# Convert package name to import name (e.g., tree-sitter-ruby -> tree_sitter_ruby)
|
|
492
|
-
import_name = package_name.replace("-", "_")
|
|
493
|
-
|
|
494
496
|
try:
|
|
495
|
-
|
|
497
|
+
if self.is_uv_tool:
|
|
498
|
+
# For UV tool, verify via UV's Python environment
|
|
499
|
+
verify_cmd = [
|
|
500
|
+
"uv",
|
|
501
|
+
"run",
|
|
502
|
+
"--no-project",
|
|
503
|
+
"python",
|
|
504
|
+
"-c",
|
|
505
|
+
f"import importlib.metadata; print(importlib.metadata.version('{package_name}'))",
|
|
506
|
+
]
|
|
507
|
+
result = subprocess.run(
|
|
508
|
+
verify_cmd, capture_output=True, timeout=30, check=False
|
|
509
|
+
)
|
|
510
|
+
if result.returncode == 0:
|
|
511
|
+
logger.debug(
|
|
512
|
+
f"Package {package_name} verified in UV environment: {result.stdout.decode().strip()}"
|
|
513
|
+
)
|
|
514
|
+
return True
|
|
515
|
+
logger.debug(
|
|
516
|
+
f"Package {package_name} not found in UV environment: {result.stderr.decode().strip()}"
|
|
517
|
+
)
|
|
518
|
+
return False
|
|
519
|
+
# For normal Python, use importlib.metadata in current process
|
|
496
520
|
import importlib.metadata
|
|
497
521
|
|
|
498
522
|
try:
|
|
499
523
|
version = importlib.metadata.version(package_name)
|
|
500
524
|
logger.debug(f"Package {package_name} version {version} is installed")
|
|
501
|
-
|
|
502
|
-
# For tree-sitter packages, don't try to import (they have C extensions)
|
|
503
|
-
if package_name.startswith("tree-sitter-"):
|
|
504
|
-
return True
|
|
505
|
-
|
|
506
|
-
# Try to import the package
|
|
507
|
-
try:
|
|
508
|
-
__import__(import_name)
|
|
509
|
-
return True
|
|
510
|
-
except ImportError:
|
|
511
|
-
# Some packages have different import names, that's OK
|
|
512
|
-
return True
|
|
525
|
+
return True
|
|
513
526
|
|
|
514
527
|
except importlib.metadata.PackageNotFoundError:
|
|
515
528
|
return False
|
|
516
529
|
|
|
530
|
+
except subprocess.TimeoutExpired:
|
|
531
|
+
logger.warning(f"Verification timeout for {package_name}")
|
|
532
|
+
return False
|
|
517
533
|
except ImportError:
|
|
518
534
|
# Fallback for older Python versions
|
|
519
535
|
try:
|
|
@@ -523,6 +539,9 @@ class RobustPackageInstaller:
|
|
|
523
539
|
return True
|
|
524
540
|
except pkg_resources.DistributionNotFound:
|
|
525
541
|
return False
|
|
542
|
+
except Exception as e:
|
|
543
|
+
logger.debug(f"Verification error for {package_name}: {e}")
|
|
544
|
+
return False
|
|
526
545
|
|
|
527
546
|
def _is_retryable_error(self, error: Optional[str]) -> bool:
|
|
528
547
|
"""
|
|
@@ -687,10 +706,12 @@ class RobustPackageInstaller:
|
|
|
687
706
|
Tuple of (success, error_message)
|
|
688
707
|
"""
|
|
689
708
|
try:
|
|
690
|
-
# UV tool environments don't have pip; use uv pip instead
|
|
709
|
+
# UV tool environments don't have pip; use uv pip install --python instead
|
|
691
710
|
if self.is_uv_tool:
|
|
692
|
-
cmd = ["uv", "pip", "install"]
|
|
693
|
-
logger.debug(
|
|
711
|
+
cmd = ["uv", "pip", "install", "--python", sys.executable]
|
|
712
|
+
logger.debug(
|
|
713
|
+
f"Using 'uv pip install --python {sys.executable}' for batch installation"
|
|
714
|
+
)
|
|
694
715
|
else:
|
|
695
716
|
cmd = [sys.executable, "-m", "pip", "install"]
|
|
696
717
|
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: claude-mpm
|
|
3
|
+
Version: 5.6.23
|
|
4
|
+
Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
|
|
5
|
+
Author-email: Bob Matsuoka <bob@matsuoka.com>
|
|
6
|
+
Maintainer: Claude MPM Team
|
|
7
|
+
License: Elastic-2.0
|
|
8
|
+
Project-URL: Homepage, https://github.com/bobmatnyc/claude-mpm
|
|
9
|
+
Project-URL: Repository, https://github.com/bobmatnyc/claude-mpm.git
|
|
10
|
+
Project-URL: Issues, https://github.com/bobmatnyc/claude-mpm/issues
|
|
11
|
+
Project-URL: Documentation, https://github.com/bobmatnyc/claude-mpm/blob/main/README.md
|
|
12
|
+
Keywords: claude,orchestration,multi-agent,ticket-management
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: Other/Proprietary License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
License-File: LICENSE-FAQ.md
|
|
24
|
+
Requires-Dist: ai-trackdown-pytools>=1.4.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
27
|
+
Requires-Dist: click>=8.0.0
|
|
28
|
+
Requires-Dist: pexpect>=4.8.0
|
|
29
|
+
Requires-Dist: psutil>=5.9.0
|
|
30
|
+
Requires-Dist: requests>=2.25.0
|
|
31
|
+
Requires-Dist: flask>=3.0.0
|
|
32
|
+
Requires-Dist: flask-cors>=4.0.0
|
|
33
|
+
Requires-Dist: watchdog>=3.0.0
|
|
34
|
+
Requires-Dist: python-socketio>=5.14.0
|
|
35
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
36
|
+
Requires-Dist: aiohttp-cors<0.8.0,>=0.7.0
|
|
37
|
+
Requires-Dist: python-engineio>=4.8.0
|
|
38
|
+
Requires-Dist: aiofiles>=23.0.0
|
|
39
|
+
Requires-Dist: websockets>=12.0
|
|
40
|
+
Requires-Dist: python-frontmatter>=1.0.0
|
|
41
|
+
Requires-Dist: mistune>=3.0.0
|
|
42
|
+
Requires-Dist: tree-sitter>=0.21.0
|
|
43
|
+
Requires-Dist: ijson>=3.2.0
|
|
44
|
+
Requires-Dist: toml>=0.10.2
|
|
45
|
+
Requires-Dist: packaging>=21.0
|
|
46
|
+
Requires-Dist: pydantic>=2.0.0
|
|
47
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
48
|
+
Requires-Dist: rich>=13.0.0
|
|
49
|
+
Requires-Dist: questionary>=2.0.0
|
|
50
|
+
Requires-Dist: pyee>=13.0.0
|
|
51
|
+
Requires-Dist: pathspec>=0.11.0
|
|
52
|
+
Requires-Dist: fastapi>=0.100.0
|
|
53
|
+
Requires-Dist: uvicorn>=0.20.0
|
|
54
|
+
Provides-Extra: mcp
|
|
55
|
+
Requires-Dist: mcp>=0.1.0; extra == "mcp"
|
|
56
|
+
Requires-Dist: mcp-vector-search>=0.1.0; extra == "mcp"
|
|
57
|
+
Requires-Dist: mcp-browser>=0.1.0; extra == "mcp"
|
|
58
|
+
Requires-Dist: mcp-ticketer>=0.1.0; extra == "mcp"
|
|
59
|
+
Provides-Extra: dev
|
|
60
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
61
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
62
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
63
|
+
Requires-Dist: ruff>=0.8.0; extra == "dev"
|
|
64
|
+
Requires-Dist: pylint>=3.0.0; extra == "dev"
|
|
65
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
66
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
67
|
+
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
|
|
68
|
+
Requires-Dist: types-requests>=2.25.0; extra == "dev"
|
|
69
|
+
Provides-Extra: eval
|
|
70
|
+
Requires-Dist: deepeval>=1.0.0; extra == "eval"
|
|
71
|
+
Requires-Dist: pytest>=7.4.0; extra == "eval"
|
|
72
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "eval"
|
|
73
|
+
Requires-Dist: pytest-timeout>=2.1.0; extra == "eval"
|
|
74
|
+
Provides-Extra: docs
|
|
75
|
+
Requires-Dist: sphinx>=7.2.0; extra == "docs"
|
|
76
|
+
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
|
|
77
|
+
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
78
|
+
Provides-Extra: monitor
|
|
79
|
+
Requires-Dist: python-socketio>=5.14.0; extra == "monitor"
|
|
80
|
+
Requires-Dist: aiohttp>=3.9.0; extra == "monitor"
|
|
81
|
+
Requires-Dist: aiohttp-cors<0.8.0,>=0.7.0; extra == "monitor"
|
|
82
|
+
Requires-Dist: python-engineio>=4.8.0; extra == "monitor"
|
|
83
|
+
Requires-Dist: aiofiles>=23.0.0; extra == "monitor"
|
|
84
|
+
Requires-Dist: websockets>=12.0; extra == "monitor"
|
|
85
|
+
Provides-Extra: data-processing
|
|
86
|
+
Requires-Dist: pandas>=2.1.0; extra == "data-processing"
|
|
87
|
+
Requires-Dist: openpyxl>=3.1.0; extra == "data-processing"
|
|
88
|
+
Requires-Dist: xlsxwriter>=3.1.0; extra == "data-processing"
|
|
89
|
+
Requires-Dist: numpy>=1.24.0; extra == "data-processing"
|
|
90
|
+
Requires-Dist: pyarrow>=14.0.0; extra == "data-processing"
|
|
91
|
+
Requires-Dist: dask>=2023.12.0; extra == "data-processing"
|
|
92
|
+
Requires-Dist: polars>=0.19.0; extra == "data-processing"
|
|
93
|
+
Requires-Dist: xlrd>=2.0.0; extra == "data-processing"
|
|
94
|
+
Requires-Dist: xlwt>=1.3.0; extra == "data-processing"
|
|
95
|
+
Requires-Dist: csvkit>=1.3.0; extra == "data-processing"
|
|
96
|
+
Requires-Dist: tabulate>=0.9.0; extra == "data-processing"
|
|
97
|
+
Requires-Dist: python-dateutil>=2.8.0; extra == "data-processing"
|
|
98
|
+
Requires-Dist: lxml>=4.9.0; extra == "data-processing"
|
|
99
|
+
Requires-Dist: sqlalchemy>=2.0.0; extra == "data-processing"
|
|
100
|
+
Requires-Dist: psycopg2-binary>=2.9.0; extra == "data-processing"
|
|
101
|
+
Requires-Dist: pymongo>=4.5.0; extra == "data-processing"
|
|
102
|
+
Requires-Dist: redis>=5.0.0; extra == "data-processing"
|
|
103
|
+
Requires-Dist: beautifulsoup4>=4.12.0; extra == "data-processing"
|
|
104
|
+
Requires-Dist: jsonschema>=4.19.0; extra == "data-processing"
|
|
105
|
+
Provides-Extra: memory
|
|
106
|
+
Requires-Dist: kuzu-memory>=1.1.5; extra == "memory"
|
|
107
|
+
Dynamic: license-file
|
|
108
|
+
|
|
109
|
+
# Claude MPM - Multi-Agent Project Manager
|
|
110
|
+
|
|
111
|
+
A powerful orchestration framework for **Claude Code (CLI)** that enables multi-agent workflows, session management, and real-time monitoring through a streamlined Rich-based interface.
|
|
112
|
+
|
|
113
|
+
> **⚠️ Important**: Claude MPM **requires Claude Code CLI** (v2.1.3+), not Claude Desktop (app). All MCP integrations work with Claude Code's CLI interface only.
|
|
114
|
+
>
|
|
115
|
+
> **Don't have Claude Code?** Install from: https://docs.anthropic.com/en/docs/claude-code
|
|
116
|
+
>
|
|
117
|
+
> **Quick Start**: See [Getting Started Guide](docs/getting-started/README.md) to get running in 5 minutes!
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Who Should Use Claude MPM?
|
|
122
|
+
|
|
123
|
+
- 👥 **[Non-Technical Users (Founders/PMs)](docs/usecases/non-technical-users.md)** - Research and understand codebases using Research Mode - no coding experience required
|
|
124
|
+
- 💻 **[Developers](docs/usecases/developers.md)** - Multi-agent development workflows with semantic code search and advanced features
|
|
125
|
+
- 🏢 **[Teams](docs/usecases/teams.md)** - Collaboration patterns, session management, and coordinated workflows
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## What is Claude MPM?
|
|
130
|
+
|
|
131
|
+
Claude MPM transforms Claude Code into a **multi-agent orchestration platform** with:
|
|
132
|
+
|
|
133
|
+
- **47+ Specialized Agents** - From Git repositories (Python, Rust, QA, Security, Ops, etc.)
|
|
134
|
+
- **Intelligent Task Routing** - PM agent delegates work to specialist agents
|
|
135
|
+
- **Session Management** - Resume previous sessions with full context preservation
|
|
136
|
+
- **Semantic Code Search** - AI-powered discovery of existing code and patterns
|
|
137
|
+
- **Real-Time Monitoring** - Live dashboard showing agent activity and performance
|
|
138
|
+
- **Git Repository Integration** - Always up-to-date agents and skills from curated repositories
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Quick Installation
|
|
143
|
+
|
|
144
|
+
### Prerequisites
|
|
145
|
+
|
|
146
|
+
1. **Python 3.11+** (required - older versions will install outdated claude-mpm)
|
|
147
|
+
2. **Claude Code CLI v2.1.3+** (required!)
|
|
148
|
+
|
|
149
|
+
> ⚠️ **Python Version Note**: Claude MPM requires Python 3.11 or higher. If you have Python 3.9 or 3.10, you'll get an old version (4.x) that lacks current features. Check with `python3 --version` before installing.
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Verify Claude Code is installed
|
|
153
|
+
claude --version
|
|
154
|
+
|
|
155
|
+
# If not installed, get it from:
|
|
156
|
+
# https://docs.anthropic.com/en/docs/claude-code
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Install Claude MPM
|
|
160
|
+
|
|
161
|
+
**Homebrew (macOS):**
|
|
162
|
+
```bash
|
|
163
|
+
brew install claude-mpm --with-monitor
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**pipx/uv (recommended):**
|
|
167
|
+
```bash
|
|
168
|
+
# With pipx
|
|
169
|
+
pipx install "claude-mpm[monitor]"
|
|
170
|
+
|
|
171
|
+
# Or with uv
|
|
172
|
+
uv tool install "claude-mpm[monitor]"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**pip:**
|
|
176
|
+
```bash
|
|
177
|
+
pip install "claude-mpm[monitor]"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Verify Installation
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Check versions
|
|
184
|
+
claude-mpm --version
|
|
185
|
+
claude --version
|
|
186
|
+
|
|
187
|
+
# Run diagnostics
|
|
188
|
+
claude-mpm doctor
|
|
189
|
+
|
|
190
|
+
# Verify agents deployed
|
|
191
|
+
ls ~/.claude/agents/ # Should show 47+ agents
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**What You Should See:**
|
|
195
|
+
- ✅ 47+ agents deployed to `~/.claude/agents/`
|
|
196
|
+
- ✅ 17 bundled skills (in Python package)
|
|
197
|
+
- ✅ Agent sources configured
|
|
198
|
+
- ✅ Progress bars showing sync and deployment
|
|
199
|
+
|
|
200
|
+
**💡 Recommended Partners**: Install [kuzu-memory](https://github.com/bobmatnyc/kuzu-memory) (persistent context) and [mcp-vector-search](https://github.com/bobmatnyc/mcp-vector-search) (semantic search) for enhanced capabilities.
|
|
201
|
+
|
|
202
|
+
**💡 Tool Version Management**: Use [ASDF version manager](docs/guides/asdf-tool-versions.md) to avoid Python/uv version conflicts across projects.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Key Features
|
|
207
|
+
|
|
208
|
+
### 🎯 Multi-Agent Orchestration
|
|
209
|
+
- **47+ Specialized Agents** from Git repositories covering all development needs
|
|
210
|
+
- **Smart Task Routing** via PM agent intelligently delegating to specialists
|
|
211
|
+
- **Session Management** with `--resume` flag for seamless continuity
|
|
212
|
+
- **Resume Log System** with automatic 10k-token summaries at 70%/85%/95% thresholds
|
|
213
|
+
|
|
214
|
+
[→ Learn more: Multi-Agent Development](docs/usecases/developers.md#multi-agent-development)
|
|
215
|
+
|
|
216
|
+
### 📦 Git Repository Integration
|
|
217
|
+
- **Curated Content** with 47+ agents automatically deployed from repositories
|
|
218
|
+
- **Always Up-to-Date** with ETag-based caching (95%+ bandwidth reduction)
|
|
219
|
+
- **Hierarchical BASE-AGENT.md** for template inheritance and DRY principles
|
|
220
|
+
- **Custom Repositories** via `claude-mpm agent-source add`
|
|
221
|
+
|
|
222
|
+
[→ Learn more: Agent Sources](docs/user/agent-sources.md)
|
|
223
|
+
|
|
224
|
+
### 🎯 Skills System
|
|
225
|
+
- **17 Bundled Skills** covering Git, TDD, Docker, API docs, testing, and more
|
|
226
|
+
- **Three-Tier Organization**: Bundled/user/project with priority resolution
|
|
227
|
+
- **Auto-Linking** to relevant agents based on roles
|
|
228
|
+
- **Custom Skills** via `.claude/skills/` or skill repositories
|
|
229
|
+
|
|
230
|
+
[→ Learn more: Skills Guide](docs/user/skills-guide.md)
|
|
231
|
+
|
|
232
|
+
### 🔍 Semantic Code Search
|
|
233
|
+
- **AI-Powered Discovery** with mcp-vector-search integration
|
|
234
|
+
- **Find by Intent** not just keywords ("authentication logic" finds relevant code)
|
|
235
|
+
- **Pattern Recognition** for discovering similar implementations
|
|
236
|
+
- **Live Updates** tracking code changes automatically
|
|
237
|
+
|
|
238
|
+
[→ Learn more: Developer Use Cases](docs/usecases/developers.md#semantic-code-search)
|
|
239
|
+
|
|
240
|
+
### 🧪 MPM Commander (ALPHA)
|
|
241
|
+
- **Multi-Project Orchestration** with autonomous AI coordination across codebases
|
|
242
|
+
- **Tmux Integration** for isolated project environments and session management
|
|
243
|
+
- **Event-Driven Architecture** with inbox system for cross-project communication
|
|
244
|
+
- **LLM-Powered Decisions** via OpenRouter for autonomous work queue processing
|
|
245
|
+
- **Real-Time Monitoring** with state tracking (IDLE, WORKING, BLOCKED, PAUSED, ERROR)
|
|
246
|
+
- ⚠️ **Experimental** - API and CLI interface subject to change
|
|
247
|
+
|
|
248
|
+
[→ Commander Documentation](docs/commander/usage-guide.md)
|
|
249
|
+
|
|
250
|
+
### 🔌 Advanced Integration
|
|
251
|
+
- **MCP Integration** with full Model Context Protocol support
|
|
252
|
+
- **Real-Time Monitoring** via `--monitor` flag and web dashboard
|
|
253
|
+
- **Multi-Project Support** with per-session working directories
|
|
254
|
+
- **Git Integration** with diff viewing and change tracking
|
|
255
|
+
|
|
256
|
+
[→ Learn more: MCP Gateway](docs/developer/13-mcp-gateway/README.md)
|
|
257
|
+
|
|
258
|
+
### ⚡ Performance & Security
|
|
259
|
+
- **Simplified Architecture** with ~3,700 lines removed for better performance
|
|
260
|
+
- **Enhanced Security** with comprehensive input validation
|
|
261
|
+
- **Intelligent Caching** with ~200ms faster startup via hash-based invalidation
|
|
262
|
+
- **Memory Management** with cleanup commands for large conversation histories
|
|
263
|
+
|
|
264
|
+
[→ Learn more: Architecture](docs/developer/ARCHITECTURE.md)
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Quick Usage
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Start interactive mode
|
|
272
|
+
claude-mpm
|
|
273
|
+
|
|
274
|
+
# Start with monitoring dashboard
|
|
275
|
+
claude-mpm run --monitor
|
|
276
|
+
|
|
277
|
+
# Resume previous session
|
|
278
|
+
claude-mpm run --resume
|
|
279
|
+
|
|
280
|
+
# Semantic code search
|
|
281
|
+
claude-mpm search "authentication logic"
|
|
282
|
+
# or inside Claude Code:
|
|
283
|
+
/mpm-search "authentication logic"
|
|
284
|
+
|
|
285
|
+
# Health diagnostics
|
|
286
|
+
claude-mpm doctor
|
|
287
|
+
|
|
288
|
+
# Verify MCP services
|
|
289
|
+
claude-mpm verify
|
|
290
|
+
|
|
291
|
+
# Manage memory
|
|
292
|
+
claude-mpm cleanup-memory
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**💡 Update Checking**: Claude MPM automatically checks for updates and verifies Claude Code compatibility on startup. Configure in `~/.claude-mpm/configuration.yaml` or see [docs/update-checking.md](docs/update-checking.md).
|
|
296
|
+
|
|
297
|
+
[→ Complete usage examples: User Guide](docs/user/user-guide.md)
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## What's New in v5.0
|
|
302
|
+
|
|
303
|
+
### Git Repository Integration for Agents & Skills
|
|
304
|
+
|
|
305
|
+
- **📦 Massive Library**: 47+ agents and hundreds of skills deployed automatically
|
|
306
|
+
- **🏢 Official Content**: Anthropic's official skills repository included by default
|
|
307
|
+
- **🔧 Fully Extensible**: Add your own repositories with immediate testing
|
|
308
|
+
- **🌳 Smart Organization**: Hierarchical BASE-AGENT.md inheritance
|
|
309
|
+
- **📊 Clear Visibility**: Two-phase progress bars (sync + deployment)
|
|
310
|
+
- **✅ Fail-Fast Testing**: Test repositories before they cause startup issues
|
|
311
|
+
|
|
312
|
+
**Quick Start with Custom Repositories:**
|
|
313
|
+
```bash
|
|
314
|
+
# Add custom agent repository
|
|
315
|
+
claude-mpm agent-source add https://github.com/yourorg/your-agents
|
|
316
|
+
|
|
317
|
+
# Add custom skill repository
|
|
318
|
+
claude-mpm skill-source add https://github.com/yourorg/your-skills
|
|
319
|
+
|
|
320
|
+
# Test repository without saving
|
|
321
|
+
claude-mpm agent-source add https://github.com/yourorg/your-agents --test
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
[→ Full details: What's New](CHANGELOG.md)
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Documentation
|
|
329
|
+
|
|
330
|
+
**📚 [Complete Documentation Hub](docs/README.md)** - Start here for all documentation!
|
|
331
|
+
|
|
332
|
+
### Quick Links by User Type
|
|
333
|
+
|
|
334
|
+
#### 👥 For Users
|
|
335
|
+
- **[🚀 5-Minute Quick Start](docs/user/quickstart.md)** - Get running immediately
|
|
336
|
+
- **[📦 Installation Guide](docs/user/installation.md)** - All installation methods
|
|
337
|
+
- **[📖 User Guide](docs/user/user-guide.md)** - Complete user documentation
|
|
338
|
+
- **[❓ FAQ](docs/guides/FAQ.md)** - Common questions answered
|
|
339
|
+
|
|
340
|
+
#### 💻 For Developers
|
|
341
|
+
- **[🏗️ Architecture Overview](docs/developer/ARCHITECTURE.md)** - Service-oriented system design
|
|
342
|
+
- **[💻 Developer Guide](docs/developer/README.md)** - Complete development documentation
|
|
343
|
+
- **[🧪 Contributing](docs/developer/03-development/README.md)** - How to contribute
|
|
344
|
+
- **[📊 API Reference](docs/API.md)** - Complete API documentation
|
|
345
|
+
|
|
346
|
+
#### 🤖 For Agent Creators
|
|
347
|
+
- **[🤖 Agent System](docs/AGENTS.md)** - Complete agent development guide
|
|
348
|
+
- **[📝 Creation Guide](docs/developer/07-agent-system/creation-guide.md)** - Step-by-step tutorials
|
|
349
|
+
- **[📋 Schema Reference](docs/developer/10-schemas/agent_schema_documentation.md)** - Agent format specifications
|
|
350
|
+
|
|
351
|
+
#### 🚀 For Operations
|
|
352
|
+
- **[🚀 Deployment](docs/DEPLOYMENT.md)** - Release management & versioning
|
|
353
|
+
- **[📊 Monitoring](docs/MONITOR.md)** - Real-time dashboard & metrics
|
|
354
|
+
- **[🐛 Troubleshooting](docs/TROUBLESHOOTING.md)** - Enhanced `doctor` command with auto-fix
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## Contributing
|
|
359
|
+
|
|
360
|
+
Contributions are welcome! Please see:
|
|
361
|
+
- **[Contributing Guide](docs/developer/03-development/README.md)** - How to contribute
|
|
362
|
+
- **[Code Formatting](docs/developer/CODE_FORMATTING.md)** - Code quality standards
|
|
363
|
+
- **[Project Structure](docs/reference/STRUCTURE.md)** - Codebase organization
|
|
364
|
+
|
|
365
|
+
**Development Workflow:**
|
|
366
|
+
```bash
|
|
367
|
+
# Complete development setup
|
|
368
|
+
make dev-complete
|
|
369
|
+
|
|
370
|
+
# Or step by step:
|
|
371
|
+
make setup-dev # Install in development mode
|
|
372
|
+
make setup-pre-commit # Set up automated code formatting
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 📜 License
|
|
378
|
+
|
|
379
|
+
[](LICENSE)
|
|
380
|
+
|
|
381
|
+
Licensed under the [Elastic License 2.0](LICENSE) - free for internal use and commercial products.
|
|
382
|
+
|
|
383
|
+
**Main restriction:** Cannot offer as a hosted SaaS service without a commercial license.
|
|
384
|
+
|
|
385
|
+
📖 [Licensing FAQ](LICENSE-FAQ.md) | 💼 Commercial licensing: bob@matsuoka.com
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## Credits
|
|
390
|
+
|
|
391
|
+
- Based on [claude-multiagent-pm](https://github.com/kfsone/claude-multiagent-pm)
|
|
392
|
+
- Enhanced for [Claude Code (CLI)](https://docs.anthropic.com/en/docs/claude-code) integration
|
|
393
|
+
- Built with ❤️ by the Claude MPM community
|