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,147 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Where the generator writes the artifact, relative to the package root. */
|
|
3
|
+
export declare const READONLY_WHITELIST_RELATIVE_PATH = "contracts/readonly-argv-whitelist.json";
|
|
4
|
+
declare const PlaceholderSpecSchema: z.ZodObject<{
|
|
5
|
+
type: z.ZodEnum<{
|
|
6
|
+
enum: "enum";
|
|
7
|
+
path: "path";
|
|
8
|
+
token: "token";
|
|
9
|
+
slug: "slug";
|
|
10
|
+
integer: "integer";
|
|
11
|
+
}>;
|
|
12
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
13
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
binding: z.ZodObject<{
|
|
18
|
+
kind: z.ZodEnum<{
|
|
19
|
+
option: "option";
|
|
20
|
+
positional: "positional";
|
|
21
|
+
}>;
|
|
22
|
+
token: z.ZodString;
|
|
23
|
+
required: z.ZodBoolean;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
constraintSource: z.ZodEnum<{
|
|
26
|
+
introspected: "introspected";
|
|
27
|
+
handwritten: "handwritten";
|
|
28
|
+
}>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
declare const EntrySchema: z.ZodObject<{
|
|
31
|
+
id: z.ZodString;
|
|
32
|
+
tool: z.ZodString;
|
|
33
|
+
commandPath: z.ZodArray<z.ZodString>;
|
|
34
|
+
argv: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
35
|
+
kind: z.ZodLiteral<"literal">;
|
|
36
|
+
value: z.ZodString;
|
|
37
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
38
|
+
kind: z.ZodLiteral<"param">;
|
|
39
|
+
name: z.ZodString;
|
|
40
|
+
}, z.core.$strip>]>>;
|
|
41
|
+
params: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
42
|
+
type: z.ZodEnum<{
|
|
43
|
+
enum: "enum";
|
|
44
|
+
path: "path";
|
|
45
|
+
token: "token";
|
|
46
|
+
slug: "slug";
|
|
47
|
+
integer: "integer";
|
|
48
|
+
}>;
|
|
49
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
50
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
binding: z.ZodObject<{
|
|
55
|
+
kind: z.ZodEnum<{
|
|
56
|
+
option: "option";
|
|
57
|
+
positional: "positional";
|
|
58
|
+
}>;
|
|
59
|
+
token: z.ZodString;
|
|
60
|
+
required: z.ZodBoolean;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
constraintSource: z.ZodEnum<{
|
|
63
|
+
introspected: "introspected";
|
|
64
|
+
handwritten: "handwritten";
|
|
65
|
+
}>;
|
|
66
|
+
}, z.core.$strip>>;
|
|
67
|
+
introspection: z.ZodObject<{
|
|
68
|
+
optionTokens: z.ZodArray<z.ZodString>;
|
|
69
|
+
positionalCount: z.ZodNumber;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
declare const WhitelistSchema: z.ZodObject<{
|
|
73
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
74
|
+
source: z.ZodString;
|
|
75
|
+
readOnlyDefinition: z.ZodString;
|
|
76
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
77
|
+
id: z.ZodString;
|
|
78
|
+
tool: z.ZodString;
|
|
79
|
+
commandPath: z.ZodArray<z.ZodString>;
|
|
80
|
+
argv: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
81
|
+
kind: z.ZodLiteral<"literal">;
|
|
82
|
+
value: z.ZodString;
|
|
83
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
84
|
+
kind: z.ZodLiteral<"param">;
|
|
85
|
+
name: z.ZodString;
|
|
86
|
+
}, z.core.$strip>]>>;
|
|
87
|
+
params: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
88
|
+
type: z.ZodEnum<{
|
|
89
|
+
enum: "enum";
|
|
90
|
+
path: "path";
|
|
91
|
+
token: "token";
|
|
92
|
+
slug: "slug";
|
|
93
|
+
integer: "integer";
|
|
94
|
+
}>;
|
|
95
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
96
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
97
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
98
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
100
|
+
binding: z.ZodObject<{
|
|
101
|
+
kind: z.ZodEnum<{
|
|
102
|
+
option: "option";
|
|
103
|
+
positional: "positional";
|
|
104
|
+
}>;
|
|
105
|
+
token: z.ZodString;
|
|
106
|
+
required: z.ZodBoolean;
|
|
107
|
+
}, z.core.$strip>;
|
|
108
|
+
constraintSource: z.ZodEnum<{
|
|
109
|
+
introspected: "introspected";
|
|
110
|
+
handwritten: "handwritten";
|
|
111
|
+
}>;
|
|
112
|
+
}, z.core.$strip>>;
|
|
113
|
+
introspection: z.ZodObject<{
|
|
114
|
+
optionTokens: z.ZodArray<z.ZodString>;
|
|
115
|
+
positionalCount: z.ZodNumber;
|
|
116
|
+
}, z.core.$strip>;
|
|
117
|
+
}, z.core.$strip>>;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
export type PlaceholderSpec = z.infer<typeof PlaceholderSpecSchema>;
|
|
120
|
+
export type ReadOnlyWhitelistEntry = z.infer<typeof EntrySchema>;
|
|
121
|
+
export type ReadOnlyWhitelist = z.infer<typeof WhitelistSchema>;
|
|
122
|
+
/** Absolute path of the generated artifact for a package root. */
|
|
123
|
+
export declare function resolveReadOnlyWhitelistPath(root?: string): string;
|
|
124
|
+
/** Parse + validate the artifact text. Throws a zod error when the shape drifts. */
|
|
125
|
+
export declare function parseReadOnlyWhitelist(text: string): ReadOnlyWhitelist;
|
|
126
|
+
/** Read + validate the artifact. The only supported way to obtain it. */
|
|
127
|
+
export declare function loadReadOnlyWhitelist(root?: string): ReadOnlyWhitelist;
|
|
128
|
+
/** The param names an entry expects, in argv order. */
|
|
129
|
+
export declare function paramNamesOf(entry: ReadOnlyWhitelistEntry): string[];
|
|
130
|
+
/**
|
|
131
|
+
* The tool names the surface declares, in first-appearance order.
|
|
132
|
+
*
|
|
133
|
+
* This is the pre-tool interceptor's view of "what may be called", and it is
|
|
134
|
+
* computed HERE rather than in the MCP module on purpose: the interceptor must
|
|
135
|
+
* keep working when `src/services/mcp/` is deleted (spec §1), so it cannot reach
|
|
136
|
+
* into it for the answer. Grouping the entries by their `tool` field is the whole
|
|
137
|
+
* computation, and both readers do it from the same DATA.
|
|
138
|
+
*/
|
|
139
|
+
export declare function toolIdsOf(whitelist: ReadOnlyWhitelist): string[];
|
|
140
|
+
/**
|
|
141
|
+
* Match a CONCRETE argv against the entries. A param slot consumes exactly one
|
|
142
|
+
* token, so `--apply` in a param slot still MATCHES here - refusing it is the
|
|
143
|
+
* validator's job (`argv-guard.ts`), not the matcher's. Keeping the two separate
|
|
144
|
+
* is what stops a rejected value from silently re-routing to another entry.
|
|
145
|
+
*/
|
|
146
|
+
export declare function matchReadOnlyEntry(whitelist: ReadOnlyWhitelist, argv: readonly string[]): ReadOnlyWhitelistEntry | undefined;
|
|
147
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The read-only argv whitelist, as DATA.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS IS A LOADER AND NOT AN IMPORT. The generated whitelist is read by two
|
|
5
|
+
* consumers that must survive the removal of the MCP module (spec §1): the
|
|
6
|
+
* pre-tool interceptor and, later, the MCP server. If either `import`ed the
|
|
7
|
+
* generated artifact it would become a static edge between them, and deleting
|
|
8
|
+
* the MCP module would break the gate. So the artifact stays a `.json` file and
|
|
9
|
+
* every reader goes through the filesystem. `tests/unit/standards/no-mcp-source-import.test.ts`
|
|
10
|
+
* pins that no module may `import` it.
|
|
11
|
+
*
|
|
12
|
+
* The shape is `{ schemaVersion, source, readOnlyDefinition, entries[] }`. Each
|
|
13
|
+
* entry is a full argv template (flags included) plus typed placeholders - the
|
|
14
|
+
* key is the WHOLE argv, never the top-level verb, because each named command
|
|
15
|
+
* family mixes read and write subcommands.
|
|
16
|
+
*/
|
|
17
|
+
import { readFileSync } from 'node:fs';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import { repoRoot } from 'peaks-loop-shared/paths';
|
|
21
|
+
/** Where the generator writes the artifact, relative to the package root. */
|
|
22
|
+
export const READONLY_WHITELIST_RELATIVE_PATH = 'contracts/readonly-argv-whitelist.json';
|
|
23
|
+
const PlaceholderBindingSchema = z.object({
|
|
24
|
+
/** `option` when the value is the argument of a flag, `positional` otherwise. */
|
|
25
|
+
kind: z.enum(['option', 'positional']),
|
|
26
|
+
/** The flag token (`--role`) or the positional name (`request-id`). */
|
|
27
|
+
token: z.string().min(1),
|
|
28
|
+
required: z.boolean()
|
|
29
|
+
});
|
|
30
|
+
const PlaceholderSpecSchema = z.object({
|
|
31
|
+
type: z.enum(['slug', 'enum', 'token', 'integer', 'path']),
|
|
32
|
+
pattern: z.string().min(1).optional(),
|
|
33
|
+
values: z.array(z.string().min(1)).min(1).optional(),
|
|
34
|
+
min: z.number().int().optional(),
|
|
35
|
+
max: z.number().int().optional(),
|
|
36
|
+
default: z.number().int().optional(),
|
|
37
|
+
/**
|
|
38
|
+
* Where the placeholder lives and whether the REGISTRY makes it mandatory.
|
|
39
|
+
* A placeholder present in the template is always supplied a value; this
|
|
40
|
+
* field carries the introspected fact, not the template's demand.
|
|
41
|
+
*/
|
|
42
|
+
binding: PlaceholderBindingSchema,
|
|
43
|
+
/** `introspected` when the registry supplied the constraint, else `handwritten`. */
|
|
44
|
+
constraintSource: z.enum(['introspected', 'handwritten'])
|
|
45
|
+
});
|
|
46
|
+
const ArgvSegmentSchema = z.union([
|
|
47
|
+
z.object({ kind: z.literal('literal'), value: z.string().min(1) }),
|
|
48
|
+
z.object({ kind: z.literal('param'), name: z.string().min(1) })
|
|
49
|
+
]);
|
|
50
|
+
const EntrySchema = z.object({
|
|
51
|
+
id: z.string().min(1),
|
|
52
|
+
tool: z.string().min(1),
|
|
53
|
+
commandPath: z.array(z.string().min(1)).min(1),
|
|
54
|
+
argv: z.array(ArgvSegmentSchema).min(1),
|
|
55
|
+
params: z.record(z.string(), PlaceholderSpecSchema),
|
|
56
|
+
introspection: z.object({
|
|
57
|
+
optionTokens: z.array(z.string().min(1)),
|
|
58
|
+
positionalCount: z.number().int().gte(0)
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
const WhitelistSchema = z.object({
|
|
62
|
+
schemaVersion: z.literal(1),
|
|
63
|
+
source: z.string().min(1),
|
|
64
|
+
readOnlyDefinition: z.string().min(1),
|
|
65
|
+
entries: z.array(EntrySchema).min(1)
|
|
66
|
+
});
|
|
67
|
+
/** Absolute path of the generated artifact for a package root. */
|
|
68
|
+
export function resolveReadOnlyWhitelistPath(root = repoRoot) {
|
|
69
|
+
return join(root, READONLY_WHITELIST_RELATIVE_PATH);
|
|
70
|
+
}
|
|
71
|
+
/** Parse + validate the artifact text. Throws a zod error when the shape drifts. */
|
|
72
|
+
export function parseReadOnlyWhitelist(text) {
|
|
73
|
+
return WhitelistSchema.parse(JSON.parse(text));
|
|
74
|
+
}
|
|
75
|
+
/** Read + validate the artifact. The only supported way to obtain it. */
|
|
76
|
+
export function loadReadOnlyWhitelist(root = repoRoot) {
|
|
77
|
+
return parseReadOnlyWhitelist(readFileSync(resolveReadOnlyWhitelistPath(root), 'utf8'));
|
|
78
|
+
}
|
|
79
|
+
/** The param names an entry expects, in argv order. */
|
|
80
|
+
export function paramNamesOf(entry) {
|
|
81
|
+
return entry.argv.flatMap((segment) => (segment.kind === 'param' ? [segment.name] : []));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The tool names the surface declares, in first-appearance order.
|
|
85
|
+
*
|
|
86
|
+
* This is the pre-tool interceptor's view of "what may be called", and it is
|
|
87
|
+
* computed HERE rather than in the MCP module on purpose: the interceptor must
|
|
88
|
+
* keep working when `src/services/mcp/` is deleted (spec §1), so it cannot reach
|
|
89
|
+
* into it for the answer. Grouping the entries by their `tool` field is the whole
|
|
90
|
+
* computation, and both readers do it from the same DATA.
|
|
91
|
+
*/
|
|
92
|
+
export function toolIdsOf(whitelist) {
|
|
93
|
+
return [...new Set(whitelist.entries.map((entry) => entry.tool))];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Match a CONCRETE argv against the entries. A param slot consumes exactly one
|
|
97
|
+
* token, so `--apply` in a param slot still MATCHES here - refusing it is the
|
|
98
|
+
* validator's job (`argv-guard.ts`), not the matcher's. Keeping the two separate
|
|
99
|
+
* is what stops a rejected value from silently re-routing to another entry.
|
|
100
|
+
*/
|
|
101
|
+
export function matchReadOnlyEntry(whitelist, argv) {
|
|
102
|
+
return whitelist.entries.find((entry) => {
|
|
103
|
+
if (entry.argv.length !== argv.length)
|
|
104
|
+
return false;
|
|
105
|
+
return entry.argv.every((segment, index) => segment.kind === 'literal' ? segment.value === argv[index] : true);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { type ReadOnlyWhitelist } from './readonly-whitelist.js';
|
|
4
|
+
/** The hand-authored input, relative to the package root. */
|
|
5
|
+
export declare const READONLY_SURFACE_RELATIVE_PATH = "contracts/readonly-surface.json";
|
|
6
|
+
/** The schema version of the artifact this module emits. */
|
|
7
|
+
export declare const READONLY_WHITELIST_SCHEMA_VERSION = 1;
|
|
8
|
+
declare const SurfaceEntrySchema: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
commandPath: z.ZodArray<z.ZodString>;
|
|
11
|
+
argv: z.ZodArray<z.ZodString>;
|
|
12
|
+
params: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
13
|
+
type: z.ZodEnum<{
|
|
14
|
+
enum: "enum";
|
|
15
|
+
path: "path";
|
|
16
|
+
token: "token";
|
|
17
|
+
slug: "slug";
|
|
18
|
+
integer: "integer";
|
|
19
|
+
}>;
|
|
20
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
21
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
22
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
}, z.core.$strip>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export declare const ReadOnlySurfaceSchema: z.ZodObject<{
|
|
28
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
29
|
+
readOnlyDefinition: z.ZodString;
|
|
30
|
+
note: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
31
|
+
tools: z.ZodArray<z.ZodObject<{
|
|
32
|
+
tool: z.ZodString;
|
|
33
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
34
|
+
id: z.ZodString;
|
|
35
|
+
commandPath: z.ZodArray<z.ZodString>;
|
|
36
|
+
argv: z.ZodArray<z.ZodString>;
|
|
37
|
+
params: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
38
|
+
type: z.ZodEnum<{
|
|
39
|
+
enum: "enum";
|
|
40
|
+
path: "path";
|
|
41
|
+
token: "token";
|
|
42
|
+
slug: "slug";
|
|
43
|
+
integer: "integer";
|
|
44
|
+
}>;
|
|
45
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
46
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
47
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
50
|
+
}, z.core.$strip>>;
|
|
51
|
+
}, z.core.$strip>>;
|
|
52
|
+
}, z.core.$strip>>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export type ReadOnlySurface = z.infer<typeof ReadOnlySurfaceSchema>;
|
|
55
|
+
export type ReadOnlySurfaceEntry = z.infer<typeof SurfaceEntrySchema>;
|
|
56
|
+
/** Build the artifact object from a surface declaration and a live program. */
|
|
57
|
+
export declare function generateReadOnlyWhitelist(surface: ReadOnlySurface, program: Command): ReadOnlyWhitelist;
|
|
58
|
+
/** Byte-stable serialization: two runs over the same input MUST match. */
|
|
59
|
+
export declare function serializeReadOnlyWhitelist(whitelist: ReadOnlyWhitelist): string;
|
|
60
|
+
/** Read + validate the hand-authored surface declaration. */
|
|
61
|
+
export declare function loadReadOnlySurface(root?: string): ReadOnlySurface;
|
|
62
|
+
/** Absolute path of the generated artifact. */
|
|
63
|
+
export declare function readonlyWhitelistPath(root?: string): string;
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The schema introspector (spec §3 row 2): turns the hand-authored surface
|
|
3
|
+
* declaration into the generated whitelist artifact by READING the live Commander
|
|
4
|
+
* registry - never by restating it.
|
|
5
|
+
*
|
|
6
|
+
* Everything the registry can answer is taken from it:
|
|
7
|
+
* - does the command path exist,
|
|
8
|
+
* - does each `--flag` in the template exist on that command,
|
|
9
|
+
* - is that flag mandatory, and does it take a value,
|
|
10
|
+
* - which positionals does the command declare, and are they required.
|
|
11
|
+
* A template that disagrees with the registry is a BUILD FAILURE, not a warning:
|
|
12
|
+
* that is the whole point of generating the artifact instead of typing it.
|
|
13
|
+
*
|
|
14
|
+
* What the registry CANNOT answer is the constraint on a placeholder's value
|
|
15
|
+
* (`^[a-z0-9-]+$` for a request id). Those constraints come from the surface file
|
|
16
|
+
* and are marked `constraintSource: 'handwritten'`, so the one place drift can
|
|
17
|
+
* enter is visible in the artifact. When a command later declares `.choices()`,
|
|
18
|
+
* the same field flips to `introspected` with no artifact edit.
|
|
19
|
+
*
|
|
20
|
+
* DETERMINISM: no timestamps, no `Date`, no unordered iteration. Record
|
|
21
|
+
* keys follow argv order and entries follow the surface file's order, so two
|
|
22
|
+
* consecutive runs are byte-identical.
|
|
23
|
+
*/
|
|
24
|
+
import { readFileSync } from 'node:fs';
|
|
25
|
+
import { join } from 'node:path';
|
|
26
|
+
import { z } from 'zod';
|
|
27
|
+
import { repoRoot } from 'peaks-loop-shared/paths';
|
|
28
|
+
import { READONLY_WHITELIST_RELATIVE_PATH } from './readonly-whitelist.js';
|
|
29
|
+
/** The hand-authored input, relative to the package root. */
|
|
30
|
+
export const READONLY_SURFACE_RELATIVE_PATH = 'contracts/readonly-surface.json';
|
|
31
|
+
/** The schema version of the artifact this module emits. */
|
|
32
|
+
export const READONLY_WHITELIST_SCHEMA_VERSION = 1;
|
|
33
|
+
const SurfaceParamSchema = z.object({
|
|
34
|
+
type: z.enum(['slug', 'enum', 'token', 'integer', 'path']),
|
|
35
|
+
pattern: z.string().min(1).optional(),
|
|
36
|
+
values: z.array(z.string().min(1)).min(1).optional(),
|
|
37
|
+
min: z.number().int().optional(),
|
|
38
|
+
max: z.number().int().optional(),
|
|
39
|
+
default: z.number().int().optional()
|
|
40
|
+
});
|
|
41
|
+
const SurfaceEntrySchema = z.object({
|
|
42
|
+
id: z.string().min(1),
|
|
43
|
+
commandPath: z.array(z.string().min(1)).min(1),
|
|
44
|
+
argv: z.array(z.string().min(1)).min(1),
|
|
45
|
+
params: z.record(z.string(), SurfaceParamSchema)
|
|
46
|
+
});
|
|
47
|
+
export const ReadOnlySurfaceSchema = z.object({
|
|
48
|
+
schemaVersion: z.literal(1),
|
|
49
|
+
readOnlyDefinition: z.string().min(1),
|
|
50
|
+
note: z.array(z.string()).default([]),
|
|
51
|
+
tools: z.array(z.object({ tool: z.string().min(1), entries: z.array(SurfaceEntrySchema).min(1) }))
|
|
52
|
+
});
|
|
53
|
+
/** `<name>` marks a placeholder token in a surface `argv` element. */
|
|
54
|
+
const PLACEHOLDER_TOKEN = /^<([a-z][a-z0-9-]*)>$/;
|
|
55
|
+
class SurfaceDriftError extends Error {
|
|
56
|
+
constructor(message) {
|
|
57
|
+
super(message);
|
|
58
|
+
this.name = 'SurfaceDriftError';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function resolveCommand(program, path) {
|
|
62
|
+
let current = program;
|
|
63
|
+
for (const name of path) {
|
|
64
|
+
current = current.commands.find((candidate) => candidate.name() === name);
|
|
65
|
+
if (current === undefined) {
|
|
66
|
+
throw new SurfaceDriftError(`No command registered at path: ${path.join(' ')}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return current;
|
|
70
|
+
}
|
|
71
|
+
function hasOption(command, token) {
|
|
72
|
+
return command.options.some((option) => option.long === token || option.short === token);
|
|
73
|
+
}
|
|
74
|
+
function optionTakingValue(command, token) {
|
|
75
|
+
return command.options.find((option) => {
|
|
76
|
+
if (option.long !== token && option.short !== token)
|
|
77
|
+
return false;
|
|
78
|
+
return /[<[].+[>\]]/.test(option.flags);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** Placeholders the registry supplies a constraint for are marked as such. */
|
|
82
|
+
function constraintSourceOf(declared, option) {
|
|
83
|
+
if (declared.type === 'enum' && option?.argChoices !== undefined)
|
|
84
|
+
return 'introspected';
|
|
85
|
+
if (option?.defaultValue !== undefined && declared.default !== undefined)
|
|
86
|
+
return 'introspected';
|
|
87
|
+
return 'handwritten';
|
|
88
|
+
}
|
|
89
|
+
/** The constraint fields the surface declares, copied without inventing absent ones. */
|
|
90
|
+
function constraintsOf(declared) {
|
|
91
|
+
return {
|
|
92
|
+
type: declared.type,
|
|
93
|
+
...(declared.pattern === undefined ? {} : { pattern: declared.pattern }),
|
|
94
|
+
...(declared.values === undefined ? {} : { values: declared.values }),
|
|
95
|
+
...(declared.min === undefined ? {} : { min: declared.min }),
|
|
96
|
+
...(declared.max === undefined ? {} : { max: declared.max }),
|
|
97
|
+
...(declared.default === undefined ? {} : { default: declared.default })
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Bind one placeholder either to the value-taking flag before it or to the next
|
|
102
|
+
* positional the command declares. Membership in the template is what makes a
|
|
103
|
+
* value required; `binding.required` carries the REGISTRY's opinion, which is a
|
|
104
|
+
* different fact (`--limit` is not mandatory, yet the template pins it).
|
|
105
|
+
*/
|
|
106
|
+
function bindPlaceholder(slot) {
|
|
107
|
+
const { entryId, name, declared, command, previousToken, cursor } = slot;
|
|
108
|
+
if (declared === undefined) {
|
|
109
|
+
throw new SurfaceDriftError(`Entry ${entryId}: placeholder <${name}> has no params spec`);
|
|
110
|
+
}
|
|
111
|
+
const boundOption = previousToken === undefined ? undefined : optionTakingValue(command, previousToken);
|
|
112
|
+
if (boundOption !== undefined && previousToken !== undefined) {
|
|
113
|
+
return {
|
|
114
|
+
...constraintsOf(declared),
|
|
115
|
+
binding: { kind: 'option', token: previousToken, required: boundOption.mandatory },
|
|
116
|
+
constraintSource: constraintSourceOf(declared, boundOption)
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
const registered = command.registeredArguments[cursor.positionalIndex];
|
|
120
|
+
if (registered === undefined) {
|
|
121
|
+
throw new SurfaceDriftError(`Entry ${entryId}: <${name}> is positional ${cursor.positionalIndex + 1} but the command declares ${command.registeredArguments.length}`);
|
|
122
|
+
}
|
|
123
|
+
cursor.positionalIndex += 1;
|
|
124
|
+
cursor.positionalNames.push(registered.name());
|
|
125
|
+
return {
|
|
126
|
+
...constraintsOf(declared),
|
|
127
|
+
binding: { kind: 'positional', token: registered.name(), required: registered.required },
|
|
128
|
+
constraintSource: 'handwritten'
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/** The non-flag words a template opens with, which must be the command path. */
|
|
132
|
+
function leadingLiteralsOf(argv) {
|
|
133
|
+
return argv.flatMap((segment) => segment.kind === 'literal' && !segment.value.startsWith('-') ? [segment.value] : []);
|
|
134
|
+
}
|
|
135
|
+
function assertTemplateDrivesCommand(surface, command, argv, cursor) {
|
|
136
|
+
const leading = leadingLiteralsOf(argv);
|
|
137
|
+
if (leading.join('\u0000') !== surface.commandPath.join('\u0000')) {
|
|
138
|
+
throw new SurfaceDriftError(`Entry ${surface.id}: argv opens with [${leading.join(', ')}] but commandPath is [${surface.commandPath.join(', ')}]`);
|
|
139
|
+
}
|
|
140
|
+
if (cursor.positionalIndex !== command.registeredArguments.length) {
|
|
141
|
+
throw new SurfaceDriftError(`Entry ${surface.id}: template fills ${cursor.positionalIndex} positional(s); ${surface.commandPath.join(' ')} declares ${command.registeredArguments.length}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function buildEntry(program, tool, surface) {
|
|
145
|
+
const command = resolveCommand(program, surface.commandPath);
|
|
146
|
+
const optionTokens = [];
|
|
147
|
+
const argv = [];
|
|
148
|
+
const params = {};
|
|
149
|
+
const cursor = { positionalIndex: 0, positionalNames: [] };
|
|
150
|
+
for (let index = 0; index < surface.argv.length; index += 1) {
|
|
151
|
+
const token = surface.argv[index];
|
|
152
|
+
if (token === undefined)
|
|
153
|
+
continue;
|
|
154
|
+
const placeholder = PLACEHOLDER_TOKEN.exec(token);
|
|
155
|
+
const name = placeholder?.[1];
|
|
156
|
+
if (placeholder !== null && name !== undefined) {
|
|
157
|
+
params[name] = bindPlaceholder({
|
|
158
|
+
entryId: surface.id,
|
|
159
|
+
name,
|
|
160
|
+
declared: surface.params[name],
|
|
161
|
+
command,
|
|
162
|
+
previousToken: index > 0 ? surface.argv[index - 1] : undefined,
|
|
163
|
+
cursor
|
|
164
|
+
});
|
|
165
|
+
argv.push({ kind: 'param', name });
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (token.startsWith('-')) {
|
|
169
|
+
if (!hasOption(command, token)) {
|
|
170
|
+
throw new SurfaceDriftError(`Entry ${surface.id}: no such option ${token} on ${surface.commandPath.join(' ')}`);
|
|
171
|
+
}
|
|
172
|
+
optionTokens.push(token);
|
|
173
|
+
}
|
|
174
|
+
argv.push({ kind: 'literal', value: token });
|
|
175
|
+
}
|
|
176
|
+
assertTemplateDrivesCommand(surface, command, argv, cursor);
|
|
177
|
+
return {
|
|
178
|
+
id: surface.id,
|
|
179
|
+
tool,
|
|
180
|
+
commandPath: [...surface.commandPath],
|
|
181
|
+
argv,
|
|
182
|
+
params,
|
|
183
|
+
introspection: { optionTokens, positionalCount: cursor.positionalNames.length }
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/** Build the artifact object from a surface declaration and a live program. */
|
|
187
|
+
export function generateReadOnlyWhitelist(surface, program) {
|
|
188
|
+
const entries = surface.tools.flatMap((group) => group.entries.map((entry) => buildEntry(program, group.tool, entry)));
|
|
189
|
+
const ids = new Set(entries.map((entry) => entry.id));
|
|
190
|
+
if (ids.size !== entries.length) {
|
|
191
|
+
throw new SurfaceDriftError('Entry ids must be unique across the whole surface');
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
schemaVersion: READONLY_WHITELIST_SCHEMA_VERSION,
|
|
195
|
+
source: READONLY_SURFACE_RELATIVE_PATH,
|
|
196
|
+
readOnlyDefinition: surface.readOnlyDefinition,
|
|
197
|
+
entries
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/** Byte-stable serialization: two runs over the same input MUST match. */
|
|
201
|
+
export function serializeReadOnlyWhitelist(whitelist) {
|
|
202
|
+
return `${JSON.stringify(whitelist, null, 2)}\n`;
|
|
203
|
+
}
|
|
204
|
+
/** Read + validate the hand-authored surface declaration. */
|
|
205
|
+
export function loadReadOnlySurface(root = repoRoot) {
|
|
206
|
+
const text = readFileSync(join(root, READONLY_SURFACE_RELATIVE_PATH), 'utf8');
|
|
207
|
+
return ReadOnlySurfaceSchema.parse(JSON.parse(text));
|
|
208
|
+
}
|
|
209
|
+
/** Absolute path of the generated artifact. */
|
|
210
|
+
export function readonlyWhitelistPath(root = repoRoot) {
|
|
211
|
+
return join(root, READONLY_WHITELIST_RELATIVE_PATH);
|
|
212
|
+
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* detector for the capability catalog (`peaks capability status` /
|
|
4
4
|
* `peaks capabilities --source ...`).
|
|
5
5
|
*
|
|
6
|
-
* Slice B1 of 2026-09-09-ecc-dynamic-and-cleanup: the previous
|
|
7
6
|
* `getInstalledCapabilityIds()` returned `[]` unconditionally, so the
|
|
8
7
|
* catalog could never report anything as installed. This module answers
|
|
9
8
|
* the question from evidence that already exists on disk — no install
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* detector for the capability catalog (`peaks capability status` /
|
|
4
4
|
* `peaks capabilities --source ...`).
|
|
5
5
|
*
|
|
6
|
-
* Slice B1 of 2026-09-09-ecc-dynamic-and-cleanup: the previous
|
|
7
6
|
* `getInstalledCapabilityIds()` returned `[]` unconditionally, so the
|
|
8
7
|
* catalog could never report anything as installed. This module answers
|
|
9
8
|
* the question from evidence that already exists on disk — no install
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rid-010 — peaks release precheck (Phase 4 slice 1).
|
|
3
2
|
*
|
|
4
3
|
* Module path: src/services/release/version-precheck-service.ts
|
|
5
4
|
* Mirrors publish.yml gate-cli-version §(A) — verified in code 2026-10-03, not
|
|
6
5
|
* just per the old comment: `runRootVsShared` covers §(A)'s shared-dist check;
|
|
7
6
|
* §(A′) (runtime RUNTIME_VERSION) has no layer here, and the §(B)
|
|
8
7
|
* tarball-content gate (Layer 5 of the 5-layer root cause) stays CI-only —
|
|
9
|
-
* AC-7 grep test pins publish.yml so §(B) cannot drift silently.
|
|
10
8
|
*
|
|
11
9
|
* 4-layer version precheck. Designed to run BEFORE `peaks release canary` so
|
|
12
10
|
* developers catch CLI_VERSION lag / tag collision / changeset staged /
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rid-010 — peaks release precheck (Phase 4 slice 1).
|
|
3
2
|
*
|
|
4
3
|
* Module path: src/services/release/version-precheck-service.ts
|
|
5
4
|
* Mirrors publish.yml gate-cli-version §(A) — verified in code 2026-10-03, not
|
|
6
5
|
* just per the old comment: `runRootVsShared` covers §(A)'s shared-dist check;
|
|
7
6
|
* §(A′) (runtime RUNTIME_VERSION) has no layer here, and the §(B)
|
|
8
7
|
* tarball-content gate (Layer 5 of the 5-layer root cause) stays CI-only —
|
|
9
|
-
* AC-7 grep test pins publish.yml so §(B) cannot drift silently.
|
|
10
8
|
*
|
|
11
9
|
* 4-layer version precheck. Designed to run BEFORE `peaks release canary` so
|
|
12
10
|
* developers catch CLI_VERSION lag / tag collision / changeset staged /
|
|
@@ -54,7 +52,6 @@ export function runRootVsShared(opts) {
|
|
|
54
52
|
try {
|
|
55
53
|
const raw = readFileSync(sharedDist, 'utf8');
|
|
56
54
|
// Quote-tolerant: the old double-quote-only regex blanked on prettier's
|
|
57
|
-
// single-quoted emit (rid 2026-10-03-release-gate-quote-brittle).
|
|
58
55
|
const match = raw.match(/CLI_VERSION\s*=\s*(?:"([^"]+)"|'([^']+)'|`([^`]+)`)/);
|
|
59
56
|
const captured = match?.[1] ?? match?.[2] ?? match?.[3];
|
|
60
57
|
if (captured !== undefined) {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* retrospective-index — load `.peaks/retrospective/index.json`, parse to
|
|
3
3
|
* `RetrospectiveEntry[]`, return the index envelope.
|
|
4
4
|
*
|
|
5
|
-
* Slice 023 (R3). Pure read on the hot path: a single `fs.readFile` of
|
|
6
5
|
* the index, no MD-tree fallback. The migration script (G9) is the only
|
|
7
6
|
* writer; this loader is read-only.
|
|
8
7
|
*/
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* retrospective-index — load `.peaks/retrospective/index.json`, parse to
|
|
3
3
|
* `RetrospectiveEntry[]`, return the index envelope.
|
|
4
4
|
*
|
|
5
|
-
* Slice 023 (R3). Pure read on the hot path: a single `fs.readFile` of
|
|
6
5
|
* the index, no MD-tree fallback. The migration script (G9) is the only
|
|
7
6
|
* writer; this loader is read-only.
|
|
8
7
|
*/
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* body on-demand from `artifactPaths` (concatenate with `---` separator),
|
|
4
4
|
* apply `formatMdCompact` by default, return the JSON envelope.
|
|
5
5
|
*
|
|
6
|
-
* Slice 023 (R3). The on-disk MD form is gone after the G9 migration; the
|
|
7
6
|
* body is re-hydrated from the source PRD / RD / QA / TXT artifacts. If
|
|
8
7
|
* a referenced artifact is missing on disk, `show` returns a
|
|
9
8
|
* `ARTIFACT_MISSING` envelope (PRD R3) and does not crash.
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* body on-demand from `artifactPaths` (concatenate with `---` separator),
|
|
4
4
|
* apply `formatMdCompact` by default, return the JSON envelope.
|
|
5
5
|
*
|
|
6
|
-
* Slice 023 (R3). The on-disk MD form is gone after the G9 migration; the
|
|
7
6
|
* body is re-hydrated from the source PRD / RD / QA / TXT artifacts. If
|
|
8
7
|
* a referenced artifact is missing on disk, `show` returns a
|
|
9
8
|
* `ARTIFACT_MISSING` envelope (PRD R3) and does not crash.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* model-family.ts — derive `modelFamily` from a `modelId` for the G4
|
|
3
|
-
* third-party reviewer. AC-4.4 requires that
|
|
4
3
|
* `third-party-review.json.modelFamily !== karpathy-review.json.modelFamily`,
|
|
5
4
|
* so the family bucket must be stable, provider-distinguishing, and
|
|
6
5
|
* version-tolerant (e.g. `claude-opus-4-8` and `claude-haiku-4-5` both
|
|
@@ -16,7 +16,6 @@ export declare function extractFirstJsonObject(text: string): unknown | null;
|
|
|
16
16
|
export declare function runReviewer(input: ReviewerRunInput): Promise<ReviewerRunOutput>;
|
|
17
17
|
/**
|
|
18
18
|
* Compute the distinctness verdict: returns true when the third-party
|
|
19
|
-
* reviewer's modelFamily differs from the karpathy reviewer's. AC-4.4
|
|
20
19
|
* mandates this is a CI gate — equality fails the build.
|
|
21
20
|
*/
|
|
22
21
|
export declare function distinctFromKarpathy(thirdPartyFamily: string, karpathyFamily: string): boolean;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* reviewer-service.ts — orchestrator for the G4 third-party reviewer.
|
|
3
3
|
*
|
|
4
|
-
* Flow (per AC-4.1 .. AC-4.6):
|
|
5
4
|
* 1. Load `reviewer` section from `~/.peaks/config.json` (reviewer-config).
|
|
6
5
|
* Missing section => `{ ok: false, reason: 'no-reviewer-config' }`.
|
|
7
6
|
* 2. Pick a provider by selection mode (round-robin / hash / random).
|
|
@@ -243,7 +242,6 @@ export async function runReviewer(input) {
|
|
|
243
242
|
};
|
|
244
243
|
}
|
|
245
244
|
// Stamp modelFamily from the actual modelId we called — prevents the LLM
|
|
246
|
-
// from lying about its family and bypassing AC-4.4.
|
|
247
245
|
const stamped = {
|
|
248
246
|
...validated,
|
|
249
247
|
modelId: result.provider.model,
|
|
@@ -254,7 +252,6 @@ export async function runReviewer(input) {
|
|
|
254
252
|
}
|
|
255
253
|
/**
|
|
256
254
|
* Compute the distinctness verdict: returns true when the third-party
|
|
257
|
-
* reviewer's modelFamily differs from the karpathy reviewer's. AC-4.4
|
|
258
255
|
* mandates this is a CI gate — equality fails the build.
|
|
259
256
|
*/
|
|
260
257
|
export function distinctFromKarpathy(thirdPartyFamily, karpathyFamily) {
|