peaks-loop 4.1.2 → 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 +136 -47
- package/CHANGELOG.md +112 -0
- package/README-en.md +1 -1
- package/README.md +1 -1
- package/contracts/readonly-argv-whitelist.json +211 -0
- 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/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 +64 -473
- 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/await-runners.d.ts +11 -0
- package/dist/cli/commands/await-runners.js +148 -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-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-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 +136 -0
- package/dist/cli/commands/code-gate-step-08-command.d.ts +3 -0
- package/dist/cli/commands/code-gate-step-08-command.js +155 -0
- 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-runtime-commands.d.ts +9 -43
- package/dist/cli/commands/code-runtime-commands.js +20 -672
- 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-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/compact-command.d.ts +6 -2
- package/dist/cli/commands/compact-command.js +12 -559
- 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-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/skill-command.d.ts +1 -44
- package/dist/cli/commands/core/skill-command.js +13 -541
- 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/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-command-spec.d.ts +2 -0
- package/dist/cli/commands/dispatch-command-spec.js +62 -0
- package/dist/cli/commands/dispatch-commands.js +159 -775
- 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-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.d.ts +27 -0
- package/dist/cli/commands/dispatch-from-dag.js +87 -257
- 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/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 -1
- package/dist/cli/commands/evolution-commands.js +19 -350
- 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/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/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/gate-commands.js +26 -8
- 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/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 -552
- 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/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-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 -626
- 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/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/mcp-commands.d.ts +10 -0
- package/dist/cli/commands/mcp-commands.js +157 -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/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 -9
- package/dist/cli/commands/request-commands.js +17 -522
- 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/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/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/share-commands.d.ts +12 -68
- package/dist/cli/commands/share-commands.js +47 -556
- 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/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 -517
- 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-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/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-commands.d.ts +10 -1
- package/dist/cli/commands/workflow-commands.js +6 -594
- 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-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-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/workflow-terminalize-command.d.ts +3 -0
- package/dist/cli/commands/workflow-terminalize-command.js +56 -0
- 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 -124
- package/dist/cli/commands/workspace/init-command.js +59 -623
- 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/worktree-lease-commands.d.ts +10 -6
- package/dist/cli/commands/worktree-lease-commands.js +42 -512
- 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 -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/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/hooks/mcp-surface-gate.d.ts +19 -0
- package/dist/services/hooks/mcp-surface-gate.js +87 -0
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +4 -35
- package/dist/services/ide/adapters/claude-code-adapter.js +48 -171
- 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/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 -1
- package/dist/services/ide/mcp-tool-matcher.d.ts +34 -0
- package/dist/services/ide/mcp-tool-matcher.js +84 -0
- package/dist/services/lint/npx-resolver.js +7 -0
- 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/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/skills/hooks-codegate-superpowers.d.ts +1 -0
- package/dist/services/skills/hooks-codegate-superpowers.js +26 -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 -649
- 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 +17 -6
- 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 +36 -1066
- package/scripts/watch-tree.mjs +140 -0
- package/scripts/watch.mjs +4 -126
- package/skills/peaks-status/SKILL.md +31 -13
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pure auto-compact decision surface: trigger, decision and plan.
|
|
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 { type CompactTrigger, type ConvergencePlan, type InFlightBatchProbe } from '../context/auto-compact-types.js';
|
|
9
|
+
import { type AutoCompactMode } from './auto-compact-modes.js';
|
|
10
|
+
export declare function evaluateCompactTrigger(ratio: number, mode?: AutoCompactMode): CompactTrigger;
|
|
11
|
+
/**
|
|
12
|
+
* Decide whether to run the auto-compact flow. Pure function for the
|
|
13
|
+
* decision; side effects (checkpoint + IDE dispatch) live in
|
|
14
|
+
* `runAutoCompact` below. Zero human / zero LLM intervention:
|
|
15
|
+
*
|
|
16
|
+
* - ratio < 0.85 → skip (LLM keeps working; no action)
|
|
17
|
+
* - 0.85 ≤ ratio < 0.95 → pre-compact; if in-flight batch
|
|
18
|
+
* present, defer (D6.e); else dispatch
|
|
19
|
+
* IDE compact asynchronously.
|
|
20
|
+
* - ratio ≥ 0.95 → red-line; ask the harness to compact
|
|
21
|
+
* regardless of in-flight batch. Nothing is
|
|
22
|
+
* gated — dispatch is NOT blocked (slice
|
|
23
|
+
* peaks-loop cannot compact a running session,
|
|
24
|
+
* so a "block" gated nothing and deadlocked the
|
|
25
|
+
* runner).
|
|
26
|
+
*/
|
|
27
|
+
export declare function evaluateAutoCompactDecision(input: {
|
|
28
|
+
ratio: number;
|
|
29
|
+
/**
|
|
30
|
+
* Caller-provided in-flight batch signal. Accepts either a plain
|
|
31
|
+
* boolean (convenience / repro seam) or the full `InFlightBatchProbe`
|
|
32
|
+
* shape (production callers — graph-probe-backed). When the boolean
|
|
33
|
+
* form is `true`, the normalized probe carries
|
|
34
|
+
* `hasInFlightBatch: true`. Slice 4.0.8 hotfix.
|
|
35
|
+
*/
|
|
36
|
+
inFlightBatch?: boolean | InFlightBatchProbe | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Legacy camelCase alias for `inFlightBatch`. Production repro
|
|
39
|
+
* inputs use `inflightBatch: true|false`; the orchestrator
|
|
40
|
+
* normalizes it to the same internal shape. Slice 4.0.8 hotfix.
|
|
41
|
+
*/
|
|
42
|
+
inflightBatch?: boolean | InFlightBatchProbe | undefined;
|
|
43
|
+
force?: boolean | undefined;
|
|
44
|
+
/** Accepted and ignored — see `AutoCompactInput.bypassRedLine`. */
|
|
45
|
+
bypassRedLine?: boolean | undefined;
|
|
46
|
+
mode?: AutoCompactMode | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Source tag from `readContextPercent.source`. Optional — when absent, the
|
|
49
|
+
* function behaves exactly as pre-rid (ratio-only). Slice 2026-07-31-rid-
|
|
50
|
+
* mac-transcript-estimate-trigger uses this to carry forward an explicit
|
|
51
|
+
* carve-out for the Mac-only `transcript-estimate` signal.
|
|
52
|
+
*/
|
|
53
|
+
source?: string | undefined;
|
|
54
|
+
}): {
|
|
55
|
+
shouldCompact: boolean;
|
|
56
|
+
reason: 'below-threshold' | 'in-flight-batch' | 'pre-compact' | 'red-line';
|
|
57
|
+
trigger: CompactTrigger;
|
|
58
|
+
/** Typed verdict enum (RD §4 24h-mode contract). Slice 4.0.8 hotfix. */
|
|
59
|
+
action: 'ok' | 'soft-warn' | 'auto-compact-now' | 'red-line' | 'defer';
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Build the convergence plan that D7's post-compact-detect will read
|
|
63
|
+
* back. Includes the current plan, open questions, recent decisions,
|
|
64
|
+
* todo state, and recent artifact paths — strictly more than what a
|
|
65
|
+
* raw `/compact` would preserve.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildConvergencePlan(input: {
|
|
68
|
+
readonly sessionId: string;
|
|
69
|
+
readonly projectRoot: string;
|
|
70
|
+
readonly ratio: number;
|
|
71
|
+
readonly checkpointPath: string;
|
|
72
|
+
readonly nextActions: readonly string[];
|
|
73
|
+
readonly redLine?: boolean;
|
|
74
|
+
}): ConvergencePlan;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pure auto-compact decision surface: trigger, decision and plan.
|
|
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 { AUTO_COMPACT_PRE_COMPACT_RATIO } from '../context/auto-compact-types.js';
|
|
9
|
+
import { thresholdFor } from './auto-compact-modes.js';
|
|
10
|
+
/**
|
|
11
|
+
* Map a context ratio to a `CompactTrigger` action. Pure; the side
|
|
12
|
+
* effects (checkpoint + IDE dispatch) live in `runAutoCompact`. Two
|
|
13
|
+
* tiers (standard mode; partial mode shifts both thresholds):
|
|
14
|
+
*
|
|
15
|
+
* - ratio < preCompact → 'none' or 'soft-warn'
|
|
16
|
+
* - ratio ≥ preCompact → 'pre-compact' (async-friendly path)
|
|
17
|
+
* - ratio ≥ redLine → 'red-line' (ask the harness; dispatch continues)
|
|
18
|
+
*
|
|
19
|
+
* Default `'standard'` (0.85/0.95). `'partial'` (0.70/0.85) is used
|
|
20
|
+
* when 24h long-run mode is active or `--mode partial` is passed.
|
|
21
|
+
*/
|
|
22
|
+
/** Below this ratio the probe is not even worth a soft warning. */
|
|
23
|
+
const SOFT_WARN_RATIO_FLOOR = 0.5;
|
|
24
|
+
export function evaluateCompactTrigger(ratio, mode = 'standard') {
|
|
25
|
+
const autoFire = thresholdFor(mode, 'autoFire');
|
|
26
|
+
const preCompact = thresholdFor(mode, 'preCompact');
|
|
27
|
+
const redLine = thresholdFor(mode, 'redLine');
|
|
28
|
+
if (ratio < autoFire) {
|
|
29
|
+
return ratio < SOFT_WARN_RATIO_FLOOR
|
|
30
|
+
? { kind: 'none' }
|
|
31
|
+
: {
|
|
32
|
+
kind: 'soft-warn',
|
|
33
|
+
ratio,
|
|
34
|
+
message: `Context at ${(ratio * 100).toFixed(1)}%; below the ${(autoFire * 100).toFixed(0)}% auto-fire threshold (mode=${mode}).`
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (ratio >= redLine) {
|
|
38
|
+
// longer claims it blocks anything. It cannot: peaks-loop has no
|
|
39
|
+
// executor for a running session (no `/compact` the model may invoke, no
|
|
40
|
+
// hook-initiated compact, no `--compact` flag), so "refuse dispatch until
|
|
41
|
+
// ratio < 0.85" was a gate with no key — a constructive deadlock at the
|
|
42
|
+
// exact moment the runner most needed to keep working. What peaks-loop
|
|
43
|
+
// CAN do is ask the harness (whose own trigger is armed) and say so.
|
|
44
|
+
return {
|
|
45
|
+
kind: 'red-line',
|
|
46
|
+
ratio,
|
|
47
|
+
message: `Context at ${(ratio * 100).toFixed(1)}% ≥ ${(redLine * 100).toFixed(0)}% red line (mode=${mode}). peaks-loop has asked the harness to compact and is WAITING for it — sub-agent dispatch is NOT blocked; carry on and re-probe with \`peaks code context-now\`.`
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (ratio < preCompact) {
|
|
51
|
+
// Part 22: auto-fire zone (0.80 ≤ ratio < 0.85). peaks-loop
|
|
52
|
+
// preempts and runs `peaks code auto-compact` itself
|
|
53
|
+
// without LLM involvement. The LLM is not asked to "decide";
|
|
54
|
+
// the toolkit is applied synchronously. Closes the
|
|
55
|
+
// LLM-misjudges-context window that previously let the
|
|
56
|
+
// ratio drift to 0.95 before the auto-fire kicked in.
|
|
57
|
+
return {
|
|
58
|
+
kind: 'auto-fire',
|
|
59
|
+
ratio,
|
|
60
|
+
message: `Context at ${(ratio * 100).toFixed(1)}% in auto-fire zone (≥${(autoFire * 100).toFixed(0)}% / <${(preCompact * 100).toFixed(0)}%, mode=${mode}). peaks-loop will fire compact without LLM confirmation.`
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// pre-compact zone (0.85 ≤ ratio < 0.95): kept for backward
|
|
64
|
+
// compat with operators who configured the higher threshold.
|
|
65
|
+
// In practice peaks-loop already auto-fired at the lower
|
|
66
|
+
// threshold; the pre-compact zone today is the "already fired"
|
|
67
|
+
// zone.
|
|
68
|
+
return {
|
|
69
|
+
kind: 'pre-compact',
|
|
70
|
+
ratio,
|
|
71
|
+
toolkitReady: true,
|
|
72
|
+
message: `Context at ${(ratio * 100).toFixed(1)}% in pre-compact zone (≥${(preCompact * 100).toFixed(0)}% / <${(redLine * 100).toFixed(0)}%, mode=${mode}). peaks-loop already fired the auto-compact pathway at the auto-fire threshold; the LLM does not need to act.`
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Decide whether to run the auto-compact flow. Pure function for the
|
|
77
|
+
* decision; side effects (checkpoint + IDE dispatch) live in
|
|
78
|
+
* `runAutoCompact` below. Zero human / zero LLM intervention:
|
|
79
|
+
*
|
|
80
|
+
* - ratio < 0.85 → skip (LLM keeps working; no action)
|
|
81
|
+
* - 0.85 ≤ ratio < 0.95 → pre-compact; if in-flight batch
|
|
82
|
+
* present, defer (D6.e); else dispatch
|
|
83
|
+
* IDE compact asynchronously.
|
|
84
|
+
* - ratio ≥ 0.95 → red-line; ask the harness to compact
|
|
85
|
+
* regardless of in-flight batch. Nothing is
|
|
86
|
+
* gated — dispatch is NOT blocked (slice
|
|
87
|
+
* peaks-loop cannot compact a running session,
|
|
88
|
+
* so a "block" gated nothing and deadlocked the
|
|
89
|
+
* runner).
|
|
90
|
+
*/
|
|
91
|
+
export function evaluateAutoCompactDecision(input) {
|
|
92
|
+
const trigger = evaluateCompactTrigger(input.ratio, input.mode ?? 'standard');
|
|
93
|
+
// Normalize both `inFlightBatch` and `inflightBatch` (boolean | probe)
|
|
94
|
+
// into a single `InFlightBatchProbe` shape. The probe reads
|
|
95
|
+
// `hasInFlightBatch`; the boolean reads truthiness.
|
|
96
|
+
const rawProbe = input.inFlightBatch ?? input.inflightBatch;
|
|
97
|
+
const probe = typeof rawProbe === 'boolean' ? { hasInFlightBatch: rawProbe } : rawProbe;
|
|
98
|
+
if (trigger.kind === 'none') {
|
|
99
|
+
return { shouldCompact: false, reason: 'below-threshold', trigger, action: 'ok' };
|
|
100
|
+
}
|
|
101
|
+
if (trigger.kind === 'soft-warn') {
|
|
102
|
+
return { shouldCompact: false, reason: 'below-threshold', trigger, action: 'soft-warn' };
|
|
103
|
+
}
|
|
104
|
+
if (trigger.kind === 'red-line') {
|
|
105
|
+
// Red line: ignore in-flight batch — the harness is asked NOW rather than
|
|
106
|
+
// waiting for the batch to drain. Not "synchronous dispatch": peaks-loop
|
|
107
|
+
// has no synchronous compact to run, it can only request one and report
|
|
108
|
+
// that it is waiting.
|
|
109
|
+
return { shouldCompact: true, reason: 'red-line', trigger, action: 'red-line' };
|
|
110
|
+
}
|
|
111
|
+
// pre-compact zone (0.85 ≤ ratio < 0.95): honor D6.e in-flight deferral.
|
|
112
|
+
if (probe?.hasInFlightBatch === true) {
|
|
113
|
+
return { shouldCompact: false, reason: 'in-flight-batch', trigger, action: 'defer' };
|
|
114
|
+
}
|
|
115
|
+
if (input.force) {
|
|
116
|
+
return { shouldCompact: true, reason: 'pre-compact', trigger, action: 'auto-compact-now' };
|
|
117
|
+
}
|
|
118
|
+
// is the ONLY signal available on Mac Claude Code (no env-var, no statusline
|
|
119
|
+
// poll). The gate above already returns shouldCompact: true at ratio ≥ 0.85,
|
|
120
|
+
// but this forward-compat carve-out makes the source-aware rule explicit so
|
|
121
|
+
// any future source-aware downgrading cannot silently re-introduce the
|
|
122
|
+
// Mac auto-compact silent-failure mode without an audit. No higher-priority
|
|
123
|
+
// source is present (`claude-code-env` would have been P1, `statusline-poll`
|
|
124
|
+
// P2, `user-overridden` P4) — Mac's only signal is `transcript-estimate`.
|
|
125
|
+
if (input.source === 'transcript-estimate' && input.ratio >= AUTO_COMPACT_PRE_COMPACT_RATIO)
|
|
126
|
+
return { shouldCompact: true, reason: 'pre-compact', trigger, action: 'auto-compact-now' };
|
|
127
|
+
// Default: peaks-loop drives pre-compact autonomously.
|
|
128
|
+
return { shouldCompact: true, reason: 'pre-compact', trigger, action: 'auto-compact-now' };
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Build the convergence plan that D7's post-compact-detect will read
|
|
132
|
+
* back. Includes the current plan, open questions, recent decisions,
|
|
133
|
+
* todo state, and recent artifact paths — strictly more than what a
|
|
134
|
+
* raw `/compact` would preserve.
|
|
135
|
+
*/
|
|
136
|
+
export function buildConvergencePlan(input) {
|
|
137
|
+
return {
|
|
138
|
+
schemaVersion: 1,
|
|
139
|
+
sessionId: input.sessionId,
|
|
140
|
+
projectRoot: input.projectRoot,
|
|
141
|
+
createdAt: new Date().toISOString(),
|
|
142
|
+
ratio: input.ratio,
|
|
143
|
+
checkpointPath: input.checkpointPath,
|
|
144
|
+
nextActions: [...input.nextActions],
|
|
145
|
+
resumeHint: input.redLine === true
|
|
146
|
+
? 'RED-LINE compact requested from the harness; work CONTINUES (nothing is blocked). Re-probe with `peaks code context-now`; if the ratio is still ≥ 0.95 and the harness has not compacted, report it and hand control back to the user.'
|
|
147
|
+
: 'post-compact-detect shouldAutoResume → resume pre-compact plan from checkpoint'
|
|
148
|
+
};
|
|
149
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AutoCompactResult } from '../context/auto-compact-types.js';
|
|
2
|
+
import type { CompactRun } from './auto-compact-run-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The decision fires whenever the ratio is at or over the auto-fire threshold, and
|
|
5
|
+
* the ratio does not come back down on its own — nothing in peaks-loop can compact a
|
|
6
|
+
* running session, and the harness fires only at its own red line. So "shouldCompact"
|
|
7
|
+
* was true on every probe, forever: one real session's `compact-history.jsonl` holds
|
|
8
|
+
* 1075 dispatch rows, 444 checkpoints and ZERO compactions over 15.5 h. Re-dispatching
|
|
9
|
+
* bought nothing, because the `ide-native` dispatch only installs a PreToolUse hook
|
|
10
|
+
* and installing it again is a documented no-op: 1074 of those 1075 rows say `already
|
|
11
|
+
* installed` in their own `dispatchMessage`. It produced rows, not compactions.
|
|
12
|
+
*
|
|
13
|
+
* The lifecycle store already knows whether an attempt is outstanding (`readOpenDispatchRun`
|
|
14
|
+
* — `armed`/`compacting` = dispatched, `completed`/`failed` = over), so the gate needs no
|
|
15
|
+
* new state and no threshold: it is keyed on the STAGE of the open run, never on a ratio,
|
|
16
|
+
* which is why it survives any future realignment of the 0.65/0.70/0.85/0.95 table.
|
|
17
|
+
*
|
|
18
|
+
* What is NOT suppressed: the probe still measures and still reports. The envelope carries
|
|
19
|
+
* the LIVE ratio plus the ratio the open ask was made at, so "it crossed and it is still
|
|
20
|
+
* high, unanswered" stays legible on every turn — the difference between a quiet signal
|
|
21
|
+
* and a silenced one.
|
|
22
|
+
*
|
|
23
|
+
* `force` (the `--force` test seam, "force compact at any ratio") outranks the inference:
|
|
24
|
+
* an explicit instruction must not be silently reduced to a no-op, which would make the
|
|
25
|
+
* published flag a lie.
|
|
26
|
+
*
|
|
27
|
+
* `readOpenDispatchRun` answers in THREE states, not two. `none` admits the dispatch;
|
|
28
|
+
* `unresolvable` means the backoff's question could not be asked — the session id names
|
|
29
|
+
* no session directory, so no lifecycle record can answer it. Measured on ONE directory
|
|
30
|
+
* before this: a legal sid found the open `armed` run and suppressed the dispatch, while
|
|
31
|
+
* `./<legal sid>`, which joins to the identical path, returned `null` and dispatched. A
|
|
32
|
+
* gate that reads a string instead of the artifact the string names is the defect the
|
|
33
|
+
* whole id axis exists to close, so an unanswerable question is NOT an admit: the
|
|
34
|
+
* conservative direction is to leave the dispatch undone and say why.
|
|
35
|
+
*/
|
|
36
|
+
export declare function readOpenRunGate(ctx: CompactRun): AutoCompactResult | null;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dispatch back-off: whether a compact was already asked for this crossing.
|
|
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 { readOpenDispatchRun } from './auto-compact-lifecycle.js';
|
|
9
|
+
import { thresholdFor } from './auto-compact-modes.js';
|
|
10
|
+
/**
|
|
11
|
+
* The decision fires whenever the ratio is at or over the auto-fire threshold, and
|
|
12
|
+
* the ratio does not come back down on its own — nothing in peaks-loop can compact a
|
|
13
|
+
* running session, and the harness fires only at its own red line. So "shouldCompact"
|
|
14
|
+
* was true on every probe, forever: one real session's `compact-history.jsonl` holds
|
|
15
|
+
* 1075 dispatch rows, 444 checkpoints and ZERO compactions over 15.5 h. Re-dispatching
|
|
16
|
+
* bought nothing, because the `ide-native` dispatch only installs a PreToolUse hook
|
|
17
|
+
* and installing it again is a documented no-op: 1074 of those 1075 rows say `already
|
|
18
|
+
* installed` in their own `dispatchMessage`. It produced rows, not compactions.
|
|
19
|
+
*
|
|
20
|
+
* The lifecycle store already knows whether an attempt is outstanding (`readOpenDispatchRun`
|
|
21
|
+
* — `armed`/`compacting` = dispatched, `completed`/`failed` = over), so the gate needs no
|
|
22
|
+
* new state and no threshold: it is keyed on the STAGE of the open run, never on a ratio,
|
|
23
|
+
* which is why it survives any future realignment of the 0.65/0.70/0.85/0.95 table.
|
|
24
|
+
*
|
|
25
|
+
* What is NOT suppressed: the probe still measures and still reports. The envelope carries
|
|
26
|
+
* the LIVE ratio plus the ratio the open ask was made at, so "it crossed and it is still
|
|
27
|
+
* high, unanswered" stays legible on every turn — the difference between a quiet signal
|
|
28
|
+
* and a silenced one.
|
|
29
|
+
*
|
|
30
|
+
* `force` (the `--force` test seam, "force compact at any ratio") outranks the inference:
|
|
31
|
+
* an explicit instruction must not be silently reduced to a no-op, which would make the
|
|
32
|
+
* published flag a lie.
|
|
33
|
+
*
|
|
34
|
+
* `readOpenDispatchRun` answers in THREE states, not two. `none` admits the dispatch;
|
|
35
|
+
* `unresolvable` means the backoff's question could not be asked — the session id names
|
|
36
|
+
* no session directory, so no lifecycle record can answer it. Measured on ONE directory
|
|
37
|
+
* before this: a legal sid found the open `armed` run and suppressed the dispatch, while
|
|
38
|
+
* `./<legal sid>`, which joins to the identical path, returned `null` and dispatched. A
|
|
39
|
+
* gate that reads a string instead of the artifact the string names is the defect the
|
|
40
|
+
* whole id axis exists to close, so an unanswerable question is NOT an admit: the
|
|
41
|
+
* conservative direction is to leave the dispatch undone and say why.
|
|
42
|
+
*/
|
|
43
|
+
export function readOpenRunGate(ctx) {
|
|
44
|
+
const { input, sessionId, probe, mode, harnessWindow } = ctx;
|
|
45
|
+
const openRun = readOpenDispatchRun({ projectRoot: input.projectRoot, sessionId });
|
|
46
|
+
if (openRun.kind === 'unresolvable' && input.force !== true) {
|
|
47
|
+
return {
|
|
48
|
+
ok: true,
|
|
49
|
+
code: 'AUTO_COMPACT_UNRESOLVED_SESSION',
|
|
50
|
+
message: `Context at ${(probe.ratio * 100).toFixed(1)}%; a compact may be warranted, but this session's ` +
|
|
51
|
+
`directory could not be resolved (${openRun.reason}), so whether a compact was already dispatched ` +
|
|
52
|
+
`for this crossing cannot be answered. Not dispatching: an unanswered question is not a 'no'. ` +
|
|
53
|
+
`The session id comes from the active binding or from the caller.`,
|
|
54
|
+
data: {
|
|
55
|
+
sessionId,
|
|
56
|
+
ratio: probe.ratio,
|
|
57
|
+
source: probe.source,
|
|
58
|
+
decision: 'unresolved-session',
|
|
59
|
+
harnessWindow
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (openRun.kind === 'open' && input.force !== true) {
|
|
64
|
+
return {
|
|
65
|
+
ok: true,
|
|
66
|
+
code: 'AUTO_COMPACT_ALREADY_ARMED',
|
|
67
|
+
message: `Context at ${(probe.ratio * 100).toFixed(1)}% — still above the ` +
|
|
68
|
+
`${(thresholdFor(mode, 'autoFire') * 100).toFixed(0)}% auto-fire threshold (mode=${mode}); ` +
|
|
69
|
+
`a compact was already dispatched for this crossing at ${(openRun.triggerRatio * 100).toFixed(1)}% ` +
|
|
70
|
+
`(run ${openRun.runId}, resting at '${openRun.stage}') and nothing has compacted since. ` +
|
|
71
|
+
`Not dispatching again: the trigger is already registered, so a second dispatch would install the ` +
|
|
72
|
+
`same hook and add a checkpoint and a history row without adding a capability. ` +
|
|
73
|
+
`Re-probe with \`peaks code context-now\`.`,
|
|
74
|
+
data: {
|
|
75
|
+
sessionId,
|
|
76
|
+
ratio: probe.ratio,
|
|
77
|
+
source: probe.source,
|
|
78
|
+
decision: 'already-armed',
|
|
79
|
+
armedAtRatio: openRun.triggerRatio,
|
|
80
|
+
armedRunId: openRun.runId,
|
|
81
|
+
harnessWindow
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 { type AutoCompactResult, type CompactDispatchResult, type ConvergencePlan } from '../context/auto-compact-types.js';
|
|
9
|
+
import type { CompactTarget } from '../context/auto-compact-dispatcher.js';
|
|
10
|
+
import type { CompactRun } from './auto-compact-run-types.js';
|
|
11
|
+
/** No session is bound, so there is nothing to probe. */
|
|
12
|
+
export declare function noSessionResult(): AutoCompactResult;
|
|
13
|
+
/** The envelope for a probe that did not cross the auto-fire threshold. */
|
|
14
|
+
export declare function skipResult(ctx: CompactRun): AutoCompactResult;
|
|
15
|
+
/**
|
|
16
|
+
* The envelope for a throw during preparation. It preserves the original error
|
|
17
|
+
* contract: the caller gets the `AUTO_COMPACT_DISPATCH_FAILED` shape it already
|
|
18
|
+
* handles, not a thrown exception and not a widened type.
|
|
19
|
+
*/
|
|
20
|
+
export declare function prepareFailureResult(ctx: CompactRun, error: unknown): AutoCompactResult;
|
|
21
|
+
/** The envelope for a throw or a refusal during the IDE dispatch. */
|
|
22
|
+
export declare function dispatchFailureResult(ctx: CompactRun, attempt: {
|
|
23
|
+
readonly checkpointPath: string;
|
|
24
|
+
readonly plan: ConvergencePlan;
|
|
25
|
+
readonly target: CompactTarget;
|
|
26
|
+
}, error: unknown): AutoCompactResult;
|
|
27
|
+
/** The envelope for a run that reached the dispatch phase. */
|
|
28
|
+
export declare function compactResult(ctx: CompactRun, attempt: {
|
|
29
|
+
readonly checkpointPath: string;
|
|
30
|
+
readonly plan: ConvergencePlan;
|
|
31
|
+
readonly target: CompactTarget;
|
|
32
|
+
readonly dispatch: CompactDispatchResult;
|
|
33
|
+
}): AutoCompactResult;
|
|
@@ -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
|
+
}
|