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,58 @@
|
|
|
1
|
+
// The `--mode detached` short-circuit of `peaks sub-agent dispatch`. It is lazy
|
|
2
|
+
// (the handler is imported on first use) and it returns before the warm-path
|
|
3
|
+
// in-process pipeline runs, so it lives in its own module.
|
|
4
|
+
import { fail, getErrorMessage, ok } from 'peaks-loop-shared/result';
|
|
5
|
+
import { printResult } from '../cli-helpers.js';
|
|
6
|
+
function resolveMaxConcurrent(options) {
|
|
7
|
+
return typeof options.maxConcurrent === 'string' && options.maxConcurrent.length > 0
|
|
8
|
+
? Number.parseInt(options.maxConcurrent, 10)
|
|
9
|
+
: undefined;
|
|
10
|
+
}
|
|
11
|
+
function reportDetachedResult(io, result, asJson) {
|
|
12
|
+
// The handler's `ok` is the launch outcome (a vendor CLI that is not
|
|
13
|
+
// installed is a failure, not a footnote) — the caller must not
|
|
14
|
+
// re-wrap it as `ok()` unconditionally, which is how `ok: true` with
|
|
15
|
+
// `pid: -1` reached the orchestrator.
|
|
16
|
+
if (result.ok) {
|
|
17
|
+
printResult(io, ok(result.command, result.data, result.warnings ?? [], result.nextActions ?? []), asJson);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
printResult(io, fail(result.command, 'DISPATCH_DETACHED_SPAWN_FAILED', `Could not launch the vendor CLI for a detached dispatch; nothing was started.`, result.data, result.nextActions ?? []), asJson);
|
|
21
|
+
process.exitCode = 1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function reportDetachedError(io, role, error, asJson) {
|
|
25
|
+
printResult(io, fail('sub-agent.dispatch', 'DISPATCH_DETACHED_ERROR', getErrorMessage(error), {
|
|
26
|
+
role,
|
|
27
|
+
toolCall: null,
|
|
28
|
+
dispatchRecordPath: null
|
|
29
|
+
}, [
|
|
30
|
+
'If --mode detached fails on import, the peaks-loop-internal-runtime package may be missing; reinstall and retry.',
|
|
31
|
+
'For environments without a vendor CLI on PATH, drop --mode to fall back to the default in-process dry-run.'
|
|
32
|
+
]), asJson);
|
|
33
|
+
process.exitCode = 1;
|
|
34
|
+
}
|
|
35
|
+
export async function runDetachedDispatch(io, role, options, asJson) {
|
|
36
|
+
try {
|
|
37
|
+
const { dispatch: detachedDispatch } = await import('./sub-agent/detached.js');
|
|
38
|
+
const projectRoot = options.project ?? process.cwd();
|
|
39
|
+
const maxConcurrent = resolveMaxConcurrent(options);
|
|
40
|
+
const result = await detachedDispatch({
|
|
41
|
+
role,
|
|
42
|
+
prompt: typeof options.prompt === 'string' ? options.prompt : '',
|
|
43
|
+
requestId: options.requestId ?? 'unknown-rid',
|
|
44
|
+
mode: 'detached',
|
|
45
|
+
...(typeof options.vendor === 'string' ? { vendor: options.vendor } : {}),
|
|
46
|
+
project: projectRoot,
|
|
47
|
+
json: asJson,
|
|
48
|
+
...(options.noThrottle === true ? { noThrottle: true } : {}),
|
|
49
|
+
...(typeof maxConcurrent === 'number' && Number.isInteger(maxConcurrent) && maxConcurrent > 0
|
|
50
|
+
? { maxConcurrent }
|
|
51
|
+
: {})
|
|
52
|
+
});
|
|
53
|
+
reportDetachedResult(io, result, asJson);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
reportDetachedError(io, role, error, asJson);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
2
|
+
import { type ArtifactMeta } from '../../services/context/artifact-meta.js';
|
|
3
|
+
import type { ContextGuardDecision } from '../../services/context/context-guard.js';
|
|
4
|
+
import type { getAdapter } from '../../services/ide/ide-registry.js';
|
|
5
|
+
import type { SubAgentToolCall } from '../../services/dispatch/sub-agent-dispatcher.js';
|
|
6
|
+
import { type DispatchOptions } from './sub-agent-shared.js';
|
|
7
|
+
import { type IsolationLease } from './dispatch-isolation-lease.js';
|
|
8
|
+
import { type DispatchRecordWrite } from './dispatch-record-write.js';
|
|
9
|
+
export interface DispatchContext {
|
|
10
|
+
projectRoot: string;
|
|
11
|
+
sid: string;
|
|
12
|
+
rid: string;
|
|
13
|
+
role: string;
|
|
14
|
+
batchId: string;
|
|
15
|
+
asJson: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface DispatchEnvelopeInput {
|
|
18
|
+
ctx: DispatchContext;
|
|
19
|
+
options: DispatchOptions;
|
|
20
|
+
prompt: string;
|
|
21
|
+
adapter: ReturnType<typeof getAdapter>;
|
|
22
|
+
effectivePrompt: string;
|
|
23
|
+
toolCall: SubAgentToolCall;
|
|
24
|
+
dispatchRecordPath: string;
|
|
25
|
+
counter: DispatchRecordWrite['counter'];
|
|
26
|
+
decision: ContextGuardDecision;
|
|
27
|
+
artifactMeta: ArtifactMeta | null;
|
|
28
|
+
mustLsFilesVerification: {
|
|
29
|
+
path: string;
|
|
30
|
+
exists: boolean;
|
|
31
|
+
files: readonly string[];
|
|
32
|
+
} | null;
|
|
33
|
+
lease: IsolationLease;
|
|
34
|
+
}
|
|
35
|
+
export declare function emitDispatchEnvelope(io: ProgramIO, input: DispatchEnvelopeInput, warnings: string[], asJson: boolean): void;
|
|
36
|
+
export declare function writeDispatchLogEntry(ctx: DispatchContext, dispatchedInBatch: number, forcedAt: string | null): void;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// The `peaks sub-agent dispatch` output surface: the envelope `data` record, the
|
|
2
|
+
// `nextActions` list, the `printResult` call and the best-effort log line.
|
|
3
|
+
// Split out of `dispatch-commands.ts` when compressing its long functions pushed
|
|
4
|
+
// that file past the 300-line cap; the bodies are byte-for-byte the originals.
|
|
5
|
+
import { ok } from 'peaks-loop-shared/result';
|
|
6
|
+
import { printResult } from '../cli-helpers.js';
|
|
7
|
+
import { BATCH_LIMIT } from '../../services/dispatch/batch-counter.js';
|
|
8
|
+
import { buildContextImpact } from '../../services/context/artifact-meta.js';
|
|
9
|
+
import { writeLogEntry } from '../../services/log/logger.js';
|
|
10
|
+
function buildDispatchNextActions(counter, dispatchRecordPath) {
|
|
11
|
+
const nextActions = [
|
|
12
|
+
'Tool call is dry-run; LLM must execute the tool to actually dispatch the sub-agent.',
|
|
13
|
+
'After dispatching, the sub-agent should call `peaks sub-agent heartbeat --record ' +
|
|
14
|
+
dispatchRecordPath +
|
|
15
|
+
'` periodically.'
|
|
16
|
+
];
|
|
17
|
+
if (counter.warning) {
|
|
18
|
+
nextActions.push(`Batch is over the RL-1 limit (${BATCH_LIMIT}); consider splitting into multiple batches.`);
|
|
19
|
+
}
|
|
20
|
+
return nextActions;
|
|
21
|
+
}
|
|
22
|
+
function buildDispatchEnvelopeData(input, contextImpact) {
|
|
23
|
+
const { ctx, options, lease } = input;
|
|
24
|
+
const expectedCompletionSeconds = 45;
|
|
25
|
+
const artifactsPublicPaths = typeof options.writeArtifact === 'string' && options.writeArtifact.length > 0
|
|
26
|
+
? [options.writeArtifact]
|
|
27
|
+
: [];
|
|
28
|
+
const orchestratorVisibleHint = `⏳ Spawning sub-agent via Task tool: ${ctx.role} for rid=${ctx.rid}, batch-id=${ctx.batchId} (ETA ~${expectedCompletionSeconds}s)`;
|
|
29
|
+
return {
|
|
30
|
+
// an envelopeVersion marker so consumers can detect contract
|
|
31
|
+
// changes (the previous #4 dropped `data.prompt` silently).
|
|
32
|
+
envelopeVersion: '2.3.0',
|
|
33
|
+
role: ctx.role,
|
|
34
|
+
ide: input.adapter.subAgentDispatcher.label,
|
|
35
|
+
// Prompts can carry user content (sometimes test credentials /
|
|
36
|
+
// internal URLs) that has no business landing in shell history,
|
|
37
|
+
// log aggregators, or tmux scrollback. The dispatch record on
|
|
38
|
+
// disk (gitignored under .peaks/_sub_agents/) keeps the prompt
|
|
39
|
+
// for the sub-agent to read; CLI stdout stays metadata-only.
|
|
40
|
+
// Surface promptSize + originalPromptSize so the LLM-side
|
|
41
|
+
// runner can reason about the size delta without seeing the
|
|
42
|
+
// content.
|
|
43
|
+
originalPromptSize: input.prompt.length,
|
|
44
|
+
promptSize: input.effectivePrompt.length,
|
|
45
|
+
toolCall: input.toolCall,
|
|
46
|
+
dispatchRecordPath: input.dispatchRecordPath,
|
|
47
|
+
batchId: ctx.batchId,
|
|
48
|
+
dispatchedInBatch: input.counter.count,
|
|
49
|
+
forcedAt: input.decision.forcedAt,
|
|
50
|
+
contextImpact,
|
|
51
|
+
artifactMetas: input.artifactMeta ? [input.artifactMeta] : [],
|
|
52
|
+
orchestratorVisibleHint,
|
|
53
|
+
artifactsPublicPaths,
|
|
54
|
+
expectedCompletionSeconds,
|
|
55
|
+
// Part 2.C: when --isolation worktree, surface the lease
|
|
56
|
+
// handle to the LLM-side runner so it can call
|
|
57
|
+
// `peaks worktree release --lease-id <id>` after the sub-agent
|
|
58
|
+
// finishes (or rely on the next gc pass to clean up). When
|
|
59
|
+
// isolation is not requested, isolation === null.
|
|
60
|
+
isolation: lease.isolationMode,
|
|
61
|
+
leaseId: lease.leaseId,
|
|
62
|
+
worktreePath: lease.worktreePath,
|
|
63
|
+
worktreeBranch: lease.worktreeBranch,
|
|
64
|
+
// F5: anti-fake-green gate envelope surface. When
|
|
65
|
+
// `--must-ls-files <glob>` is supplied this carries the
|
|
66
|
+
// pre-dispatch verification result so the orchestrator can
|
|
67
|
+
// surface "the file exists" (or "missing — block") before
|
|
68
|
+
// spawning the sub-agent. Null when the flag is absent.
|
|
69
|
+
mustLsFilesVerification: input.mustLsFilesVerification
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export function emitDispatchEnvelope(io, input, warnings, asJson) {
|
|
73
|
+
const contextImpact = buildContextImpact({
|
|
74
|
+
promptSize: input.effectivePrompt.length,
|
|
75
|
+
artifactSizes: input.artifactMeta ? [input.artifactMeta.size] : []
|
|
76
|
+
});
|
|
77
|
+
const nextActions = buildDispatchNextActions(input.counter, input.dispatchRecordPath);
|
|
78
|
+
printResult(io, ok('sub-agent.dispatch', buildDispatchEnvelopeData(input, contextImpact), warnings, nextActions), asJson);
|
|
79
|
+
}
|
|
80
|
+
export function writeDispatchLogEntry(ctx, dispatchedInBatch, forcedAt) {
|
|
81
|
+
// Best-effort: writeLogEntry swallows its own errors (logger.ts:155-159),
|
|
82
|
+
// so a full disk or missing ~/.peaks/logs/ dir never blocks the dispatch.
|
|
83
|
+
try {
|
|
84
|
+
writeLogEntry({
|
|
85
|
+
ts: new Date().toISOString(),
|
|
86
|
+
level: 'info',
|
|
87
|
+
command: 'sub-agent.dispatch',
|
|
88
|
+
msg: 'dispatched',
|
|
89
|
+
sessionId: ctx.sid,
|
|
90
|
+
batchId: ctx.batchId,
|
|
91
|
+
data: {
|
|
92
|
+
rid: ctx.rid,
|
|
93
|
+
role: ctx.role,
|
|
94
|
+
batchId: ctx.batchId,
|
|
95
|
+
dispatchedInBatch,
|
|
96
|
+
forcedAt
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
102
|
+
/* best-effort */
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks sub-agent dispatch --from-dag <file>` — slice 2026-06-23-audit-3rd #7.
|
|
3
2
|
*
|
|
4
3
|
* Pulled out of `dispatch-commands.ts` to honor the 800-line file cap
|
|
5
4
|
* (Karpathy #2 Simplicity First). The single-dispatch action stays in
|
|
@@ -37,7 +36,6 @@ export async function runDispatchFromDag(role, options, asJson, io) {
|
|
|
37
36
|
if (!options.fromDag)
|
|
38
37
|
return;
|
|
39
38
|
const projectRoot = options.project ?? process.cwd();
|
|
40
|
-
// Slice 2026-06-26-unknown-sid-fallback-fix: see dispatch-commands.ts.
|
|
41
39
|
// Auto-resolve sid from .peaks/_runtime/session.json before falling back.
|
|
42
40
|
const sid = options.sessionId ??
|
|
43
41
|
process.env.PEAKS_SESSION_ID ??
|
|
@@ -136,7 +134,6 @@ export async function runDispatchFromDag(role, options, asJson, io) {
|
|
|
136
134
|
// end-to-end, but they are NOT surfaced in the CLI envelope (the LLM
|
|
137
135
|
// sees them only after re-invoking with fresh level-1 contracts).
|
|
138
136
|
const firstLevelIds = new Set(levelArr[0] ?? []);
|
|
139
|
-
// Slice 2026-09-10-dispatch-token-and-swarm §3: when EVERY first-level
|
|
140
137
|
// node declares `files`, refine the level into file-overlap waves so the
|
|
141
138
|
// LLM fans out without serializing on a shared file. Emitted additively
|
|
142
139
|
// in the envelope; the topological dispatch flow itself is unchanged.
|
|
@@ -244,7 +241,6 @@ export async function runDispatchFromDag(role, options, asJson, io) {
|
|
|
244
241
|
return;
|
|
245
242
|
}
|
|
246
243
|
printResult(io, ok('sub-agent.dispatch', {
|
|
247
|
-
// Slice 2026-06-23-audit-4th #E1: envelopeVersion marker
|
|
248
244
|
envelopeVersion: '2.1.0',
|
|
249
245
|
role,
|
|
250
246
|
ide: dispatcher.label,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
2
|
+
import type { DispatchOptions } from './sub-agent-shared.js';
|
|
3
|
+
export interface IsolationLeaseInput {
|
|
4
|
+
projectRoot: string;
|
|
5
|
+
sid: string;
|
|
6
|
+
rid: string;
|
|
7
|
+
role: string;
|
|
8
|
+
batchId: string;
|
|
9
|
+
asJson: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface IsolationLease {
|
|
12
|
+
isolationMode: 'worktree' | 'container' | 'vm' | null;
|
|
13
|
+
leaseId: string | null;
|
|
14
|
+
worktreePath: string | null;
|
|
15
|
+
worktreeBranch: string | null;
|
|
16
|
+
}
|
|
17
|
+
export declare function resolveIsolationLease(io: ProgramIO, options: DispatchOptions, input: IsolationLeaseInput): Promise<IsolationLease | null>;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// The `--isolation` lease set-up of `peaks sub-agent dispatch`. Validates the mode,
|
|
2
|
+
// spawns the container/worktree lease, and hands the handles back; `vm` fail-fasts
|
|
3
|
+
// because the runtime is not implemented yet.
|
|
4
|
+
import { fail, getErrorMessage } from 'peaks-loop-shared/result';
|
|
5
|
+
import { printResult } from '../cli-helpers.js';
|
|
6
|
+
import { spawnWorktreeLease, spawnContainerLease } from '../../services/dispatch/isolation-lease.js';
|
|
7
|
+
function rejectInvalidIsolation(io, isolation, role, asJson) {
|
|
8
|
+
printResult(io, fail('sub-agent.dispatch', 'INVALID_ISOLATION', `--isolation only accepts "worktree" | "container" | "vm" (got "${isolation}")`, {
|
|
9
|
+
role,
|
|
10
|
+
toolCall: null,
|
|
11
|
+
dispatchRecordPath: null
|
|
12
|
+
}, ['Drop --isolation or pass --isolation worktree / --isolation container / --isolation vm.']), asJson);
|
|
13
|
+
process.exitCode = 1;
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
async function spawnContainerIsolation(io, input) {
|
|
17
|
+
const { projectRoot, sid, rid, role, batchId, asJson } = input;
|
|
18
|
+
// isolation is now live (Part 8 contract was the
|
|
19
|
+
// bridge; Part 12 is the runtime). Shell out to
|
|
20
|
+
// `peaks container spawn` to run `docker run` and
|
|
21
|
+
// write the container lease.
|
|
22
|
+
const isolationMode = 'container';
|
|
23
|
+
try {
|
|
24
|
+
const spawnResult = await spawnContainerLease({
|
|
25
|
+
projectRoot,
|
|
26
|
+
sessionId: sid,
|
|
27
|
+
rid,
|
|
28
|
+
role,
|
|
29
|
+
purpose: `auto-spawned by dispatch --isolation container (batch=${batchId})`
|
|
30
|
+
});
|
|
31
|
+
// Reuse the leaseId variable — same field semantically
|
|
32
|
+
// (id of the isolation surface the dispatch owns).
|
|
33
|
+
return {
|
|
34
|
+
isolationMode,
|
|
35
|
+
leaseId: spawnResult.leaseId,
|
|
36
|
+
worktreePath: null,
|
|
37
|
+
worktreeBranch: null
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
printResult(io, fail('sub-agent.dispatch', 'ISOLATION_CONTAINER_SPAWN_FAILED', getErrorMessage(error), {
|
|
42
|
+
role,
|
|
43
|
+
toolCall: null,
|
|
44
|
+
dispatchRecordPath: null
|
|
45
|
+
}, [
|
|
46
|
+
'The dispatch aborts when --isolation container lease spawn fails; retry without --isolation or fix the underlying docker error.',
|
|
47
|
+
'For environments without a docker daemon, use --isolation worktree (the L2 production path).'
|
|
48
|
+
]), asJson);
|
|
49
|
+
process.exitCode = 1;
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function spawnWorktreeIsolation(io, input) {
|
|
54
|
+
const { projectRoot, sid, rid, role, batchId, asJson } = input;
|
|
55
|
+
const isolationMode = 'worktree';
|
|
56
|
+
try {
|
|
57
|
+
const spawnResult = await spawnWorktreeLease({
|
|
58
|
+
projectRoot,
|
|
59
|
+
sessionId: sid,
|
|
60
|
+
rid,
|
|
61
|
+
role,
|
|
62
|
+
purpose: `auto-spawned by dispatch --isolation worktree (batch=${batchId})`
|
|
63
|
+
});
|
|
64
|
+
return {
|
|
65
|
+
isolationMode,
|
|
66
|
+
leaseId: spawnResult.leaseId,
|
|
67
|
+
worktreePath: spawnResult.path,
|
|
68
|
+
worktreeBranch: spawnResult.branch
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
printResult(io, fail('sub-agent.dispatch', 'ISOLATION_SPAWN_FAILED', getErrorMessage(error), {
|
|
73
|
+
role,
|
|
74
|
+
toolCall: null,
|
|
75
|
+
dispatchRecordPath: null
|
|
76
|
+
}, [
|
|
77
|
+
'The dispatch aborts when --isolation worktree lease spawn fails; retry without --isolation or fix the underlying git error.'
|
|
78
|
+
]), asJson);
|
|
79
|
+
process.exitCode = 1;
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function rejectVmIsolation(io, input) {
|
|
84
|
+
const { role, asJson } = input;
|
|
85
|
+
// VM isolation mode is the L4 follow-up to L4 container.
|
|
86
|
+
// The CLI contract is shipped (--isolation vm is accepted
|
|
87
|
+
// by the dispatch parser and reflected in the envelope's
|
|
88
|
+
// isolationMode type). The VM runtime (Linux KVM / macOS
|
|
89
|
+
// HyperKit / Windows Hyper-V) is a much larger follow-up
|
|
90
|
+
// and is intentionally not implemented yet — we
|
|
91
|
+
// fail-fast with ISOLATION_VM_NOT_YET_IMPLEMENTED so
|
|
92
|
+
// operators see a clear "this is a placeholder" signal
|
|
93
|
+
// rather than a silent fallback to worktree.
|
|
94
|
+
//
|
|
95
|
+
// The full implementation lives in a future rid; the
|
|
96
|
+
// design is:
|
|
97
|
+
// 1. New service: src/services/vm/vm-lease.ts (parallels
|
|
98
|
+
// worktree-lease.ts / container-lease.ts) — pure lease
|
|
99
|
+
// store with vmId + hypervisor + status.
|
|
100
|
+
// 2. CLI: 'peaks vm spawn --hypervisor kvm|hyperkit|hyperv
|
|
101
|
+
// --image <name> --rid <rid> --role <role>' — runs
|
|
102
|
+
// virsh create / hvftool / hvcreate, captures the
|
|
103
|
+
// vm id, writes the lease.
|
|
104
|
+
// 3. CLI: 'peaks vm release --lease-id <id>' — virsh
|
|
105
|
+
// destroy + cleanup.
|
|
106
|
+
// 4. dispatch --isolation vm: shells out to peaks vm
|
|
107
|
+
// spawn, injects PEAKS_VM_LEASE_ID env (parallel
|
|
108
|
+
// to PEAKS_CONTAINER_LEASE_ID).
|
|
109
|
+
// 5. PreToolUse gate: when the env var is set AND the
|
|
110
|
+
// tool call is bash-with-vm-bearing-command,
|
|
111
|
+
// allow via the vm lease.
|
|
112
|
+
//
|
|
113
|
+
// Until then: fail-fast.
|
|
114
|
+
printResult(io, fail('sub-agent.dispatch', 'ISOLATION_VM_NOT_YET_IMPLEMENTED', '--isolation vm is the L4 follow-up to --isolation container (Part 25 contract); the VM runtime (KVM / HyperKit / Hyper-V) is a much larger follow-up rid and is intentionally not implemented yet. Drop --isolation or pass --isolation worktree / --isolation container for now.', {
|
|
115
|
+
role,
|
|
116
|
+
toolCall: null,
|
|
117
|
+
dispatchRecordPath: null
|
|
118
|
+
}, [
|
|
119
|
+
'The VM contract is shipped (--isolation vm is accepted by the dispatch parser); the runtime is the next rid.',
|
|
120
|
+
'Use --isolation worktree (L2 production) or --isolation container (L4 docker, Part 12) for now.'
|
|
121
|
+
]), asJson);
|
|
122
|
+
process.exitCode = 1;
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
export async function resolveIsolationLease(io, options, input) {
|
|
126
|
+
const { role, asJson } = input;
|
|
127
|
+
// auto-spawns a worktree lease and injects PEAKS_WORKTREE_LEASE_ID
|
|
128
|
+
// into the sub-agent dispatch envelope. This is the bridge that
|
|
129
|
+
// makes the lease-aware gate (Part 2.B) work for sub-agents:
|
|
130
|
+
// without this injection, the gate has no leaseId to consult and
|
|
131
|
+
// the sub-agent would need a separate `peaks worktree auth grant`.
|
|
132
|
+
if (typeof options.isolation === 'string' && options.isolation.length > 0) {
|
|
133
|
+
if (options.isolation !== 'worktree' &&
|
|
134
|
+
options.isolation !== 'container' &&
|
|
135
|
+
options.isolation !== 'vm') {
|
|
136
|
+
return rejectInvalidIsolation(io, options.isolation, role, asJson);
|
|
137
|
+
}
|
|
138
|
+
if (options.isolation === 'container') {
|
|
139
|
+
return spawnContainerIsolation(io, input);
|
|
140
|
+
}
|
|
141
|
+
if (options.isolation === 'worktree') {
|
|
142
|
+
return spawnWorktreeIsolation(io, input);
|
|
143
|
+
}
|
|
144
|
+
else if (options.isolation === 'vm') {
|
|
145
|
+
return rejectVmIsolation(io, input);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return { isolationMode: null, leaseId: null, worktreePath: null, worktreeBranch: null };
|
|
149
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
2
|
+
import { type ContextGuardDecision } from '../../services/context/context-guard.js';
|
|
3
|
+
import { type DispatchOptions } from './sub-agent-shared.js';
|
|
4
|
+
export declare function preflightDispatch(io: ProgramIO, role: string, options: DispatchOptions, asJson: boolean): {
|
|
5
|
+
decision: ContextGuardDecision;
|
|
6
|
+
prompt: string;
|
|
7
|
+
} | null;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// The `peaks sub-agent dispatch` preflight: every refusal that can be decided from
|
|
2
|
+
// the argv alone, before the session id, the lease or the prompt blocks are touched.
|
|
3
|
+
// Returns the prompt-size decision, or `null` when a refusal was already printed.
|
|
4
|
+
import { printResult } from '../cli-helpers.js';
|
|
5
|
+
import { fail } from 'peaks-loop-shared/result';
|
|
6
|
+
import { evaluatePromptSize } from '../../services/context/context-guard.js';
|
|
7
|
+
import { TEST_TOOL_DETECTION_BLOCK } from '../../services/dispatch/test-tool-detection.js';
|
|
8
|
+
import { PROMPT_LIMIT_BYTES, RECOMMENDED_ROLES, validateRole } from './sub-agent-shared.js';
|
|
9
|
+
function rejectInvalidRole(io, role, validation, asJson) {
|
|
10
|
+
printResult(io, fail('sub-agent.dispatch', 'INVALID_ROLE', validation, { role, toolCall: null, dispatchRecordPath: null }, [
|
|
11
|
+
'Use a non-empty role string with no control characters.',
|
|
12
|
+
`Recommended: ${RECOMMENDED_ROLES}.`
|
|
13
|
+
]), asJson);
|
|
14
|
+
process.exitCode = 1;
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
function rejectRemovedAgentRole(io, role, asJson) {
|
|
18
|
+
printResult(io, fail('sub-agent.dispatch', 'ROLE_REMOVED', 'The agent role was removed in Slice 3', {
|
|
19
|
+
role,
|
|
20
|
+
reason: 'role-removed-in-slice-3',
|
|
21
|
+
toolCall: null,
|
|
22
|
+
dispatchRecordPath: null
|
|
23
|
+
}, []), asJson);
|
|
24
|
+
process.exitCode = 1;
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
function rejectMissingPrompt(io, role, asJson) {
|
|
28
|
+
printResult(io, fail('sub-agent.dispatch', 'MISSING_PROMPT', '--prompt is required when --from-dag is not provided', { role, toolCall: null, dispatchRecordPath: null }, [
|
|
29
|
+
'Re-run with either:',
|
|
30
|
+
' • `--prompt <text>` for single-role dispatch, OR',
|
|
31
|
+
' • `--from-dag <file>` for DAG-aware multi-slice dispatch (no --prompt needed; the per-slice prompt is generated from the DAG nodes).'
|
|
32
|
+
]), asJson);
|
|
33
|
+
process.exitCode = 1;
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
// DOGFOOD ONLY: --prompt-length overrides the actual prompt content with
|
|
37
|
+
// a synthetic prompt of the given size in bytes. The original --prompt
|
|
38
|
+
// is still required (commander needs it). This avoids ARG_MAX limits
|
|
39
|
+
// on Windows when the dogfood prompt is > 200KB.
|
|
40
|
+
function applyPromptLengthOverride(options) {
|
|
41
|
+
if (typeof options.promptLength === 'string' && options.promptLength.length > 0) {
|
|
42
|
+
const len = Number.parseInt(options.promptLength, 10);
|
|
43
|
+
if (Number.isInteger(len) && len > 0) {
|
|
44
|
+
options.prompt = 'x'.repeat(len);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function rejectPromptTooLarge(io, role, promptLength, asJson) {
|
|
49
|
+
printResult(io, fail('sub-agent.dispatch', 'PROMPT_TOO_LARGE', `prompt exceeds ${PROMPT_LIMIT_BYTES} bytes (got ${promptLength})`, { role, toolCall: null, dispatchRecordPath: null }, [
|
|
50
|
+
'Truncate the prompt or split into multiple dispatches.',
|
|
51
|
+
'Pass --force to override the 80% threshold at CLI (NOT allowed at hook layer).'
|
|
52
|
+
]), asJson);
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
function rejectGuardDecision(io, role, args, asJson) {
|
|
57
|
+
const { promptLength, decision } = args;
|
|
58
|
+
printResult(io, fail('sub-agent.dispatch', decision.code, `prompt size ${promptLength} bytes exceeds threshold (tier=${decision.evaluation.tier}, ratio=${decision.evaluation.ratio.toFixed(3)})`, {
|
|
59
|
+
role,
|
|
60
|
+
toolCall: null,
|
|
61
|
+
dispatchRecordPath: null
|
|
62
|
+
}, [
|
|
63
|
+
decision.suggest ?? 'Trim prompt or pass --force to override at CLI.',
|
|
64
|
+
'PreToolUse hook layer will still reject regardless of --force (RL-30 strict).'
|
|
65
|
+
]), asJson);
|
|
66
|
+
process.exitCode = 1;
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
export function preflightDispatch(io, role, options, asJson) {
|
|
70
|
+
const validation = validateRole(role);
|
|
71
|
+
if (validation !== null) {
|
|
72
|
+
return rejectInvalidRole(io, role, validation, asJson);
|
|
73
|
+
}
|
|
74
|
+
// Slice 3 (on-demand-ecc) D-012: the `agent` role was removed in
|
|
75
|
+
// 4.0.0-beta.11 — there is no longer a subprocess path for it
|
|
76
|
+
// (the upstream ECC v2.0.0 ships no `ecc` binary). This guard
|
|
77
|
+
// sits AFTER role validation but BEFORE the missing-prompt
|
|
78
|
+
// check so an action-path dispatch with a valid prompt still
|
|
79
|
+
// returns a clear ROLE_REMOVED envelope + exit 1. Note that
|
|
80
|
+
// Commander short-circuits `--help` BEFORE `.action()` fires,
|
|
81
|
+
// so `peaks sub-agent dispatch agent --help` continues to
|
|
82
|
+
// exit 0 with the help text — that is intentional, not a bug.
|
|
83
|
+
if (role === 'agent') {
|
|
84
|
+
return rejectRemovedAgentRole(io, role, asJson);
|
|
85
|
+
}
|
|
86
|
+
if (!options.prompt || options.prompt.length === 0) {
|
|
87
|
+
return rejectMissingPrompt(io, role, asJson);
|
|
88
|
+
}
|
|
89
|
+
// Slice 4.0.8 RD §4 D4c required `--graph-node` here, before the session
|
|
90
|
+
// id existed, so the only recovery it could offer was prose. The node is
|
|
91
|
+
// now provisioned inside the try block below, once `sid` is known.
|
|
92
|
+
applyPromptLengthOverride(options);
|
|
93
|
+
if (options.prompt.length + TEST_TOOL_DETECTION_BLOCK.length > PROMPT_LIMIT_BYTES) {
|
|
94
|
+
return rejectPromptTooLarge(io, role, options.prompt.length, asJson);
|
|
95
|
+
}
|
|
96
|
+
// G9 CLI 兜底 — evaluate prompt size against the threshold table.
|
|
97
|
+
const decision = evaluatePromptSize(options.prompt.length, { force: options.force === true });
|
|
98
|
+
if (!decision.allow) {
|
|
99
|
+
return rejectGuardDecision(io, role, { promptLength: options.prompt.length, decision }, asJson);
|
|
100
|
+
}
|
|
101
|
+
// The prompt the caller composes with: the `--prompt` the caller passed, or the
|
|
102
|
+
// synthetic one `--prompt-length` substituted for it. Handed back explicitly so a
|
|
103
|
+
// caller that has only the argv cannot mistake an absent prompt for an empty one.
|
|
104
|
+
return { decision, prompt: options.prompt };
|
|
105
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type DispatchOptions } from './sub-agent-shared.js';
|
|
2
|
+
export declare function buildIsolationBlock(isolationMode: 'worktree' | 'container' | 'vm' | null, leaseId: string | null, worktreePath: string | null, worktreeBranch: string | null): string;
|
|
3
|
+
export declare function buildMustLsFilesBlock(options: DispatchOptions, projectRoot: string): {
|
|
4
|
+
mustLsFilesVerification: {
|
|
5
|
+
path: string;
|
|
6
|
+
exists: boolean;
|
|
7
|
+
files: readonly string[];
|
|
8
|
+
} | null;
|
|
9
|
+
mustLsFilesBlock: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// The two prompt blocks `composeDispatchPrompt` prepends: the Part 2.C worktree
|
|
2
|
+
// isolation envelope and the F5 `must_ls_files` anti-fake-green enforcement
|
|
3
|
+
// block. Split out of `dispatch-prompt-composition.ts` when compressing that
|
|
4
|
+
// module's long function pushed it past the 300-line cap; both bodies are the
|
|
5
|
+
// originals, moved verbatim.
|
|
6
|
+
import { runGitLsFiles } from '../../services/dispatch/dispatch-sub-agent.js';
|
|
7
|
+
// Part 2.C: when --isolation worktree, prepend an isolation envelope
|
|
8
|
+
// block so the sub-agent sees the lease id + worktree path. The block
|
|
9
|
+
// is short (a few lines). We deliberately do NOT set
|
|
10
|
+
// process.env.PEAKS_WORKTREE_LEASE_ID here — sub-agents are spawned
|
|
11
|
+
// by the LLM in its own environment, not as children of this CLI;
|
|
12
|
+
// the lease id travels through the dispatch record + prompt body.
|
|
13
|
+
export function buildIsolationBlock(isolationMode, leaseId, worktreePath, worktreeBranch) {
|
|
14
|
+
return isolationMode !== null && leaseId !== null
|
|
15
|
+
? `\n## Worktree isolation (Part 2.C)\n` +
|
|
16
|
+
`leaseId: ${leaseId}\n` +
|
|
17
|
+
`worktreePath: ${worktreePath}\n` +
|
|
18
|
+
`branch: ${worktreeBranch}\n` +
|
|
19
|
+
`You MAY ` +
|
|
20
|
+
'`git worktree add` ' +
|
|
21
|
+
`and ` +
|
|
22
|
+
'`git worktree remove` ' +
|
|
23
|
+
`against this lease without a separate ` +
|
|
24
|
+
'`peaks worktree auth grant` ' +
|
|
25
|
+
`— the PreToolUse gate reads the lease file. Run ` +
|
|
26
|
+
'`peaks worktree release --lease-id ${leaseId}` ' +
|
|
27
|
+
`when done.\n`
|
|
28
|
+
: '';
|
|
29
|
+
}
|
|
30
|
+
// F5 follow-up: anti-fake-green gate. When `--must-ls-files <glob>`
|
|
31
|
+
// is supplied, run `git ls-files <glob>` upfront, surface the
|
|
32
|
+
// result in the envelope as `mustLsFilesVerification: { path,
|
|
33
|
+
// exists, files }`, and prepend a `## must_ls_files enforcement`
|
|
34
|
+
// frontmatter block to the sub-agent prompt that mandates the
|
|
35
|
+
// file-existence verification as the LLM's FIRST action (before
|
|
36
|
+
// any "completed"/"PASS" claim). When the flag is absent the
|
|
37
|
+
// field is `null` and no block is injected — old call sites
|
|
38
|
+
export function buildMustLsFilesBlock(options, projectRoot) {
|
|
39
|
+
let mustLsFilesVerification = null;
|
|
40
|
+
let mustLsFilesBlock = '';
|
|
41
|
+
if (typeof options.mustLsFiles === 'string' && options.mustLsFiles.length > 0) {
|
|
42
|
+
const glob = options.mustLsFiles;
|
|
43
|
+
const files = runGitLsFiles(projectRoot, glob);
|
|
44
|
+
const exists = files.length > 0;
|
|
45
|
+
mustLsFilesVerification = { path: glob, exists, files };
|
|
46
|
+
mustLsFilesBlock =
|
|
47
|
+
`\n## must_ls_files enforcement (F5 anti-fake-green)\n` +
|
|
48
|
+
`glob: ${glob}\n` +
|
|
49
|
+
`verification: ${exists ? `EXISTS (${files.length} file${files.length === 1 ? '' : 's'} found)` : 'MISSING (no files matched the glob)'}\n` +
|
|
50
|
+
(exists ? `first match: ${files[0] ?? ''}\n` : '') +
|
|
51
|
+
`BEFORE any claim that work is "completed" or "PASS", you MUST run \`git ls-files ${glob}\` from the project root and ` +
|
|
52
|
+
`confirm the file exists. Anti-fake-green rule (sediment 2026-08-11-rid-001-redo-fake-green-recovery-closure §Lesson 1): ` +
|
|
53
|
+
`if the file does not exist, your verdict MUST be \`status: "blocked"\` with reason "must_ls_files_failed". Do NOT silently skip this step.\n`;
|
|
54
|
+
}
|
|
55
|
+
return { mustLsFilesVerification, mustLsFilesBlock };
|
|
56
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
2
|
+
import { getAdapter } from '../../services/ide/ide-registry.js';
|
|
3
|
+
import type { ContextGuardDecision } from '../../services/context/context-guard.js';
|
|
4
|
+
import { type DispatchOptions } from './sub-agent-shared.js';
|
|
5
|
+
export interface ComposeDispatchPromptInput {
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
sid: string;
|
|
8
|
+
rid: string;
|
|
9
|
+
role: string;
|
|
10
|
+
options: DispatchOptions;
|
|
11
|
+
/** The prompt the sub-agent receives, as `preflightDispatch` resolved it. */
|
|
12
|
+
prompt: string;
|
|
13
|
+
isolationMode: 'worktree' | 'container' | 'vm' | null;
|
|
14
|
+
leaseId: string | null;
|
|
15
|
+
worktreePath: string | null;
|
|
16
|
+
worktreeBranch: string | null;
|
|
17
|
+
decision: ContextGuardDecision;
|
|
18
|
+
asJson: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ComposedDispatchPrompt {
|
|
21
|
+
adapter: ReturnType<typeof getAdapter>;
|
|
22
|
+
effectivePrompt: string;
|
|
23
|
+
warnings: string[];
|
|
24
|
+
mustLsFilesVerification: {
|
|
25
|
+
path: string;
|
|
26
|
+
exists: boolean;
|
|
27
|
+
files: readonly string[];
|
|
28
|
+
} | null;
|
|
29
|
+
}
|
|
30
|
+
export declare function composeDispatchPrompt(io: ProgramIO, input: ComposeDispatchPromptInput): Promise<ComposedDispatchPrompt | null>;
|