peaks-loop 4.1.1 → 4.1.3
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.
- package/.claude-plugin/marketplace.json +136 -47
- package/CHANGELOG.md +106 -0
- package/README-en.md +4 -4
- package/README.md +25 -4
- package/bin/node-floor.mjs +59 -0
- package/bin/peaks.js +13 -0
- package/config/eslint/tsconfig.lint.json +2 -1
- package/contracts/readonly-argv-whitelist.json +211 -0
- package/dist/cli/cli-helpers.d.ts +0 -1
- package/dist/cli/cli-helpers.js +0 -1
- package/dist/cli/commands/_cli-error-envelope.js +0 -3
- package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
- package/dist/cli/commands/adapter-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.js +0 -1
- package/dist/cli/commands/audit-artifact-runners.d.ts +16 -0
- package/dist/cli/commands/audit-artifact-runners.js +170 -0
- package/dist/cli/commands/audit-command-shared.d.ts +97 -0
- package/dist/cli/commands/audit-command-shared.js +60 -0
- package/dist/cli/commands/audit-commands.d.ts +7 -31
- package/dist/cli/commands/audit-commands.js +65 -477
- package/dist/cli/commands/audit-goal-runners.d.ts +17 -0
- package/dist/cli/commands/audit-goal-runners.js +114 -0
- package/dist/cli/commands/audit-red-lines-runners.d.ts +11 -0
- package/dist/cli/commands/audit-red-lines-runners.js +43 -0
- package/dist/cli/commands/audit-refusal-data.d.ts +23 -0
- package/dist/cli/commands/audit-refusal-data.js +69 -0
- package/dist/cli/commands/audit-static-runners.d.ts +13 -0
- package/dist/cli/commands/audit-static-runners.js +139 -0
- package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
- package/dist/cli/commands/await-runners.d.ts +11 -0
- package/dist/cli/commands/await-runners.js +148 -0
- package/dist/cli/commands/bee-commands.d.ts +0 -2
- package/dist/cli/commands/bee-commands.js +0 -2
- package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
- package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
- package/dist/cli/commands/changeset-commands.d.ts +0 -2
- package/dist/cli/commands/changeset-commands.js +0 -2
- package/dist/cli/commands/code-auto-compact-command.d.ts +3 -0
- package/dist/cli/commands/code-auto-compact-command.js +124 -0
- package/dist/cli/commands/code-auto-compact-envelope.d.ts +22 -0
- package/dist/cli/commands/code-auto-compact-envelope.js +39 -0
- package/dist/cli/commands/code-commands.d.ts +0 -3
- package/dist/cli/commands/code-commands.js +0 -3
- package/dist/cli/commands/code-context-audit-command.d.ts +3 -0
- package/dist/cli/commands/code-context-audit-command.js +68 -0
- package/dist/cli/commands/code-context-now-command.d.ts +3 -0
- package/dist/cli/commands/code-context-now-command.js +124 -0
- package/dist/cli/commands/code-context-now-envelope.d.ts +66 -0
- package/dist/cli/commands/code-context-now-envelope.js +136 -0
- package/dist/cli/commands/code-context-now-mapping.d.ts +27 -0
- package/dist/cli/commands/code-context-now-mapping.js +43 -0
- package/dist/cli/commands/code-emit-handoff-command.d.ts +3 -0
- package/dist/cli/commands/code-emit-handoff-command.js +99 -0
- package/dist/cli/commands/code-gate-command.d.ts +0 -1
- package/dist/cli/commands/code-gate-command.js +0 -1
- package/dist/cli/commands/code-gate-step-08-command.d.ts +3 -0
- package/dist/cli/commands/code-gate-step-08-command.js +139 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
- package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
- package/dist/cli/commands/code-job-shape-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
- package/dist/cli/commands/code-mode-gate-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +0 -4
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
- package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
- package/dist/cli/commands/code-mode-status-command.js +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
- package/dist/cli/commands/code-post-compact-detect-command.d.ts +3 -0
- package/dist/cli/commands/code-post-compact-detect-command.js +50 -0
- package/dist/cli/commands/code-run-command.js +0 -1
- package/dist/cli/commands/code-runtime-commands.d.ts +9 -46
- package/dist/cli/commands/code-runtime-commands.js +20 -687
- package/dist/cli/commands/code-runtime-session.d.ts +1 -0
- package/dist/cli/commands/code-runtime-session.js +15 -0
- package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
- package/dist/cli/commands/codegraph-command-runtime.js +19 -7
- package/dist/cli/commands/codegraph-commands.js +20 -193
- package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
- package/dist/cli/commands/codegraph-init-command.js +162 -0
- package/dist/cli/commands/codegraph-status-command.js +5 -6
- package/dist/cli/commands/compact-command.d.ts +6 -3
- package/dist/cli/commands/compact-command.js +12 -563
- package/dist/cli/commands/compact-dry-run-command.d.ts +3 -0
- package/dist/cli/commands/compact-dry-run-command.js +87 -0
- package/dist/cli/commands/compact-force-command.d.ts +3 -0
- package/dist/cli/commands/compact-force-command.js +98 -0
- package/dist/cli/commands/compact-harness-window-command.d.ts +3 -0
- package/dist/cli/commands/compact-harness-window-command.js +174 -0
- package/dist/cli/commands/compact-history-command.d.ts +3 -0
- package/dist/cli/commands/compact-history-command.js +89 -0
- package/dist/cli/commands/compact-read-commands.d.ts +3 -0
- package/dist/cli/commands/compact-read-commands.js +123 -0
- package/dist/cli/commands/compact-settle-command.d.ts +3 -0
- package/dist/cli/commands/compact-settle-command.js +130 -0
- package/dist/cli/commands/compact-shared.d.ts +9 -0
- package/dist/cli/commands/compact-shared.js +26 -0
- package/dist/cli/commands/container-commands.d.ts +0 -1
- package/dist/cli/commands/container-commands.js +0 -1
- package/dist/cli/commands/context-commands.d.ts +0 -1
- package/dist/cli/commands/context-commands.js +0 -1
- package/dist/cli/commands/core/doctor-command.d.ts +0 -1
- package/dist/cli/commands/core/doctor-command.js +0 -9
- package/dist/cli/commands/core/memory-command.js +0 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.d.ts +1 -44
- package/dist/cli/commands/core/skill-command.js +13 -550
- package/dist/cli/commands/core/skill-context-verdict.d.ts +38 -0
- package/dist/cli/commands/core/skill-context-verdict.js +63 -0
- package/dist/cli/commands/core/skill-generated-config-notice.d.ts +41 -0
- package/dist/cli/commands/core/skill-generated-config-notice.js +75 -0
- package/dist/cli/commands/core/skill-heartbeat-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-heartbeat-commands.js +50 -0
- package/dist/cli/commands/core/skill-presence-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-presence-commands.js +123 -0
- package/dist/cli/commands/core/skill-presence-housekeeping-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-presence-housekeeping-commands.js +165 -0
- package/dist/cli/commands/core/skill-registry-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-registry-commands.js +117 -0
- package/dist/cli/commands/core/skill-runbook-command.d.ts +3 -0
- package/dist/cli/commands/core/skill-runbook-command.js +29 -0
- package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
- package/dist/cli/commands/core-artifact-commands.js +0 -1
- package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
- package/dist/cli/commands/cron-commands-actions.js +0 -2
- package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
- package/dist/cli/commands/cron-commands-schedule.js +0 -1
- package/dist/cli/commands/cron-commands.d.ts +0 -1
- package/dist/cli/commands/cron-commands.js +0 -2
- package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
- package/dist/cli/commands/cron-scheduler-commands.js +0 -1
- package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
- package/dist/cli/commands/cron-scheduler-persist.js +0 -5
- package/dist/cli/commands/dashboard-summary.d.ts +0 -1
- package/dist/cli/commands/dispatch-command-spec.d.ts +2 -0
- package/dist/cli/commands/dispatch-command-spec.js +62 -0
- package/dist/cli/commands/dispatch-commands.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.js +159 -802
- package/dist/cli/commands/dispatch-detached-branch.d.ts +3 -0
- package/dist/cli/commands/dispatch-detached-branch.js +58 -0
- package/dist/cli/commands/dispatch-envelope.d.ts +36 -0
- package/dist/cli/commands/dispatch-envelope.js +104 -0
- package/dist/cli/commands/dispatch-from-dag.js +0 -4
- package/dist/cli/commands/dispatch-isolation-lease.d.ts +17 -0
- package/dist/cli/commands/dispatch-isolation-lease.js +149 -0
- package/dist/cli/commands/dispatch-preflight.d.ts +7 -0
- package/dist/cli/commands/dispatch-preflight.js +105 -0
- package/dist/cli/commands/dispatch-prompt-blocks.d.ts +10 -0
- package/dist/cli/commands/dispatch-prompt-blocks.js +56 -0
- package/dist/cli/commands/dispatch-prompt-composition.d.ts +30 -0
- package/dist/cli/commands/dispatch-prompt-composition.js +171 -0
- package/dist/cli/commands/dispatch-record-write.d.ts +24 -0
- package/dist/cli/commands/dispatch-record-write.js +96 -0
- package/dist/cli/commands/dispatch-tool-call.d.ts +15 -0
- package/dist/cli/commands/dispatch-tool-call.js +128 -0
- package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
- package/dist/cli/commands/e2e-verify.d.ts +0 -1
- package/dist/cli/commands/ecc-commands.d.ts +0 -1
- package/dist/cli/commands/evolution-command-shared.d.ts +78 -0
- package/dist/cli/commands/evolution-command-shared.js +107 -0
- package/dist/cli/commands/evolution-commands.d.ts +11 -2
- package/dist/cli/commands/evolution-commands.js +19 -351
- package/dist/cli/commands/evolution-evaluate-command.d.ts +24 -0
- package/dist/cli/commands/evolution-evaluate-command.js +138 -0
- package/dist/cli/commands/evolution-propose-command.d.ts +23 -0
- package/dist/cli/commands/evolution-propose-command.js +145 -0
- package/dist/cli/commands/evolution-status-command.d.ts +17 -0
- package/dist/cli/commands/evolution-status-command.js +41 -0
- package/dist/cli/commands/evolution-verdict-commands.d.ts +30 -0
- package/dist/cli/commands/evolution-verdict-commands.js +100 -0
- package/dist/cli/commands/feedback-commands.d.ts +0 -1
- package/dist/cli/commands/feedback-commands.js +0 -2
- package/dist/cli/commands/finalize-accumulator.d.ts +44 -0
- package/dist/cli/commands/finalize-accumulator.js +55 -0
- package/dist/cli/commands/finalize-branches.d.ts +34 -0
- package/dist/cli/commands/finalize-branches.js +119 -0
- package/dist/cli/commands/finalize-runners.d.ts +3 -0
- package/dist/cli/commands/finalize-runners.js +92 -0
- package/dist/cli/commands/finalize-selection.d.ts +65 -0
- package/dist/cli/commands/finalize-selection.js +35 -0
- package/dist/cli/commands/fixture-commands.d.ts +0 -2
- package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
- package/dist/cli/commands/gate-commands-enforce.js +0 -4
- package/dist/cli/commands/gate-commands.js +26 -10
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
- package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
- package/dist/cli/commands/heartbeat-commands-action.js +0 -6
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
- package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
- package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
- package/dist/cli/commands/heartbeat-commands.js +0 -1
- package/dist/cli/commands/hooks-commands.js +0 -11
- package/dist/cli/commands/ide-commands.d.ts +0 -1
- package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
- package/dist/cli/commands/job-add-slice-command.js +0 -2
- package/dist/cli/commands/job-checkpoint-commands.d.ts +3 -0
- package/dist/cli/commands/job-checkpoint-commands.js +157 -0
- package/dist/cli/commands/job-command-shared.d.ts +109 -0
- package/dist/cli/commands/job-command-shared.js +72 -0
- package/dist/cli/commands/job-commands.d.ts +4 -64
- package/dist/cli/commands/job-commands.js +42 -556
- package/dist/cli/commands/job-cost-check-command.d.ts +3 -0
- package/dist/cli/commands/job-cost-check-command.js +41 -0
- package/dist/cli/commands/job-init-status-commands.d.ts +3 -0
- package/dist/cli/commands/job-init-status-commands.js +149 -0
- package/dist/cli/commands/job-run-commands.d.ts +3 -0
- package/dist/cli/commands/job-run-commands.js +97 -0
- package/dist/cli/commands/job-state-root.d.ts +35 -0
- package/dist/cli/commands/job-state-root.js +76 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
- package/dist/cli/commands/lease-metrics-commands.js +0 -1
- package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
- package/dist/cli/commands/lease-stats-commands.js +0 -1
- package/dist/cli/commands/log-commands.d.ts +0 -2
- package/dist/cli/commands/log-commands.js +0 -3
- package/dist/cli/commands/loop-eval-capture-index.d.ts +4 -0
- package/dist/cli/commands/loop-eval-capture-index.js +44 -0
- package/dist/cli/commands/loop-eval-commands.d.ts +8 -5
- package/dist/cli/commands/loop-eval-commands.js +12 -629
- package/dist/cli/commands/loop-eval-eval-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-eval-command.js +168 -0
- package/dist/cli/commands/loop-eval-monotonic-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-monotonic-command.js +90 -0
- package/dist/cli/commands/loop-eval-parents.d.ts +7 -0
- package/dist/cli/commands/loop-eval-parents.js +20 -0
- package/dist/cli/commands/loop-eval-run-code.d.ts +7 -0
- package/dist/cli/commands/loop-eval-run-code.js +40 -0
- package/dist/cli/commands/loop-eval-run-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-run-command.js +113 -0
- package/dist/cli/commands/loop-eval-spec-commands.d.ts +3 -0
- package/dist/cli/commands/loop-eval-spec-commands.js +165 -0
- package/dist/cli/commands/loop-eval-spec-lint-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-spec-lint-command.js +42 -0
- package/dist/cli/commands/loop-eval-workflow-commands.d.ts +3 -0
- package/dist/cli/commands/loop-eval-workflow-commands.js +141 -0
- package/dist/cli/commands/mcp-commands.d.ts +10 -0
- package/dist/cli/commands/mcp-commands.js +157 -0
- package/dist/cli/commands/memory-commands.d.ts +0 -1
- package/dist/cli/commands/memory-commands.js +0 -1
- package/dist/cli/commands/observability-commands.d.ts +0 -6
- package/dist/cli/commands/observability-commands.js +0 -6
- package/dist/cli/commands/outer-cache-commands.js +0 -2
- package/dist/cli/commands/playwright-commands.d.ts +0 -1
- package/dist/cli/commands/playwright-commands.js +0 -1
- package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.js +0 -2
- package/dist/cli/commands/preferences-commands.js +0 -2
- package/dist/cli/commands/primer-command.d.ts +0 -1
- package/dist/cli/commands/primer-command.js +0 -1
- package/dist/cli/commands/project-commands.js +0 -1
- package/dist/cli/commands/qa-commands.d.ts +0 -1
- package/dist/cli/commands/qa-commands.js +0 -2
- package/dist/cli/commands/release-commands.js +0 -9
- package/dist/cli/commands/request-command-options.d.ts +49 -0
- package/dist/cli/commands/request-command-options.js +1 -0
- package/dist/cli/commands/request-commands.d.ts +3 -10
- package/dist/cli/commands/request-commands.js +17 -532
- package/dist/cli/commands/request-format-helpers.d.ts +0 -1
- package/dist/cli/commands/request-format-helpers.js +0 -2
- package/dist/cli/commands/request-init-command.d.ts +3 -0
- package/dist/cli/commands/request-init-command.js +100 -0
- package/dist/cli/commands/request-lint-command.d.ts +3 -0
- package/dist/cli/commands/request-lint-command.js +50 -0
- package/dist/cli/commands/request-list-command.d.ts +10 -0
- package/dist/cli/commands/request-list-command.js +53 -0
- package/dist/cli/commands/request-repair-status-command.d.ts +3 -0
- package/dist/cli/commands/request-repair-status-command.js +61 -0
- package/dist/cli/commands/request-show-command.d.ts +3 -0
- package/dist/cli/commands/request-show-command.js +56 -0
- package/dist/cli/commands/request-transition-command.d.ts +3 -0
- package/dist/cli/commands/request-transition-command.js +122 -0
- package/dist/cli/commands/request-transition-failures.d.ts +8 -0
- package/dist/cli/commands/request-transition-failures.js +90 -0
- package/dist/cli/commands/request-transition-hooks.d.ts +50 -0
- package/dist/cli/commands/request-transition-hooks.js +115 -0
- package/dist/cli/commands/request-transition-preflight.d.ts +10 -0
- package/dist/cli/commands/request-transition-preflight.js +107 -0
- package/dist/cli/commands/runtime-commands.d.ts +0 -1
- package/dist/cli/commands/sc-commands.js +0 -1
- package/dist/cli/commands/scan-command-shared.d.ts +96 -0
- package/dist/cli/commands/scan-command-shared.js +83 -0
- package/dist/cli/commands/scan-commands.d.ts +3 -2
- package/dist/cli/commands/scan-commands.js +23 -463
- package/dist/cli/commands/scan-inventory-commands.d.ts +3 -0
- package/dist/cli/commands/scan-inventory-commands.js +96 -0
- package/dist/cli/commands/scan-project-commands.d.ts +3 -0
- package/dist/cli/commands/scan-project-commands.js +65 -0
- package/dist/cli/commands/scan-scope-commands.d.ts +3 -0
- package/dist/cli/commands/scan-scope-commands.js +149 -0
- package/dist/cli/commands/scan-scope-helpers.d.ts +8 -0
- package/dist/cli/commands/scan-scope-helpers.js +54 -0
- package/dist/cli/commands/scan-structural-commands.d.ts +3 -0
- package/dist/cli/commands/scan-structural-commands.js +113 -0
- package/dist/cli/commands/session-24h-mode.d.ts +0 -1
- package/dist/cli/commands/session-24h-mode.js +0 -2
- package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
- package/dist/cli/commands/session-checkpoint-command.js +0 -1
- package/dist/cli/commands/session-resume-command.d.ts +0 -1
- package/dist/cli/commands/session-resume-command.js +0 -1
- package/dist/cli/commands/shadcn-commands.js +0 -2
- package/dist/cli/commands/share-commands.d.ts +12 -71
- package/dist/cli/commands/share-commands.js +47 -569
- package/dist/cli/commands/share-error-hints.d.ts +14 -0
- package/dist/cli/commands/share-error-hints.js +38 -0
- package/dist/cli/commands/share-identity.d.ts +13 -0
- package/dist/cli/commands/share-identity.js +22 -0
- package/dist/cli/commands/share-record-paths.d.ts +37 -0
- package/dist/cli/commands/share-record-paths.js +68 -0
- package/dist/cli/commands/share-runners.d.ts +3 -0
- package/dist/cli/commands/share-runners.js +158 -0
- package/dist/cli/commands/shared-read-runners.d.ts +3 -0
- package/dist/cli/commands/shared-read-runners.js +51 -0
- package/dist/cli/commands/skill-search-commands.d.ts +0 -2
- package/dist/cli/commands/slice-check-command.d.ts +3 -0
- package/dist/cli/commands/slice-check-command.js +54 -0
- package/dist/cli/commands/slice-commands.d.ts +2 -22
- package/dist/cli/commands/slice-commands.js +18 -519
- package/dist/cli/commands/slice-decompose-artifacts.d.ts +18 -0
- package/dist/cli/commands/slice-decompose-artifacts.js +79 -0
- package/dist/cli/commands/slice-decompose-command.d.ts +3 -0
- package/dist/cli/commands/slice-decompose-command.js +123 -0
- package/dist/cli/commands/slice-integrate-commands.js +0 -1
- package/dist/cli/commands/slice-list-commands.d.ts +3 -0
- package/dist/cli/commands/slice-list-commands.js +182 -0
- package/dist/cli/commands/slice-pick-command.d.ts +3 -0
- package/dist/cli/commands/slice-pick-command.js +60 -0
- package/dist/cli/commands/slice-plan-command.d.ts +24 -0
- package/dist/cli/commands/slice-plan-command.js +111 -0
- package/dist/cli/commands/spill-demo-command.d.ts +0 -1
- package/dist/cli/commands/statusline-commands.js +0 -4
- package/dist/cli/commands/sub-agent/detached.js +0 -2
- package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
- package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
- package/dist/cli/commands/sub-agent-shared.js +0 -5
- package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
- package/dist/cli/commands/tech-commands.d.ts +0 -4
- package/dist/cli/commands/tech-commands.js +0 -4
- package/dist/cli/commands/vendor-detect.d.ts +0 -3
- package/dist/cli/commands/vendor-detect.js +0 -2
- package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
- package/dist/cli/commands/verdict-aggregate-command.js +0 -7
- package/dist/cli/commands/vm-commands.d.ts +0 -1
- package/dist/cli/commands/vm-commands.js +5 -29
- package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
- package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
- package/dist/cli/commands/vm-status-command.d.ts +3 -0
- package/dist/cli/commands/vm-status-command.js +50 -0
- package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
- package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
- package/dist/cli/commands/workflow-commands.d.ts +10 -1
- package/dist/cli/commands/workflow-commands.js +6 -608
- package/dist/cli/commands/workflow-gate-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-gate-commands.js +116 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
- package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
- package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
- package/dist/cli/commands/workflow-plan-helpers.d.ts +48 -0
- package/dist/cli/commands/workflow-plan-helpers.js +103 -0
- package/dist/cli/commands/workflow-planning-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-planning-commands.js +56 -0
- package/dist/cli/commands/workflow-swarm-actions.d.ts +7 -0
- package/dist/cli/commands/workflow-swarm-actions.js +109 -0
- package/dist/cli/commands/workflow-swarm-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-swarm-commands.js +138 -0
- package/dist/cli/commands/workflow-tech-actions.d.ts +10 -0
- package/dist/cli/commands/workflow-tech-actions.js +150 -0
- package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.js +0 -1
- package/dist/cli/commands/workspace/helpers.d.ts +0 -1
- package/dist/cli/commands/workspace/helpers.js +0 -1
- package/dist/cli/commands/workspace/init-actions.d.ts +10 -0
- package/dist/cli/commands/workspace/init-actions.js +199 -0
- package/dist/cli/commands/workspace/init-codegraph-stake.d.ts +10 -0
- package/dist/cli/commands/workspace/init-codegraph-stake.js +54 -0
- package/dist/cli/commands/workspace/init-command.d.ts +8 -130
- package/dist/cli/commands/workspace/init-command.js +59 -640
- package/dist/cli/commands/workspace/init-context.d.ts +58 -0
- package/dist/cli/commands/workspace/init-context.js +121 -0
- package/dist/cli/commands/workspace/init-envelope.d.ts +3 -0
- package/dist/cli/commands/workspace/init-envelope.js +34 -0
- package/dist/cli/commands/workspace/init-failures.d.ts +3 -0
- package/dist/cli/commands/workspace/init-failures.js +84 -0
- package/dist/cli/commands/workspace/init-hooks-decision.d.ts +24 -0
- package/dist/cli/commands/workspace/init-hooks-decision.js +189 -0
- package/dist/cli/commands/workspace/init-options.d.ts +102 -0
- package/dist/cli/commands/workspace/init-options.js +1 -0
- package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
- package/dist/cli/commands/workspace/migrate-command.js +0 -2
- package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
- package/dist/cli/commands/workspace/reconcile-command.js +0 -3
- package/dist/cli/commands/workspace-commands.d.ts +0 -2
- package/dist/cli/commands/workspace-commands.js +0 -4
- package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-commands.js +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
- package/dist/cli/commands/worktree-lease-commands.d.ts +10 -6
- package/dist/cli/commands/worktree-lease-commands.js +42 -513
- package/dist/cli/commands/worktree-lease-gc-command.d.ts +12 -0
- package/dist/cli/commands/worktree-lease-gc-command.js +117 -0
- package/dist/cli/commands/worktree-lease-git.d.ts +22 -0
- package/dist/cli/commands/worktree-lease-git.js +48 -0
- package/dist/cli/commands/worktree-lease-list-command.d.ts +12 -0
- package/dist/cli/commands/worktree-lease-list-command.js +100 -0
- package/dist/cli/commands/worktree-lease-load.d.ts +37 -0
- package/dist/cli/commands/worktree-lease-load.js +28 -0
- package/dist/cli/commands/worktree-lease-release-command.d.ts +13 -0
- package/dist/cli/commands/worktree-lease-release-command.js +105 -0
- package/dist/cli/commands/worktree-lease-renew-command.d.ts +11 -0
- package/dist/cli/commands/worktree-lease-renew-command.js +99 -0
- package/dist/cli/commands/worktree-lease-session.d.ts +22 -0
- package/dist/cli/commands/worktree-lease-session.js +29 -0
- package/dist/cli/commands/worktree-lease-spawn-command.d.ts +11 -0
- package/dist/cli/commands/worktree-lease-spawn-command.js +119 -0
- package/dist/cli/commands/worktree-lease-status-command.d.ts +11 -0
- package/dist/cli/commands/worktree-lease-status-command.js +86 -0
- package/dist/cli/commands/worktree-lease-store.d.ts +19 -0
- package/dist/cli/commands/worktree-lease-store.js +24 -0
- package/dist/cli/program.js +5 -7
- package/dist/reporters/bdd-reporter.js +0 -1
- package/dist/services/24h-mode/auto-engage.d.ts +0 -1
- package/dist/services/24h-mode/auto-engage.js +0 -1
- package/dist/services/24h-mode/decider.d.ts +0 -3
- package/dist/services/24h-mode/decider.js +0 -3
- package/dist/services/24h-mode/index.d.ts +0 -2
- package/dist/services/24h-mode/index.js +0 -2
- package/dist/services/24h-mode/state.d.ts +0 -1
- package/dist/services/24h-mode/state.js +0 -1
- package/dist/services/24h-mode/store.d.ts +0 -1
- package/dist/services/24h-mode/store.js +0 -1
- package/dist/services/adapter/adapter-registry.js +0 -1
- package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
- package/dist/services/artifacts/artifact-prerequisites.js +0 -19
- package/dist/services/artifacts/artifact-templates.d.ts +0 -1
- package/dist/services/artifacts/artifact-templates.js +0 -1
- package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
- package/dist/services/artifacts/request-artifact-service.js +0 -12
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
- package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
- package/dist/services/audit/artifact-writer.d.ts +0 -1
- package/dist/services/audit/artifact-writer.js +0 -1
- package/dist/services/audit/decision-writer.js +3 -1
- package/dist/services/audit/enforcer-liveness.js +0 -1
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
- package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
- package/dist/services/audit/red-line-audit-input.d.ts +11 -0
- package/dist/services/audit/red-line-audit-input.js +103 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
- package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
- package/dist/services/audit/types.d.ts +0 -2
- package/dist/services/audit/types.js +0 -2
- package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
- package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
- package/dist/services/audit-independent/security-audit-service.js +0 -2
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
- package/dist/services/best-practice/language-detector.js +0 -1
- package/dist/services/best-practice/output-formatter.d.ts +0 -1
- package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
- package/dist/services/capability-audit-service/types.d.ts +1 -3
- package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
- package/dist/services/changeset/changeset-check-service.d.ts +0 -3
- package/dist/services/changeset/changeset-check-service.js +0 -3
- package/dist/services/classify/classify-service.d.ts +0 -1
- package/dist/services/classify/classify-service.js +0 -1
- package/dist/services/classify/classify-types.d.ts +0 -1
- package/dist/services/classify/classify-types.js +0 -1
- package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
- package/dist/services/code/auto-compact-lifecycle.js +0 -10
- package/dist/services/code/auto-compact-modes.d.ts +0 -3
- package/dist/services/code/auto-compact-modes.js +0 -3
- package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
- package/dist/services/code/auto-compact-orchestrator.js +0 -29
- package/dist/services/code/batch-heartbeat-poller.js +0 -1
- package/dist/services/code/compact-event-settle.js +0 -1
- package/dist/services/code/dag-orchestrator.d.ts +0 -1
- package/dist/services/code/dag-orchestrator.js +0 -1
- package/dist/services/code/mode-gate-types.d.ts +0 -2
- package/dist/services/code/mode-gate-types.js +0 -1
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +0 -5
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
- package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
- package/dist/services/code/orchestrator-can-do.d.ts +0 -4
- package/dist/services/code/orchestrator-can-do.js +0 -3
- package/dist/services/code/status-line-renderer.js +0 -1
- package/dist/services/code-review/ecc-bridge.d.ts +0 -1
- package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
- package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
- package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
- package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
- package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
- package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
- package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
- package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
- package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
- package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
- package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
- package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
- package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
- package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
- package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
- package/dist/services/codegraph/codegraph-project-config.js +90 -0
- package/dist/services/codegraph/codegraph-service.d.ts +1 -2
- package/dist/services/codegraph/codegraph-service.js +11 -11
- package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
- package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
- package/dist/services/comments/comment-audit.d.ts +15 -4
- package/dist/services/comments/comment-audit.js +25 -4
- package/dist/services/comments/comment-citations.d.ts +8 -2
- package/dist/services/comments/comment-citations.js +31 -33
- package/dist/services/comments/comment-hygiene.d.ts +29 -3
- package/dist/services/comments/comment-hygiene.js +40 -3
- package/dist/services/comments/comment-prune.js +52 -4
- package/dist/services/comments/comment-spans.d.ts +30 -0
- package/dist/services/comments/comment-spans.js +266 -0
- package/dist/services/comments/prune-apply.d.ts +22 -0
- package/dist/services/comments/prune-apply.js +69 -2
- package/dist/services/compact/decision-tables.d.ts +0 -2
- package/dist/services/compact/decision-tables.js +0 -2
- package/dist/services/compact/request-transition-hook.js +0 -2
- package/dist/services/compact-history/compact-history-service.d.ts +0 -2
- package/dist/services/compact-history/compact-history-service.js +0 -1
- package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
- package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
- package/dist/services/config/config-rollback.js +0 -1
- package/dist/services/config/config-safety.d.ts +0 -1
- package/dist/services/config/config-safety.js +0 -1
- package/dist/services/config/config-service.d.ts +0 -1
- package/dist/services/config/config-service.js +0 -1
- package/dist/services/config/model-routing.d.ts +0 -3
- package/dist/services/config/model-routing.js +0 -5
- package/dist/services/container/container-lease.d.ts +0 -1
- package/dist/services/container/container-lease.js +0 -1
- package/dist/services/context/artifact-meta.js +0 -1
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
- package/dist/services/context/auto-compact-dispatcher.js +0 -14
- package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
- package/dist/services/context/auto-compact-reader.d.ts +0 -2
- package/dist/services/context/auto-compact-reader.js +0 -7
- package/dist/services/context/auto-compact-types.d.ts +0 -11
- package/dist/services/context/auto-compact-types.js +0 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
- package/dist/services/context/build-dispatch-system-prompt.js +8 -27
- package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
- package/dist/services/context/codegraph-unavailable-block.js +77 -0
- package/dist/services/context/context-audit-hint.d.ts +0 -1
- package/dist/services/context/context-audit-hint.js +0 -1
- package/dist/services/context/context-audit.d.ts +0 -1
- package/dist/services/context/context-audit.js +0 -1
- package/dist/services/context/harness-window-config.d.ts +0 -4
- package/dist/services/context/harness-window-config.js +0 -4
- package/dist/services/context/main-session-monitor.d.ts +0 -2
- package/dist/services/context/main-session-monitor.js +0 -2
- package/dist/services/context/memory-index-reader.d.ts +0 -2
- package/dist/services/context/memory-index-reader.js +0 -1
- package/dist/services/context/memory-preflight-config.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.js +0 -3
- package/dist/services/context/memory-preflight-support.d.ts +0 -5
- package/dist/services/context/post-compact-reinjection.d.ts +0 -1
- package/dist/services/context/post-compact-reinjection.js +0 -1
- package/dist/services/context/summary-view.d.ts +0 -1
- package/dist/services/context/summary-view.js +0 -1
- package/dist/services/crystallization/crystallization-service.d.ts +5 -11
- package/dist/services/crystallization/crystallization-service.js +3 -11
- package/dist/services/crystallization/crystallization-store.d.ts +6 -6
- package/dist/services/dispatch/await-batch-helpers.js +0 -3
- package/dist/services/dispatch/await-batch.d.ts +0 -1
- package/dist/services/dispatch/await-batch.js +0 -4
- package/dist/services/dispatch/batch-counter.js +0 -1
- package/dist/services/dispatch/conflict-replay.d.ts +0 -1
- package/dist/services/dispatch/conflict-replay.js +0 -1
- package/dist/services/dispatch/contract-store.d.ts +0 -2
- package/dist/services/dispatch/contract-store.js +0 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
- package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
- package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
- package/dist/services/dispatch/dispatch-record-writer.js +0 -21
- package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
- package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
- package/dist/services/dispatch/e2e-fixtures.js +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
- package/dist/services/dispatch/isolation-lease.d.ts +0 -2
- package/dist/services/dispatch/isolation-lease.js +0 -2
- package/dist/services/dispatch/service-shutdown.js +0 -1
- package/dist/services/dispatch/session-capsule.js +0 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
- package/dist/services/dispatch/slice-dag.js +0 -2
- package/dist/services/dispatch/stage-enum.d.ts +0 -1
- package/dist/services/dispatch/stage-enum.js +0 -1
- package/dist/services/dispatch/startup-timeout.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
- package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
- package/dist/services/dispatch/test-tool-detection.js +0 -2
- package/dist/services/distribution/mcp-install-runner.d.ts +21 -0
- package/dist/services/distribution/mcp-install-runner.js +59 -0
- package/dist/services/distribution/mcp-install.d.ts +95 -0
- package/dist/services/distribution/mcp-install.js +179 -0
- package/dist/services/distribution/plugin-manifest.d.ts +97 -0
- package/dist/services/distribution/plugin-manifest.js +126 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
- package/dist/services/doctor/doctor-service/index.d.ts +0 -1
- package/dist/services/doctor/doctor-service/index.js +0 -1
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
- package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
- package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
- package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
- package/dist/services/doctor/doctor-service/types.d.ts +0 -5
- package/dist/services/doctor/doctor-service/types.js +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -1
- package/dist/services/doctor/doctor-service.js +0 -2
- package/dist/services/env/shell-probe.js +0 -1
- package/dist/services/evidence/evidence-generator.js +0 -8
- package/dist/services/evolution/evolution-constraints.d.ts +0 -2
- package/dist/services/evolution/evolution-constraints.js +0 -2
- package/dist/services/evolution/evolution-service.d.ts +2 -12
- package/dist/services/evolution/evolution-service.js +0 -9
- package/dist/services/evolution/evolution-store.d.ts +6 -8
- package/dist/services/evolution/evolution-store.js +1 -3
- package/dist/services/evolution/evolution-types.d.ts +0 -2
- package/dist/services/evolution/evolution-types.js +0 -6
- package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
- package/dist/services/evolution/independent-evaluator-runner.js +0 -1
- package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
- package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
- package/dist/services/feedback/feedback-promotion-service.js +0 -10
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
- package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
- package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
- package/dist/services/final-review/final-review-evidence-budget.js +0 -5
- package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
- package/dist/services/final-review/final-review-evidence-sources.js +0 -1
- package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
- package/dist/services/final-review/final-review-output-budget.js +0 -3
- package/dist/services/final-review/final-review-service.d.ts +0 -1
- package/dist/services/final-review/final-review-service.js +0 -1
- package/dist/services/fixture/fixture-capture-service.js +0 -1
- package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
- package/dist/services/fixture/fixture-sanitize-service.js +0 -3
- package/dist/services/fresh-context/config.js +0 -1
- package/dist/services/fresh-context/fresh-context-block.js +0 -1
- package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
- package/dist/services/fresh-context/trigger-scan.js +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
- package/dist/services/handoff/handoff-parser.d.ts +0 -1
- package/dist/services/handoff/handoff-parser.js +0 -1
- package/dist/services/handoff/handoff-types.d.ts +0 -1
- package/dist/services/handoff/handoff-types.js +0 -1
- package/dist/services/handoff/handoff-writer.d.ts +0 -1
- package/dist/services/handoff/handoff-writer.js +0 -1
- package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
- package/dist/services/hooks/auto-compact-hook-install.js +0 -1
- package/dist/services/hooks/mcp-surface-gate.d.ts +19 -0
- package/dist/services/hooks/mcp-surface-gate.js +87 -0
- package/dist/services/hooks/output.d.ts +0 -1
- package/dist/services/hooks/output.js +0 -1
- package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
- package/dist/services/hooks/pre-tool-code-gate.js +0 -1
- package/dist/services/hooks/presence-marker-detector.js +0 -1
- package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
- package/dist/services/hooks/worktree-authorization-gate.js +0 -1
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +4 -40
- package/dist/services/ide/adapters/claude-code-adapter.js +48 -182
- package/dist/services/ide/adapters/claude-code-local-state.d.ts +28 -0
- package/dist/services/ide/adapters/claude-code-local-state.js +112 -0
- package/dist/services/ide/adapters/claude-code-model-window.d.ts +37 -0
- package/dist/services/ide/adapters/claude-code-model-window.js +113 -0
- package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/qoder-adapter.js +0 -5
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
- package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/trae-adapter.js +3 -6
- package/dist/services/ide/adapters/zcode-adapter.js +0 -2
- package/dist/services/ide/current-model-detector.js +0 -1
- package/dist/services/ide/hook-protocol.d.ts +0 -2
- package/dist/services/ide/hook-protocol.js +0 -2
- package/dist/services/ide/ide-compact-types.d.ts +0 -7
- package/dist/services/ide/ide-mcp-install-types.d.ts +78 -0
- package/dist/services/ide/ide-mcp-install-types.js +104 -0
- package/dist/services/ide/ide-types.d.ts +45 -13
- package/dist/services/ide/mcp-tool-matcher.d.ts +34 -0
- package/dist/services/ide/mcp-tool-matcher.js +84 -0
- package/dist/services/ide/resource-profile.d.ts +0 -1
- package/dist/services/job/job-commit-verification.d.ts +0 -2
- package/dist/services/job/job-commit-verification.js +0 -2
- package/dist/services/job/job-orchestrator.d.ts +0 -1
- package/dist/services/job/job-orchestrator.js +0 -1
- package/dist/services/job/job-progress-store.d.ts +0 -2
- package/dist/services/job/job-progress-store.js +0 -3
- package/dist/services/job/job-types.js +0 -1
- package/dist/services/job-snapshot/snapshot.js +0 -1
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
- package/dist/services/legacy/legacy-detector.js +0 -1
- package/dist/services/lint/npx-resolver.js +7 -0
- package/dist/services/log/log-commands-service.d.ts +0 -2
- package/dist/services/log/log-commands-service.js +0 -2
- package/dist/services/log/logger.d.ts +0 -1
- package/dist/services/log/logger.js +0 -1
- package/dist/services/log/redact.d.ts +0 -1
- package/dist/services/log/redact.js +0 -1
- package/dist/services/log/retention.d.ts +0 -1
- package/dist/services/log/retention.js +0 -1
- package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-service.js +14 -13
- package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
- package/dist/services/loop/loop-bee-relation-store.js +1 -2
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +1 -1
- package/dist/services/loop/loop-release-service.d.ts +3 -3
- package/dist/services/loop/loop-release-service.js +1 -1
- package/dist/services/loop/loop-release-store.d.ts +6 -7
- package/dist/services/loop/loop-release-store.js +0 -1
- package/dist/services/loop/monotonic-guard.d.ts +0 -1
- package/dist/services/loop/monotonic-guard.js +0 -1
- package/dist/services/mcp/cli-executor.d.ts +36 -0
- package/dist/services/mcp/cli-executor.js +97 -0
- package/dist/services/mcp/json-rpc.d.ts +81 -0
- package/dist/services/mcp/json-rpc.js +116 -0
- package/dist/services/mcp/memory-tool.d.ts +3 -0
- package/dist/services/mcp/memory-tool.js +62 -0
- package/dist/services/mcp/server-main.d.ts +1 -0
- package/dist/services/mcp/server-main.js +66 -0
- package/dist/services/mcp/server.d.ts +22 -0
- package/dist/services/mcp/server.js +152 -0
- package/dist/services/mcp/surface.d.ts +62 -0
- package/dist/services/mcp/surface.js +198 -0
- package/dist/services/mcp/tool-core.d.ts +42 -0
- package/dist/services/mcp/tool-core.js +137 -0
- package/dist/services/mcp/tools.d.ts +13 -0
- package/dist/services/mcp/tools.js +58 -0
- package/dist/services/memory/memory-ingest-service.js +0 -1
- package/dist/services/memory/project-context-service.d.ts +0 -1
- package/dist/services/memory/project-context-service.js +0 -1
- package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
- package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
- package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
- package/dist/services/memory/project-memory-service/index/search.js +0 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
- package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
- package/dist/services/memory/project-memory-service.js +0 -1
- package/dist/services/mode/mode-enforcement.js +0 -1
- package/dist/services/mode/mode-status-service.d.ts +0 -2
- package/dist/services/mode/mode-status-service.js +0 -2
- package/dist/services/observability/aggregation.d.ts +0 -4
- package/dist/services/observability/aggregation.js +0 -6
- package/dist/services/observability/observability-schema.js +0 -1
- package/dist/services/observability/observability-service.d.ts +0 -5
- package/dist/services/observability/observability-service.js +0 -4
- package/dist/services/observability/report-formatter.d.ts +0 -2
- package/dist/services/observability/report-formatter.js +0 -2
- package/dist/services/openspec/artifact-boundary.d.ts +0 -4
- package/dist/services/openspec/artifact-boundary.js +0 -4
- package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
- package/dist/services/openspec/coverage-evidence-reader.js +0 -1
- package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
- package/dist/services/polyrepo/polyrepo-service.js +0 -1
- package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
- package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
- package/dist/services/prd/best-practice-auto-trigger.js +0 -2
- package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
- package/dist/services/prd/gate-evidence-derivation.js +0 -5
- package/dist/services/prd/handoff-auto-regen.js +0 -5
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
- package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
- package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
- package/dist/services/prd/handoff-frontmatter.js +0 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +0 -4
- package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
- package/dist/services/prd/handoff-path-resolution.js +0 -10
- package/dist/services/prd/handoff-service.d.ts +0 -2
- package/dist/services/prd/handoff-service.js +0 -2
- package/dist/services/prd/handoff-types.d.ts +0 -2
- package/dist/services/prd/handoff-types.js +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
- package/dist/services/prd/project-scan-types.d.ts +0 -1
- package/dist/services/prd/project-scan-types.js +0 -1
- package/dist/services/preferences/preferences-service.d.ts +0 -1
- package/dist/services/preferences/preferences-service.js +0 -5
- package/dist/services/preferences/preferences-types.d.ts +0 -14
- package/dist/services/preferences/preferences-types.js +0 -4
- package/dist/services/progress/progress-service.js +0 -1
- package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
- package/dist/services/qa/bdd-test-style-verifier.js +0 -1
- package/dist/services/qa/browser-event-logger.d.ts +0 -1
- package/dist/services/qa/browser-event-logger.js +0 -1
- package/dist/services/qa/browser-restart-detector.d.ts +0 -1
- package/dist/services/qa/browser-restart-detector.js +0 -1
- package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
- package/dist/services/qa/browser-reuse-hint.js +0 -1
- package/dist/services/qa/qa-business-review-state.js +0 -2
- package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
- package/dist/services/qa/screenshot-archive-service.js +0 -1
- package/dist/services/rd/impl.js +0 -1
- package/dist/services/rd/rd-service.d.ts +0 -5
- package/dist/services/rd/rd-service.js +0 -5
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
- package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
- package/dist/services/rd/standards-diagnostic.js +0 -1
- package/dist/services/rd/tactical-stage.js +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
- package/dist/services/readonly-surface/argv-guard.d.ts +32 -0
- package/dist/services/readonly-surface/argv-guard.js +164 -0
- package/dist/services/readonly-surface/readonly-whitelist.d.ts +147 -0
- package/dist/services/readonly-surface/readonly-whitelist.js +107 -0
- package/dist/services/readonly-surface/whitelist-generator.d.ts +64 -0
- package/dist/services/readonly-surface/whitelist-generator.js +212 -0
- package/dist/services/recommendations/installed-capability-detector.d.ts +0 -1
- package/dist/services/recommendations/installed-capability-detector.js +0 -1
- package/dist/services/release/version-precheck-service.d.ts +0 -2
- package/dist/services/release/version-precheck-service.js +0 -3
- package/dist/services/retrospective/retrospective-index.d.ts +0 -1
- package/dist/services/retrospective/retrospective-index.js +0 -1
- package/dist/services/retrospective/retrospective-show.d.ts +0 -1
- package/dist/services/retrospective/retrospective-show.js +0 -1
- package/dist/services/reviewer/model-family.js +0 -1
- package/dist/services/reviewer/reviewer-config.js +0 -1
- package/dist/services/reviewer/reviewer-service.d.ts +0 -1
- package/dist/services/reviewer/reviewer-service.js +0 -3
- package/dist/services/reviewer/selection-strategies.js +0 -1
- package/dist/services/runtime/runtime-detector.js +0 -1
- package/dist/services/runtime/runtime-service.d.ts +0 -2
- package/dist/services/runtime/vendor-adapter.d.ts +0 -7
- package/dist/services/runtime/vendors/claude-code.js +0 -1
- package/dist/services/runtime/vendors/codex.js +0 -1
- package/dist/services/runtime/vendors/copilot.js +0 -1
- package/dist/services/sc/sc-service.js +0 -6
- package/dist/services/scan/acceptance-coverage-service.js +0 -2
- package/dist/services/scan/api-diff-recorded.d.ts +0 -1
- package/dist/services/scan/api-diff-recorded.js +0 -1
- package/dist/services/scan/api-diff-service.d.ts +0 -1
- package/dist/services/scan/api-diff-service.js +0 -1
- package/dist/services/scan/api-diff-types.d.ts +0 -1
- package/dist/services/scan/api-diff-types.js +0 -1
- package/dist/services/scan/archetype-service.js +0 -1
- package/dist/services/scan/file-size-policy.d.ts +0 -1
- package/dist/services/scan/file-size-policy.js +0 -5
- package/dist/services/scan/file-size-scan.d.ts +0 -1
- package/dist/services/security/safe-settings-path.js +0 -1
- package/dist/services/session/binding-store.d.ts +0 -4
- package/dist/services/session/binding-store.js +0 -7
- package/dist/services/session/caller-binding-service.d.ts +0 -6
- package/dist/services/session/caller-binding-service.js +0 -4
- package/dist/services/session/caller-id-types.d.ts +0 -3
- package/dist/services/session/caller-id-types.js +0 -2
- package/dist/services/session/getSessionDir.js +0 -1
- package/dist/services/session/index.js +0 -1
- package/dist/services/session/platform-fallbacks.d.ts +0 -3
- package/dist/services/session/platform-fallbacks.js +0 -3
- package/dist/services/session/resolve-caller-id.d.ts +0 -2
- package/dist/services/session/resolve-caller-id.js +0 -2
- package/dist/services/session/session-binding-bridge.d.ts +0 -2
- package/dist/services/session/session-binding-bridge.js +0 -15
- package/dist/services/session/session-checkpoint-service.d.ts +0 -1
- package/dist/services/session/session-checkpoint-service.js +0 -1
- package/dist/services/session/session-manager.d.ts +0 -8
- package/dist/services/session/session-manager.js +0 -19
- package/dist/services/session/session-resume-service.d.ts +0 -1
- package/dist/services/session/session-resume-service.js +0 -1
- package/dist/services/share/bundle-reader.d.ts +2 -5
- package/dist/services/share/bundle-reader.js +6 -8
- package/dist/services/share/bundle-writer.d.ts +2 -2
- package/dist/services/skill/resume-detector.js +0 -3
- package/dist/services/skill/skill-scheduler.d.ts +0 -1
- package/dist/services/skill/skill-scheduler.js +0 -1
- package/dist/services/skill/skill-search-service.d.ts +0 -2
- package/dist/services/skill/skill-search-service.js +0 -2
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +2 -1
- package/dist/services/skillhub/release-retain.d.ts +2 -2
- package/dist/services/skillhub/release-retain.js +2 -1
- package/dist/services/skillhub/sqlite-store.d.ts +3 -3
- package/dist/services/skillhub/sqlite-store.js +4 -5
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +1 -3
- package/dist/services/skills/hooks-codegate-superpowers.js +26 -14
- package/dist/services/skills/hooks-settings-service.d.ts +0 -2
- package/dist/services/skills/hooks-settings-service.js +10 -8
- package/dist/services/skills/presence-lease-service.d.ts +0 -1
- package/dist/services/skills/presence-lease-service.js +0 -1
- package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
- package/dist/services/skills/session-start-hook-constants.js +0 -4
- package/dist/services/skills/skill-presence-service.d.ts +0 -8
- package/dist/services/skills/skill-presence-service.js +0 -13
- package/dist/services/skills/skill-statusline-model.d.ts +0 -6
- package/dist/services/skills/skill-statusline-model.js +1 -4
- package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
- package/dist/services/skills/skill-statusline-renderer.js +0 -12
- package/dist/services/skills/skill-statusline-service.js +0 -6
- package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
- package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
- package/dist/services/skills/statusline-palette.d.ts +0 -2
- package/dist/services/skills/statusline-palette.js +0 -3
- package/dist/services/slice/slice-archive-service.js +0 -1
- package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
- package/dist/services/slice/slice-benchmark-service.js +0 -1
- package/dist/services/slice/slice-check-service.js +0 -6
- package/dist/services/slice/slice-check-types.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.js +0 -1
- package/dist/services/slice/slice-review-state.js +0 -2
- package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
- package/dist/services/sqlite/sqlite-driver.js +159 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
- package/dist/services/standards/ide-aware-standards-service.js +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
- package/dist/services/standards/migrate-claude-rules-service.js +0 -3
- package/dist/services/standards/migrate-service.d.ts +0 -1
- package/dist/services/standards/migrate-service.js +0 -1
- package/dist/services/standards/missing-standards-detector.d.ts +0 -2
- package/dist/services/standards/missing-standards-detector.js +0 -3
- package/dist/services/standards/project-standards-service.d.ts +0 -1
- package/dist/services/standards/project-standards-service.js +0 -1
- package/dist/services/standards/standards-render.d.ts +0 -1
- package/dist/services/standards/standards-render.js +0 -1
- package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
- package/dist/services/standards/ui-library-dispatch-block.js +0 -1
- package/dist/services/tech/tech-change-id-service.d.ts +0 -7
- package/dist/services/tech/tech-change-id-service.js +0 -7
- package/dist/services/tech/tech-service.js +0 -5
- package/dist/services/verdict/envelope-parsers.d.ts +0 -2
- package/dist/services/verdict/envelope-parsers.js +0 -2
- package/dist/services/verdict/envelopes.d.ts +0 -1
- package/dist/services/vm/vm-lease.js +0 -1
- package/dist/services/web/aria-node.d.ts +0 -1
- package/dist/services/web/bounded-output.d.ts +0 -1
- package/dist/services/web/bounded-output.js +0 -1
- package/dist/services/web/browser-acquire.js +0 -1
- package/dist/services/web/browser-cache-probe.js +0 -1
- package/dist/services/web/browser-session-manager.js +0 -1
- package/dist/services/web/daemon-entry.js +0 -1
- package/dist/services/web/daemon-registry.js +0 -1
- package/dist/services/web/daemon-supervisor.d.ts +4 -3
- package/dist/services/web/daemon-supervisor.js +4 -4
- package/dist/services/web/playwright-loader.js +0 -1
- package/dist/services/web/playwright-types.d.ts +0 -1
- package/dist/services/web/snapshot-pruner.js +0 -1
- package/dist/services/web/untrusted-envelope.d.ts +0 -1
- package/dist/services/web/web-artifact-paths.js +0 -1
- package/dist/services/web/web-client.d.ts +0 -1
- package/dist/services/web/web-daemon-service.js +0 -1
- package/dist/services/web/web-fallback.d.ts +0 -1
- package/dist/services/web/web-fallback.js +0 -1
- package/dist/services/web/web-install-service.js +0 -1
- package/dist/services/web/web-login-profile.js +0 -1
- package/dist/services/web/web-protocol.d.ts +0 -1
- package/dist/services/web/web-protocol.js +0 -1
- package/dist/services/web/web-status-report.js +0 -1
- package/dist/services/workflow/artifact-paths.js +0 -3
- package/dist/services/workflow/autonomous-resume-writer.js +0 -2
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
- package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
- package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
- package/dist/services/workflow/pipeline-verify-service.js +0 -15
- package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
- package/dist/services/workflow/pipeline-verify-types.js +0 -2
- package/dist/services/workflow/plan-reader.d.ts +0 -1
- package/dist/services/workflow/plan-reader.js +0 -5
- package/dist/services/workflow/plan-refresher.js +0 -2
- package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
- package/dist/services/workflow/plan-trigger-detector.js +0 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
- package/dist/services/workflow/workflow-autonomous-service.js +0 -2
- package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
- package/dist/services/workflow/workflow-autonomous-types.js +0 -2
- package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
- package/dist/services/workflow/workflow-graph-types.js +0 -1
- package/dist/services/workflow/workflow-router-service.js +0 -4
- package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
- package/dist/services/workflow/workflow-skip-service.js +0 -1
- package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-lint.js +0 -2
- package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
- package/dist/services/workflow/workflow-spec-types.js +0 -1
- package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-yaml.js +0 -2
- package/dist/services/workflow/workflow-spec.js +0 -1
- package/dist/services/workflow/workflow-state-store.js +0 -1
- package/dist/services/workspace/claude-settings-template.d.ts +0 -4
- package/dist/services/workspace/claude-settings-template.js +0 -4
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
- package/dist/services/workspace/migrate-service.js +0 -8
- package/dist/services/workspace/migrate-types.d.ts +0 -4
- package/dist/services/workspace/migrate-types.js +0 -1
- package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
- package/dist/services/workspace/reconcile-migrate.js +0 -5
- package/dist/services/workspace/reconcile-service.d.ts +0 -3
- package/dist/services/workspace/reconcile-service.js +0 -7
- package/dist/services/workspace/reconcile-types.d.ts +0 -5
- package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
- package/dist/services/workspace/sid-naming-guard.js +0 -1
- package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
- package/dist/services/workspace/templates/project-scan/index.js +0 -3
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
- package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
- package/dist/services/workspace/workspace-service.d.ts +0 -7
- package/dist/services/workspace/workspace-service.js +0 -16
- package/dist/services/worktree/playwright-profile.js +0 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
- package/dist/services/worktree/worktree-lease-types.js +0 -1
- package/dist/services/worktree/worktree-lease.d.ts +0 -2
- package/dist/services/worktree/worktree-lease.js +0 -2
- package/dist/shared/format-md-compact.d.ts +0 -2
- package/dist/shared/format-md-compact.js +0 -2
- package/dist/shared/incrementing-number.d.ts +0 -1
- package/dist/shared/incrementing-number.js +0 -1
- package/dist/shared/path-utils.d.ts +0 -1
- package/dist/shared/path-utils.js +0 -1
- package/dist/shared/runtime-root.d.ts +0 -1
- package/dist/shared/runtime-root.js +0 -1
- package/dist/shared/stale-policy.d.ts +0 -1
- package/dist/shared/stale-policy.js +0 -1
- package/package.json +24 -11
- package/scripts/canonical-store-link.mjs +296 -0
- package/scripts/canonical-store-prune.mjs +131 -0
- package/scripts/canonical-store.mjs +298 -0
- package/scripts/install-skills-bundles.mjs +233 -0
- package/scripts/install-skills-fs.mjs +148 -0
- package/scripts/install-skills-ide.mjs +279 -0
- package/scripts/install-skills-output-style-default.mjs +196 -0
- package/scripts/install-skills-output-styles.mjs +121 -0
- package/scripts/install-skills-report.mjs +42 -0
- package/scripts/install-skills-user-config.mjs +198 -0
- package/scripts/install-skills.mjs +41 -1279
- package/scripts/watch-tree.mjs +140 -0
- package/scripts/watch.mjs +4 -126
- package/skills/peaks-audit/SKILL.md +3 -3
- package/skills/peaks-status/SKILL.md +31 -13
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { IdeAdapter, IdeId } from '../ide/ide-types.js';
|
|
2
|
+
import { type IdeMcpInstallProfile } from '../ide/ide-mcp-install-types.js';
|
|
3
|
+
/** One process the plan wants run, as command + args. Never a joined string. */
|
|
4
|
+
export interface McpInstallCommand {
|
|
5
|
+
readonly command: string;
|
|
6
|
+
readonly args: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
/** What one operation is for, so a report can say which step did what. */
|
|
9
|
+
export type McpInstallOperation = 'remove' | 'add';
|
|
10
|
+
export interface McpInstallStep {
|
|
11
|
+
readonly operation: McpInstallOperation;
|
|
12
|
+
/** The scope this step acts on; the target scope for an `add`. */
|
|
13
|
+
readonly scope: string;
|
|
14
|
+
readonly command: McpInstallCommand;
|
|
15
|
+
}
|
|
16
|
+
/** What a runner says happened. `detail` is surfaced verbatim when it did not. */
|
|
17
|
+
export interface McpInstallOutcome {
|
|
18
|
+
readonly ok: boolean;
|
|
19
|
+
readonly detail: string;
|
|
20
|
+
/**
|
|
21
|
+
* `false` only when the harness NEVER RENDERED A VERDICT — the deadline killed
|
|
22
|
+
* it, or it never launched. A non-zero exit answered ("no such registration"),
|
|
23
|
+
* so an absent value reads as `true`, as does every outcome that predates this
|
|
24
|
+
* field.
|
|
25
|
+
*/
|
|
26
|
+
readonly answered?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/** The seam: a test supplies one, the CLI supplies the spawning one below. */
|
|
29
|
+
export type McpInstallRunner = (command: McpInstallCommand) => McpInstallOutcome;
|
|
30
|
+
export interface McpInstallReport {
|
|
31
|
+
readonly serverName: string;
|
|
32
|
+
/** Scopes where the removal reported success — i.e. there was something to remove. */
|
|
33
|
+
readonly removed: readonly string[];
|
|
34
|
+
/** Scopes where the removal reported failure — normally "nothing was there". */
|
|
35
|
+
readonly absent: readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* Scopes whose removal never reached a verdict — the harness timed out or never
|
|
38
|
+
* launched — so it is neither `removed` nor honestly `absent`. Optional because
|
|
39
|
+
* the install sweep tolerates a failed removal (it is about to write) and never
|
|
40
|
+
* populates it; the uninstall sweep always does.
|
|
41
|
+
*/
|
|
42
|
+
readonly unknown?: readonly string[];
|
|
43
|
+
readonly added: boolean;
|
|
44
|
+
readonly ok: boolean;
|
|
45
|
+
readonly detail: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The argv that launches THIS installation's read-only MCP server.
|
|
49
|
+
*
|
|
50
|
+
* An interpreter and an entry path, in array form: the same shape `mcp serve`
|
|
51
|
+
* spawns and the same one the read-only executor uses. A bare CLI name would be
|
|
52
|
+
* a `.cmd` shim on some platforms, and picking a spelling per platform is the
|
|
53
|
+
* branch this tree forbids — resolving the pair needs none.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveMcpServerArgv(): readonly string[];
|
|
56
|
+
/** The plan: one removal per declared scope, then the addition. Order is the contract. */
|
|
57
|
+
export declare function buildMcpInstallPlan(profile: IdeMcpInstallProfile, serverArgv: readonly string[]): readonly McpInstallStep[];
|
|
58
|
+
/** Every removal, then the addition. A failed removal is a fact, not a failure. */
|
|
59
|
+
export declare function runMcpInstallPlan(profile: IdeMcpInstallProfile, serverArgv: readonly string[], runner: McpInstallRunner): McpInstallReport;
|
|
60
|
+
/**
|
|
61
|
+
* The removal sweep on its own — what `uninstall` is, and all that it is.
|
|
62
|
+
*
|
|
63
|
+
* `exit 0` removed it, `exit != 0` answered "no" (absent, unchanged) — but a run the
|
|
64
|
+
* deadline killed, or one that never launched, ANSWERED NOTHING, and calling that
|
|
65
|
+
* "nothing was there" is the lie this sweep used to tell. Those scopes are `unknown`,
|
|
66
|
+
* and `ok` is false whenever any scope is unknown: with a scope the harness never
|
|
67
|
+
* spoke for, the removal is unconfirmed and the state is not known.
|
|
68
|
+
*/
|
|
69
|
+
export declare function runMcpUninstallPlan(profile: IdeMcpInstallProfile, serverArgv: readonly string[], runner: McpInstallRunner): McpInstallReport;
|
|
70
|
+
/**
|
|
71
|
+
* One adapter's outcome. `skipped` is a FIRST-CLASS result and not an error: the
|
|
72
|
+
* install's contract with an adapter that declares no registration entry is
|
|
73
|
+
* silence, and a caller that has to distinguish "did nothing" from
|
|
74
|
+
* "failed" needs the distinction to be in the value, not in a log line.
|
|
75
|
+
*/
|
|
76
|
+
export type AdapterMcpInstallResult = {
|
|
77
|
+
readonly ideId: IdeId;
|
|
78
|
+
readonly skipped: true;
|
|
79
|
+
readonly reason: string;
|
|
80
|
+
} | {
|
|
81
|
+
readonly ideId: IdeId;
|
|
82
|
+
readonly skipped: false;
|
|
83
|
+
readonly report: McpInstallReport;
|
|
84
|
+
};
|
|
85
|
+
export declare const NO_MCP_INSTALL_REASON = "adapter declares no mcpInstall profile";
|
|
86
|
+
/** Register this adapter's harness, or report that there is nothing to register. */
|
|
87
|
+
export declare function installMcpForAdapter(adapter: IdeAdapter, serverArgv: readonly string[], runner: McpInstallRunner): AdapterMcpInstallResult;
|
|
88
|
+
/** The same, for the removal side. */
|
|
89
|
+
export declare function uninstallMcpForAdapter(adapter: IdeAdapter, serverArgv: readonly string[], runner: McpInstallRunner): AdapterMcpInstallResult;
|
|
90
|
+
/**
|
|
91
|
+
* The production runner and its deadline live in `mcp-install-runner.ts` — split
|
|
92
|
+
* out only to keep this engine within the file-size cap. They are re-exported, so
|
|
93
|
+
* the boundary is invisible: every caller still imports them from here.
|
|
94
|
+
*/
|
|
95
|
+
export { MCP_INSTALL_TIMEOUT_MS, spawnMcpInstallCommand, spawnMcpInstallRunner } from './mcp-install-runner.js';
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// src/services/distribution/mcp-install.ts
|
|
2
|
+
//
|
|
3
|
+
// The vendor-neutral MCP registration engine (spec §8.3). It owns the SHAPE of
|
|
4
|
+
// an install — delete every scope, then add — and owns no harness's spelling of
|
|
5
|
+
// anything: the server key, the scopes and the argv come from the adapter's
|
|
6
|
+
// `mcpInstall` profile, and the process that runs the argv is an injected
|
|
7
|
+
// runner.
|
|
8
|
+
//
|
|
9
|
+
// WHY DELETE-THEN-ADD AND NOT "CHECK, THEN ADD IF ABSENT". The harness's own
|
|
10
|
+
// register verb is not idempotent: the same name in the same scope fails, and
|
|
11
|
+
// there is no `--force` and no `update` to reach for. A conditional add would
|
|
12
|
+
// therefore have to be right about a state it cannot see — so the engine does
|
|
13
|
+
// the one thing that is right in both states: it removes what is there (a
|
|
14
|
+
// removal that finds nothing is tolerated) and then adds. That is also what
|
|
15
|
+
// makes the install SEMANTICALLY idempotent: two runs produce the same argv in
|
|
16
|
+
// the same order, so the registration left behind has the same CONTENT, even
|
|
17
|
+
// though the second run performed operations the first one did too.
|
|
18
|
+
//
|
|
19
|
+
// WHY THE DELETE SWEEPS EVERY SCOPE. The entry can already exist in a scope the
|
|
20
|
+
// install is not writing to — an earlier install, or a user who moved it. The
|
|
21
|
+
// removal names a scope, and the harness fails on the wrong or empty one, so a
|
|
22
|
+
// targeted delete would leave the old entry behind and the add would then fail
|
|
23
|
+
// on the duplicate it left. Sweeping all declared scopes is the only version of
|
|
24
|
+
// this that is correct for a state the engine cannot enumerate.
|
|
25
|
+
//
|
|
26
|
+
// WHAT "ONLY OURS" MEANS HERE. The engine never reads or writes the
|
|
27
|
+
// harness's configuration file. It runs the harness's own removal and addition,
|
|
28
|
+
// and the only key either of them names is the adapter's `serverName` — so no
|
|
29
|
+
// other entry can be touched by construction. The honest limit of that
|
|
30
|
+
// guarantee is the name itself: an entry the USER named the same thing is
|
|
31
|
+
// indistinguishable from ours, and is the one case this cannot tell apart.
|
|
32
|
+
//
|
|
33
|
+
// NO HARNESS BRANCH, NO PLATFORM BRANCH. Every value is either the caller's or
|
|
34
|
+
// the adapter's. `resolveMcpServerArgv` returns an interpreter and an entry path
|
|
35
|
+
// for the same reason `cli-executor.ts` does: a shipped CLI name is a shim on
|
|
36
|
+
// some platforms, and choosing between the two spellings would be the platform
|
|
37
|
+
// branch this module is forbidden to contain.
|
|
38
|
+
import { dirname, join, resolve } from 'node:path';
|
|
39
|
+
import { fileURLToPath } from 'node:url';
|
|
40
|
+
import { assertMcpInstallProfile, expandMcpArgv } from '../ide/ide-mcp-install-types.js';
|
|
41
|
+
/** `<packageRoot>` — this file's tree is `<root>/src/services/distribution` or `<root>/dist/…`. */
|
|
42
|
+
const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..', '..');
|
|
43
|
+
/**
|
|
44
|
+
* The argv that launches THIS installation's read-only MCP server.
|
|
45
|
+
*
|
|
46
|
+
* An interpreter and an entry path, in array form: the same shape `mcp serve`
|
|
47
|
+
* spawns and the same one the read-only executor uses. A bare CLI name would be
|
|
48
|
+
* a `.cmd` shim on some platforms, and picking a spelling per platform is the
|
|
49
|
+
* branch this tree forbids — resolving the pair needs none.
|
|
50
|
+
*/
|
|
51
|
+
export function resolveMcpServerArgv() {
|
|
52
|
+
return [process.execPath, join(PACKAGE_ROOT, 'bin', 'peaks.js'), 'mcp', 'serve'];
|
|
53
|
+
}
|
|
54
|
+
/** The plan: one removal per declared scope, then the addition. Order is the contract. */
|
|
55
|
+
export function buildMcpInstallPlan(profile, serverArgv) {
|
|
56
|
+
assertMcpInstallProfile(profile);
|
|
57
|
+
const removals = profile.scopes.map((scope) => ({
|
|
58
|
+
operation: 'remove',
|
|
59
|
+
scope,
|
|
60
|
+
command: {
|
|
61
|
+
command: profile.removeArgv[0] ?? '',
|
|
62
|
+
args: expandMcpArgv(profile.removeArgv.slice(1), {
|
|
63
|
+
serverName: profile.serverName,
|
|
64
|
+
scope,
|
|
65
|
+
serverArgv
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
const addition = {
|
|
70
|
+
operation: 'add',
|
|
71
|
+
scope: profile.targetScope,
|
|
72
|
+
command: {
|
|
73
|
+
command: profile.addArgv[0] ?? '',
|
|
74
|
+
args: expandMcpArgv(profile.addArgv.slice(1), {
|
|
75
|
+
serverName: profile.serverName,
|
|
76
|
+
scope: profile.targetScope,
|
|
77
|
+
serverArgv
|
|
78
|
+
})
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return [...removals, addition];
|
|
82
|
+
}
|
|
83
|
+
/** Every removal, then the addition. A failed removal is a fact, not a failure. */
|
|
84
|
+
export function runMcpInstallPlan(profile, serverArgv, runner) {
|
|
85
|
+
const plan = buildMcpInstallPlan(profile, serverArgv);
|
|
86
|
+
const removed = [];
|
|
87
|
+
const absent = [];
|
|
88
|
+
let detail = '';
|
|
89
|
+
for (const step of plan) {
|
|
90
|
+
const outcome = runner(step.command);
|
|
91
|
+
if (step.operation === 'remove') {
|
|
92
|
+
if (outcome.ok)
|
|
93
|
+
removed.push(step.scope);
|
|
94
|
+
else
|
|
95
|
+
absent.push(step.scope);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (!outcome.ok) {
|
|
99
|
+
return {
|
|
100
|
+
serverName: profile.serverName,
|
|
101
|
+
removed,
|
|
102
|
+
absent,
|
|
103
|
+
added: false,
|
|
104
|
+
ok: false,
|
|
105
|
+
detail: `the registration was not written: ${outcome.detail}`
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
detail = `registered in scope '${step.scope}'`;
|
|
109
|
+
}
|
|
110
|
+
return { serverName: profile.serverName, removed, absent, added: true, ok: true, detail };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The removal sweep on its own — what `uninstall` is, and all that it is.
|
|
114
|
+
*
|
|
115
|
+
* `exit 0` removed it, `exit != 0` answered "no" (absent, unchanged) — but a run the
|
|
116
|
+
* deadline killed, or one that never launched, ANSWERED NOTHING, and calling that
|
|
117
|
+
* "nothing was there" is the lie this sweep used to tell. Those scopes are `unknown`,
|
|
118
|
+
* and `ok` is false whenever any scope is unknown: with a scope the harness never
|
|
119
|
+
* spoke for, the removal is unconfirmed and the state is not known.
|
|
120
|
+
*/
|
|
121
|
+
export function runMcpUninstallPlan(profile, serverArgv, runner) {
|
|
122
|
+
const plan = buildMcpInstallPlan(profile, serverArgv).filter((step) => step.operation === 'remove');
|
|
123
|
+
const removed = [];
|
|
124
|
+
const absent = [];
|
|
125
|
+
const unknown = [];
|
|
126
|
+
for (const step of plan) {
|
|
127
|
+
const outcome = runner(step.command);
|
|
128
|
+
if (outcome.ok)
|
|
129
|
+
removed.push(step.scope);
|
|
130
|
+
else if (outcome.answered === false)
|
|
131
|
+
unknown.push(step.scope);
|
|
132
|
+
else
|
|
133
|
+
absent.push(step.scope);
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
serverName: profile.serverName,
|
|
137
|
+
removed,
|
|
138
|
+
absent,
|
|
139
|
+
unknown,
|
|
140
|
+
added: false,
|
|
141
|
+
ok: unknown.length === 0,
|
|
142
|
+
detail: unknown.length > 0
|
|
143
|
+
? `the '${profile.serverName}' removal is unconfirmed: ${unknown.length} scope(s) never answered`
|
|
144
|
+
: removed.length === 0
|
|
145
|
+
? `no '${profile.serverName}' registration was present in any declared scope`
|
|
146
|
+
: `removed '${profile.serverName}' from ${removed.length} scope(s)`
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
export const NO_MCP_INSTALL_REASON = 'adapter declares no mcpInstall profile';
|
|
150
|
+
/** Register this adapter's harness, or report that there is nothing to register. */
|
|
151
|
+
export function installMcpForAdapter(adapter, serverArgv, runner) {
|
|
152
|
+
const profile = adapter.mcpInstall;
|
|
153
|
+
if (profile === undefined) {
|
|
154
|
+
return { ideId: adapter.id, skipped: true, reason: NO_MCP_INSTALL_REASON };
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
ideId: adapter.id,
|
|
158
|
+
skipped: false,
|
|
159
|
+
report: runMcpInstallPlan(profile, serverArgv, runner)
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/** The same, for the removal side. */
|
|
163
|
+
export function uninstallMcpForAdapter(adapter, serverArgv, runner) {
|
|
164
|
+
const profile = adapter.mcpInstall;
|
|
165
|
+
if (profile === undefined) {
|
|
166
|
+
return { ideId: adapter.id, skipped: true, reason: NO_MCP_INSTALL_REASON };
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
ideId: adapter.id,
|
|
170
|
+
skipped: false,
|
|
171
|
+
report: runMcpUninstallPlan(profile, serverArgv, runner)
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The production runner and its deadline live in `mcp-install-runner.ts` — split
|
|
176
|
+
* out only to keep this engine within the file-size cap. They are re-exported, so
|
|
177
|
+
* the boundary is invisible: every caller still imports them from here.
|
|
178
|
+
*/
|
|
179
|
+
export { MCP_INSTALL_TIMEOUT_MS, spawnMcpInstallCommand, spawnMcpInstallRunner } from './mcp-install-runner.js';
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type SkillMetadata } from '../skills/skill-registry.js';
|
|
2
|
+
/** Where the generator writes, relative to the package root. */
|
|
3
|
+
export declare const PLUGIN_MANIFEST_RELATIVE_PATH = ".claude-plugin/marketplace.json";
|
|
4
|
+
/**
|
|
5
|
+
* The server key peaks registers itself under. It is OUR key, not a harness's —
|
|
6
|
+
* the adapter profiles that name it (`IdeMcpInstallProfile.serverName`) and the
|
|
7
|
+
* tool-name templates that match it (`IdeAdapter.mcp`) must agree with this one,
|
|
8
|
+
* which is why it is declared once.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MCP_SERVER_KEY = "peaks";
|
|
11
|
+
/** The subset of `package.json` this render reads. */
|
|
12
|
+
interface PackageManifest {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly version: string;
|
|
15
|
+
readonly description?: string;
|
|
16
|
+
readonly author?: string;
|
|
17
|
+
readonly homepage?: string;
|
|
18
|
+
readonly repository?: {
|
|
19
|
+
readonly url?: string;
|
|
20
|
+
} | string;
|
|
21
|
+
readonly license?: string;
|
|
22
|
+
readonly keywords?: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
/** One plugin entry's skill list item — the shape `peaks skill:visibility` reads. */
|
|
25
|
+
interface PluginSkillEntry {
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly path: string;
|
|
28
|
+
readonly description: string;
|
|
29
|
+
readonly userInvocable?: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface GeneratedPluginManifest {
|
|
32
|
+
readonly metadata: {
|
|
33
|
+
readonly pluginRoot: string;
|
|
34
|
+
readonly version: string;
|
|
35
|
+
};
|
|
36
|
+
readonly plugins: readonly {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly description: string;
|
|
39
|
+
readonly version: string;
|
|
40
|
+
readonly author: {
|
|
41
|
+
readonly name: string;
|
|
42
|
+
};
|
|
43
|
+
readonly homepage: string;
|
|
44
|
+
readonly repository: string;
|
|
45
|
+
readonly license: string;
|
|
46
|
+
readonly keywords: readonly string[];
|
|
47
|
+
/**
|
|
48
|
+
* Declared, and deliberately not brought live: the plugin channel is not
|
|
49
|
+
* published by this slice (PRD non-goal), so this is the statement of what
|
|
50
|
+
* the channel WOULD run, kept true by generation rather than by memory.
|
|
51
|
+
*
|
|
52
|
+
* The command is the CLI's own name and subcommand, with no path in it: a
|
|
53
|
+
* manifest is built on one machine and read on another, so an absolute
|
|
54
|
+
* interpreter path resolved here would be the build host's. The RUNTIME
|
|
55
|
+
* registration is a different artefact with a different consumer and does
|
|
56
|
+
* resolve the pair — see `mcp-install.ts::resolveMcpServerArgv`.
|
|
57
|
+
*/
|
|
58
|
+
readonly mcpServers: Record<string, {
|
|
59
|
+
readonly command: string;
|
|
60
|
+
readonly args: readonly string[];
|
|
61
|
+
}>;
|
|
62
|
+
readonly skills: readonly PluginSkillEntry[];
|
|
63
|
+
}[];
|
|
64
|
+
}
|
|
65
|
+
/** `package.json`, parsed. A missing version is a refusal, not a default. */
|
|
66
|
+
export declare function loadPackageManifest(root?: string): PackageManifest;
|
|
67
|
+
/**
|
|
68
|
+
* The skill entries, in the registry's order.
|
|
69
|
+
*
|
|
70
|
+
* `visibility: internal` is the skill's own declaration that it is an internal
|
|
71
|
+
* role rather than a front door, and it is the ONE source for `userInvocable` —
|
|
72
|
+
* the field is emitted only when it is `false`, which is the contract
|
|
73
|
+
* `skill:visibility` reads ("internal: userInvocable false; public: omitted").
|
|
74
|
+
*/
|
|
75
|
+
export declare function skillEntriesOf(skills: readonly SkillMetadata[]): readonly PluginSkillEntry[];
|
|
76
|
+
/**
|
|
77
|
+
* Render the manifest. `skills` is passed in rather than loaded here so the one
|
|
78
|
+
* caller that must fail loudly on an unreadable SKILL.md can do so once.
|
|
79
|
+
*/
|
|
80
|
+
export declare function generatePluginManifest(manifest: PackageManifest, skills: readonly SkillMetadata[]): GeneratedPluginManifest;
|
|
81
|
+
/** Pretty JSON, newline-terminated — the same serialization contract as the whitelist. */
|
|
82
|
+
export declare function serializePluginManifest(manifest: GeneratedPluginManifest): string;
|
|
83
|
+
/** Absolute path of the committed artifact for a package root. */
|
|
84
|
+
export declare function pluginManifestPath(root?: string): string;
|
|
85
|
+
/**
|
|
86
|
+
* The whole render for a package root: read the two sources, refuse a skill tree
|
|
87
|
+
* that did not fully parse, and serialize.
|
|
88
|
+
*
|
|
89
|
+
* The `failures` refusal is the load-bearing part. `loadSkillRegistry` reports an
|
|
90
|
+
* unreadable `SKILL.md` in a `failures` array instead of throwing, so a render
|
|
91
|
+
* that ignored it would DROP a skill from the manifest and still be
|
|
92
|
+
* byte-stable — a green CI over a manifest that had silently lost entries. A
|
|
93
|
+
* drift assertion cannot be stronger than its input, so the input is required to
|
|
94
|
+
* be complete.
|
|
95
|
+
*/
|
|
96
|
+
export declare function renderPluginManifest(root?: string): Promise<string>;
|
|
97
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// src/services/distribution/plugin-manifest.ts
|
|
2
|
+
//
|
|
3
|
+
// The plugin/distribution manifest as a GENERATED artefact (spec §4.1). One
|
|
4
|
+
// source, two renders: the whitelist artifact is what the read-only claim is
|
|
5
|
+
// made of, and this file is what the distribution channel is told.
|
|
6
|
+
//
|
|
7
|
+
// WHY IT IS GENERATED. The hand-authored `.claude-plugin/marketplace.json` had
|
|
8
|
+
// rotted in the only two fields anybody could check and nobody did: it declared
|
|
9
|
+
// version `2.0.3` while the package was `4.1.2`, and 12 skills while the tree
|
|
10
|
+
// held 22. Root cause is not carelessness — it is that the current distribution
|
|
11
|
+
// channel is `npm i -g`, so nothing ever read the plugin manifest and no failure
|
|
12
|
+
// could be observed from it. A file whose author is a human and whose reader is
|
|
13
|
+
// nobody will drift; the fix is to remove the human from the loop, not to be
|
|
14
|
+
// more careful.
|
|
15
|
+
//
|
|
16
|
+
// CHANGE THE SOURCE, NOT THIS FILE. Everything below is derived, and
|
|
17
|
+
// `tests/unit/services/distribution/plugin-manifest.test.ts` fails the moment
|
|
18
|
+
// the committed artefact differs from a fresh render. A hand edit is therefore
|
|
19
|
+
// not merely overwritten, it is RED. To change the manifest, change
|
|
20
|
+
// `package.json` (a plugin-level field) or the skill's own `SKILL.md`
|
|
21
|
+
// (a skill entry) and re-run `pnpm plugin:manifest`.
|
|
22
|
+
//
|
|
23
|
+
// DETERMINISM. No timestamp, no `Date`, no unordered iteration: skills come back
|
|
24
|
+
// from `loadSkillRegistry`, which sorts by name, and every plugin-level field is
|
|
25
|
+
// copied from `package.json` in a fixed order. Two consecutive runs are
|
|
26
|
+
// byte-identical, which is what makes the CI equality assertion mean something.
|
|
27
|
+
import { readFileSync } from 'node:fs';
|
|
28
|
+
import { dirname, join, relative } from 'node:path';
|
|
29
|
+
import { repoRoot } from 'peaks-loop-shared/paths';
|
|
30
|
+
import { loadSkillRegistry } from '../skills/skill-registry.js';
|
|
31
|
+
/** Where the generator writes, relative to the package root. */
|
|
32
|
+
export const PLUGIN_MANIFEST_RELATIVE_PATH = '.claude-plugin/marketplace.json';
|
|
33
|
+
/**
|
|
34
|
+
* The server key peaks registers itself under. It is OUR key, not a harness's —
|
|
35
|
+
* the adapter profiles that name it (`IdeMcpInstallProfile.serverName`) and the
|
|
36
|
+
* tool-name templates that match it (`IdeAdapter.mcp`) must agree with this one,
|
|
37
|
+
* which is why it is declared once.
|
|
38
|
+
*/
|
|
39
|
+
export const MCP_SERVER_KEY = 'peaks';
|
|
40
|
+
/** `package.json`, parsed. A missing version is a refusal, not a default. */
|
|
41
|
+
export function loadPackageManifest(root = repoRoot) {
|
|
42
|
+
const parsed = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8'));
|
|
43
|
+
if (typeof parsed.version !== 'string' || parsed.version.length === 0) {
|
|
44
|
+
throw new Error('package.json version must be a non-empty string');
|
|
45
|
+
}
|
|
46
|
+
return parsed;
|
|
47
|
+
}
|
|
48
|
+
/** A repository URL as a manifest reads it: npm's `.git` suffix is not part of the link. */
|
|
49
|
+
function repositoryUrl(manifest) {
|
|
50
|
+
const raw = typeof manifest.repository === 'string' ? manifest.repository : manifest.repository?.url;
|
|
51
|
+
return (raw ?? '').replace(/\.git$/, '');
|
|
52
|
+
}
|
|
53
|
+
/** POSIX-separated, so the artifact is byte-identical whichever OS generated it. */
|
|
54
|
+
function posix(value) {
|
|
55
|
+
return value.split('\\').join('/');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The skill entries, in the registry's order.
|
|
59
|
+
*
|
|
60
|
+
* `visibility: internal` is the skill's own declaration that it is an internal
|
|
61
|
+
* role rather than a front door, and it is the ONE source for `userInvocable` —
|
|
62
|
+
* the field is emitted only when it is `false`, which is the contract
|
|
63
|
+
* `skill:visibility` reads ("internal: userInvocable false; public: omitted").
|
|
64
|
+
*/
|
|
65
|
+
export function skillEntriesOf(skills) {
|
|
66
|
+
return skills
|
|
67
|
+
.filter((skill) => skill.name.startsWith('peaks-'))
|
|
68
|
+
.map((skill) => ({
|
|
69
|
+
name: skill.name,
|
|
70
|
+
path: `./${posix(relative(repoRoot, dirname(skill.skillPath)))}`,
|
|
71
|
+
description: skill.description,
|
|
72
|
+
...(skill.visibility === 'internal' ? { userInvocable: false } : {})
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Render the manifest. `skills` is passed in rather than loaded here so the one
|
|
77
|
+
* caller that must fail loudly on an unreadable SKILL.md can do so once.
|
|
78
|
+
*/
|
|
79
|
+
export function generatePluginManifest(manifest, skills) {
|
|
80
|
+
return {
|
|
81
|
+
metadata: { pluginRoot: '.', version: manifest.version },
|
|
82
|
+
plugins: [
|
|
83
|
+
{
|
|
84
|
+
name: manifest.name,
|
|
85
|
+
description: manifest.description ?? '',
|
|
86
|
+
version: manifest.version,
|
|
87
|
+
author: { name: manifest.author ?? '' },
|
|
88
|
+
homepage: manifest.homepage ?? '',
|
|
89
|
+
repository: repositoryUrl(manifest),
|
|
90
|
+
license: manifest.license ?? '',
|
|
91
|
+
keywords: [...(manifest.keywords ?? [])],
|
|
92
|
+
mcpServers: {
|
|
93
|
+
[MCP_SERVER_KEY]: { command: MCP_SERVER_KEY, args: ['mcp', 'serve'] }
|
|
94
|
+
},
|
|
95
|
+
skills: skillEntriesOf(skills)
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/** Pretty JSON, newline-terminated — the same serialization contract as the whitelist. */
|
|
101
|
+
export function serializePluginManifest(manifest) {
|
|
102
|
+
return `${JSON.stringify(manifest, null, 2)}\n`;
|
|
103
|
+
}
|
|
104
|
+
/** Absolute path of the committed artifact for a package root. */
|
|
105
|
+
export function pluginManifestPath(root = repoRoot) {
|
|
106
|
+
return join(root, PLUGIN_MANIFEST_RELATIVE_PATH);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The whole render for a package root: read the two sources, refuse a skill tree
|
|
110
|
+
* that did not fully parse, and serialize.
|
|
111
|
+
*
|
|
112
|
+
* The `failures` refusal is the load-bearing part. `loadSkillRegistry` reports an
|
|
113
|
+
* unreadable `SKILL.md` in a `failures` array instead of throwing, so a render
|
|
114
|
+
* that ignored it would DROP a skill from the manifest and still be
|
|
115
|
+
* byte-stable — a green CI over a manifest that had silently lost entries. A
|
|
116
|
+
* drift assertion cannot be stronger than its input, so the input is required to
|
|
117
|
+
* be complete.
|
|
118
|
+
*/
|
|
119
|
+
export async function renderPluginManifest(root = repoRoot) {
|
|
120
|
+
const skills = await loadSkillRegistry(join(root, 'skills'));
|
|
121
|
+
if (skills.failures.length > 0) {
|
|
122
|
+
const named = skills.failures.map((failure) => failure.skillPath).join(', ');
|
|
123
|
+
throw new Error(`Refusing to render the plugin manifest: unreadable skill(s): ${named}`);
|
|
124
|
+
}
|
|
125
|
+
return serializePluginManifest(generatePluginManifest(loadPackageManifest(root), skills.skills));
|
|
126
|
+
}
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
* `createRequire(import.meta.url)` to find the package.
|
|
18
18
|
*/
|
|
19
19
|
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
20
|
-
import { dirname, join
|
|
20
|
+
import { dirname, join } from 'node:path';
|
|
21
21
|
import { createRequire } from 'node:module';
|
|
22
22
|
import { getErrorMessage } from 'peaks-loop-shared/result';
|
|
23
23
|
import { resolveCodegraphProjectRoot } from '../../../codegraph/codegraph-service.js';
|
|
24
|
-
|
|
24
|
+
import { codegraphUpstreamLayoutFor } from '../../../codegraph/codegraph-upstream-layout.js';
|
|
25
|
+
const CODEGRAPH_EXPECTED_VERSION = '1.6.2';
|
|
25
26
|
const CODEGRAPH_PACKAGE_NAME = '@colbymchenry/codegraph';
|
|
26
27
|
function findCodegraphPackageJsonFallback(startDir) {
|
|
27
|
-
// Slice rid-CG-007 (downstream safety): yarn-pnp / pnpm-strict /
|
|
28
28
|
// sub-package consumers may not expose `@colbymchenry/codegraph` to
|
|
29
29
|
// `createRequire(import.meta.url).resolve`. The fallback walks up
|
|
30
30
|
// the directory tree from `startDir` looking for
|
|
@@ -78,9 +78,13 @@ function defaultCodegraphProbe() {
|
|
|
78
78
|
// Fall through with version='unknown'; the binary-existence
|
|
79
79
|
// check below is the load-bearing assertion.
|
|
80
80
|
}
|
|
81
|
+
// Probing, not path-joining: 1.6.x keeps the entry in the per-platform
|
|
82
|
+
// bundle's `lib/dist/`, not in the main package's own `dist/`. The shared
|
|
83
|
+
// resolver is the same one the spawn path uses, so the doctor cannot
|
|
84
|
+
// report "binary exists" at a path the spawn would not use.
|
|
81
85
|
let binaryPath;
|
|
82
86
|
try {
|
|
83
|
-
binaryPath =
|
|
87
|
+
binaryPath = codegraphUpstreamLayoutFor(packagePath).binaryPath;
|
|
84
88
|
}
|
|
85
89
|
catch {
|
|
86
90
|
binaryPath = '';
|
|
@@ -131,18 +135,22 @@ function runCheck(probe, managedPathProbe) {
|
|
|
131
135
|
const versionOk = result.version === CODEGRAPH_EXPECTED_VERSION;
|
|
132
136
|
const managedPathSuffix = renderManagedPathSuffix(managedPath);
|
|
133
137
|
if (!versionOk) {
|
|
134
|
-
//
|
|
135
|
-
//
|
|
136
|
-
//
|
|
137
|
-
// the
|
|
138
|
-
// compatible with
|
|
139
|
-
//
|
|
138
|
+
// version via yarn-pnp / pnpm-strict. Still a warning rather than an
|
|
139
|
+
// error — the pinned subcommand surface is stable, and a drift is not
|
|
140
|
+
// by itself a broken install — but the tolerance is NOT the wire
|
|
141
|
+
// compatibility the old `0.7.x` band had, where patch drift really was
|
|
142
|
+
// wire-compatible with the pin. 1.6.x is a rewrite of the runtime and
|
|
143
|
+
// of the index's on-disk schema: opening a 0.7.10-built `.codegraph/`
|
|
144
|
+
// with it migrates the database, and the migration is not reversible.
|
|
145
|
+
// So the message states the drift and the pin command and names the
|
|
146
|
+
// axis that actually moves, instead of reassuring the reader about a
|
|
147
|
+
// compatibility that does not hold across 0.7.x → 1.6.x.
|
|
140
148
|
return [
|
|
141
149
|
{
|
|
142
150
|
id: 'capability:codegraph',
|
|
143
151
|
ok: false,
|
|
144
152
|
severity: 'warning',
|
|
145
|
-
message: `@colbymchenry/codegraph version drift: expected ${CODEGRAPH_EXPECTED_VERSION}, resolved ${result.version} at ${result.packagePath} — peaks-loop uses an allow-list of subcommands
|
|
153
|
+
message: `@colbymchenry/codegraph version drift: expected ${CODEGRAPH_EXPECTED_VERSION}, resolved ${result.version} at ${result.packagePath} — peaks-loop uses an allow-list of subcommands, but the index schema is NOT stable across a major version (0.7.x and 1.6.x cannot share one .codegraph/ directory). Run \`pnpm install @colbymchenry/codegraph@${CODEGRAPH_EXPECTED_VERSION}\` to pin.${managedPathSuffix}`
|
|
146
154
|
}
|
|
147
155
|
];
|
|
148
156
|
}
|
|
@@ -181,7 +189,6 @@ function run({ options }) {
|
|
|
181
189
|
function defaultCodegraphManagedPathProbe() {
|
|
182
190
|
return detectManagedCodegraphPath(process.cwd());
|
|
183
191
|
}
|
|
184
|
-
// Slice S3b (rid-s3b-doctor-check-typing): `satisfies` instead of a
|
|
185
192
|
// `: DoctorCheckPlugin` annotation. The annotation widened this object
|
|
186
193
|
// literal to the interface's `run` return type
|
|
187
194
|
// (`readonly DoctorCheck[] | Promise<readonly DoctorCheck[]>`) — an
|
|
@@ -62,7 +62,6 @@ function elide(paths) {
|
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* 2026-09-17 — `projectRoot` is the doctor's resolved L3 root, NOT
|
|
65
|
-
* `process.cwd()`. It used to read `process.cwd()`, which is a different
|
|
66
65
|
* thing from the root the rest of the doctor was pointed at: a caller that
|
|
67
66
|
* injects `projectRootResolver` (e.g.
|
|
68
67
|
* `tests/unit/doctor/doctor-exit-code-warn-only.test.ts`) got every other
|
|
@@ -100,7 +99,7 @@ function renderGapMessage(includeGap, admittedTrackedCount, trackedSourceCount,
|
|
|
100
99
|
// none while none existed); the command name is a shared constant, so this
|
|
101
100
|
// message cannot drift from the CLI surface it points at.
|
|
102
101
|
function remediation() {
|
|
103
|
-
return `Run \`${CODEGRAPH_REPAIR_INDEX_COMMAND}\` to
|
|
102
|
+
return `Run \`${CODEGRAPH_REPAIR_INDEX_COMMAND}\` to drop the blocking exclude rules and rebuild the index without the stale rows.`;
|
|
104
103
|
}
|
|
105
104
|
function run({ options, resolvedL3Root }) {
|
|
106
105
|
const probe = options.codegraphIndexIntegrityProbe ?? (() => defaultProbe(resolvedL3Root));
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Checks for `.peaks/memory/` health (`L3:l3-memory-health` and siblings).
|
|
3
3
|
*
|
|
4
|
-
* Slice 2026-06-13-repair-pre-existing-test-failures: the
|
|
5
4
|
* production MemoryIndex schema (see
|
|
6
5
|
* `src/services/memory/project-memory-service.ts`) uses
|
|
7
6
|
* `version: 1` as the schema marker, NOT `schema_version`.
|
|
@@ -11,7 +10,6 @@
|
|
|
11
10
|
* When no `.peaks/memory/index.json` exists yet, the check passes
|
|
12
11
|
* (fresh project — no memories have been extracted).
|
|
13
12
|
*
|
|
14
|
-
* Slice 2026-09-09-memory-system-overhaul (D) extends the check with the
|
|
15
13
|
* drift findings the original version could not see. It used to report
|
|
16
14
|
* `ok: true` for "index.json is well-formed JSON; 100 hot + 131 warm" and
|
|
17
15
|
* never looked at coverage, orphans, or unclassified files. It now emits,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Checks for `.peaks/memory/` health (`L3:l3-memory-health` and siblings).
|
|
3
3
|
*
|
|
4
|
-
* Slice 2026-06-13-repair-pre-existing-test-failures: the
|
|
5
4
|
* production MemoryIndex schema (see
|
|
6
5
|
* `src/services/memory/project-memory-service.ts`) uses
|
|
7
6
|
* `version: 1` as the schema marker, NOT `schema_version`.
|
|
@@ -11,7 +10,6 @@
|
|
|
11
10
|
* When no `.peaks/memory/index.json` exists yet, the check passes
|
|
12
11
|
* (fresh project — no memories have been extracted).
|
|
13
12
|
*
|
|
14
|
-
* Slice 2026-09-09-memory-system-overhaul (D) extends the check with the
|
|
15
13
|
* drift findings the original version could not see. It used to report
|
|
16
14
|
* `ok: true` for "index.json is well-formed JSON; 100 hot + 131 warm" and
|
|
17
15
|
* never looked at coverage, orphans, or unclassified files. It now emits,
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* subdirs that intentionally live under `.peaks/_runtime/`
|
|
7
7
|
* (e.g. `change/`, which routes reviewable artifacts per F3).
|
|
8
8
|
*
|
|
9
|
-
* Slice 2026-06-24-doctor-1xdetector-residual regression net: the
|
|
10
9
|
* reducer MUST exclude `change/` (and other system subdirs added
|
|
11
10
|
* by future F3 changes) — without the exclude-list the doctor
|
|
12
11
|
* flips the summary to fail on every clean workspace, which broke
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* subdirs that intentionally live under `.peaks/_runtime/`
|
|
7
7
|
* (e.g. `change/`, which routes reviewable artifacts per F3).
|
|
8
8
|
*
|
|
9
|
-
* Slice 2026-06-24-doctor-1xdetector-residual regression net: the
|
|
10
9
|
* reducer MUST exclude `change/` (and other system subdirs added
|
|
11
10
|
* by future F3 changes) — without the exclude-list the doctor
|
|
12
11
|
* flips the summary to fail on every clean workspace, which broke
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Check: PATH-scoped `peaks-loop` binary drift
|
|
3
3
|
* (`build:multi-binary-drift`).
|
|
4
4
|
*
|
|
5
|
-
* Slice 2026-08-05-statusline-sid-only-marker-and-multi-binary-drift-guard
|
|
6
5
|
* (G3/G4). When more than one `peaks-loop` binary is discoverable on
|
|
7
6
|
* `process.env.PATH` AND the discovered versions disagree, the doctor
|
|
8
7
|
* emits a `PEAKS_MULTI_BINARY_DRIFT` warning. The user-reported
|