peaks-loop 4.1.3 → 4.1.4
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 +2 -2
- package/CHANGELOG.md +56 -0
- package/README-en.md +1 -1
- package/README.md +1 -1
- package/dist/cli/commands/asset-command-shared.d.ts +12 -0
- package/dist/cli/commands/asset-command-shared.js +45 -0
- package/dist/cli/commands/asset-commands.d.ts +6 -1
- package/dist/cli/commands/asset-commands.js +11 -372
- package/dist/cli/commands/asset-crystallize-command.d.ts +3 -0
- package/dist/cli/commands/asset-crystallize-command.js +60 -0
- package/dist/cli/commands/asset-crystallize-payload.d.ts +47 -0
- package/dist/cli/commands/asset-crystallize-payload.js +85 -0
- package/dist/cli/commands/asset-crystallize-runner.d.ts +3 -0
- package/dist/cli/commands/asset-crystallize-runner.js +133 -0
- package/dist/cli/commands/asset-dispose-command.d.ts +3 -0
- package/dist/cli/commands/asset-dispose-command.js +99 -0
- package/dist/cli/commands/asset-status-command.d.ts +3 -0
- package/dist/cli/commands/asset-status-command.js +100 -0
- package/dist/cli/commands/baseline-audit-command.d.ts +3 -0
- package/dist/cli/commands/baseline-audit-command.js +64 -0
- package/dist/cli/commands/baseline-command-shared.d.ts +23 -0
- package/dist/cli/commands/baseline-command-shared.js +39 -0
- package/dist/cli/commands/baseline-commands.js +33 -313
- package/dist/cli/commands/baseline-freeze-commands.d.ts +4 -0
- package/dist/cli/commands/baseline-freeze-commands.js +81 -0
- package/dist/cli/commands/baseline-guard-command.d.ts +3 -0
- package/dist/cli/commands/baseline-guard-command.js +52 -0
- package/dist/cli/commands/baseline-read-commands.d.ts +5 -0
- package/dist/cli/commands/baseline-read-commands.js +72 -0
- package/dist/cli/commands/baseline-rollback-commands.d.ts +4 -0
- package/dist/cli/commands/baseline-rollback-commands.js +88 -0
- package/dist/cli/commands/classify-downgrade-command.d.ts +9 -0
- package/dist/cli/commands/classify-downgrade-command.js +21 -0
- package/dist/cli/commands/classify-run-command.d.ts +9 -0
- package/dist/cli/commands/classify-run-command.js +73 -0
- package/dist/cli/commands/classify-signals.d.ts +5 -0
- package/dist/cli/commands/classify-signals.js +104 -0
- package/dist/cli/commands/code-emit-handoff-command.js +40 -3
- package/dist/cli/commands/code-gate-step-08-command.js +25 -9
- package/dist/cli/commands/codegraph-command-options.d.ts +22 -0
- package/dist/cli/commands/codegraph-command-options.js +22 -0
- package/dist/cli/commands/codegraph-commands.d.ts +2 -2
- package/dist/cli/commands/codegraph-commands.js +14 -397
- package/dist/cli/commands/codegraph-config-restore-command.d.ts +3 -0
- package/dist/cli/commands/codegraph-config-restore-command.js +200 -0
- package/dist/cli/commands/codegraph-proxy-commands.d.ts +10 -0
- package/dist/cli/commands/codegraph-proxy-commands.js +159 -0
- package/dist/cli/commands/codegraph-repair-commands.d.ts +3 -0
- package/dist/cli/commands/codegraph-repair-commands.js +94 -0
- package/dist/cli/commands/codegraph-status-command.d.ts +1 -1
- package/dist/cli/commands/codegraph-status-command.js +27 -214
- package/dist/cli/commands/codegraph-status-integrity.d.ts +44 -0
- package/dist/cli/commands/codegraph-status-integrity.js +121 -0
- package/dist/cli/commands/codegraph-status-json.d.ts +5 -0
- package/dist/cli/commands/codegraph-status-json.js +127 -0
- package/dist/cli/commands/container-command-shared.d.ts +60 -0
- package/dist/cli/commands/container-command-shared.js +52 -0
- package/dist/cli/commands/container-commands.d.ts +1 -1
- package/dist/cli/commands/container-commands.js +4 -216
- package/dist/cli/commands/container-release-command.d.ts +3 -0
- package/dist/cli/commands/container-release-command.js +105 -0
- package/dist/cli/commands/container-spawn-command.d.ts +3 -0
- package/dist/cli/commands/container-spawn-command.js +148 -0
- package/dist/cli/commands/context-check-command.d.ts +3 -0
- package/dist/cli/commands/context-check-command.js +81 -0
- package/dist/cli/commands/context-commands.d.ts +2 -7
- package/dist/cli/commands/context-commands.js +6 -276
- package/dist/cli/commands/context-layer-command.d.ts +3 -0
- package/dist/cli/commands/context-layer-command.js +34 -0
- package/dist/cli/commands/context-layer-fetchers.d.ts +15 -0
- package/dist/cli/commands/context-layer-fetchers.js +162 -0
- package/dist/cli/commands/context-status-command.d.ts +17 -0
- package/dist/cli/commands/context-status-command.js +41 -0
- package/dist/cli/commands/contract-write-command.d.ts +3 -0
- package/dist/cli/commands/contract-write-command.js +144 -0
- package/dist/cli/commands/core/doctor-bindings.d.ts +17 -0
- package/dist/cli/commands/core/doctor-bindings.js +30 -0
- package/dist/cli/commands/core/doctor-command.d.ts +4 -18
- package/dist/cli/commands/core/doctor-command.js +2 -323
- package/dist/cli/commands/core/doctor-logs.d.ts +8 -0
- package/dist/cli/commands/core/doctor-logs.js +32 -0
- package/dist/cli/commands/core/doctor-probes.d.ts +3 -0
- package/dist/cli/commands/core/doctor-probes.js +55 -0
- package/dist/cli/commands/core/doctor-run-command.d.ts +12 -0
- package/dist/cli/commands/core/doctor-run-command.js +172 -0
- package/dist/cli/commands/core/doctor-summary.d.ts +7 -0
- package/dist/cli/commands/core/doctor-summary.js +39 -0
- package/dist/cli/commands/core/memory-command-shared.d.ts +25 -0
- package/dist/cli/commands/core/memory-command-shared.js +20 -0
- package/dist/cli/commands/core/memory-command.d.ts +1 -1
- package/dist/cli/commands/core/memory-command.js +6 -227
- package/dist/cli/commands/core/memory-delegated-verbs.d.ts +4 -0
- package/dist/cli/commands/core/memory-delegated-verbs.js +178 -0
- package/dist/cli/commands/core/memory-extract-command.d.ts +3 -0
- package/dist/cli/commands/core/memory-extract-command.js +90 -0
- package/dist/cli/commands/core/memory-sync-command.d.ts +3 -0
- package/dist/cli/commands/core/memory-sync-command.js +38 -0
- package/dist/cli/commands/core/session-command.d.ts +1 -1
- package/dist/cli/commands/core/session-command.js +12 -206
- package/dist/cli/commands/core/session-info-command.d.ts +3 -0
- package/dist/cli/commands/core/session-info-command.js +142 -0
- package/dist/cli/commands/core/session-verb-commands.d.ts +5 -0
- package/dist/cli/commands/core/session-verb-commands.js +58 -0
- package/dist/cli/commands/core/standards-command.d.ts +1 -24
- package/dist/cli/commands/core/standards-command.js +33 -201
- package/dist/cli/commands/core/standards-init-command.d.ts +3 -0
- package/dist/cli/commands/core/standards-init-command.js +87 -0
- package/dist/cli/commands/core/standards-lint.d.ts +24 -0
- package/dist/cli/commands/core/standards-lint.js +57 -0
- package/dist/cli/commands/core/standards-migrate-command.d.ts +3 -0
- package/dist/cli/commands/core/standards-migrate-command.js +57 -0
- package/dist/cli/commands/cron-scheduler-commands.d.ts +5 -1
- package/dist/cli/commands/cron-scheduler-commands.js +36 -206
- package/dist/cli/commands/cron-scheduler-run-once-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-run-once-command.js +35 -0
- package/dist/cli/commands/cron-scheduler-shared.d.ts +6 -0
- package/dist/cli/commands/cron-scheduler-shared.js +48 -0
- package/dist/cli/commands/cron-scheduler-start-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-start-command.js +65 -0
- package/dist/cli/commands/cron-scheduler-status-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-status-command.js +46 -0
- package/dist/cli/commands/cron-scheduler-stop-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-stop-command.js +61 -0
- package/dist/cli/commands/dispatch-dag-envelope.d.ts +41 -0
- package/dist/cli/commands/dispatch-dag-envelope.js +49 -0
- package/dist/cli/commands/dispatch-dag-failure.d.ts +18 -0
- package/dist/cli/commands/dispatch-dag-failure.js +16 -0
- package/dist/cli/commands/dispatch-dag-preflight.d.ts +51 -0
- package/dist/cli/commands/dispatch-dag-preflight.js +105 -0
- package/dist/cli/commands/dispatch-dag-runners.d.ts +48 -0
- package/dist/cli/commands/dispatch-dag-runners.js +73 -0
- package/dist/cli/commands/dispatch-from-dag.d.ts +27 -0
- package/dist/cli/commands/dispatch-from-dag.js +87 -257
- package/dist/cli/commands/final-review-command-envelopes.d.ts +44 -0
- package/dist/cli/commands/final-review-command-envelopes.js +100 -0
- package/dist/cli/commands/final-review-command-shared.d.ts +52 -0
- package/dist/cli/commands/final-review-command-shared.js +35 -0
- package/dist/cli/commands/final-review-commands.d.ts +7 -27
- package/dist/cli/commands/final-review-commands.js +13 -240
- package/dist/cli/commands/final-review-prepare-command.d.ts +3 -0
- package/dist/cli/commands/final-review-prepare-command.js +200 -0
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +23 -9
- package/dist/cli/commands/governance-classify-contract-commands.js +26 -269
- package/dist/cli/commands/hooks-command-shared.d.ts +42 -0
- package/dist/cli/commands/hooks-command-shared.js +32 -0
- package/dist/cli/commands/hooks-commands.d.ts +20 -0
- package/dist/cli/commands/hooks-commands.js +75 -309
- package/dist/cli/commands/hooks-install-envelopes.d.ts +6 -0
- package/dist/cli/commands/hooks-install-envelopes.js +144 -0
- package/dist/cli/commands/hooks-status-command.d.ts +3 -0
- package/dist/cli/commands/hooks-status-command.js +93 -0
- package/dist/cli/commands/hooks-uninstall-command.d.ts +3 -0
- package/dist/cli/commands/hooks-uninstall-command.js +43 -0
- package/dist/cli/commands/loop-command-shared.d.ts +31 -0
- package/dist/cli/commands/loop-command-shared.js +15 -0
- package/dist/cli/commands/loop-commands.d.ts +12 -17
- package/dist/cli/commands/loop-commands.js +56 -238
- package/dist/cli/commands/loop-export-command.d.ts +3 -0
- package/dist/cli/commands/loop-export-command.js +73 -0
- package/dist/cli/commands/loop-goal-compose-command.d.ts +3 -0
- package/dist/cli/commands/loop-goal-compose-command.js +36 -0
- package/dist/cli/commands/loop-import-command.d.ts +3 -0
- package/dist/cli/commands/loop-import-command.js +86 -0
- package/dist/cli/commands/loop-placeholder-commands.d.ts +3 -0
- package/dist/cli/commands/loop-placeholder-commands.js +52 -0
- package/dist/cli/commands/memory-command-shared.d.ts +59 -0
- package/dist/cli/commands/memory-command-shared.js +39 -0
- package/dist/cli/commands/memory-commands.d.ts +6 -79
- package/dist/cli/commands/memory-commands.js +19 -309
- package/dist/cli/commands/memory-ingest-command.d.ts +3 -0
- package/dist/cli/commands/memory-ingest-command.js +50 -0
- package/dist/cli/commands/memory-list-command.d.ts +16 -0
- package/dist/cli/commands/memory-list-command.js +129 -0
- package/dist/cli/commands/memory-reindex-command.d.ts +9 -0
- package/dist/cli/commands/memory-reindex-command.js +78 -0
- package/dist/cli/commands/memory-rotate-command.d.ts +3 -0
- package/dist/cli/commands/memory-rotate-command.js +55 -0
- package/dist/cli/commands/memory-search-command.d.ts +7 -0
- package/dist/cli/commands/memory-search-command.js +46 -0
- package/dist/cli/commands/openspec-archive-command.d.ts +3 -0
- package/dist/cli/commands/openspec-archive-command.js +55 -0
- package/dist/cli/commands/openspec-command-shared.d.ts +62 -0
- package/dist/cli/commands/openspec-command-shared.js +135 -0
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +33 -306
- package/dist/cli/commands/openspec-from-doctor-command.d.ts +3 -0
- package/dist/cli/commands/openspec-from-doctor-command.js +66 -0
- package/dist/cli/commands/openspec-init-command.d.ts +3 -0
- package/dist/cli/commands/openspec-init-command.js +49 -0
- package/dist/cli/commands/openspec-list-command.d.ts +3 -0
- package/dist/cli/commands/openspec-list-command.js +27 -0
- package/dist/cli/commands/openspec-render-command.d.ts +3 -0
- package/dist/cli/commands/openspec-render-command.js +33 -0
- package/dist/cli/commands/openspec-show-command.d.ts +3 -0
- package/dist/cli/commands/openspec-show-command.js +33 -0
- package/dist/cli/commands/openspec-to-rd-command.d.ts +3 -0
- package/dist/cli/commands/openspec-to-rd-command.js +33 -0
- package/dist/cli/commands/openspec-validate-command.d.ts +3 -0
- package/dist/cli/commands/openspec-validate-command.js +45 -0
- package/dist/cli/commands/playwright-browser-command.d.ts +8 -0
- package/dist/cli/commands/playwright-browser-command.js +61 -0
- package/dist/cli/commands/playwright-commands.d.ts +10 -62
- package/dist/cli/commands/playwright-commands.js +77 -400
- package/dist/cli/commands/playwright-envelope.d.ts +8 -0
- package/dist/cli/commands/playwright-envelope.js +29 -0
- package/dist/cli/commands/playwright-ls-stop-commands.d.ts +4 -0
- package/dist/cli/commands/playwright-ls-stop-commands.js +74 -0
- package/dist/cli/commands/playwright-session-store.d.ts +65 -0
- package/dist/cli/commands/playwright-session-store.js +189 -0
- package/dist/cli/commands/project-commands.d.ts +19 -0
- package/dist/cli/commands/project-commands.js +98 -259
- package/dist/cli/commands/project-context-command.d.ts +3 -0
- package/dist/cli/commands/project-context-command.js +44 -0
- package/dist/cli/commands/project-dashboard-command.d.ts +3 -0
- package/dist/cli/commands/project-dashboard-command.js +74 -0
- package/dist/cli/commands/project-knowledge-command.d.ts +3 -0
- package/dist/cli/commands/project-knowledge-command.js +48 -0
- package/dist/cli/commands/project-memories-show-command.d.ts +3 -0
- package/dist/cli/commands/project-memories-show-command.js +87 -0
- package/dist/cli/commands/project-memory-index-command.d.ts +3 -0
- package/dist/cli/commands/project-memory-index-command.js +31 -0
- package/dist/cli/commands/qa-archive-screenshots-command.d.ts +3 -0
- package/dist/cli/commands/qa-archive-screenshots-command.js +53 -0
- package/dist/cli/commands/qa-commands.d.ts +14 -87
- package/dist/cli/commands/qa-commands.js +17 -315
- package/dist/cli/commands/qa-context-prestep.d.ts +1 -0
- package/dist/cli/commands/qa-context-prestep.js +34 -0
- package/dist/cli/commands/qa-run-command.d.ts +3 -0
- package/dist/cli/commands/qa-run-command.js +105 -0
- package/dist/cli/commands/qa-run-options.d.ts +23 -0
- package/dist/cli/commands/qa-run-options.js +31 -0
- package/dist/cli/commands/qa-run-slice.d.ts +41 -0
- package/dist/cli/commands/qa-run-slice.js +145 -0
- package/dist/cli/commands/release-canary-command.d.ts +28 -0
- package/dist/cli/commands/release-canary-command.js +129 -0
- package/dist/cli/commands/release-command-shared.d.ts +13 -0
- package/dist/cli/commands/release-command-shared.js +18 -0
- package/dist/cli/commands/release-commands.d.ts +10 -18
- package/dist/cli/commands/release-commands.js +25 -298
- package/dist/cli/commands/release-done-command.d.ts +3 -0
- package/dist/cli/commands/release-done-command.js +64 -0
- package/dist/cli/commands/release-hotfix-command.d.ts +3 -0
- package/dist/cli/commands/release-hotfix-command.js +50 -0
- package/dist/cli/commands/release-plan-command.d.ts +3 -0
- package/dist/cli/commands/release-plan-command.js +33 -0
- package/dist/cli/commands/release-precheck-command.d.ts +3 -0
- package/dist/cli/commands/release-precheck-command.js +28 -0
- package/dist/cli/commands/release-promote-command.d.ts +3 -0
- package/dist/cli/commands/release-promote-command.js +34 -0
- package/dist/cli/commands/release-rollback-command.d.ts +3 -0
- package/dist/cli/commands/release-rollback-command.js +33 -0
- package/dist/cli/commands/release-watch-command.d.ts +3 -0
- package/dist/cli/commands/release-watch-command.js +44 -0
- package/dist/cli/commands/sediment-argv-flags.d.ts +54 -0
- package/dist/cli/commands/sediment-argv-flags.js +116 -0
- package/dist/cli/commands/sediment-command-shared.d.ts +15 -0
- package/dist/cli/commands/sediment-command-shared.js +5 -0
- package/dist/cli/commands/sediment-commands.d.ts +35 -59
- package/dist/cli/commands/sediment-commands.js +36 -590
- package/dist/cli/commands/sediment-pool-commands.d.ts +9 -0
- package/dist/cli/commands/sediment-pool-commands.js +185 -0
- package/dist/cli/commands/sediment-query-commands.d.ts +4 -0
- package/dist/cli/commands/sediment-query-commands.js +94 -0
- package/dist/cli/commands/sediment-release-commands.d.ts +8 -0
- package/dist/cli/commands/sediment-release-commands.js +232 -0
- package/dist/cli/commands/sop-advance-command.d.ts +3 -0
- package/dist/cli/commands/sop-advance-command.js +160 -0
- package/dist/cli/commands/sop-check-command.d.ts +3 -0
- package/dist/cli/commands/sop-check-command.js +44 -0
- package/dist/cli/commands/sop-command-shared.d.ts +23 -0
- package/dist/cli/commands/sop-command-shared.js +18 -0
- package/dist/cli/commands/sop-commands.d.ts +15 -1
- package/dist/cli/commands/sop-commands.js +26 -240
- package/dist/cli/commands/sop-init-command.d.ts +3 -0
- package/dist/cli/commands/sop-init-command.js +51 -0
- package/dist/cli/commands/sop-lint-command.d.ts +3 -0
- package/dist/cli/commands/sop-lint-command.js +64 -0
- package/dist/cli/commands/sop-register-command.d.ts +3 -0
- package/dist/cli/commands/sop-register-command.js +48 -0
- package/dist/cli/commands/sop-registry-command.d.ts +3 -0
- package/dist/cli/commands/sop-registry-command.js +30 -0
- package/dist/cli/commands/statusline-command-shared.d.ts +73 -0
- package/dist/cli/commands/statusline-command-shared.js +90 -0
- package/dist/cli/commands/statusline-commands.d.ts +1 -19
- package/dist/cli/commands/statusline-commands.js +48 -287
- package/dist/cli/commands/statusline-compact-command.d.ts +4 -0
- package/dist/cli/commands/statusline-compact-command.js +54 -0
- package/dist/cli/commands/statusline-install-command.d.ts +3 -0
- package/dist/cli/commands/statusline-install-command.js +48 -0
- package/dist/cli/commands/statusline-render-command.d.ts +9 -0
- package/dist/cli/commands/statusline-render-command.js +55 -0
- package/dist/cli/commands/statusline-status-command.d.ts +3 -0
- package/dist/cli/commands/statusline-status-command.js +23 -0
- package/dist/cli/commands/statusline-uninstall-command.d.ts +3 -0
- package/dist/cli/commands/statusline-uninstall-command.js +23 -0
- package/dist/cli/commands/test-command-run-helpers.d.ts +27 -0
- package/dist/cli/commands/test-command-run-helpers.js +73 -0
- package/dist/cli/commands/test-command-runner-resolution.d.ts +57 -0
- package/dist/cli/commands/test-command-runner-resolution.js +183 -0
- package/dist/cli/commands/test-commands.d.ts +8 -56
- package/dist/cli/commands/test-commands.js +26 -249
- package/dist/cli/commands/vm-command-shared.d.ts +23 -0
- package/dist/cli/commands/vm-command-shared.js +23 -0
- package/dist/cli/commands/vm-commands.d.ts +1 -28
- package/dist/cli/commands/vm-commands.js +36 -270
- package/dist/cli/commands/vm-hypervisor-runtime.d.ts +15 -0
- package/dist/cli/commands/vm-hypervisor-runtime.js +64 -0
- package/dist/cli/commands/vm-release-command.d.ts +5 -0
- package/dist/cli/commands/vm-release-command.js +101 -0
- package/dist/cli/commands/vm-spawn-command.d.ts +5 -0
- package/dist/cli/commands/vm-spawn-command.js +177 -0
- package/dist/cli/commands/web-command-shared.d.ts +12 -0
- package/dist/cli/commands/web-command-shared.js +30 -0
- package/dist/cli/commands/web-commands.d.ts +7 -14
- package/dist/cli/commands/web-commands.js +6 -314
- package/dist/cli/commands/web-install-command.d.ts +10 -0
- package/dist/cli/commands/web-install-command.js +116 -0
- package/dist/cli/commands/web-lifecycle-commands.d.ts +9 -30
- package/dist/cli/commands/web-lifecycle-commands.js +14 -322
- package/dist/cli/commands/web-login-command.d.ts +14 -0
- package/dist/cli/commands/web-login-command.js +189 -0
- package/dist/cli/commands/web-op-payload.d.ts +22 -0
- package/dist/cli/commands/web-op-payload.js +89 -0
- package/dist/cli/commands/web-op-refusals.d.ts +37 -0
- package/dist/cli/commands/web-op-refusals.js +73 -0
- package/dist/cli/commands/web-op-runner.d.ts +14 -0
- package/dist/cli/commands/web-op-runner.js +166 -0
- package/dist/cli/commands/web-status-command.d.ts +4 -0
- package/dist/cli/commands/web-status-command.js +32 -0
- package/dist/cli/commands/web-stop-command.d.ts +10 -0
- package/dist/cli/commands/web-stop-command.js +59 -0
- package/dist/cli/commands/web-verb-specs.d.ts +18 -0
- package/dist/cli/commands/web-verb-specs.js +66 -0
- package/dist/cli/commands/workflow-command-shared.d.ts +102 -0
- package/dist/cli/commands/workflow-command-shared.js +74 -0
- package/dist/cli/commands/workflow-graph-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-graph-commands.js +73 -0
- package/dist/cli/commands/workflow-init-command.d.ts +3 -0
- package/dist/cli/commands/workflow-init-command.js +68 -0
- package/dist/cli/commands/workflow-lifecycle-commands.d.ts +9 -59
- package/dist/cli/commands/workflow-lifecycle-commands.js +14 -348
- package/dist/cli/commands/workflow-node-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-node-commands.js +154 -0
- package/dist/cli/commands/workflow-terminalize-command.d.ts +3 -0
- package/dist/cli/commands/workflow-terminalize-command.js +56 -0
- package/dist/services/code/auto-compact-artifacts.d.ts +54 -0
- package/dist/services/code/auto-compact-artifacts.js +135 -0
- package/dist/services/code/auto-compact-attempt.d.ts +46 -0
- package/dist/services/code/auto-compact-attempt.js +88 -0
- package/dist/services/code/auto-compact-decision.d.ts +74 -0
- package/dist/services/code/auto-compact-decision.js +149 -0
- package/dist/services/code/auto-compact-dispatch-gate.d.ts +36 -0
- package/dist/services/code/auto-compact-dispatch-gate.js +86 -0
- package/dist/services/code/auto-compact-envelopes.d.ts +33 -0
- package/dist/services/code/auto-compact-envelopes.js +134 -0
- package/dist/services/code/auto-compact-history.d.ts +46 -0
- package/dist/services/code/auto-compact-history.js +17 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +11 -240
- package/dist/services/code/auto-compact-orchestrator.js +165 -686
- package/dist/services/code/auto-compact-run-types.d.ts +123 -0
- package/dist/services/code/auto-compact-run-types.js +1 -0
- package/dist/services/code/emit-handoff.d.ts +35 -1
- package/dist/services/code/emit-handoff.js +128 -7
- package/dist/services/code/step-08-gate.d.ts +28 -19
- package/dist/services/code/step-08-gate.js +92 -35
- package/dist/services/config/config-coercion.d.ts +7 -0
- package/dist/services/config/config-coercion.js +156 -0
- package/dist/services/config/config-file-io.d.ts +11 -0
- package/dist/services/config/config-file-io.js +61 -0
- package/dist/services/config/config-get.d.ts +2 -0
- package/dist/services/config/config-get.js +36 -0
- package/dist/services/config/config-global-loader.d.ts +15 -0
- package/dist/services/config/config-global-loader.js +111 -0
- package/dist/services/config/config-nested-path.d.ts +3 -0
- package/dist/services/config/config-nested-path.js +53 -0
- package/dist/services/config/config-primitives.d.ts +16 -0
- package/dist/services/config/config-primitives.js +24 -0
- package/dist/services/config/config-service.d.ts +9 -33
- package/dist/services/config/config-service.js +16 -665
- package/dist/services/config/config-validation.d.ts +19 -0
- package/dist/services/config/config-validation.js +152 -0
- package/dist/services/config/config-workspace.d.ts +10 -0
- package/dist/services/config/config-workspace.js +158 -0
- package/dist/services/skills/hooks-settings-deny-list.d.ts +61 -0
- package/dist/services/skills/hooks-settings-deny-list.js +173 -0
- package/dist/services/skills/hooks-settings-envelopes.d.ts +20 -0
- package/dist/services/skills/hooks-settings-envelopes.js +79 -0
- package/dist/services/skills/hooks-settings-file-shape.d.ts +43 -0
- package/dist/services/skills/hooks-settings-file-shape.js +207 -0
- package/dist/services/skills/hooks-settings-paths.d.ts +34 -0
- package/dist/services/skills/hooks-settings-paths.js +75 -0
- package/dist/services/skills/hooks-settings-read-installed.d.ts +39 -0
- package/dist/services/skills/hooks-settings-read-installed.js +60 -0
- package/dist/services/skills/hooks-settings-service.d.ts +12 -212
- package/dist/services/skills/hooks-settings-service.js +71 -657
- package/dist/services/skills/hooks-settings-types.d.ts +139 -0
- package/dist/services/skills/hooks-settings-types.js +1 -0
- package/dist/services/workspace/claude-settings-template-merge.d.ts +89 -0
- package/dist/services/workspace/claude-settings-template-merge.js +243 -0
- package/dist/services/workspace/claude-settings-template.d.ts +29 -87
- package/dist/services/workspace/claude-settings-template.js +81 -236
- package/package.json +5 -5
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The result envelopes `runAutoCompact` can return.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-orchestrator.ts` (file-size cap campaign). The
|
|
5
|
+
* orchestrator re-exports every name declared here, so existing importers keep
|
|
6
|
+
* using `./auto-compact-orchestrator.js` unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import { DEPRECATED_ENVELOPE_FIELDS } from '../context/auto-compact-types.js';
|
|
9
|
+
import { describeHarnessWindowSync, harnessWindowSyncWarning } from '../context/harness-window-config.js';
|
|
10
|
+
import { describeMode, thresholdFor } from './auto-compact-modes.js';
|
|
11
|
+
import { summarizeLifecycleError } from './auto-compact-lifecycle.js';
|
|
12
|
+
/** No session is bound, so there is nothing to probe. */
|
|
13
|
+
export function noSessionResult() {
|
|
14
|
+
return {
|
|
15
|
+
ok: false,
|
|
16
|
+
code: 'AUTO_COMPACT_NO_SESSION',
|
|
17
|
+
message: 'No active session; cannot run auto-compact. Run `peaks workspace init` first.',
|
|
18
|
+
nextActions: ['Run `peaks workspace init --change-id <id>` to bind a session']
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** The envelope for a probe that did not cross the auto-fire threshold. */
|
|
22
|
+
export function skipResult(ctx) {
|
|
23
|
+
const { decision, probe, mode, harnessWindow, sessionId } = ctx;
|
|
24
|
+
return {
|
|
25
|
+
ok: true,
|
|
26
|
+
code: decision.reason === 'in-flight-batch' ? 'AUTO_COMPACT_WAIT' : 'AUTO_COMPACT_SKIP',
|
|
27
|
+
message: `${decision.trigger.kind === 'soft-warn'
|
|
28
|
+
? decision.trigger.message
|
|
29
|
+
: decision.reason === 'in-flight-batch'
|
|
30
|
+
? `In-flight batch detected; deferring pre-compact (ratio=${(probe.ratio * 100).toFixed(1)}%); next probe will re-evaluate.`
|
|
31
|
+
: `Context at ${(probe.ratio * 100).toFixed(1)}%; below the ${(thresholdFor(mode, 'autoFire') * 100).toFixed(0)}% auto-fire threshold (mode=${mode}).`}${
|
|
32
|
+
// No compact was needed, but the sync may still have rewritten the harness's
|
|
33
|
+
// settings (the first probe of a project always does). The notice is appended
|
|
34
|
+
// ONLY for an actual write — the other actions' sentences would be noise on
|
|
35
|
+
// every quiet probe — PLUS the one refusal that is not quiet: a refused write
|
|
36
|
+
// that leaves peaks-loop's number and the harness's pinned window disagreeing.
|
|
37
|
+
// That is the moment the ratio stops describing the harness's trigger, so
|
|
38
|
+
// staying silent is exactly the failure 要告知 exists to prevent.
|
|
39
|
+
harnessWindow !== null &&
|
|
40
|
+
harnessWindow !== undefined &&
|
|
41
|
+
(harnessWindow.action === 'written' || harnessWindowSyncWarning(harnessWindow) !== null)
|
|
42
|
+
? ` ${describeHarnessWindowSync(harnessWindow)}`
|
|
43
|
+
: ''}`,
|
|
44
|
+
data: {
|
|
45
|
+
sessionId,
|
|
46
|
+
ratio: probe.ratio,
|
|
47
|
+
source: probe.source,
|
|
48
|
+
decision: decision.reason === 'in-flight-batch' ? 'in-flight-batch' : 'below-threshold',
|
|
49
|
+
harnessWindow
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The envelope for a throw during preparation. It preserves the original error
|
|
55
|
+
* contract: the caller gets the `AUTO_COMPACT_DISPATCH_FAILED` shape it already
|
|
56
|
+
* handles, not a thrown exception and not a widened type.
|
|
57
|
+
*/
|
|
58
|
+
export function prepareFailureResult(ctx, error) {
|
|
59
|
+
const { input, sessionId, probe, mode, isRedLine, harnessWindow } = ctx;
|
|
60
|
+
return {
|
|
61
|
+
ok: false,
|
|
62
|
+
code: 'AUTO_COMPACT_DISPATCH_FAILED',
|
|
63
|
+
message: `Auto-compact preparation failed before IDE dispatch: ${summarizeLifecycleError(error)}`,
|
|
64
|
+
data: {
|
|
65
|
+
sessionId,
|
|
66
|
+
ratio: probe.ratio,
|
|
67
|
+
source: probe.source,
|
|
68
|
+
target: input.target ?? 'main',
|
|
69
|
+
mode,
|
|
70
|
+
redLineRequested: isRedLine,
|
|
71
|
+
// Compatibility alias + its record. `redLineGated` shipped from 2.13.0 to
|
|
72
|
+
// 4.0.46, so a consumer outside this repo reads it and must not start
|
|
73
|
+
// receiving `undefined`; the record is what makes the deprecation visible
|
|
74
|
+
// to that consumer. See the type.
|
|
75
|
+
redLineGated: isRedLine,
|
|
76
|
+
deprecatedFields: DEPRECATED_ENVELOPE_FIELDS,
|
|
77
|
+
harnessWindow
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** The envelope for a throw or a refusal during the IDE dispatch. */
|
|
82
|
+
export function dispatchFailureResult(ctx, attempt, error) {
|
|
83
|
+
const { sessionId, probe, mode, isRedLine, harnessWindow } = ctx;
|
|
84
|
+
return {
|
|
85
|
+
ok: false,
|
|
86
|
+
code: 'AUTO_COMPACT_DISPATCH_FAILED',
|
|
87
|
+
message: `Auto-compact checkpoint written but IDE dispatch threw: ${summarizeLifecycleError(error)}`,
|
|
88
|
+
data: {
|
|
89
|
+
sessionId,
|
|
90
|
+
ratio: probe.ratio,
|
|
91
|
+
source: probe.source,
|
|
92
|
+
checkpointPath: attempt.checkpointPath,
|
|
93
|
+
convergencePlan: attempt.plan,
|
|
94
|
+
target: attempt.target,
|
|
95
|
+
mode,
|
|
96
|
+
redLineRequested: isRedLine,
|
|
97
|
+
redLineGated: isRedLine,
|
|
98
|
+
deprecatedFields: DEPRECATED_ENVELOPE_FIELDS,
|
|
99
|
+
harnessWindow
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** The envelope for a run that reached the dispatch phase. */
|
|
104
|
+
export function compactResult(ctx, attempt) {
|
|
105
|
+
const { checkpointPath, plan, target, dispatch } = attempt;
|
|
106
|
+
const { probe, mode, isRedLine, harnessWindow, sessionId } = ctx;
|
|
107
|
+
return {
|
|
108
|
+
ok: dispatch.ok,
|
|
109
|
+
code: dispatch.ok
|
|
110
|
+
? isRedLine
|
|
111
|
+
? 'AUTO_COMPACT_RED_LINE'
|
|
112
|
+
: 'AUTO_COMPACT_DISPATCHED'
|
|
113
|
+
: 'AUTO_COMPACT_DISPATCH_FAILED',
|
|
114
|
+
message: dispatch.ok
|
|
115
|
+
? isRedLine
|
|
116
|
+
? `RED-LINE: harness compact REQUESTED (${dispatch.ide} / ${dispatch.pathway} / target=${target} / mode=${mode} — ${describeMode(mode)}); checkpoint at ${checkpointPath}. Sub-agent dispatch is NOT blocked — keep working and re-probe with \`peaks code context-now\`.`
|
|
117
|
+
: `Auto-compact dispatched (${dispatch.ide} / ${dispatch.pathway} / target=${target} / mode=${mode} — ${describeMode(mode)}); checkpoint at ${checkpointPath}.`
|
|
118
|
+
: `Auto-compact checkpoint written but IDE dispatch failed: ${dispatch.message}`,
|
|
119
|
+
data: {
|
|
120
|
+
sessionId,
|
|
121
|
+
ratio: probe.ratio,
|
|
122
|
+
source: probe.source,
|
|
123
|
+
checkpointPath,
|
|
124
|
+
convergencePlan: plan,
|
|
125
|
+
dispatch,
|
|
126
|
+
target,
|
|
127
|
+
mode,
|
|
128
|
+
redLineRequested: isRedLine,
|
|
129
|
+
redLineGated: isRedLine,
|
|
130
|
+
deprecatedFields: DEPRECATED_ENVELOPE_FIELDS,
|
|
131
|
+
harnessWindow
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* auto-compact dispatch. Appended at the end of `executeAutoCompact`
|
|
3
|
+
* so the new 'peaks compact history' CLI + the
|
|
4
|
+
* 'peaks statusline compact' indicator have a record. One file
|
|
5
|
+
* per session (gitignored under `.peaks/_runtime/<sessionId>/`).
|
|
6
|
+
*/
|
|
7
|
+
export interface CompactHistoryEvent {
|
|
8
|
+
readonly schemaVersion: 1;
|
|
9
|
+
readonly ts: string;
|
|
10
|
+
readonly target: 'main' | 'sub-agent' | 'worker';
|
|
11
|
+
readonly mode: 'standard' | 'partial' | 'aggressive';
|
|
12
|
+
readonly ide: string;
|
|
13
|
+
readonly pathway: string;
|
|
14
|
+
readonly beforeRatio: number;
|
|
15
|
+
readonly redLine: boolean;
|
|
16
|
+
readonly ok: boolean;
|
|
17
|
+
readonly checkpointPath: string;
|
|
18
|
+
readonly dispatchMessage: string;
|
|
19
|
+
/**
|
|
20
|
+
* instrument. `windowTokens` is the denominator peaks-loop divided by
|
|
21
|
+
* (`probe.capacityTokens`), so `beforeRatio * windowTokens` is the exact
|
|
22
|
+
* TOKEN POINT peaks-loop asked the harness to compact at. That number is
|
|
23
|
+
* the deliverable — NOT a hand-picked threshold: this slice could not run a
|
|
24
|
+
* real Claude Code session, so the real trigger point of
|
|
25
|
+
* `CLAUDE_CODE_AUTO_COMPACT_WINDOW` (documented as a window, observed to
|
|
26
|
+
* fire near the window's end) has no measured answer yet. Recording the
|
|
27
|
+
* intent lets the first real session produce one.
|
|
28
|
+
*/
|
|
29
|
+
readonly windowTokens?: number | null;
|
|
30
|
+
/** Which layer produced `windowTokens` (see `ContextWindowSource`). */
|
|
31
|
+
readonly windowSource?: string | null;
|
|
32
|
+
/**
|
|
33
|
+
* `dispatch` (default, and the only kind earlier releases wrote) or
|
|
34
|
+
* `observed` — a row appended when a later probe MEASURED the ratio after
|
|
35
|
+
* a dispatched compact, proving one landed. The pair is what yields the
|
|
36
|
+
* intent-vs-observed delta.
|
|
37
|
+
*/
|
|
38
|
+
readonly kind?: 'dispatch' | 'observed';
|
|
39
|
+
/** `observed` rows only: the measured post-compact ratio. */
|
|
40
|
+
readonly afterRatio?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare function appendCompactHistoryEvent(input: {
|
|
43
|
+
readonly projectRoot: string;
|
|
44
|
+
readonly sessionId: string;
|
|
45
|
+
readonly event: CompactHistoryEvent;
|
|
46
|
+
}): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The per-session compact-history log one run appends to.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `auto-compact-orchestrator.ts` (file-size cap campaign). The
|
|
5
|
+
* orchestrator re-exports every name declared here, so existing importers keep
|
|
6
|
+
* using `./auto-compact-orchestrator.js` unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import { appendFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { getSessionDir } from '../session/getSessionDir.js';
|
|
11
|
+
export function appendCompactHistoryEvent(input) {
|
|
12
|
+
const dir = getSessionDir(input.projectRoot, input.sessionId);
|
|
13
|
+
if (!existsSync(dir))
|
|
14
|
+
mkdirSync(dir, { recursive: true });
|
|
15
|
+
const path = join(dir, 'compact-history.jsonl');
|
|
16
|
+
appendFileSync(path, JSON.stringify(input.event) + '\n', 'utf8');
|
|
17
|
+
}
|
|
@@ -1,243 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
readonly projectRoot: string;
|
|
8
|
-
/**
|
|
9
|
-
* Caller-provided in-flight batch probe (default false). Slice
|
|
10
|
-
* 4.0.8 (D4d): production callers should pass a `probeInflightBatch`
|
|
11
|
-
* function (see below). The legacy `inFlightBatch` boolean
|
|
12
|
-
* remains as a TEST-ONLY seam — the CLI gates it behind
|
|
13
|
-
* `process.env.PEAKS_TEST_SEAM === '1'` so a production run
|
|
14
|
-
* never consults the boolean as truth.
|
|
15
|
-
*/
|
|
16
|
-
readonly inFlightBatch?: InFlightBatchProbe | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Slice 4.0.8 (D4d): graph-only in-flight probe. When supplied,
|
|
19
|
-
* the orchestrator calls this function and uses the boolean
|
|
20
|
-
* result as the production `inFlightBatch` signal. The legacy
|
|
21
|
-
* boolean parameter is suppressed in production callers — the
|
|
22
|
-
* CLI's `--in-flight-batch` flag is gated behind
|
|
23
|
-
* `PEAKS_TEST_SEAM === '1'`. The pure decision function
|
|
24
|
-
* `evaluateAutoCompactDecision` retains the boolean signature
|
|
25
|
-
* for the test seam + the red-line override.
|
|
26
|
-
*/
|
|
27
|
-
readonly probeInflightBatch?: (() => boolean) | undefined;
|
|
28
|
-
/**
|
|
29
|
-
* Force execute even when ratio < threshold (test seam). In
|
|
30
|
-
* production this is always `false` — peaks-loop drives compact
|
|
31
|
-
* autonomously at 0.85+ with zero human / zero LLM intervention.
|
|
32
|
-
*/
|
|
33
|
-
readonly force?: boolean | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* INERT — nothing reads this. It is threaded from the CLI's
|
|
36
|
-
* `--bypass-red-line` (a published flag, kept for backward compatibility;
|
|
37
|
-
* see the option's own note) down to `evaluateAutoCompactDecision`, where the
|
|
38
|
-
* red-line branch ignores it.
|
|
39
|
-
*
|
|
40
|
-
* Why nothing reads it any more: it used to skip a gate that refused to
|
|
41
|
-
* dispatch below 0.85. That gate was removed (slice
|
|
42
|
-
* compact a running session, so the refusal could not shorten the wait it
|
|
43
|
-
* was waiting for, and it deadlocked the runner at the worst moment. With the
|
|
44
|
-
* gate gone, the red line still ASKS the harness to compact (when it always
|
|
45
|
-
* did) and no longer needs a bypass. Kept as a field so the published
|
|
46
|
-
* signature does not change under callers that pass it.
|
|
47
|
-
*/
|
|
48
|
-
readonly bypassRedLine?: boolean | undefined;
|
|
49
|
-
/** Current session id (default = resolve via session-id-service). */
|
|
50
|
-
readonly sessionId?: string | undefined;
|
|
51
|
-
/** Injectable env for IDE detection (test seam). */
|
|
52
|
-
readonly env?: NodeJS.ProcessEnv | undefined;
|
|
53
|
-
/** Injectable clock for mtime checks (test seam). */
|
|
54
|
-
readonly now?: Date | undefined;
|
|
55
|
-
/**
|
|
56
|
-
* the compact should target. Default `'main'` — the orchestrator
|
|
57
|
-
* (peaks-code body) runs in the main-session Claude Code window and
|
|
58
|
-
* wants to compress *its* context. Sub-agent shells pass
|
|
59
|
-
* `'sub-agent'` to preserve the legacy shell-spawn behaviour.
|
|
60
|
-
*/
|
|
61
|
-
readonly target?: CompactTarget | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* `'standard'` (v2.13.0 zero-pause contract, 0.85/0.95). `'partial'`
|
|
64
|
-
* fires earlier (0.70/0.85) for 24h long-run scenarios. CLI flag
|
|
65
|
-
* `--mode <mode>` overrides the 24h-mode auto-detection.
|
|
66
|
-
*/
|
|
67
|
-
readonly mode?: AutoCompactMode | undefined;
|
|
68
|
-
/**
|
|
69
|
-
* every lifecycle stage this process actually proved. Telemetry
|
|
70
|
-
* only — it can neither change the threshold decision nor the
|
|
71
|
-
* dispatch outcome, and a throwing observer is swallowed.
|
|
72
|
-
*/
|
|
73
|
-
readonly onLifecycleStage?: ((stage: CompactLifecycleStage, record: CompactLifecycleRecord) => void) | undefined;
|
|
74
|
-
/**
|
|
75
|
-
* Test-only injection seams for lifecycle failure paths. NEVER set in
|
|
76
|
-
* production — these exist so the unit suite can drive the `failed`
|
|
77
|
-
* transition and the store-outage branch without mocking the SUT.
|
|
78
|
-
* Each flag toggles a single, well-scoped throw at a documented point:
|
|
79
|
-
* - `failPreparing`: throw inside the checkpoint/plan/recovery phase
|
|
80
|
-
* (so the record rests at `failedAt: 'preparing'`)
|
|
81
|
-
* - `failCompacting`: throw inside the IDE-dispatch phase
|
|
82
|
-
* (so the record rests at `failedAt: 'compacting'`)
|
|
83
|
-
* - `failLifecycleWrite`: make every lifecycle-store write throw
|
|
84
|
-
* (so the compact envelope is proven independent of telemetry)
|
|
85
|
-
*/
|
|
86
|
-
readonly testHooks?: AutoCompactTestHooks | undefined;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Test-only injection seams. The `boolean` shape (vs. an injected error)
|
|
90
|
-
* is deliberate: tests assert the *transition*, not the thrown value —
|
|
91
|
-
* the value would just be a brittle fingerprint. The real error path
|
|
92
|
-
* is still exercised by `summarizeLifecycleError`'s tests.
|
|
93
|
-
*/
|
|
94
|
-
export interface AutoCompactTestHooks {
|
|
95
|
-
readonly failPreparing?: boolean | undefined;
|
|
96
|
-
readonly failCompacting?: boolean | undefined;
|
|
97
|
-
readonly failLifecycleWrite?: boolean | undefined;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Map a context ratio to a `CompactTrigger` action. Pure; the side
|
|
101
|
-
* effects (checkpoint + IDE dispatch) live in `runAutoCompact`. Two
|
|
102
|
-
* tiers (standard mode; partial mode shifts both thresholds):
|
|
103
|
-
*
|
|
104
|
-
* - ratio < preCompact → 'none' or 'soft-warn'
|
|
105
|
-
* - ratio ≥ preCompact → 'pre-compact' (async-friendly path)
|
|
106
|
-
* - ratio ≥ redLine → 'red-line' (ask the harness; dispatch continues)
|
|
107
|
-
*
|
|
108
|
-
* Default `'standard'` (0.85/0.95). `'partial'` (0.70/0.85) is used
|
|
109
|
-
* when 24h long-run mode is active or `--mode partial` is passed.
|
|
110
|
-
*/
|
|
111
|
-
export declare function evaluateCompactTrigger(ratio: number, mode?: AutoCompactMode): CompactTrigger;
|
|
112
|
-
/**
|
|
113
|
-
* Decide whether to run the auto-compact flow. Pure function for the
|
|
114
|
-
* decision; side effects (checkpoint + IDE dispatch) live in
|
|
115
|
-
* `runAutoCompact` below. Zero human / zero LLM intervention:
|
|
116
|
-
*
|
|
117
|
-
* - ratio < 0.85 → skip (LLM keeps working; no action)
|
|
118
|
-
* - 0.85 ≤ ratio < 0.95 → pre-compact; if in-flight batch
|
|
119
|
-
* present, defer (D6.e); else dispatch
|
|
120
|
-
* IDE compact asynchronously.
|
|
121
|
-
* - ratio ≥ 0.95 → red-line; ask the harness to compact
|
|
122
|
-
* regardless of in-flight batch. Nothing is
|
|
123
|
-
* gated — dispatch is NOT blocked (slice
|
|
124
|
-
* peaks-loop cannot compact a running session,
|
|
125
|
-
* so a "block" gated nothing and deadlocked the
|
|
126
|
-
* runner).
|
|
127
|
-
*/
|
|
128
|
-
export declare function evaluateAutoCompactDecision(input: {
|
|
129
|
-
ratio: number;
|
|
130
|
-
/**
|
|
131
|
-
* Caller-provided in-flight batch signal. Accepts either a plain
|
|
132
|
-
* boolean (convenience / repro seam) or the full `InFlightBatchProbe`
|
|
133
|
-
* shape (production callers — graph-probe-backed). When the boolean
|
|
134
|
-
* form is `true`, the normalized probe carries
|
|
135
|
-
* `hasInFlightBatch: true`. Slice 4.0.8 hotfix.
|
|
136
|
-
*/
|
|
137
|
-
inFlightBatch?: boolean | InFlightBatchProbe | undefined;
|
|
138
|
-
/**
|
|
139
|
-
* Legacy camelCase alias for `inFlightBatch`. Production repro
|
|
140
|
-
* inputs use `inflightBatch: true|false`; the orchestrator
|
|
141
|
-
* normalizes it to the same internal shape. Slice 4.0.8 hotfix.
|
|
142
|
-
*/
|
|
143
|
-
inflightBatch?: boolean | InFlightBatchProbe | undefined;
|
|
144
|
-
force?: boolean | undefined;
|
|
145
|
-
/** Accepted and ignored — see `AutoCompactInput.bypassRedLine`. */
|
|
146
|
-
bypassRedLine?: boolean | undefined;
|
|
147
|
-
mode?: AutoCompactMode | undefined;
|
|
148
|
-
/**
|
|
149
|
-
* Source tag from `readContextPercent.source`. Optional — when absent, the
|
|
150
|
-
* function behaves exactly as pre-rid (ratio-only). Slice 2026-07-31-rid-
|
|
151
|
-
* mac-transcript-estimate-trigger uses this to carry forward an explicit
|
|
152
|
-
* carve-out for the Mac-only `transcript-estimate` signal.
|
|
153
|
-
*/
|
|
154
|
-
source?: string | undefined;
|
|
155
|
-
}): {
|
|
156
|
-
shouldCompact: boolean;
|
|
157
|
-
reason: 'below-threshold' | 'in-flight-batch' | 'pre-compact' | 'red-line';
|
|
158
|
-
trigger: CompactTrigger;
|
|
159
|
-
/** Typed verdict enum (RD §4 24h-mode contract). Slice 4.0.8 hotfix. */
|
|
160
|
-
action: 'ok' | 'soft-warn' | 'auto-compact-now' | 'red-line' | 'defer';
|
|
161
|
-
};
|
|
162
|
-
/**
|
|
163
|
-
* Build the convergence plan that D7's post-compact-detect will read
|
|
164
|
-
* back. Includes the current plan, open questions, recent decisions,
|
|
165
|
-
* todo state, and recent artifact paths — strictly more than what a
|
|
166
|
-
* raw `/compact` would preserve.
|
|
167
|
-
*/
|
|
168
|
-
export declare function buildConvergencePlan(input: {
|
|
169
|
-
readonly sessionId: string;
|
|
170
|
-
readonly projectRoot: string;
|
|
171
|
-
readonly ratio: number;
|
|
172
|
-
readonly checkpointPath: string;
|
|
173
|
-
readonly nextActions: readonly string[];
|
|
174
|
-
readonly redLine?: boolean;
|
|
175
|
-
}): ConvergencePlan;
|
|
176
|
-
/**
|
|
177
|
-
* Execute the auto-compact flow.
|
|
178
|
-
*
|
|
179
|
-
* Steps (orchestration):
|
|
180
|
-
* 1. Resolve session id.
|
|
181
|
-
* 3. Evaluate trigger via `evaluateCompactTrigger`.
|
|
182
|
-
* 4. If trigger.kind === 'none' / 'soft-warn' → return skip.
|
|
183
|
-
* 5. If trigger.kind === 'pre-compact' AND in-flight batch → wait.
|
|
184
|
-
* 6. If trigger.kind === 'pre-compact' → async dispatch (write
|
|
185
|
-
* checkpoint + IDE compact; orchestrator returns immediately).
|
|
186
|
-
* 7. If trigger.kind === 'red-line' → dispatch the IDE compact, report
|
|
187
|
-
* that the harness has been asked and that dispatch continues.
|
|
188
|
-
*
|
|
189
|
-
* The caller (CLI or skill body) handles the actual return — D7's
|
|
190
|
-
* post-compact-detect will pick up the checkpoint on the next turn. For
|
|
191
|
-
* red-line, the caller keeps working; it re-probes and, if the ratio is
|
|
192
|
-
* still rising with no compact from the harness, reports that instead of
|
|
193
|
-
* stalling.
|
|
194
|
-
*/
|
|
195
|
-
export declare function runAutoCompact(input: AutoCompactInput): Promise<AutoCompactResult>;
|
|
196
|
-
/** Re-export for callers that need to surface the trigger shape. */
|
|
1
|
+
import type { AutoCompactResult, CompactTrigger, ConvergencePlan, InFlightBatchProbe } from '../context/auto-compact-types.js';
|
|
2
|
+
import type { AutoCompactInput } from './auto-compact-run-types.js';
|
|
3
|
+
export type { AutoCompactInput, AutoCompactTestHooks } from './auto-compact-run-types.js';
|
|
4
|
+
export { evaluateCompactTrigger, evaluateAutoCompactDecision, buildConvergencePlan } from './auto-compact-decision.js';
|
|
5
|
+
export type { CompactHistoryEvent } from './auto-compact-history.js';
|
|
6
|
+
export { appendCompactHistoryEvent } from './auto-compact-history.js';
|
|
197
7
|
export type { CompactTrigger, ConvergencePlan, InFlightBatchProbe, AutoCompactResult };
|
|
198
8
|
/**
|
|
199
|
-
* auto-compact
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
9
|
+
* Execute the auto-compact flow. The caller handles the return — the post-compact
|
|
10
|
+
* detector picks the checkpoint up on the next turn. For the red line the caller keeps
|
|
11
|
+
* working: it re-probes and, if the ratio is still rising with no compact from the
|
|
12
|
+
* harness, reports that instead of stalling.
|
|
203
13
|
*/
|
|
204
|
-
export
|
|
205
|
-
readonly schemaVersion: 1;
|
|
206
|
-
readonly ts: string;
|
|
207
|
-
readonly target: 'main' | 'sub-agent' | 'worker';
|
|
208
|
-
readonly mode: 'standard' | 'partial' | 'aggressive';
|
|
209
|
-
readonly ide: string;
|
|
210
|
-
readonly pathway: string;
|
|
211
|
-
readonly beforeRatio: number;
|
|
212
|
-
readonly redLine: boolean;
|
|
213
|
-
readonly ok: boolean;
|
|
214
|
-
readonly checkpointPath: string;
|
|
215
|
-
readonly dispatchMessage: string;
|
|
216
|
-
/**
|
|
217
|
-
* instrument. `windowTokens` is the denominator peaks-loop divided by
|
|
218
|
-
* (`probe.capacityTokens`), so `beforeRatio * windowTokens` is the exact
|
|
219
|
-
* TOKEN POINT peaks-loop asked the harness to compact at. That number is
|
|
220
|
-
* the deliverable — NOT a hand-picked threshold: this slice could not run a
|
|
221
|
-
* real Claude Code session, so the real trigger point of
|
|
222
|
-
* `CLAUDE_CODE_AUTO_COMPACT_WINDOW` (documented as a window, observed to
|
|
223
|
-
* fire near the window's end) has no measured answer yet. Recording the
|
|
224
|
-
* intent lets the first real session produce one.
|
|
225
|
-
*/
|
|
226
|
-
readonly windowTokens?: number | null;
|
|
227
|
-
/** Which layer produced `windowTokens` (see `ContextWindowSource`). */
|
|
228
|
-
readonly windowSource?: string | null;
|
|
229
|
-
/**
|
|
230
|
-
* `dispatch` (default, and the only kind earlier releases wrote) or
|
|
231
|
-
* `observed` — a row appended when a later probe MEASURED the ratio after
|
|
232
|
-
* a dispatched compact, proving one landed. The pair is what yields the
|
|
233
|
-
* intent-vs-observed delta.
|
|
234
|
-
*/
|
|
235
|
-
readonly kind?: 'dispatch' | 'observed';
|
|
236
|
-
/** `observed` rows only: the measured post-compact ratio. */
|
|
237
|
-
readonly afterRatio?: number;
|
|
238
|
-
}
|
|
239
|
-
export declare function appendCompactHistoryEvent(input: {
|
|
240
|
-
readonly projectRoot: string;
|
|
241
|
-
readonly sessionId: string;
|
|
242
|
-
readonly event: CompactHistoryEvent;
|
|
243
|
-
}): void;
|
|
14
|
+
export declare function runAutoCompact(input: AutoCompactInput): Promise<AutoCompactResult>;
|