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,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `finalize` action body for `peaks sub-agent`, split out of
|
|
3
|
+
* `share-commands.ts` so that registrar file stays under the line cap. The
|
|
4
|
+
* registrar fires this runner without awaiting it (the original fired a
|
|
5
|
+
* floating async IIFE in the same way).
|
|
6
|
+
*
|
|
7
|
+
* `runFinalizeSweep` builds the accumulator, applies the outcome mapping and
|
|
8
|
+
* prints the envelope; the three selection branches live in
|
|
9
|
+
* `finalize-branches.ts` and the selection rule itself in
|
|
10
|
+
* `finalize-selection.ts`.
|
|
11
|
+
*/
|
|
12
|
+
import { resolve } from 'node:path';
|
|
13
|
+
import { fail, getErrorMessage, ok } from 'peaks-loop-shared/result';
|
|
14
|
+
import { printResult } from '../cli-helpers.js';
|
|
15
|
+
import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
|
|
16
|
+
import { OUTCOME_MAP, buildFinalizeHints, makeAccumulator, tryReadRecord } from './finalize-accumulator.js';
|
|
17
|
+
import { finalizeAllStale, finalizeByBatch, finalizeByRequestId } from './finalize-branches.js';
|
|
18
|
+
export async function runFinalize(options, io) {
|
|
19
|
+
const asJson = options.json === true;
|
|
20
|
+
try {
|
|
21
|
+
const projectRoot = resolve(options.project ?? process.cwd());
|
|
22
|
+
const sessionId = options.sessionId ?? getCurrentSessionId(projectRoot) ?? 'unknown-sid';
|
|
23
|
+
if (!options.allStale && !options.requestId && !options.batch) {
|
|
24
|
+
printResult(io, fail('sub-agent.finalize', 'MISSING_TARGET', 'Pass --request-id or --batch (or --all-stale)', { ok: false }, ['Call finalize after each Task completes.']), asJson);
|
|
25
|
+
process.exitCode = 1;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
await runFinalizeSweep({ options, io, asJson, projectRoot, sessionId });
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
printResult(io, fail('sub-agent.finalize', 'FINALIZE_ERROR', getErrorMessage(error), { ok: false }, [
|
|
32
|
+
'Inspect the error.'
|
|
33
|
+
]), asJson);
|
|
34
|
+
process.exitCode = 1;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async function runFinalizeSweep(input) {
|
|
38
|
+
const { options, io, asJson, projectRoot, sessionId } = input;
|
|
39
|
+
const outcome = (options.outcome ?? 'done');
|
|
40
|
+
const writerMod = await import('../../services/dispatch/dispatch-record-writer.js');
|
|
41
|
+
const { readRecord, markCompleted, readActiveDispatchIndex } = writerMod;
|
|
42
|
+
const mapped = OUTCOME_MAP[outcome] ?? OUTCOME_MAP['done'];
|
|
43
|
+
const acc = makeAccumulator();
|
|
44
|
+
const readOne = (recordPath) => tryReadRecord(recordPath, readRecord, acc);
|
|
45
|
+
const apply = (recordPath, rid) => {
|
|
46
|
+
markCompleted({
|
|
47
|
+
recordPath,
|
|
48
|
+
now: () => new Date(),
|
|
49
|
+
status: mapped.status,
|
|
50
|
+
outcome: mapped.outcome,
|
|
51
|
+
projectRoot
|
|
52
|
+
});
|
|
53
|
+
acc.finalized.push({ recordPath, requestId: rid, status: mapped.status });
|
|
54
|
+
};
|
|
55
|
+
let selection = null;
|
|
56
|
+
if (options.allStale) {
|
|
57
|
+
finalizeAllStale({ readActiveDispatchIndex, projectRoot, sessionId, apply, acc });
|
|
58
|
+
}
|
|
59
|
+
else if (options.requestId) {
|
|
60
|
+
const result = await finalizeByRequestId({
|
|
61
|
+
projectRoot,
|
|
62
|
+
sessionId,
|
|
63
|
+
requestId: options.requestId,
|
|
64
|
+
io,
|
|
65
|
+
asJson,
|
|
66
|
+
readOne,
|
|
67
|
+
apply,
|
|
68
|
+
acc
|
|
69
|
+
});
|
|
70
|
+
if (result.kind === 'not-found')
|
|
71
|
+
return;
|
|
72
|
+
selection = result.selection;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
await finalizeByBatch({ projectRoot, sessionId, batchId: options.batch, readOne, apply, acc });
|
|
76
|
+
}
|
|
77
|
+
printFinalizeResult({ io, asJson, sessionId, outcome, acc, selection });
|
|
78
|
+
if (acc.errors.length > 0)
|
|
79
|
+
process.exitCode = 1;
|
|
80
|
+
}
|
|
81
|
+
/** Print the `sub-agent.finalize` envelope and its hints. */
|
|
82
|
+
function printFinalizeResult(input) {
|
|
83
|
+
const { acc } = input;
|
|
84
|
+
printResult(input.io, ok('sub-agent.finalize', {
|
|
85
|
+
finalized: acc.finalized,
|
|
86
|
+
skipped: acc.skipped,
|
|
87
|
+
errors: acc.errors,
|
|
88
|
+
selection: input.selection,
|
|
89
|
+
sessionId: input.sessionId,
|
|
90
|
+
outcome: input.outcome
|
|
91
|
+
}, acc.errors.length > 0 ? [acc.errors.length + ' failed'] : [], buildFinalizeHints(acc, input.selection)), input.asJson);
|
|
92
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pure `--request-id` selection contract for `peaks sub-agent finalize`, plus
|
|
3
|
+
* the option shape the command registers. Extracted from `share-commands.ts` so
|
|
4
|
+
* that file stays under the line cap; these are the pieces the finalize tests
|
|
5
|
+
* import directly, and none of them touches the filesystem.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* A `dispatch-*.json` candidate for `finalize --request-id`, as read off disk.
|
|
9
|
+
* The record's own `createdAt` is carried as the recency key — NOT the file's
|
|
10
|
+
* mtime, which any heartbeat or finalize rewrites, so a `done` record can look
|
|
11
|
+
* newer than the `queued` one that superseded it. Keeping the key on the
|
|
12
|
+
* candidate makes the selection rule a pure function of the records and
|
|
13
|
+
* testable without a filesystem.
|
|
14
|
+
*/
|
|
15
|
+
export interface FinalizeCandidate {
|
|
16
|
+
readonly recordPath: string;
|
|
17
|
+
readonly requestId: string;
|
|
18
|
+
readonly status: string;
|
|
19
|
+
readonly createdAt: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* What `--request-id` actually did, reported in the envelope. N3: the branch
|
|
23
|
+
* used to resolve silently and could not say WHY a record was or was not the
|
|
24
|
+
* one finalized.
|
|
25
|
+
*/
|
|
26
|
+
export interface FinalizeSelection {
|
|
27
|
+
readonly requestId: string;
|
|
28
|
+
readonly rule: string;
|
|
29
|
+
readonly matched: number;
|
|
30
|
+
readonly chosen: string | null;
|
|
31
|
+
readonly rejected: readonly {
|
|
32
|
+
readonly recordPath: string;
|
|
33
|
+
readonly status: string;
|
|
34
|
+
readonly reason: string;
|
|
35
|
+
}[];
|
|
36
|
+
}
|
|
37
|
+
/** The one selection rule `--request-id` and `--batch` now share. */
|
|
38
|
+
export declare const FINALIZE_SELECTION_RULE: string;
|
|
39
|
+
/** The options `peaks sub-agent finalize` accepts. */
|
|
40
|
+
export interface FinalizeOptions {
|
|
41
|
+
batch?: string;
|
|
42
|
+
requestId?: string;
|
|
43
|
+
outcome?: string;
|
|
44
|
+
error?: string;
|
|
45
|
+
allStale?: boolean;
|
|
46
|
+
project?: string;
|
|
47
|
+
sessionId?: string;
|
|
48
|
+
json?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* N3 — pick the record `finalize --request-id` should act on.
|
|
52
|
+
*
|
|
53
|
+
* The branch this replaces `break`ed on the FIRST file whose record carried
|
|
54
|
+
* the requestId and never looked at `status`. With a re-dispatched request
|
|
55
|
+
* always resolved to the OLDEST one — the already-`done` RD record — so
|
|
56
|
+
* finalizing reported success while the newer `queued` QA record stayed
|
|
57
|
+
* queued forever. `--batch` never had that bug: it filters on `queued`.
|
|
58
|
+
*
|
|
59
|
+
* Both branches are now the same rule. Return `null` when nothing is queued:
|
|
60
|
+
* a record that already left `queued` is precisely the one that must NOT be
|
|
61
|
+
* re-finalized, so the caller reports the survivors instead of touching one.
|
|
62
|
+
*/
|
|
63
|
+
export declare function selectFinalizeTarget(candidates: readonly FinalizeCandidate[]): FinalizeCandidate | null;
|
|
64
|
+
/** Why a candidate was not the chosen one — reported, never guessed at. */
|
|
65
|
+
export declare function describeFinalizeRejection(candidate: FinalizeCandidate, chosen: FinalizeCandidate | null): string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pure `--request-id` selection contract for `peaks sub-agent finalize`, plus
|
|
3
|
+
* the option shape the command registers. Extracted from `share-commands.ts` so
|
|
4
|
+
* that file stays under the line cap; these are the pieces the finalize tests
|
|
5
|
+
* import directly, and none of them touches the filesystem.
|
|
6
|
+
*/
|
|
7
|
+
/** The one selection rule `--request-id` and `--batch` now share. */
|
|
8
|
+
export const FINALIZE_SELECTION_RULE = 'prefer status=queued; among those, newest by record createdAt (then filename); ' +
|
|
9
|
+
'no queued match means nothing is finalized';
|
|
10
|
+
/**
|
|
11
|
+
* N3 — pick the record `finalize --request-id` should act on.
|
|
12
|
+
*
|
|
13
|
+
* The branch this replaces `break`ed on the FIRST file whose record carried
|
|
14
|
+
* the requestId and never looked at `status`. With a re-dispatched request
|
|
15
|
+
* always resolved to the OLDEST one — the already-`done` RD record — so
|
|
16
|
+
* finalizing reported success while the newer `queued` QA record stayed
|
|
17
|
+
* queued forever. `--batch` never had that bug: it filters on `queued`.
|
|
18
|
+
*
|
|
19
|
+
* Both branches are now the same rule. Return `null` when nothing is queued:
|
|
20
|
+
* a record that already left `queued` is precisely the one that must NOT be
|
|
21
|
+
* re-finalized, so the caller reports the survivors instead of touching one.
|
|
22
|
+
*/
|
|
23
|
+
export function selectFinalizeTarget(candidates) {
|
|
24
|
+
const queued = candidates.filter((candidate) => candidate.status === 'queued');
|
|
25
|
+
if (queued.length === 0)
|
|
26
|
+
return null;
|
|
27
|
+
return [...queued].sort((a, b) => b.createdAt.localeCompare(a.createdAt) || b.recordPath.localeCompare(a.recordPath))[0];
|
|
28
|
+
}
|
|
29
|
+
/** Why a candidate was not the chosen one — reported, never guessed at. */
|
|
30
|
+
export function describeFinalizeRejection(candidate, chosen) {
|
|
31
|
+
if (candidate.status !== 'queued' || chosen === null) {
|
|
32
|
+
return 'status is ' + candidate.status;
|
|
33
|
+
}
|
|
34
|
+
return 'superseded by the newer queued record ' + chosen.recordPath;
|
|
35
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* v2.14.0 G1 AC-1.4 — `peaks fixture capture` CLI surface.
|
|
3
2
|
*
|
|
4
3
|
* Producer-side CLI for the G1 fixture-replay anti-fake-green test
|
|
5
4
|
* suite. Captures a real envelope artifact from
|
|
@@ -16,7 +15,6 @@
|
|
|
16
15
|
* --out tests/fixtures/replay
|
|
17
16
|
*
|
|
18
17
|
* Why a CLI (not just a service function):
|
|
19
|
-
* - AC-1.4 mandates the CLI as the producer. A1.4 honesty test:
|
|
20
18
|
* every fixture under `tests/fixtures/replay/` MUST have a
|
|
21
19
|
* `producer: 'peaks-fixture-capture-cli'` in its `fixture.meta.json`
|
|
22
20
|
* and a `capturedAt` timestamp within a window where the CLI was
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `peaks fresh-context preflight` CLI — deterministic trigger scan for the
|
|
3
|
-
* search-first preflight (slice 2026-09-07-search-first-preflight).
|
|
4
3
|
*
|
|
5
4
|
* This command is the shared, deterministic surface every peaks-* orchestrator
|
|
6
5
|
* calls at orchestration-start, BEFORE the first planning action, to decide
|
|
@@ -38,7 +38,6 @@ export declare function resolveToolMatcher(parsedStdin: unknown): string;
|
|
|
38
38
|
* call was denied (a hard block has already been emitted and the handler must stop) and `false`
|
|
39
39
|
* when the flow should continue to the SOP gate. `Other` tool kinds are not gated at all.
|
|
40
40
|
*
|
|
41
|
-
* slice 2026-07-27-worktree-user-auth: BEFORE the SOP gate runs, check the worktree authorization
|
|
42
41
|
* gate. The worktree gate is narrower than the SOP gate (it only inspects a small set of
|
|
43
42
|
* worktree-mutating operations) and is fail-CLOSED. The two layers are complementary: SOP gates
|
|
44
43
|
* decide "may this command run under this SOP's state", the worktree gate decides "did the user
|
|
@@ -62,7 +61,6 @@ export declare function emitAllowSkipped(io: ProgramIO, options: GateEnforceCliO
|
|
|
62
61
|
/** Worktree gate allowed and this is not a Bash surface — allow without running the SOP gate. */
|
|
63
62
|
export declare function emitAllowWorktree(io: ProgramIO, options: GateEnforceCliOptions): void;
|
|
64
63
|
/**
|
|
65
|
-
* PRD#2 (2026-06-16-fact-forcing-gate-format): a true SOP gate failure is a HARD block. emitBlock
|
|
66
64
|
* writes the Claude Code permissionDecision:"deny" JSON to stdout (the hook's decision signal),
|
|
67
65
|
* sets process.exitCode = 2 (Claude Code's block exit code), AND surfaces the reason to stderr so
|
|
68
66
|
* the LLM sees it on the next turn. This prevents the previous behaviour where Claude Code wrapped
|
|
@@ -74,7 +72,6 @@ export declare function emitSopWarnings(io: ProgramIO, decision: SopAllow): void
|
|
|
74
72
|
/**
|
|
75
73
|
* SOP gate allowed the command. --json mode emits the canonical envelope on stdout (the documented
|
|
76
74
|
* contract for downstream tooling). The hook decision (allow/deny) is still signalled via
|
|
77
|
-
* process.exitCode + the minimal `{}` on stdout in non-`--json` mode. Slice 2026-07-30-nightshift:
|
|
78
75
|
* emitHint here was wrong — emitHint writes to stderr, but the AC5 contract expects the JSON
|
|
79
76
|
* envelope on stdout. Switch to printResult(asJson=true).
|
|
80
77
|
*/
|
|
@@ -87,7 +87,6 @@ function normalizeLeaseId(value) {
|
|
|
87
87
|
* tool input — only "worktree" isolation is gated. For all other tool kinds the worktree gate is a
|
|
88
88
|
* no-op.
|
|
89
89
|
*
|
|
90
|
-
* slice 2026-07-29-worktree-l2-extended Part 2.B: the gate consults the lease file referenced by
|
|
91
90
|
* `PEAKS_WORKTREE_LEASE_ID` as a second authorization path when no `peaks worktree auth grant` is on
|
|
92
91
|
* file. Dispatch (Part 2.C) injects the env var on every sub-agent spawn so worktree-mutating tool
|
|
93
92
|
* calls from inside the sub-agent process auto-authorize via the lease instead of requiring a
|
|
@@ -113,7 +112,6 @@ function buildWorktreeAuthInput(options, toolKind, command, parsedStdin) {
|
|
|
113
112
|
* call was denied (a hard block has already been emitted and the handler must stop) and `false`
|
|
114
113
|
* when the flow should continue to the SOP gate. `Other` tool kinds are not gated at all.
|
|
115
114
|
*
|
|
116
|
-
* slice 2026-07-27-worktree-user-auth: BEFORE the SOP gate runs, check the worktree authorization
|
|
117
115
|
* gate. The worktree gate is narrower than the SOP gate (it only inspects a small set of
|
|
118
116
|
* worktree-mutating operations) and is fail-CLOSED. The two layers are complementary: SOP gates
|
|
119
117
|
* decide "may this command run under this SOP's state", the worktree gate decides "did the user
|
|
@@ -171,7 +169,6 @@ export function emitAllowWorktree(io, options) {
|
|
|
171
169
|
}
|
|
172
170
|
}
|
|
173
171
|
/**
|
|
174
|
-
* PRD#2 (2026-06-16-fact-forcing-gate-format): a true SOP gate failure is a HARD block. emitBlock
|
|
175
172
|
* writes the Claude Code permissionDecision:"deny" JSON to stdout (the hook's decision signal),
|
|
176
173
|
* sets process.exitCode = 2 (Claude Code's block exit code), AND surfaces the reason to stderr so
|
|
177
174
|
* the LLM sees it on the next turn. This prevents the previous behaviour where Claude Code wrapped
|
|
@@ -194,7 +191,6 @@ export function emitSopWarnings(io, decision) {
|
|
|
194
191
|
/**
|
|
195
192
|
* SOP gate allowed the command. --json mode emits the canonical envelope on stdout (the documented
|
|
196
193
|
* contract for downstream tooling). The hook decision (allow/deny) is still signalled via
|
|
197
|
-
* process.exitCode + the minimal `{}` on stdout in non-`--json` mode. Slice 2026-07-30-nightshift:
|
|
198
194
|
* emitHint here was wrong — emitHint writes to stderr, but the AC5 contract expects the JSON
|
|
199
195
|
* envelope on stdout. Switch to printResult(asJson=true).
|
|
200
196
|
*/
|
|
@@ -4,6 +4,7 @@ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
|
4
4
|
import { emitHint } from '../../services/hooks/output.js';
|
|
5
5
|
import { parseClaudeShapeStdin } from '../../services/ide/hook-translator.js';
|
|
6
6
|
import { classifyTool, emitAllowSkipped, emitAllowWorktree, emitSopAllow, emitSopDeny, emitSopWarnings, handleWorktreeGate, parseHookStdin, resolveToolMatcher } from './gate-commands-enforce.js';
|
|
7
|
+
import { handleMcpSurfaceGate } from '../../services/hooks/mcp-surface-gate.js';
|
|
7
8
|
export function registerGateCommands(program, io) {
|
|
8
9
|
const gate = program
|
|
9
10
|
.command('gate')
|
|
@@ -36,14 +37,12 @@ async function readHookPayload() {
|
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
|
-
* Slice 2026-07-29-windows-console-flash Part 46: actively exit the process when the gate-enforce
|
|
40
40
|
* handler returns. The default behavior is to wait for stdin EOF before exiting, but the hook's
|
|
41
41
|
* stdin pipe may not close promptly (the parent can keep the handle open even after it has finished
|
|
42
42
|
* reading the JSON decision), which causes 4 Node.js processes to accumulate in the user's task
|
|
43
43
|
* manager. An explicit process.exit here forces the gate process to release all handles and exit
|
|
44
44
|
* immediately.
|
|
45
45
|
*
|
|
46
|
-
* Slice 2026-07-30-nightshift: gate the `process.exit` on being invoked as a real CLI hook (no
|
|
47
46
|
* PEAKS_HOOK_STDIN test seam, no PEAKS_TEST_SEAM env var). The test harness calls `runCommand`
|
|
48
47
|
* which invokes the same action handler in process — calling `process.exit` inside the test would
|
|
49
48
|
* kill the vitest runner before assertions complete. The `process.exitCode` set above is sufficient
|
|
@@ -55,6 +54,19 @@ function exitWhenRealCliHook() {
|
|
|
55
54
|
process.exit(process.exitCode || 0);
|
|
56
55
|
}
|
|
57
56
|
}
|
|
57
|
+
/** Read the payload's surface out of the tool name, the adapter's matcher and the command. */
|
|
58
|
+
function classifySurface(parsedStdin) {
|
|
59
|
+
const toolMatcher = resolveToolMatcher(parsedStdin);
|
|
60
|
+
const { toolName, command } = parseClaudeShapeStdin(parsedStdin);
|
|
61
|
+
const toolKind = classifyTool(toolName);
|
|
62
|
+
const isBash = toolName === toolMatcher && typeof command === 'string' && command.trim().length > 0;
|
|
63
|
+
return {
|
|
64
|
+
toolKind,
|
|
65
|
+
command,
|
|
66
|
+
bashCommand: isBash ? command : null,
|
|
67
|
+
isWorktreeToolSurface: toolKind === 'Agent' || toolKind === 'EnterWorktree'
|
|
68
|
+
};
|
|
69
|
+
}
|
|
58
70
|
/**
|
|
59
71
|
* Body of the `gate enforce` PreToolUse handler. The worktree-then-SOP ordering and every early
|
|
60
72
|
* return / exit-code path are documented on the helpers this delegates to in `gate-commands-enforce`.
|
|
@@ -65,23 +77,27 @@ async function runGateEnforceAction(io, options) {
|
|
|
65
77
|
try {
|
|
66
78
|
const raw = await readHookPayload();
|
|
67
79
|
const parsedStdin = parseHookStdin(raw);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
// The MCP branch runs FIRST and is fail-CLOSED, so it must not sit behind
|
|
81
|
+
// the "not a guarded surface" early return below — an MCP tool name matches
|
|
82
|
+
// neither the Bash matcher nor a worktree tool, so everything after this
|
|
83
|
+
// point would wave it through. A block here has already been emitted.
|
|
84
|
+
if (handleMcpSurfaceGate(io, parsedStdin)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const surface = classifySurface(parsedStdin);
|
|
88
|
+
const { toolKind, command } = surface;
|
|
89
|
+
if (surface.bashCommand === null && !surface.isWorktreeToolSurface) {
|
|
74
90
|
emitAllowSkipped(io, options);
|
|
75
91
|
return;
|
|
76
92
|
}
|
|
77
93
|
if (handleWorktreeGate(io, options, toolKind, { command, parsedStdin })) {
|
|
78
94
|
return;
|
|
79
95
|
}
|
|
80
|
-
if (
|
|
96
|
+
if (surface.bashCommand === null) {
|
|
81
97
|
emitAllowWorktree(io, options);
|
|
82
98
|
return;
|
|
83
99
|
}
|
|
84
|
-
const decision = await enforceBashCommand(options.project,
|
|
100
|
+
const decision = await enforceBashCommand(options.project, surface.bashCommand);
|
|
85
101
|
if (decision.decision === 'deny') {
|
|
86
102
|
emitSopDeny(io, options, decision);
|
|
87
103
|
return;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rid-007 Family 1 merge: contract-commands + classify-classify-commands.
|
|
3
2
|
*
|
|
4
3
|
* Pre-merge originals (now deleted):
|
|
5
4
|
* - src/cli/commands/contract-commands.ts (167 lines)
|
|
@@ -10,10 +9,8 @@
|
|
|
10
9
|
* only — no behavior change. `autoRegisterAllCommands` discovers both
|
|
11
10
|
* exports from this single file.
|
|
12
11
|
*
|
|
13
|
-
* Why one file: the RD slice rid-007 user-confirmed one-family merge
|
|
14
12
|
* minimum; Family 1 is the cleanest demonstration because both inputs
|
|
15
13
|
* sit under 200 lines and the merged file lands at ~360 lines — well
|
|
16
|
-
* below the 400-line AC-9 sanity guard and the 800-line scan gate.
|
|
17
14
|
*/
|
|
18
15
|
import type { Command } from 'commander';
|
|
19
16
|
import { type ProgramIO } from '../cli-helpers.js';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rid-007 Family 1 merge: contract-commands + classify-classify-commands.
|
|
3
2
|
*
|
|
4
3
|
* Pre-merge originals (now deleted):
|
|
5
4
|
* - src/cli/commands/contract-commands.ts (167 lines)
|
|
@@ -10,10 +9,8 @@
|
|
|
10
9
|
* only — no behavior change. `autoRegisterAllCommands` discovers both
|
|
11
10
|
* exports from this single file.
|
|
12
11
|
*
|
|
13
|
-
* Why one file: the RD slice rid-007 user-confirmed one-family merge
|
|
14
12
|
* minimum; Family 1 is the cleanest demonstration because both inputs
|
|
15
13
|
* sit under 200 lines and the merged file lands at ~360 lines — well
|
|
16
|
-
* below the 400-line AC-9 sanity guard and the 800-line scan gate.
|
|
17
14
|
*/
|
|
18
15
|
// ===========================================================================
|
|
19
16
|
// Shared imports (consolidated; both originals pulled names from these
|
|
@@ -76,7 +73,6 @@ export function registerContractCommands(program, io) {
|
|
|
76
73
|
.option('--completed-at <iso>', 'ISO 8601 timestamp; defaults to now()')).action((options) => {
|
|
77
74
|
const asJson = options.json === true;
|
|
78
75
|
const projectRoot = options.project ?? process.cwd();
|
|
79
|
-
// Slice 2026-06-26-unknown-sid-fallback-fix: see dispatch-commands.ts.
|
|
80
76
|
const sid = options.sessionId ??
|
|
81
77
|
process.env.PEAKS_SESSION_ID ??
|
|
82
78
|
getCurrentSessionId(projectRoot) ??
|
|
@@ -27,7 +27,6 @@ import { appendHeartbeat, setStage, tryAutoReleaseLease } from '../../services/d
|
|
|
27
27
|
import { assertSafeDispatchRecordPath } from '../../services/security/safe-settings-path.js';
|
|
28
28
|
import { writeLogEntry } from '../../services/log/logger.js';
|
|
29
29
|
import { failHeartbeat, heartbeatErrorCode, heartbeatErrorNextActions, resolveHeartbeatStage, validateHeartbeatArguments } from './heartbeat-commands-validation.js';
|
|
30
|
-
// Slice 2026-07-29-worktree-l2-extended Part 3.A.2: the statuses that end a
|
|
31
30
|
// dispatch. Hoisted out of the action body — a constant set is the same set on
|
|
32
31
|
// every call, and its position in the sequence (after printResult) is unchanged.
|
|
33
32
|
const TERMINAL_HEARTBEAT_STATUSES = new Set([
|
|
@@ -37,7 +36,6 @@ const TERMINAL_HEARTBEAT_STATUSES = new Set([
|
|
|
37
36
|
'no-execution'
|
|
38
37
|
]);
|
|
39
38
|
/**
|
|
40
|
-
* Slice 2026-07-29-worktree-l2-extended Part 24: the heartbeat envelope
|
|
41
39
|
* surfaces a `leaseHint` field when the dispatch owns a lease. The hint is a
|
|
42
40
|
* one-line reminder for the sub-agent that the lease is the L2 surface it
|
|
43
41
|
* should clean up before exiting (or, per Part 3.A.2, the auto-release hook
|
|
@@ -53,7 +51,6 @@ function leaseHintFor(result) {
|
|
|
53
51
|
/** The success envelope's payload, field for field, exactly as the CLI printed it. */
|
|
54
52
|
function heartbeatSuccessEnvelope(recordPath, result) {
|
|
55
53
|
return {
|
|
56
|
-
// Slice 2026-06-23-audit-4th #E1: envelopeVersion marker
|
|
57
54
|
// Part 24: bumped to 2.2.0 to advertise the new `leaseHint`
|
|
58
55
|
// field; readers from 2.1.0 ignore the unknown field.
|
|
59
56
|
envelopeVersion: '2.2.0',
|
|
@@ -66,7 +63,6 @@ function heartbeatSuccessEnvelope(recordPath, result) {
|
|
|
66
63
|
};
|
|
67
64
|
}
|
|
68
65
|
/**
|
|
69
|
-
* Slice 2026-07-29-worktree-l2-extended Part 3.A.2: when the heartbeat reports
|
|
70
66
|
* a TERMINAL status (done / failed / cancelled / no-execution) AND the dispatch
|
|
71
67
|
* owns a lease, fire the detached release. This is the common path: most
|
|
72
68
|
* sub-agents finalize via heartbeat before the share-reducer calls
|
|
@@ -91,7 +87,6 @@ function releaseLeaseForTerminalHeartbeat(trustedRoot, status, result) {
|
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
}
|
|
94
|
-
/** Slice 2026-06-23-audit-4th #B1: structured log on success. */
|
|
95
90
|
function logHeartbeatSuccess(recordPath, result) {
|
|
96
91
|
try {
|
|
97
92
|
writeLogEntry({
|
|
@@ -158,7 +153,6 @@ export function runHeartbeatAction(io, options) {
|
|
|
158
153
|
return;
|
|
159
154
|
}
|
|
160
155
|
try {
|
|
161
|
-
// R-2 guard (slice 2026-06-23-audit-3rd): trust --project or process.cwd(),
|
|
162
156
|
// NOT the --record path. deriveProjectRoot(recordPath) walked the path
|
|
163
157
|
// itself, which let an attacker point --record at any other project's
|
|
164
158
|
// .peaks/_sub_agents/ tree and slip past the guard. The relative()
|
|
@@ -38,7 +38,6 @@ export declare function failHeartbeat(io: ProgramIO, f: {
|
|
|
38
38
|
*/
|
|
39
39
|
export declare function validateHeartbeatArguments(io: ProgramIO, asJson: boolean, options: HeartbeatActionOptions, recordPath: string): HeartbeatArgumentsCheck;
|
|
40
40
|
/**
|
|
41
|
-
* Slice 2026-07-29-dispatch-stall-governance / S5 (AC-5.2) — validate the
|
|
42
41
|
* optional `--stage` against the bounded enum BEFORE the heartbeat write so the
|
|
43
42
|
* caller gets a specific `INVALID_STAGE` error rather than a generic
|
|
44
43
|
* `HEARTBEAT_ERROR`. An absent or empty flag is not an error: it yields
|
|
@@ -48,7 +47,6 @@ export declare function validateHeartbeatArguments(io: ProgramIO, asJson: boolea
|
|
|
48
47
|
*/
|
|
49
48
|
export declare function resolveHeartbeatStage(io: ProgramIO, asJson: boolean, options: HeartbeatActionOptions, recordPath: string): HeartbeatStageCheck;
|
|
50
49
|
/**
|
|
51
|
-
* Slice 2026-06-23-audit-3rd #9: branch nextActions on `error.code` so
|
|
52
50
|
* the LLM-side runner gets a specific hint instead of the generic
|
|
53
51
|
* "see error message" fallback.
|
|
54
52
|
*/
|
|
@@ -69,7 +69,6 @@ export function validateHeartbeatArguments(io, asJson, options, recordPath) {
|
|
|
69
69
|
return { ok: true, progress };
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* Slice 2026-07-29-dispatch-stall-governance / S5 (AC-5.2) — validate the
|
|
73
72
|
* optional `--stage` against the bounded enum BEFORE the heartbeat write so the
|
|
74
73
|
* caller gets a specific `INVALID_STAGE` error rather than a generic
|
|
75
74
|
* `HEARTBEAT_ERROR`. An absent or empty flag is not an error: it yields
|
|
@@ -95,7 +94,6 @@ export function resolveHeartbeatStage(io, asJson, options, recordPath) {
|
|
|
95
94
|
return { ok: true, stage: stageLabel };
|
|
96
95
|
}
|
|
97
96
|
/**
|
|
98
|
-
* Slice 2026-06-23-audit-3rd #9: branch nextActions on `error.code` so
|
|
99
97
|
* the LLM-side runner gets a specific hint instead of the generic
|
|
100
98
|
* "see error message" fallback.
|
|
101
99
|
*/
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `peaks sub-agent heartbeat` — G6: append a heartbeat to a dispatch record.
|
|
3
3
|
*
|
|
4
|
-
* Pulled out of `sub-agent-commands.ts` (slice 2026-06-23-audit-p0-split)
|
|
5
4
|
* to honor the 800-line file cap. The heartbeat is fire-and-forget; the
|
|
6
5
|
* parent Dispatcher polls the record during the batch-sync wait and
|
|
7
6
|
* renders a status line. Sub-agents should call this at least every
|
|
@@ -11,7 +11,6 @@ export function registerHeartbeatCommand(parent, io) {
|
|
|
11
11
|
.requiredOption('--status <state>', 'queued | running | finalizing | done | failed | stale | cancelled | no-execution | never-started | unreadable')
|
|
12
12
|
.requiredOption('--progress <pct>', 'integer 0-100')
|
|
13
13
|
.option('--note <text>', 'free-form progress note (≤ 200 chars)')
|
|
14
|
-
// Slice 2026-07-29-dispatch-stall-governance / S5 (AC-5.2) —
|
|
15
14
|
// optional --stage flag. The label is bounded (see
|
|
16
15
|
// src/services/dispatch/stage-enum.ts); an unknown value is
|
|
17
16
|
// rejected with INVALID_STAGE so the watch surface never
|
|
@@ -76,7 +76,6 @@ function listExpectedEntriesForIde(ide, _skipProgress = false) {
|
|
|
76
76
|
.map((entry) => ({ matcher: entry.matcher, sentinel: entry.sentinel }));
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
|
-
* Slice 2026-07-24-peaks-code-bridge-002-rootcause (G6b / G10): copy the
|
|
80
79
|
* superpowers-bridge hook source from the peaks-loop repo
|
|
81
80
|
* (src/services/hooks/pre-tool-superpowers-bridge.sh) into the user-global
|
|
82
81
|
* `<userHome>/.claude/skills/peaks-code/hooks/` directory. The user-global
|
|
@@ -102,7 +101,6 @@ function listExpectedEntriesForIde(ide, _skipProgress = false) {
|
|
|
102
101
|
* it without forcing the caller to inspect the filesystem.
|
|
103
102
|
*/
|
|
104
103
|
/**
|
|
105
|
-
* Slice 2026-07-29-worktree-layer3-deny: read the on-disk
|
|
106
104
|
* `permissions.deny` block from a settings.json object and return
|
|
107
105
|
* every peaks-managed entry currently present. Used by `hooks status`
|
|
108
106
|
* to surface Layer 3 governance state without forcing the caller to
|
|
@@ -159,7 +157,6 @@ function copyBridgeHookIfPresent(userHome, dryRun = false) {
|
|
|
159
157
|
return { copied: true, source, target };
|
|
160
158
|
}
|
|
161
159
|
/**
|
|
162
|
-
* Slice 2026-08-06-codegate-vendor-neutral: copy the code-gate hook
|
|
163
160
|
* source (`src/services/hooks/pre-tool-code-gate.sh`) into the user-
|
|
164
161
|
* global peaks-code hooks dir, mirroring the bridge-hook copy. The
|
|
165
162
|
* hook itself is vendor-neutral (no `claude` / `anthropic` strings in
|
|
@@ -206,7 +203,6 @@ export function registerHooksCommands(program, io) {
|
|
|
206
203
|
const bridgeCopy = scope === 'global'
|
|
207
204
|
? copyBridgeHookIfPresent(process.env.USERPROFILE ?? process.env.HOME ?? '', true)
|
|
208
205
|
: { copied: false, source: '', target: '' };
|
|
209
|
-
// Slice 2026-08-06-codegate-vendor-neutral: also copy the
|
|
210
206
|
// code-gate hook script. The runtime gate lives at
|
|
211
207
|
// `peaks code-gate --json` (registered as a PreToolUse entry
|
|
212
208
|
// in the install output); the script is the build artifact
|
|
@@ -223,7 +219,6 @@ export function registerHooksCommands(program, io) {
|
|
|
223
219
|
entries: dryRunEntries,
|
|
224
220
|
bridgeHookCopy: bridgeCopy,
|
|
225
221
|
codeGateHookCopy: codeGateCopy,
|
|
226
|
-
// Slice 2026-07-29-worktree-layer3-deny: surface the
|
|
227
222
|
// Layer 3 deny entries the install WOULD write. The
|
|
228
223
|
// dry-run branch never actually invokes
|
|
229
224
|
// `applyHookInstall`, so the on-disk snapshot is not
|
|
@@ -250,7 +245,6 @@ export function registerHooksCommands(program, io) {
|
|
|
250
245
|
// claude-code default). The summary is derived from the install's own
|
|
251
246
|
// entry table — see `listExpectedEntriesForIde`.
|
|
252
247
|
const installedEntries = listExpectedEntriesForIde(ide, skipProgress);
|
|
253
|
-
// Slice 2026-07-24-peaks-code-bridge-002-rootcause (G6b / G10): when
|
|
254
248
|
// the install targets global scope, also copy the superpowers-bridge
|
|
255
249
|
// hook script from src/services/hooks/ to the user-global hooks
|
|
256
250
|
// directory. Project scope does not need this — project's
|
|
@@ -258,7 +252,6 @@ export function registerHooksCommands(program, io) {
|
|
|
258
252
|
const bridgeCopy = scope === 'global'
|
|
259
253
|
? copyBridgeHookIfPresent(process.env.USERPROFILE ?? process.env.HOME ?? '')
|
|
260
254
|
: { copied: false, source: '', target: '' };
|
|
261
|
-
// Slice 2026-08-06-codegate-vendor-neutral: also copy the
|
|
262
255
|
// code-gate hook script. The runtime gate lives at
|
|
263
256
|
// `peaks code-gate --json` (registered as a PreToolUse entry
|
|
264
257
|
// in the install output); the script is the build artifact
|
|
@@ -270,14 +263,12 @@ export function registerHooksCommands(program, io) {
|
|
|
270
263
|
? [
|
|
271
264
|
'Restart the IDE (or reload the workspace) so the hook entries take effect',
|
|
272
265
|
`Installed: ${installedEntries.map((e) => `${e.matcher}→${e.sentinel}`).join(', ')}`,
|
|
273
|
-
// Slice 2026-07-29-worktree-layer3-deny: surface L3 deny
|
|
274
266
|
// write alongside the hook install — single atomic write.
|
|
275
267
|
`Layer 3 deny: wrote ${listSuperpowersDenyEntries().length} permissions.deny entries (worktree governance)`,
|
|
276
268
|
describeHookCopy('bridge hook', bridgeCopy, scope, false),
|
|
277
269
|
describeHookCopy('code-gate hook', codeGateCopy, scope, false)
|
|
278
270
|
].filter((line) => line !== null)
|
|
279
271
|
: [describeHookCopy('bridge hook', bridgeCopy, scope, false)].filter((line) => line !== null);
|
|
280
|
-
// Slice 2026-07-29-worktree-layer3-deny: emit L3 deny bookkeeping
|
|
281
272
|
// in the JSON envelope so downstream automation (audit / sc) can
|
|
282
273
|
// confirm Layer 3 was applied without re-reading the file. When
|
|
283
274
|
// the install is a no-op (`applied: false`) the deny block was
|
|
@@ -313,7 +304,6 @@ export function registerHooksCommands(program, io) {
|
|
|
313
304
|
const ide = resolveIdeForCommand(options, projectRoot);
|
|
314
305
|
try {
|
|
315
306
|
const result = removeHookInstall(scope, projectRoot, { ide });
|
|
316
|
-
// Slice 2026-07-29-worktree-layer3-deny: surface L3 deny removal
|
|
317
307
|
// bookkeeping. `permissionsDenyRemoved` mirrors `removed` (the
|
|
318
308
|
// service strips deny entries on the same atomic write that
|
|
319
309
|
// strips the hook entries; they share the same boolean).
|
|
@@ -358,7 +348,6 @@ export function registerHooksCommands(program, io) {
|
|
|
358
348
|
const localSettings = status.localSettingsPath !== undefined && existsSync(status.localSettingsPath)
|
|
359
349
|
? readJsonObjectFile(status.localSettingsPath)
|
|
360
350
|
: {};
|
|
361
|
-
// Slice 2026-07-29-worktree-layer3-deny: report the Layer 3 deny
|
|
362
351
|
// entries actually on disk. We read the existing settings.json
|
|
363
352
|
// (above) and surface its `permissions.deny` block. Any entry
|
|
364
353
|
// that matches the current `SUPERPOWERS_DENIED_SKILLS` set is
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rid 2026-10-03-job-ledger-truthfulness (D1) — `peaks job add-slice`.
|
|
3
2
|
*
|
|
4
3
|
* THE DEFECT. A job's slice list was decided once, at
|
|
5
4
|
* `peaks job init --slice-list <one id>`, and no subcommand could add to it. The
|
|
@@ -9,7 +8,6 @@
|
|
|
9
8
|
*
|
|
10
9
|
* peaks job add-slice … → error: unknown command 'add-slice'
|
|
11
10
|
* peaks job checkpoint --slice-id <new slice> → ok:false code:SLICE_NOT_FOUND
|
|
12
|
-
* peaks job progress --job-id 2026-10-02-c-wave9 → { done: 1, total: 1 } (stuck)
|
|
13
11
|
*
|
|
14
12
|
* so a wave that plans its next slice only after the previous one lands — which is
|
|
15
13
|
* how every split wave here runs — had no truthful way to record what it did. It
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rid 2026-10-03-job-ledger-truthfulness (D1) — `peaks job add-slice`.
|
|
3
2
|
*
|
|
4
3
|
* THE DEFECT. A job's slice list was decided once, at
|
|
5
4
|
* `peaks job init --slice-list <one id>`, and no subcommand could add to it. The
|
|
@@ -9,7 +8,6 @@
|
|
|
9
8
|
*
|
|
10
9
|
* peaks job add-slice … → error: unknown command 'add-slice'
|
|
11
10
|
* peaks job checkpoint --slice-id <new slice> → ok:false code:SLICE_NOT_FOUND
|
|
12
|
-
* peaks job progress --job-id 2026-10-02-c-wave9 → { done: 1, total: 1 } (stuck)
|
|
13
11
|
*
|
|
14
12
|
* so a wave that plans its next slice only after the previous one lands — which is
|
|
15
13
|
* how every split wave here runs — had no truthful way to record what it did. It
|