looply-cli 0.0.0-stage → 0.2.0
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/LICENSE +21 -0
- package/README.md +137 -3
- package/dist/.src-hash +1 -0
- package/dist/acceptance-observe.d.ts +108 -0
- package/dist/acceptance-observe.d.ts.map +1 -0
- package/dist/acceptance-observe.js +152 -0
- package/dist/acceptance-observe.js.map +1 -0
- package/dist/agent-cmd.d.ts +131 -0
- package/dist/agent-cmd.d.ts.map +1 -0
- package/dist/agent-cmd.js +154 -0
- package/dist/agent-cmd.js.map +1 -0
- package/dist/agent-contained.d.ts +114 -0
- package/dist/agent-contained.d.ts.map +1 -0
- package/dist/agent-contained.js +292 -0
- package/dist/agent-contained.js.map +1 -0
- package/dist/agent-driver.d.ts +130 -0
- package/dist/agent-driver.d.ts.map +1 -0
- package/dist/agent-driver.js +170 -0
- package/dist/agent-driver.js.map +1 -0
- package/dist/agent-envelope.d.ts +94 -0
- package/dist/agent-envelope.d.ts.map +1 -0
- package/dist/agent-envelope.js +214 -0
- package/dist/agent-envelope.js.map +1 -0
- package/dist/agent-exec.d.ts +182 -0
- package/dist/agent-exec.d.ts.map +1 -0
- package/dist/agent-exec.js +125 -0
- package/dist/agent-exec.js.map +1 -0
- package/dist/agent-runtime.d.ts +23 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +143 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/approval-gate-read.d.ts +66 -0
- package/dist/approval-gate-read.d.ts.map +1 -0
- package/dist/approval-gate-read.js +138 -0
- package/dist/approval-gate-read.js.map +1 -0
- package/dist/approval-resolution.d.ts +87 -0
- package/dist/approval-resolution.d.ts.map +1 -0
- package/dist/approval-resolution.js +100 -0
- package/dist/approval-resolution.js.map +1 -0
- package/dist/approval-resumes.d.ts +102 -0
- package/dist/approval-resumes.d.ts.map +1 -0
- package/dist/approval-resumes.js +167 -0
- package/dist/approval-resumes.js.map +1 -0
- package/dist/ask-brain.d.ts +167 -0
- package/dist/ask-brain.d.ts.map +1 -0
- package/dist/ask-brain.js +355 -0
- package/dist/ask-brain.js.map +1 -0
- package/dist/autonomy-authority.d.ts +80 -0
- package/dist/autonomy-authority.d.ts.map +1 -0
- package/dist/autonomy-authority.js +82 -0
- package/dist/autonomy-authority.js.map +1 -0
- package/dist/autonomy-controller.d.ts +321 -0
- package/dist/autonomy-controller.d.ts.map +1 -0
- package/dist/autonomy-controller.js +517 -0
- package/dist/autonomy-controller.js.map +1 -0
- package/dist/autonomy-store.d.ts +327 -0
- package/dist/autonomy-store.d.ts.map +1 -0
- package/dist/autonomy-store.js +581 -0
- package/dist/autonomy-store.js.map +1 -0
- package/dist/autonomy-tick.d.ts +257 -0
- package/dist/autonomy-tick.d.ts.map +1 -0
- package/dist/autonomy-tick.js +616 -0
- package/dist/autonomy-tick.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +2719 -0
- package/dist/bin.js.map +1 -0
- package/dist/brain-advice.d.ts +21 -0
- package/dist/brain-advice.d.ts.map +1 -0
- package/dist/brain-advice.js +51 -0
- package/dist/brain-advice.js.map +1 -0
- package/dist/candidate-replay-runtime.d.ts +125 -0
- package/dist/candidate-replay-runtime.d.ts.map +1 -0
- package/dist/candidate-replay-runtime.js +188 -0
- package/dist/candidate-replay-runtime.js.map +1 -0
- package/dist/checkout-carry.d.ts +76 -0
- package/dist/checkout-carry.d.ts.map +1 -0
- package/dist/checkout-carry.js +125 -0
- package/dist/checkout-carry.js.map +1 -0
- package/dist/citation-readers.d.ts +26 -0
- package/dist/citation-readers.d.ts.map +1 -0
- package/dist/citation-readers.js +102 -0
- package/dist/citation-readers.js.map +1 -0
- package/dist/command-receipts.d.ts +79 -0
- package/dist/command-receipts.d.ts.map +1 -0
- package/dist/command-receipts.js +143 -0
- package/dist/command-receipts.js.map +1 -0
- package/dist/command-runner.d.ts +32 -0
- package/dist/command-runner.d.ts.map +1 -0
- package/dist/command-runner.js +108 -0
- package/dist/command-runner.js.map +1 -0
- package/dist/compatible-sets.d.ts +67 -0
- package/dist/compatible-sets.d.ts.map +1 -0
- package/dist/compatible-sets.js +81 -0
- package/dist/compatible-sets.js.map +1 -0
- package/dist/compile-check.d.ts +31 -0
- package/dist/compile-check.d.ts.map +1 -0
- package/dist/compile-check.js +34 -0
- package/dist/compile-check.js.map +1 -0
- package/dist/compile-store.d.ts +16 -0
- package/dist/compile-store.d.ts.map +1 -0
- package/dist/compile-store.js +21 -0
- package/dist/compile-store.js.map +1 -0
- package/dist/completion.d.ts +106 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +131 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +549 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +763 -0
- package/dist/config.js.map +1 -0
- package/dist/control-file.d.ts +142 -0
- package/dist/control-file.d.ts.map +1 -0
- package/dist/control-file.js +144 -0
- package/dist/control-file.js.map +1 -0
- package/dist/coordinator-state.d.ts +131 -0
- package/dist/coordinator-state.d.ts.map +1 -0
- package/dist/coordinator-state.js +380 -0
- package/dist/coordinator-state.js.map +1 -0
- package/dist/coordinator.d.ts +95 -0
- package/dist/coordinator.d.ts.map +1 -0
- package/dist/coordinator.js +97 -0
- package/dist/coordinator.js.map +1 -0
- package/dist/cursor-store.d.ts +53 -0
- package/dist/cursor-store.d.ts.map +1 -0
- package/dist/cursor-store.js +98 -0
- package/dist/cursor-store.js.map +1 -0
- package/dist/daemon-cmd.d.ts +239 -0
- package/dist/daemon-cmd.d.ts.map +1 -0
- package/dist/daemon-cmd.js +1751 -0
- package/dist/daemon-cmd.js.map +1 -0
- package/dist/daemon-lock.d.ts +140 -0
- package/dist/daemon-lock.d.ts.map +1 -0
- package/dist/daemon-lock.js +352 -0
- package/dist/daemon-lock.js.map +1 -0
- package/dist/daemon-recovery.d.ts +78 -0
- package/dist/daemon-recovery.d.ts.map +1 -0
- package/dist/daemon-recovery.js +161 -0
- package/dist/daemon-recovery.js.map +1 -0
- package/dist/daemon.d.ts +368 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +601 -0
- package/dist/daemon.js.map +1 -0
- package/dist/declared-response-shape.d.ts +93 -0
- package/dist/declared-response-shape.d.ts.map +1 -0
- package/dist/declared-response-shape.js +200 -0
- package/dist/declared-response-shape.js.map +1 -0
- package/dist/declared-surfaces.d.ts +16 -0
- package/dist/declared-surfaces.d.ts.map +1 -0
- package/dist/declared-surfaces.js +19 -0
- package/dist/declared-surfaces.js.map +1 -0
- package/dist/depends-review.d.ts +113 -0
- package/dist/depends-review.d.ts.map +1 -0
- package/dist/depends-review.js +110 -0
- package/dist/depends-review.js.map +1 -0
- package/dist/doctor.d.ts +91 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +71 -0
- package/dist/doctor.js.map +1 -0
- package/dist/edge-approval.d.ts +105 -0
- package/dist/edge-approval.d.ts.map +1 -0
- package/dist/edge-approval.js +100 -0
- package/dist/edge-approval.js.map +1 -0
- package/dist/evidence-cache.d.ts +45 -0
- package/dist/evidence-cache.d.ts.map +1 -0
- package/dist/evidence-cache.js +90 -0
- package/dist/evidence-cache.js.map +1 -0
- package/dist/evidence-cmd.d.ts +133 -0
- package/dist/evidence-cmd.d.ts.map +1 -0
- package/dist/evidence-cmd.js +347 -0
- package/dist/evidence-cmd.js.map +1 -0
- package/dist/evidence-facts.d.ts +40 -0
- package/dist/evidence-facts.d.ts.map +1 -0
- package/dist/evidence-facts.js +114 -0
- package/dist/evidence-facts.js.map +1 -0
- package/dist/exclusive-lock.d.ts +52 -0
- package/dist/exclusive-lock.d.ts.map +1 -0
- package/dist/exclusive-lock.js +150 -0
- package/dist/exclusive-lock.js.map +1 -0
- package/dist/exec-domains.d.ts +140 -0
- package/dist/exec-domains.d.ts.map +1 -0
- package/dist/exec-domains.js +287 -0
- package/dist/exec-domains.js.map +1 -0
- package/dist/exemption-store.d.ts +197 -0
- package/dist/exemption-store.d.ts.map +1 -0
- package/dist/exemption-store.js +266 -0
- package/dist/exemption-store.js.map +1 -0
- package/dist/explicit-start-gate.d.ts +96 -0
- package/dist/explicit-start-gate.d.ts.map +1 -0
- package/dist/explicit-start-gate.js +103 -0
- package/dist/explicit-start-gate.js.map +1 -0
- package/dist/fs-trouble.d.ts +70 -0
- package/dist/fs-trouble.d.ts.map +1 -0
- package/dist/fs-trouble.js +98 -0
- package/dist/fs-trouble.js.map +1 -0
- package/dist/gate.d.ts +278 -0
- package/dist/gate.d.ts.map +1 -0
- package/dist/gate.js +278 -0
- package/dist/gate.js.map +1 -0
- package/dist/git-driver.d.ts +519 -0
- package/dist/git-driver.d.ts.map +1 -0
- package/dist/git-driver.js +900 -0
- package/dist/git-driver.js.map +1 -0
- package/dist/git-push-executor.d.ts +41 -0
- package/dist/git-push-executor.d.ts.map +1 -0
- package/dist/git-push-executor.js +142 -0
- package/dist/git-push-executor.js.map +1 -0
- package/dist/glob.d.ts +26 -0
- package/dist/glob.d.ts.map +1 -0
- package/dist/glob.js +93 -0
- package/dist/glob.js.map +1 -0
- package/dist/goal-adaptive.d.ts +295 -0
- package/dist/goal-adaptive.d.ts.map +1 -0
- package/dist/goal-adaptive.js +393 -0
- package/dist/goal-adaptive.js.map +1 -0
- package/dist/goal-compile.d.ts +342 -0
- package/dist/goal-compile.d.ts.map +1 -0
- package/dist/goal-compile.js +444 -0
- package/dist/goal-compile.js.map +1 -0
- package/dist/goal-depends-executor.d.ts +55 -0
- package/dist/goal-depends-executor.d.ts.map +1 -0
- package/dist/goal-depends-executor.js +202 -0
- package/dist/goal-depends-executor.js.map +1 -0
- package/dist/goal-execution-evidence.d.ts +135 -0
- package/dist/goal-execution-evidence.d.ts.map +1 -0
- package/dist/goal-execution-evidence.js +159 -0
- package/dist/goal-execution-evidence.js.map +1 -0
- package/dist/goal-gap.d.ts +140 -0
- package/dist/goal-gap.d.ts.map +1 -0
- package/dist/goal-gap.js +197 -0
- package/dist/goal-gap.js.map +1 -0
- package/dist/goal-met-target.d.ts +98 -0
- package/dist/goal-met-target.d.ts.map +1 -0
- package/dist/goal-met-target.js +92 -0
- package/dist/goal-met-target.js.map +1 -0
- package/dist/goal-ownership.d.ts +416 -0
- package/dist/goal-ownership.d.ts.map +1 -0
- package/dist/goal-ownership.js +576 -0
- package/dist/goal-ownership.js.map +1 -0
- package/dist/goal-runs.d.ts +82 -0
- package/dist/goal-runs.d.ts.map +1 -0
- package/dist/goal-runs.js +120 -0
- package/dist/goal-runs.js.map +1 -0
- package/dist/goal-store.d.ts +146 -0
- package/dist/goal-store.d.ts.map +1 -0
- package/dist/goal-store.js +294 -0
- package/dist/goal-store.js.map +1 -0
- package/dist/goal-view.d.ts +156 -0
- package/dist/goal-view.d.ts.map +1 -0
- package/dist/goal-view.js +499 -0
- package/dist/goal-view.js.map +1 -0
- package/dist/governed-approvals.d.ts +152 -0
- package/dist/governed-approvals.d.ts.map +1 -0
- package/dist/governed-approvals.js +246 -0
- package/dist/governed-approvals.js.map +1 -0
- package/dist/governed-broker.d.ts +169 -0
- package/dist/governed-broker.d.ts.map +1 -0
- package/dist/governed-broker.js +196 -0
- package/dist/governed-broker.js.map +1 -0
- package/dist/governed-run.d.ts +220 -0
- package/dist/governed-run.d.ts.map +1 -0
- package/dist/governed-run.js +406 -0
- package/dist/governed-run.js.map +1 -0
- package/dist/grant-reconcile.d.ts +63 -0
- package/dist/grant-reconcile.d.ts.map +1 -0
- package/dist/grant-reconcile.js +121 -0
- package/dist/grant-reconcile.js.map +1 -0
- package/dist/index-for-head.d.ts +56 -0
- package/dist/index-for-head.d.ts.map +1 -0
- package/dist/index-for-head.js +103 -0
- package/dist/index-for-head.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/init-detect.d.ts +39 -0
- package/dist/init-detect.d.ts.map +1 -0
- package/dist/init-detect.js +188 -0
- package/dist/init-detect.js.map +1 -0
- package/dist/integration-deps.d.ts +62 -0
- package/dist/integration-deps.d.ts.map +1 -0
- package/dist/integration-deps.js +251 -0
- package/dist/integration-deps.js.map +1 -0
- package/dist/integration-runtime.d.ts +458 -0
- package/dist/integration-runtime.d.ts.map +1 -0
- package/dist/integration-runtime.js +681 -0
- package/dist/integration-runtime.js.map +1 -0
- package/dist/integration.d.ts +45 -0
- package/dist/integration.d.ts.map +1 -0
- package/dist/integration.js +87 -0
- package/dist/integration.js.map +1 -0
- package/dist/integrator.d.ts +84 -0
- package/dist/integrator.d.ts.map +1 -0
- package/dist/integrator.js +193 -0
- package/dist/integrator.js.map +1 -0
- package/dist/lane-claims.d.ts +174 -0
- package/dist/lane-claims.d.ts.map +1 -0
- package/dist/lane-claims.js +218 -0
- package/dist/lane-claims.js.map +1 -0
- package/dist/lane-coverage.d.ts +87 -0
- package/dist/lane-coverage.d.ts.map +1 -0
- package/dist/lane-coverage.js +129 -0
- package/dist/lane-coverage.js.map +1 -0
- package/dist/ledger-replay.d.ts +115 -0
- package/dist/ledger-replay.d.ts.map +1 -0
- package/dist/ledger-replay.js +155 -0
- package/dist/ledger-replay.js.map +1 -0
- package/dist/ledger-store.d.ts +68 -0
- package/dist/ledger-store.d.ts.map +1 -0
- package/dist/ledger-store.js +111 -0
- package/dist/ledger-store.js.map +1 -0
- package/dist/loop-safety-observer.d.ts +132 -0
- package/dist/loop-safety-observer.d.ts.map +1 -0
- package/dist/loop-safety-observer.js +76 -0
- package/dist/loop-safety-observer.js.map +1 -0
- package/dist/loop-safety-store.d.ts +339 -0
- package/dist/loop-safety-store.d.ts.map +1 -0
- package/dist/loop-safety-store.js +800 -0
- package/dist/loop-safety-store.js.map +1 -0
- package/dist/machine-store.d.ts +54 -0
- package/dist/machine-store.d.ts.map +1 -0
- package/dist/machine-store.js +149 -0
- package/dist/machine-store.js.map +1 -0
- package/dist/mcp-main.d.ts +2 -0
- package/dist/mcp-main.d.ts.map +1 -0
- package/dist/mcp-main.js +116 -0
- package/dist/mcp-main.js.map +1 -0
- package/dist/mcp-server.d.ts +72 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +259 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/model-routing.d.ts +75 -0
- package/dist/model-routing.d.ts.map +1 -0
- package/dist/model-routing.js +108 -0
- package/dist/model-routing.js.map +1 -0
- package/dist/model-transport.d.ts +188 -0
- package/dist/model-transport.d.ts.map +1 -0
- package/dist/model-transport.js +625 -0
- package/dist/model-transport.js.map +1 -0
- package/dist/notify-cadence.d.ts +55 -0
- package/dist/notify-cadence.d.ts.map +1 -0
- package/dist/notify-cadence.js +68 -0
- package/dist/notify-cadence.js.map +1 -0
- package/dist/notify-channel.d.ts +69 -0
- package/dist/notify-channel.d.ts.map +1 -0
- package/dist/notify-channel.js +151 -0
- package/dist/notify-channel.js.map +1 -0
- package/dist/notify.d.ts +71 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +125 -0
- package/dist/notify.js.map +1 -0
- package/dist/observation-inventory.d.ts +65 -0
- package/dist/observation-inventory.d.ts.map +1 -0
- package/dist/observation-inventory.js +139 -0
- package/dist/observation-inventory.js.map +1 -0
- package/dist/owned-children.d.ts +45 -0
- package/dist/owned-children.d.ts.map +1 -0
- package/dist/owned-children.js +64 -0
- package/dist/owned-children.js.map +1 -0
- package/dist/packet-for-goal.d.ts +19 -0
- package/dist/packet-for-goal.d.ts.map +1 -0
- package/dist/packet-for-goal.js +32 -0
- package/dist/packet-for-goal.js.map +1 -0
- package/dist/pair-cmd.d.ts +85 -0
- package/dist/pair-cmd.d.ts.map +1 -0
- package/dist/pair-cmd.js +205 -0
- package/dist/pair-cmd.js.map +1 -0
- package/dist/partial-asker.d.ts +96 -0
- package/dist/partial-asker.d.ts.map +1 -0
- package/dist/partial-asker.js +117 -0
- package/dist/partial-asker.js.map +1 -0
- package/dist/pdf-text-lines.d.ts +17 -0
- package/dist/pdf-text-lines.d.ts.map +1 -0
- package/dist/pdf-text-lines.js +70 -0
- package/dist/pdf-text-lines.js.map +1 -0
- package/dist/pdf-text-worker.d.ts +2 -0
- package/dist/pdf-text-worker.d.ts.map +1 -0
- package/dist/pdf-text-worker.js +81 -0
- package/dist/pdf-text-worker.js.map +1 -0
- package/dist/pdf-text.d.ts +56 -0
- package/dist/pdf-text.d.ts.map +1 -0
- package/dist/pdf-text.js +64 -0
- package/dist/pdf-text.js.map +1 -0
- package/dist/pending-action.d.ts +154 -0
- package/dist/pending-action.d.ts.map +1 -0
- package/dist/pending-action.js +148 -0
- package/dist/pending-action.js.map +1 -0
- package/dist/preemptor.d.ts +40 -0
- package/dist/preemptor.d.ts.map +1 -0
- package/dist/preemptor.js +49 -0
- package/dist/preemptor.js.map +1 -0
- package/dist/programme-mode.d.ts +29 -0
- package/dist/programme-mode.d.ts.map +1 -0
- package/dist/programme-mode.js +50 -0
- package/dist/programme-mode.js.map +1 -0
- package/dist/progress-view.d.ts +14 -0
- package/dist/progress-view.d.ts.map +1 -0
- package/dist/progress-view.js +114 -0
- package/dist/progress-view.js.map +1 -0
- package/dist/project-graph-builder.d.ts +81 -0
- package/dist/project-graph-builder.d.ts.map +1 -0
- package/dist/project-graph-builder.js +246 -0
- package/dist/project-graph-builder.js.map +1 -0
- package/dist/project-graph-runtime.d.ts +86 -0
- package/dist/project-graph-runtime.d.ts.map +1 -0
- package/dist/project-graph-runtime.js +112 -0
- package/dist/project-graph-runtime.js.map +1 -0
- package/dist/project-index-builder.d.ts +96 -0
- package/dist/project-index-builder.d.ts.map +1 -0
- package/dist/project-index-builder.js +298 -0
- package/dist/project-index-builder.js.map +1 -0
- package/dist/project-index-facts.d.ts +51 -0
- package/dist/project-index-facts.d.ts.map +1 -0
- package/dist/project-index-facts.js +117 -0
- package/dist/project-index-facts.js.map +1 -0
- package/dist/project-index-store.d.ts +97 -0
- package/dist/project-index-store.d.ts.map +1 -0
- package/dist/project-index-store.js +140 -0
- package/dist/project-index-store.js.map +1 -0
- package/dist/project-memory-store.d.ts +127 -0
- package/dist/project-memory-store.d.ts.map +1 -0
- package/dist/project-memory-store.js +302 -0
- package/dist/project-memory-store.js.map +1 -0
- package/dist/proposal-store.d.ts +14 -0
- package/dist/proposal-store.d.ts.map +1 -0
- package/dist/proposal-store.js +19 -0
- package/dist/proposal-store.js.map +1 -0
- package/dist/prover.d.ts +80 -0
- package/dist/prover.d.ts.map +1 -0
- package/dist/prover.js +137 -0
- package/dist/prover.js.map +1 -0
- package/dist/provider-identity-store.d.ts +34 -0
- package/dist/provider-identity-store.d.ts.map +1 -0
- package/dist/provider-identity-store.js +72 -0
- package/dist/provider-identity-store.js.map +1 -0
- package/dist/provider-identity.d.ts +104 -0
- package/dist/provider-identity.d.ts.map +1 -0
- package/dist/provider-identity.js +167 -0
- package/dist/provider-identity.js.map +1 -0
- package/dist/provider-limit.d.ts +79 -0
- package/dist/provider-limit.d.ts.map +1 -0
- package/dist/provider-limit.js +148 -0
- package/dist/provider-limit.js.map +1 -0
- package/dist/provider-preflight.d.ts +171 -0
- package/dist/provider-preflight.d.ts.map +1 -0
- package/dist/provider-preflight.js +395 -0
- package/dist/provider-preflight.js.map +1 -0
- package/dist/provider-state.d.ts +120 -0
- package/dist/provider-state.d.ts.map +1 -0
- package/dist/provider-state.js +182 -0
- package/dist/provider-state.js.map +1 -0
- package/dist/providers.d.ts +132 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +161 -0
- package/dist/providers.js.map +1 -0
- package/dist/publication-recorder.d.ts +117 -0
- package/dist/publication-recorder.d.ts.map +1 -0
- package/dist/publication-recorder.js +124 -0
- package/dist/publication-recorder.js.map +1 -0
- package/dist/pursuit-delivery.d.ts +24 -0
- package/dist/pursuit-delivery.d.ts.map +1 -0
- package/dist/pursuit-delivery.js +38 -0
- package/dist/pursuit-delivery.js.map +1 -0
- package/dist/queue-store.d.ts +132 -0
- package/dist/queue-store.d.ts.map +1 -0
- package/dist/queue-store.js +185 -0
- package/dist/queue-store.js.map +1 -0
- package/dist/queue-summary.d.ts +14 -0
- package/dist/queue-summary.d.ts.map +1 -0
- package/dist/queue-summary.js +82 -0
- package/dist/queue-summary.js.map +1 -0
- package/dist/queue-view.d.ts +20 -0
- package/dist/queue-view.d.ts.map +1 -0
- package/dist/queue-view.js +163 -0
- package/dist/queue-view.js.map +1 -0
- package/dist/queue-write-lease.d.ts +106 -0
- package/dist/queue-write-lease.d.ts.map +1 -0
- package/dist/queue-write-lease.js +282 -0
- package/dist/queue-write-lease.js.map +1 -0
- package/dist/rails-home.d.ts +162 -0
- package/dist/rails-home.d.ts.map +1 -0
- package/dist/rails-home.js +452 -0
- package/dist/rails-home.js.map +1 -0
- package/dist/rails-migrations.d.ts +75 -0
- package/dist/rails-migrations.d.ts.map +1 -0
- package/dist/rails-migrations.js +199 -0
- package/dist/rails-migrations.js.map +1 -0
- package/dist/rails-stores.d.ts +49 -0
- package/dist/rails-stores.d.ts.map +1 -0
- package/dist/rails-stores.js +100 -0
- package/dist/rails-stores.js.map +1 -0
- package/dist/reaper.d.ts +69 -0
- package/dist/reaper.d.ts.map +1 -0
- package/dist/reaper.js +152 -0
- package/dist/reaper.js.map +1 -0
- package/dist/record-store.d.ts +36 -0
- package/dist/record-store.d.ts.map +1 -0
- package/dist/record-store.js +78 -0
- package/dist/record-store.js.map +1 -0
- package/dist/recovery-io.d.ts +50 -0
- package/dist/recovery-io.d.ts.map +1 -0
- package/dist/recovery-io.js +122 -0
- package/dist/recovery-io.js.map +1 -0
- package/dist/recovery.d.ts +146 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +110 -0
- package/dist/recovery.js.map +1 -0
- package/dist/redraw.d.ts +34 -0
- package/dist/redraw.d.ts.map +1 -0
- package/dist/redraw.js +62 -0
- package/dist/redraw.js.map +1 -0
- package/dist/rejected-evidence.d.ts +255 -0
- package/dist/rejected-evidence.d.ts.map +1 -0
- package/dist/rejected-evidence.js +324 -0
- package/dist/rejected-evidence.js.map +1 -0
- package/dist/report-cmd.d.ts +32 -0
- package/dist/report-cmd.d.ts.map +1 -0
- package/dist/report-cmd.js +201 -0
- package/dist/report-cmd.js.map +1 -0
- package/dist/repos-cmd.d.ts +80 -0
- package/dist/repos-cmd.d.ts.map +1 -0
- package/dist/repos-cmd.js +240 -0
- package/dist/repos-cmd.js.map +1 -0
- package/dist/request-body-shape.d.ts +93 -0
- package/dist/request-body-shape.d.ts.map +1 -0
- package/dist/request-body-shape.js +407 -0
- package/dist/request-body-shape.js.map +1 -0
- package/dist/requirement-claims.d.ts +89 -0
- package/dist/requirement-claims.d.ts.map +1 -0
- package/dist/requirement-claims.js +92 -0
- package/dist/requirement-claims.js.map +1 -0
- package/dist/retention-apply-runtime.d.ts +105 -0
- package/dist/retention-apply-runtime.d.ts.map +1 -0
- package/dist/retention-apply-runtime.js +269 -0
- package/dist/retention-apply-runtime.js.map +1 -0
- package/dist/reverify.d.ts +41 -0
- package/dist/reverify.d.ts.map +1 -0
- package/dist/reverify.js +69 -0
- package/dist/reverify.js.map +1 -0
- package/dist/round-records.d.ts +65 -0
- package/dist/round-records.d.ts.map +1 -0
- package/dist/round-records.js +61 -0
- package/dist/round-records.js.map +1 -0
- package/dist/round-runner.d.ts +924 -0
- package/dist/round-runner.d.ts.map +1 -0
- package/dist/round-runner.js +1693 -0
- package/dist/round-runner.js.map +1 -0
- package/dist/run-approval.d.ts +180 -0
- package/dist/run-approval.d.ts.map +1 -0
- package/dist/run-approval.js +199 -0
- package/dist/run-approval.js.map +1 -0
- package/dist/run-cmd.d.ts +359 -0
- package/dist/run-cmd.d.ts.map +1 -0
- package/dist/run-cmd.js +4418 -0
- package/dist/run-cmd.js.map +1 -0
- package/dist/run-delivery.d.ts +71 -0
- package/dist/run-delivery.d.ts.map +1 -0
- package/dist/run-delivery.js +104 -0
- package/dist/run-delivery.js.map +1 -0
- package/dist/run-ended.d.ts +75 -0
- package/dist/run-ended.d.ts.map +1 -0
- package/dist/run-ended.js +27 -0
- package/dist/run-ended.js.map +1 -0
- package/dist/run-ending-locator.d.ts +125 -0
- package/dist/run-ending-locator.d.ts.map +1 -0
- package/dist/run-ending-locator.js +133 -0
- package/dist/run-ending-locator.js.map +1 -0
- package/dist/run-launcher.d.ts +459 -0
- package/dist/run-launcher.d.ts.map +1 -0
- package/dist/run-launcher.js +652 -0
- package/dist/run-launcher.js.map +1 -0
- package/dist/run-lease.d.ts +208 -0
- package/dist/run-lease.d.ts.map +1 -0
- package/dist/run-lease.js +301 -0
- package/dist/run-lease.js.map +1 -0
- package/dist/run-refusal-marks.d.ts +189 -0
- package/dist/run-refusal-marks.d.ts.map +1 -0
- package/dist/run-refusal-marks.js +249 -0
- package/dist/run-refusal-marks.js.map +1 -0
- package/dist/run-start-marks.d.ts +153 -0
- package/dist/run-start-marks.d.ts.map +1 -0
- package/dist/run-start-marks.js +269 -0
- package/dist/run-start-marks.js.map +1 -0
- package/dist/scan-cmd.d.ts +14 -0
- package/dist/scan-cmd.d.ts.map +1 -0
- package/dist/scan-cmd.js +270 -0
- package/dist/scan-cmd.js.map +1 -0
- package/dist/scan-events.d.ts +50 -0
- package/dist/scan-events.d.ts.map +1 -0
- package/dist/scan-events.js +91 -0
- package/dist/scan-events.js.map +1 -0
- package/dist/scan.d.ts +191 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +417 -0
- package/dist/scan.js.map +1 -0
- package/dist/scope-rule.d.ts +148 -0
- package/dist/scope-rule.d.ts.map +1 -0
- package/dist/scope-rule.js +121 -0
- package/dist/scope-rule.js.map +1 -0
- package/dist/self-repo-id.d.ts +18 -0
- package/dist/self-repo-id.d.ts.map +1 -0
- package/dist/self-repo-id.js +70 -0
- package/dist/self-repo-id.js.map +1 -0
- package/dist/server-client.d.ts +766 -0
- package/dist/server-client.d.ts.map +1 -0
- package/dist/server-client.js +475 -0
- package/dist/server-client.js.map +1 -0
- package/dist/session-adapter-runtime.d.ts +195 -0
- package/dist/session-adapter-runtime.d.ts.map +1 -0
- package/dist/session-adapter-runtime.js +373 -0
- package/dist/session-adapter-runtime.js.map +1 -0
- package/dist/session-checkpoint-runtime.d.ts +62 -0
- package/dist/session-checkpoint-runtime.d.ts.map +1 -0
- package/dist/session-checkpoint-runtime.js +268 -0
- package/dist/session-checkpoint-runtime.js.map +1 -0
- package/dist/session-control-transport.d.ts +106 -0
- package/dist/session-control-transport.d.ts.map +1 -0
- package/dist/session-control-transport.js +232 -0
- package/dist/session-control-transport.js.map +1 -0
- package/dist/session-observation-store.d.ts +98 -0
- package/dist/session-observation-store.d.ts.map +1 -0
- package/dist/session-observation-store.js +155 -0
- package/dist/session-observation-store.js.map +1 -0
- package/dist/session-observe-runtime.d.ts +123 -0
- package/dist/session-observe-runtime.d.ts.map +1 -0
- package/dist/session-observe-runtime.js +317 -0
- package/dist/session-observe-runtime.js.map +1 -0
- package/dist/session-store.d.ts +98 -0
- package/dist/session-store.d.ts.map +1 -0
- package/dist/session-store.js +116 -0
- package/dist/session-store.js.map +1 -0
- package/dist/sessions-cmd.d.ts +202 -0
- package/dist/sessions-cmd.d.ts.map +1 -0
- package/dist/sessions-cmd.js +609 -0
- package/dist/sessions-cmd.js.map +1 -0
- package/dist/settings-overlay.d.ts +53 -0
- package/dist/settings-overlay.d.ts.map +1 -0
- package/dist/settings-overlay.js +175 -0
- package/dist/settings-overlay.js.map +1 -0
- package/dist/setup-prompt.d.ts +34 -0
- package/dist/setup-prompt.d.ts.map +1 -0
- package/dist/setup-prompt.js +92 -0
- package/dist/setup-prompt.js.map +1 -0
- package/dist/setup.d.ts +103 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +283 -0
- package/dist/setup.js.map +1 -0
- package/dist/shared-grants.d.ts +164 -0
- package/dist/shared-grants.d.ts.map +1 -0
- package/dist/shared-grants.js +242 -0
- package/dist/shared-grants.js.map +1 -0
- package/dist/signals.d.ts +55 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +85 -0
- package/dist/signals.js.map +1 -0
- package/dist/source-cmd.d.ts +201 -0
- package/dist/source-cmd.d.ts.map +1 -0
- package/dist/source-cmd.js +684 -0
- package/dist/source-cmd.js.map +1 -0
- package/dist/source-verdict.d.ts +99 -0
- package/dist/source-verdict.d.ts.map +1 -0
- package/dist/source-verdict.js +182 -0
- package/dist/source-verdict.js.map +1 -0
- package/dist/spend-ledger.d.ts +350 -0
- package/dist/spend-ledger.d.ts.map +1 -0
- package/dist/spend-ledger.js +546 -0
- package/dist/spend-ledger.js.map +1 -0
- package/dist/stale-run-sweep.d.ts +79 -0
- package/dist/stale-run-sweep.d.ts.map +1 -0
- package/dist/stale-run-sweep.js +116 -0
- package/dist/stale-run-sweep.js.map +1 -0
- package/dist/start-attempts.d.ts +385 -0
- package/dist/start-attempts.d.ts.map +1 -0
- package/dist/start-attempts.js +613 -0
- package/dist/start-attempts.js.map +1 -0
- package/dist/status-cmd.d.ts +28 -0
- package/dist/status-cmd.d.ts.map +1 -0
- package/dist/status-cmd.js +116 -0
- package/dist/status-cmd.js.map +1 -0
- package/dist/stop-follow-up.d.ts +107 -0
- package/dist/stop-follow-up.d.ts.map +1 -0
- package/dist/stop-follow-up.js +172 -0
- package/dist/stop-follow-up.js.map +1 -0
- package/dist/surface-lease.d.ts +118 -0
- package/dist/surface-lease.d.ts.map +1 -0
- package/dist/surface-lease.js +485 -0
- package/dist/surface-lease.js.map +1 -0
- package/dist/sync.d.ts +54 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +93 -0
- package/dist/sync.js.map +1 -0
- package/dist/syncing-ledger.d.ts +45 -0
- package/dist/syncing-ledger.d.ts.map +1 -0
- package/dist/syncing-ledger.js +53 -0
- package/dist/syncing-ledger.js.map +1 -0
- package/dist/temp-fixtures.d.ts +68 -0
- package/dist/temp-fixtures.d.ts.map +1 -0
- package/dist/temp-fixtures.js +38 -0
- package/dist/temp-fixtures.js.map +1 -0
- package/dist/token-window.d.ts +84 -0
- package/dist/token-window.d.ts.map +1 -0
- package/dist/token-window.js +143 -0
- package/dist/token-window.js.map +1 -0
- package/dist/tool-bridge.d.ts +177 -0
- package/dist/tool-bridge.d.ts.map +1 -0
- package/dist/tool-bridge.js +329 -0
- package/dist/tool-bridge.js.map +1 -0
- package/dist/tool-call-record.d.ts +197 -0
- package/dist/tool-call-record.d.ts.map +1 -0
- package/dist/tool-call-record.js +276 -0
- package/dist/tool-call-record.js.map +1 -0
- package/dist/tool-protocol.d.ts +135 -0
- package/dist/tool-protocol.d.ts.map +1 -0
- package/dist/tool-protocol.js +104 -0
- package/dist/tool-protocol.js.map +1 -0
- package/dist/tool-worker.d.ts +3 -0
- package/dist/tool-worker.d.ts.map +1 -0
- package/dist/tool-worker.js +478 -0
- package/dist/tool-worker.js.map +1 -0
- package/dist/toolchain-mirror.d.ts +86 -0
- package/dist/toolchain-mirror.d.ts.map +1 -0
- package/dist/toolchain-mirror.js +307 -0
- package/dist/toolchain-mirror.js.map +1 -0
- package/dist/trusted-git.d.ts +243 -0
- package/dist/trusted-git.d.ts.map +1 -0
- package/dist/trusted-git.js +920 -0
- package/dist/trusted-git.js.map +1 -0
- package/dist/ui.d.ts +76 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +118 -0
- package/dist/ui.js.map +1 -0
- package/dist/untrusted-exec.d.ts +275 -0
- package/dist/untrusted-exec.d.ts.map +1 -0
- package/dist/untrusted-exec.js +479 -0
- package/dist/untrusted-exec.js.map +1 -0
- package/dist/untrusted-gate.d.ts +73 -0
- package/dist/untrusted-gate.d.ts.map +1 -0
- package/dist/untrusted-gate.js +226 -0
- package/dist/untrusted-gate.js.map +1 -0
- package/dist/uploader.d.ts +153 -0
- package/dist/uploader.d.ts.map +1 -0
- package/dist/uploader.js +204 -0
- package/dist/uploader.js.map +1 -0
- package/dist/verifier.d.ts +66 -0
- package/dist/verifier.d.ts.map +1 -0
- package/dist/verifier.js +170 -0
- package/dist/verifier.js.map +1 -0
- package/dist/verify-apply.d.ts +26 -0
- package/dist/verify-apply.d.ts.map +1 -0
- package/dist/verify-apply.js +36 -0
- package/dist/verify-apply.js.map +1 -0
- package/dist/verify-cmd.d.ts +44 -0
- package/dist/verify-cmd.d.ts.map +1 -0
- package/dist/verify-cmd.js +125 -0
- package/dist/verify-cmd.js.map +1 -0
- package/dist/verify-pass.d.ts +73 -0
- package/dist/verify-pass.d.ts.map +1 -0
- package/dist/verify-pass.js +103 -0
- package/dist/verify-pass.js.map +1 -0
- package/dist/welcome.d.ts +43 -0
- package/dist/welcome.d.ts.map +1 -0
- package/dist/welcome.js +116 -0
- package/dist/welcome.js.map +1 -0
- package/dist/workspace-provisioner.d.ts +65 -0
- package/dist/workspace-provisioner.d.ts.map +1 -0
- package/dist/workspace-provisioner.js +66 -0
- package/dist/workspace-provisioner.js.map +1 -0
- package/dist/workspace-quarantine.d.ts +64 -0
- package/dist/workspace-quarantine.d.ts.map +1 -0
- package/dist/workspace-quarantine.js +156 -0
- package/dist/workspace-quarantine.js.map +1 -0
- package/dist/workspace-residue-sweep.d.ts +113 -0
- package/dist/workspace-residue-sweep.d.ts.map +1 -0
- package/dist/workspace-residue-sweep.js +158 -0
- package/dist/workspace-residue-sweep.js.map +1 -0
- package/dist/workspace.d.ts +639 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +2026 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +54 -6
- package/win/CredProbe.cs +64 -0
- package/win/FakeClaude.cs +56 -0
- package/win/HandleProbe.cs +116 -0
- package/win/TokenProbe.cs +53 -0
- package/win/appcontainer.ps1 +500 -0
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decideControllerRefusal = decideControllerRefusal;
|
|
4
|
+
exports.decideAutonomyTick = decideAutonomyTick;
|
|
5
|
+
const core_1 = require("@looply/core");
|
|
6
|
+
/**
|
|
7
|
+
* A met goal against the lane's answer (M5-2). Exhaustive over the kinds, for
|
|
8
|
+
* the same reason the code table is: a kind nobody decided must not fall
|
|
9
|
+
* through to "close it".
|
|
10
|
+
*/
|
|
11
|
+
/** How many refused requirements a one-line hold names before it stops counting. */
|
|
12
|
+
const MAX_NAMED_REFUSALS = 3;
|
|
13
|
+
function decideThirdKey(publication) {
|
|
14
|
+
switch (publication.kind) {
|
|
15
|
+
case 'published':
|
|
16
|
+
/**
|
|
17
|
+
* 🔴 A PUBLICATION THAT OWES AN EVALUATOR VERDICT DOES NOT CLOSE A
|
|
18
|
+
* PURSUIT, AND THIS IS WHERE `OWNER_CHARTER.md` §4 BECOMES ENFORCEABLE.
|
|
19
|
+
*
|
|
20
|
+
* *"Required independent judgement must be freshly obtained, or reused
|
|
21
|
+
* only under an evidenced policy whose dependencies still hold. A ledger
|
|
22
|
+
* warning alone does not satisfy a required review."* When a refused
|
|
23
|
+
* candidate is carried onto the integration branch, `replayDecision`
|
|
24
|
+
* declines to carry the model's verdict — and the lane then re-gates and
|
|
25
|
+
* publishes on green, which is right. But no evaluator verdict is taken
|
|
26
|
+
* on the carried commit, by anything, ever. Closing the pursuit
|
|
27
|
+
* `satisfied` on that would be exactly the claim the charter forbids.
|
|
28
|
+
*
|
|
29
|
+
* ⚠️ A HOLD, NOT A REFUSAL, AND THE DIFFERENCE IS THE WHOLE DESIGN. The
|
|
30
|
+
* work stays published — nothing is reverted, nothing is frozen, and the
|
|
31
|
+
* charter says outright not to freeze working replay. What is withheld is
|
|
32
|
+
* the CLOSURE: the grant stays open and a person is told which commit is
|
|
33
|
+
* missing which verdict. `pending` and `unknown` already hold for softer
|
|
34
|
+
* reasons than this one.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* F27: A VERDICT TAKEN ON THIS COMMIT IS NO LONGER OWED, and one that was not is bought.
|
|
38
|
+
* In a programme (`rejudge`) a goal-met Start judges the carried commit itself, so a new
|
|
39
|
+
* Start TAKES the verdict; before, nothing could, and the pursuit held for ever. Anywhere
|
|
40
|
+
* else a new Start would judge the run branch again, so it holds exactly as it did.
|
|
41
|
+
*/
|
|
42
|
+
if (publication.reviewOwed !== undefined && publication.reviewTakenAt !== publication.sha) {
|
|
43
|
+
const owed = `met at this version and integrated at ${publication.sha}, but no evaluator verdict was taken ` +
|
|
44
|
+
`on the carried candidate — ${publication.reviewOwed.because}`;
|
|
45
|
+
return publication.rejudge === true ? { next: `${owed}; the next Start judges that commit` } : { hold: owed };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 🔴 OWNER RULE #2's CONSUMER, AND IT IS A HOLD FOR THE SAME REASON THE
|
|
49
|
+
* ONE ABOVE IS.
|
|
50
|
+
*
|
|
51
|
+
* The lane regenerated requirement acceptance on this exact integrated
|
|
52
|
+
* revision. If a claim went STALE, or the lane REFUSED one — the goal no
|
|
53
|
+
* longer names it, the check that would prove it did not run at this tree,
|
|
54
|
+
* or the environment did not qualify — then the work is integrated and its
|
|
55
|
+
* requirements are not established, and closing the pursuit `satisfied`
|
|
56
|
+
* would be the claim the charter forbids.
|
|
57
|
+
*
|
|
58
|
+
* ⚠️ NOTHING IS REVERTED AND NOTHING IS FROZEN. The work stays published;
|
|
59
|
+
* what is withheld is the CLOSURE. The grant stays open, the ordinal is
|
|
60
|
+
* unspent, and a person is told which requirement is missing which
|
|
61
|
+
* evidence — re-examined next cadence.
|
|
62
|
+
*
|
|
63
|
+
* ⚠️ AND IT CANNOT FIRE ON A PROJECT THAT HOLDS NO CLAIMS. `requirements`
|
|
64
|
+
* is absent there, and an empty receipt has nothing stale and nothing
|
|
65
|
+
* refused. A mandatory requirement NOBODY claimed is not this branch's
|
|
66
|
+
* business: `coverageGate` blocks that with `no-requirement-receipt`,
|
|
67
|
+
* which is the gate that exists for it. A lane-side hold that fired
|
|
68
|
+
* whenever a project had no claims would be the reverted-safeguard shape
|
|
69
|
+
* this lane already measured once.
|
|
70
|
+
*/
|
|
71
|
+
if (publication.requirements !== undefined) {
|
|
72
|
+
const r = publication.requirements;
|
|
73
|
+
if (r.stale !== null) {
|
|
74
|
+
return {
|
|
75
|
+
hold: `met at this version and integrated at ${publication.sha}, but the requirement claims cannot ` +
|
|
76
|
+
`speak for it — ${(0, core_1.describeStaleness)(r.stale)}`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (r.refused.length > 0) {
|
|
80
|
+
const named = r.refused.slice(0, MAX_NAMED_REFUSALS).map(core_1.describeIntegratedRefusal).join('; ');
|
|
81
|
+
const rest = r.refused.length - MAX_NAMED_REFUSALS;
|
|
82
|
+
return {
|
|
83
|
+
hold: `met at this version and integrated at ${publication.sha}, but ${r.refused.length} requirement ` +
|
|
84
|
+
`claim(s) were not accepted on that revision: ${named}${rest > 0 ? ` (and ${rest} more)` : ''}`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 🔴 THE FOURTH KEY, WHERE THE CHARTER PUTS IT (F25). Programme mode judges the goal's
|
|
90
|
+
* strict coverage on the integrated tree (`withLaneCoverage`); a goal whose
|
|
91
|
+
* mandatory requirements are not all covered there is integrated but NOT satisfied —
|
|
92
|
+
* a hold, re-examined next cadence, so a dependent keeps waiting. `unavailable` holds
|
|
93
|
+
* too: coverage that could not be judged is not coverage.
|
|
94
|
+
*/
|
|
95
|
+
/**
|
|
96
|
+
* F31 (soun-1): A PROGRAMME PUBLICATION WITH NO COVERAGE VERDICT IS A WIRING FAULT, and it
|
|
97
|
+
* holds. The worker defers its fourth key to the lane under programme mode; a third key that
|
|
98
|
+
* came back without the lane's verdict would otherwise close the goal on the run's word.
|
|
99
|
+
*/
|
|
100
|
+
if (publication.coverage === undefined && publication.rejudge === true) {
|
|
101
|
+
return {
|
|
102
|
+
hold: `met at this version and integrated at ${publication.sha}, but no requirement coverage was judged for it`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if (publication.coverage !== undefined) {
|
|
106
|
+
if (publication.coverage.kind === 'unavailable') {
|
|
107
|
+
return {
|
|
108
|
+
hold: `met at this version and integrated at ${publication.sha}, but its requirement coverage could not be judged — ${publication.coverage.because}`,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (!publication.coverage.result.ok) {
|
|
112
|
+
return {
|
|
113
|
+
hold: `met at this version and integrated at ${publication.sha}, but on the integrated tree ` +
|
|
114
|
+
((0, core_1.describeCoverageBlock)(publication.coverage.result) ?? 'a mandatory requirement is not covered'),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
state: 'satisfied',
|
|
120
|
+
because: `the goal was met at this version and its work was integrated at ${publication.sha}`,
|
|
121
|
+
};
|
|
122
|
+
case 'pending':
|
|
123
|
+
return { hold: `met at this version; awaiting integration of ${publication.branch}` };
|
|
124
|
+
case 'refused':
|
|
125
|
+
// A rebase is work only a new Start can do: it cuts from the moved base,
|
|
126
|
+
// re-compiles and re-implements. A red gate is a person's to read.
|
|
127
|
+
//
|
|
128
|
+
// 🔴 AND ONLY A START THAT JUDGES THE MOVED BASE DOES THAT (F27, corr-6). Anywhere else the
|
|
129
|
+
// new Start judged the same refused tree, said "met" again, and bought the next — every
|
|
130
|
+
// Start of the grant spent in a loop. So outside a programme a rebase HOLDS for a person.
|
|
131
|
+
return publication.rebase && publication.rejudge === true
|
|
132
|
+
? { next: `met at this version; the lane refused ${publication.branch}: ${publication.because}` }
|
|
133
|
+
: {
|
|
134
|
+
hold: `met at this version; the lane refused ${publication.branch}: ${publication.because}` +
|
|
135
|
+
(publication.rebase ? ' — a new Start here would judge the same refused tree, so re-cutting it is a person\'s call' : ''),
|
|
136
|
+
};
|
|
137
|
+
case 'unknown':
|
|
138
|
+
return {
|
|
139
|
+
hold: publication.branch === undefined
|
|
140
|
+
? 'met at this version; the run named no branch, so its publication cannot be shown'
|
|
141
|
+
: `met at this version; ${publication.branch} cannot be shown published`,
|
|
142
|
+
};
|
|
143
|
+
default: {
|
|
144
|
+
const never = publication;
|
|
145
|
+
throw new Error(`no controller decision for publication ${String(never)}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function decideControllerRefusal(code, facts) {
|
|
150
|
+
// M5-2: with the third key in hand, a met goal is decided by the lane, not by
|
|
151
|
+
// the run alone. Every other code — and every call without the facts — is
|
|
152
|
+
// the table below, unchanged.
|
|
153
|
+
if (facts !== undefined && code === 'goal_satisfied')
|
|
154
|
+
return decideThirdKey(facts.publication);
|
|
155
|
+
switch (code) {
|
|
156
|
+
case 'goal_satisfied':
|
|
157
|
+
// Both keys turned inside the Start. The controller does not re-check —
|
|
158
|
+
// it has no evaluator and no KEY 2 — it reports what the Start decided.
|
|
159
|
+
return { state: 'satisfied', because: 'the goal was met at this version' };
|
|
160
|
+
case 'human_required':
|
|
161
|
+
return { state: 'human_required', because: 'only a person can move this forward' };
|
|
162
|
+
case 'adaptive_budget_exhausted':
|
|
163
|
+
// NOT the Start budget. The plan was rethought as often as one version
|
|
164
|
+
// allows and the goal is still unmet; the grant may have Starts left, and
|
|
165
|
+
// recording the wrong reason would tell a person they had run out of
|
|
166
|
+
// something they had not.
|
|
167
|
+
return {
|
|
168
|
+
state: 'human_required',
|
|
169
|
+
because: 'the plan was rethought as often as this version allows and the goal is still unmet',
|
|
170
|
+
};
|
|
171
|
+
case 'goal_superseded':
|
|
172
|
+
return { state: 'superseded', because: 'the goal moved to a later version' };
|
|
173
|
+
case 'goal_abandoned':
|
|
174
|
+
return { state: 'abandoned', because: 'the goal was given up on' };
|
|
175
|
+
case 'evaluator_repository_changed':
|
|
176
|
+
// A safety stop. The evaluator may have written to the tree, and this
|
|
177
|
+
// machine cannot tell whether it did or a person did. Retrying would
|
|
178
|
+
// repeat the breach if it was the evaluator.
|
|
179
|
+
return {
|
|
180
|
+
state: 'human_required',
|
|
181
|
+
because: 'the repository changed while the goal was being evaluated',
|
|
182
|
+
};
|
|
183
|
+
case 'coverage_incomplete':
|
|
184
|
+
/**
|
|
185
|
+
* 🔴 NOT `satisfied`, AND THAT IS THE ENTIRE POINT OF D3.
|
|
186
|
+
*
|
|
187
|
+
* The work was delivered and checked — both keys inside the Start turned.
|
|
188
|
+
* What did not turn is the fourth: a MANDATORY requirement the goal named
|
|
189
|
+
* is not covered. Recording this as `satisfied` would let the controller
|
|
190
|
+
* close a pursuit on exactly the claim charter §5 decision 3 forbids.
|
|
191
|
+
*
|
|
192
|
+
* `human_required` rather than a retry, because the two ways forward —
|
|
193
|
+
* more work, or a person attesting what is already there — are both
|
|
194
|
+
* decisions this controller must not take on its own. The refusal names
|
|
195
|
+
* which requirements and why each one, so the person is not left guessing.
|
|
196
|
+
*/
|
|
197
|
+
return {
|
|
198
|
+
state: 'human_required',
|
|
199
|
+
because: 'the work was delivered, but a mandatory requirement this goal names is not covered',
|
|
200
|
+
};
|
|
201
|
+
case 'run_refused':
|
|
202
|
+
// Deliberately not a claim about the goal. Three unrelated situations
|
|
203
|
+
// produce it, and none of them is "finished" — a person should look.
|
|
204
|
+
return { state: 'human_required', because: 'the run refused and did not say the goal was met' };
|
|
205
|
+
default: {
|
|
206
|
+
const never = code;
|
|
207
|
+
throw new Error(`no controller decision for refusal code ${String(never)}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* ONE TICK. ONE ACTION.
|
|
213
|
+
*
|
|
214
|
+
* The order of the questions is the safety argument:
|
|
215
|
+
*
|
|
216
|
+
* Local terminal truth first, so a machine that already knows the pursuit is
|
|
217
|
+
* over stops without asking anybody's permission to stop.
|
|
218
|
+
*
|
|
219
|
+
* Then the clock, which the machine owns a copy of and can check offline.
|
|
220
|
+
*
|
|
221
|
+
* Then whatever is already in progress — because reading progress needs no
|
|
222
|
+
* authority, and because acting on a Start that already exists is never
|
|
223
|
+
* spending anything new.
|
|
224
|
+
*
|
|
225
|
+
* Only then reconciliation, which gates everything that COSTS: reserving an
|
|
226
|
+
* ordinal and executing one. A person can cancel between a reservation and
|
|
227
|
+
* its execution, so both are gated, not just the first.
|
|
228
|
+
*/
|
|
229
|
+
function decideAutonomyTick(facts) {
|
|
230
|
+
if (facts.localState !== 'authorized') {
|
|
231
|
+
// Over locally. The only thing left is telling the server, and only if it
|
|
232
|
+
// has not already been told — a projection that kept retrying against a
|
|
233
|
+
// server that agrees would be a tick that never goes quiet.
|
|
234
|
+
if (facts.endingRecorded !== true) {
|
|
235
|
+
if (facts.serverKnowsItEnded === false) {
|
|
236
|
+
return {
|
|
237
|
+
kind: 'project-terminal',
|
|
238
|
+
state: facts.localState,
|
|
239
|
+
because: `this pursuit ended as ${facts.localState}`,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
if (facts.serverKnowsItEnded === true) {
|
|
243
|
+
// IT GOT THERE FIRST. Perhaps a person cancelled while this machine was
|
|
244
|
+
// deciding it was satisfied; perhaps an earlier report arrived and its
|
|
245
|
+
// answer was lost. Either way there is nothing left to tell anybody,
|
|
246
|
+
// and the local conclusion is left exactly as it was — what this
|
|
247
|
+
// machine concluded is history, and rewriting it to match would erase
|
|
248
|
+
// what actually happened here.
|
|
249
|
+
return {
|
|
250
|
+
kind: 'accept-server-ending',
|
|
251
|
+
state: facts.localState,
|
|
252
|
+
because: `the server already knows this pursuit ended`,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return { kind: 'wait', because: `this pursuit is already ${facts.localState}` };
|
|
257
|
+
}
|
|
258
|
+
// The machine's own copy of the ceiling. Checked before the server is asked
|
|
259
|
+
// so that an expired grant stops even with the network down.
|
|
260
|
+
const expires = Date.parse(facts.expiresAt);
|
|
261
|
+
if (Number.isNaN(expires)) {
|
|
262
|
+
return { kind: 'hold', because: 'the expiry on this grant cannot be read' };
|
|
263
|
+
}
|
|
264
|
+
if (expires <= facts.now) {
|
|
265
|
+
return {
|
|
266
|
+
kind: 'terminal',
|
|
267
|
+
state: 'budget_exhausted',
|
|
268
|
+
because: 'the time this grant was given has run out',
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
// A BUDGET THAT CANNOT BE BELIEVED CANNOT BOUND ANYTHING.
|
|
272
|
+
//
|
|
273
|
+
// Checked before anything is spent and before anything is waited for: a
|
|
274
|
+
// forged or mutilated receipt is the one condition where carrying on would
|
|
275
|
+
// mean spending a person's Starts against a count that is not theirs. Waiting
|
|
276
|
+
// would not help — the bytes will not change — so this stops and says so.
|
|
277
|
+
if (facts.recordsDamaged !== undefined) {
|
|
278
|
+
return {
|
|
279
|
+
kind: 'terminal',
|
|
280
|
+
state: 'human_required',
|
|
281
|
+
because: `the record of what this grant has spent cannot be trusted — ${facts.recordsDamaged}`,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
const ordinal = facts.unfinished[0];
|
|
285
|
+
// ── something is already under way ────────────────────────────────────────
|
|
286
|
+
if (ordinal !== undefined) {
|
|
287
|
+
const progress = facts.attempt;
|
|
288
|
+
if (progress === undefined) {
|
|
289
|
+
return { kind: 'hold', because: `nothing is known about Start ${ordinal}` };
|
|
290
|
+
}
|
|
291
|
+
switch (progress.kind) {
|
|
292
|
+
case 'unreadable':
|
|
293
|
+
// WEATHER, NOT DAMAGE. Something else is holding the file — an
|
|
294
|
+
// antivirus scanner, the search indexer, a backup agent — which on
|
|
295
|
+
// Windows is ordinary and clears in milliseconds. The bytes are not
|
|
296
|
+
// accused of anything, so nothing is concluded: no Start, no
|
|
297
|
+
// reservation, and above all no terminal. A pursuit ended over a
|
|
298
|
+
// file lock would be gone by the time the person read the message.
|
|
299
|
+
return { kind: 'hold', because: progress.because };
|
|
300
|
+
case 'corrupt':
|
|
301
|
+
// Never repaired, never guessed around. The receipts are the budget.
|
|
302
|
+
return {
|
|
303
|
+
kind: 'terminal',
|
|
304
|
+
state: 'human_required',
|
|
305
|
+
because: `the record of Start ${ordinal} cannot be trusted — ${progress.because}`,
|
|
306
|
+
};
|
|
307
|
+
case 'active':
|
|
308
|
+
// Somebody is working, or might be. `unknown` lands here too: a pid
|
|
309
|
+
// this machine cannot probe is not evidence of death, and a second
|
|
310
|
+
// executor started on a guess is the failure 6D2B exists to prevent.
|
|
311
|
+
return {
|
|
312
|
+
kind: 'wait',
|
|
313
|
+
because: `attempt ${progress.attempt} of Start ${ordinal} is ${progress.liveness}`,
|
|
314
|
+
};
|
|
315
|
+
case 'run-started': {
|
|
316
|
+
// The Start did its one job. Whether the RUN has ended is a local
|
|
317
|
+
// question and needs no server.
|
|
318
|
+
const ended = facts.runEnded;
|
|
319
|
+
if (ended === undefined)
|
|
320
|
+
return { kind: 'hold', because: 'the run was not looked up' };
|
|
321
|
+
if (!ended.ok)
|
|
322
|
+
return { kind: 'hold', because: ended.because };
|
|
323
|
+
if (!ended.ended) {
|
|
324
|
+
return { kind: 'wait', because: `run ${progress.runId} is still going` };
|
|
325
|
+
}
|
|
326
|
+
// The ONLY advance signal. Not a free lease, not a vanished child, not
|
|
327
|
+
// an acked command — a durable ending for this run.
|
|
328
|
+
return { kind: 'finish-ordinal', ordinal, runId: progress.runId };
|
|
329
|
+
}
|
|
330
|
+
case 'refused': {
|
|
331
|
+
// M5-2: with the third key in hand (`facts.publication`, supplied only
|
|
332
|
+
// when the caller integrates for itself), a met goal is `satisfied`
|
|
333
|
+
// only once the lane has PUBLISHED the run's branch. Until then the
|
|
334
|
+
// grant is held — re-examined next cadence, nothing spent — or, when
|
|
335
|
+
// the lane wants a rebase, this Start closes so the next one cuts
|
|
336
|
+
// from the moved base. Without the facts: today's mapping, byte for byte.
|
|
337
|
+
const decided = decideControllerRefusal(progress.code, facts.publication === undefined ? undefined : { publication: facts.publication });
|
|
338
|
+
if ('hold' in decided)
|
|
339
|
+
return { kind: 'wait', because: decided.hold };
|
|
340
|
+
if ('next' in decided)
|
|
341
|
+
return { kind: 'finish-ordinal', ordinal, runId: '' };
|
|
342
|
+
if ((0, core_1.isContinuableRefusal)(progress.code)) {
|
|
343
|
+
// Continuable means this Start is over and the pursuit is not. The
|
|
344
|
+
// ordinal still closes; a LATER tick reserves the next one, because
|
|
345
|
+
// one tick is one transition.
|
|
346
|
+
return { kind: 'finish-ordinal', ordinal, runId: '' };
|
|
347
|
+
}
|
|
348
|
+
return {
|
|
349
|
+
kind: 'terminal',
|
|
350
|
+
state: decided.state,
|
|
351
|
+
because: decided.because,
|
|
352
|
+
code: progress.code,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
case 'exhausted':
|
|
356
|
+
// Three claimed attempts and not one durable outcome. Something about
|
|
357
|
+
// this machine is stopping the work from starting, and three more
|
|
358
|
+
// spawns would not find out what.
|
|
359
|
+
return {
|
|
360
|
+
kind: 'terminal',
|
|
361
|
+
state: 'human_required',
|
|
362
|
+
because: `Start ${ordinal} was attempted ${progress.attempts} times and never began`,
|
|
363
|
+
};
|
|
364
|
+
case 'none':
|
|
365
|
+
case 'retryable': {
|
|
366
|
+
// The one place a reserved ordinal is actually executed — and it is
|
|
367
|
+
// gated on the server just as reserving is. A person can cancel
|
|
368
|
+
// between a reservation and its execution, and the budget being
|
|
369
|
+
// already spent is not permission to spend their evening too.
|
|
370
|
+
const gate = gateOn(facts.reconciliation, facts.humanHold, facts.approvalGate, facts.loopSafety, facts.programme === true);
|
|
371
|
+
if (gate)
|
|
372
|
+
return gate;
|
|
373
|
+
const attempt = progress.kind === 'none' ? 1 : progress.nextAttempt;
|
|
374
|
+
return {
|
|
375
|
+
kind: 'execute-attempt',
|
|
376
|
+
ordinal,
|
|
377
|
+
requestId: facts.requestIdFor(ordinal),
|
|
378
|
+
attempt,
|
|
379
|
+
// Programme mode: a gate that would have held, and did not, is a
|
|
380
|
+
// decision this Start continues from. The tick reads which.
|
|
381
|
+
...(facts.programme === true &&
|
|
382
|
+
facts.approvalGate !== undefined &&
|
|
383
|
+
(0, core_1.approvalHold)(facts.approvalGate) !== null &&
|
|
384
|
+
(0, core_1.continuationHold)(facts.approvalGate) === null
|
|
385
|
+
? { fromDecision: true }
|
|
386
|
+
: {}),
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
default: {
|
|
390
|
+
const never = progress;
|
|
391
|
+
throw new Error(`no controller decision for progress ${String(never)}`);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// ── nothing under way: may another Start be bought? ───────────────────────
|
|
396
|
+
if (facts.startsConsumed >= facts.maxStarts) {
|
|
397
|
+
return {
|
|
398
|
+
kind: 'terminal',
|
|
399
|
+
state: 'budget_exhausted',
|
|
400
|
+
because: `all ${facts.maxStarts} Starts of this grant have been spent`,
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
const gate = gateOn(facts.reconciliation, facts.humanHold, facts.approvalGate, facts.loopSafety, facts.programme === true);
|
|
404
|
+
if (gate)
|
|
405
|
+
return gate;
|
|
406
|
+
return { kind: 'reserve-ordinal', ordinal: facts.startsConsumed + 1 };
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Whether the server currently permits spending anything, or why not.
|
|
410
|
+
*
|
|
411
|
+
* Returns the action to take INSTEAD, or null when the way is clear. Written
|
|
412
|
+
* once and used by both spending paths so that reserving and executing can
|
|
413
|
+
* never come to different conclusions about the same answer.
|
|
414
|
+
*/
|
|
415
|
+
function gateOn(r, hold, approval, loopSafety, programme = false) {
|
|
416
|
+
/**
|
|
417
|
+
* HUMAN AUTHORITY FIRST, and reported ahead of a person's own pause.
|
|
418
|
+
*
|
|
419
|
+
* Both hold, so nothing about safety turns on the order. What turns on it is
|
|
420
|
+
* which sentence a person is shown, and this one is the more useful: a pause
|
|
421
|
+
* is cleared by resuming, and an outstanding approval is still there
|
|
422
|
+
* afterwards. Saying "paused" while the real blocker survives the resume
|
|
423
|
+
* would send somebody to press a button that changes nothing.
|
|
424
|
+
*
|
|
425
|
+
* EVERY ARM BUT `none` HOLDS, including the answered ones. A person who
|
|
426
|
+
* denied a deployment has not authorised this machine to spend their night
|
|
427
|
+
* trying something else — resuming is their next act, not a consequence of
|
|
428
|
+
* their last one. `approvalHold` is where that is decided, once.
|
|
429
|
+
*/
|
|
430
|
+
/**
|
|
431
|
+
* BUT A GRANT THE SERVER HAS ALREADY ENDED IS OVER, HELD OR NOT (M6-4).
|
|
432
|
+
*
|
|
433
|
+
* Every arm below holds, and the holds are ordered by which sentence a
|
|
434
|
+
* person should see. An ending is not a hold: the server has already said
|
|
435
|
+
* this pursuit is finished — a person cancelled it on the phone, the goal
|
|
436
|
+
* was met, the budget ran out, the goal moved on — and no pause, stop or
|
|
437
|
+
* open question can make it live again. Answering the holds first was
|
|
438
|
+
* observed live (M6-3): a grant cancelled on the phone stayed `authorized`
|
|
439
|
+
* on the machine, and in `looply goal`, until somebody tapped resume,
|
|
440
|
+
* because the stop was answered before the server was looked at. Nothing
|
|
441
|
+
* could be spent meanwhile, so what was wrong was the record, not the
|
|
442
|
+
* spending — and the record is what the person reads.
|
|
443
|
+
*
|
|
444
|
+
* `unreachable` is NOT an ending and stays below: a person who paused
|
|
445
|
+
* should hear "paused" when the server merely cannot be reached. A version
|
|
446
|
+
* `mismatch` stays below too (a stated limit of M6-4, not a decision).
|
|
447
|
+
*/
|
|
448
|
+
if (r.kind === 'ended')
|
|
449
|
+
return gateOnServer(r);
|
|
450
|
+
// PROGRAMME MODE, slice 1 (M6-7): under the opt-in the question is core's
|
|
451
|
+
// `continuationHold` — a valid decision does not hold — instead of
|
|
452
|
+
// `approvalHold`. Both are conclusions; this reducer keeps no vocabulary.
|
|
453
|
+
const outstanding = approval === undefined ? null : programme ? (0, core_1.continuationHold)(approval) : (0, core_1.approvalHold)(approval);
|
|
454
|
+
if (outstanding !== null) {
|
|
455
|
+
// NOT terminal, whatever the answer was. Even a denial leaves the pursuit
|
|
456
|
+
// alive: a grant ended here could not be resumed, and the person has
|
|
457
|
+
// refused one action rather than the whole night.
|
|
458
|
+
return { kind: 'hold', because: outstanding };
|
|
459
|
+
}
|
|
460
|
+
if (hold !== undefined) {
|
|
461
|
+
// NOT terminal. A person who paused may resume, and a grant ended here
|
|
462
|
+
// could not be resumed — they would have to authorize the whole thing
|
|
463
|
+
// again, having only asked the machine to wait.
|
|
464
|
+
//
|
|
465
|
+
// It gates BOTH spending paths, like every other gate here: an ordinal
|
|
466
|
+
// already bought is not permission to run it, because the tap that stopped
|
|
467
|
+
// things may have landed between the two.
|
|
468
|
+
return {
|
|
469
|
+
kind: 'hold',
|
|
470
|
+
because: hold.kind === 'stop'
|
|
471
|
+
? `stopped${hold.actor ? ` by ${hold.actor}` : ''} — waiting for a person to resume`
|
|
472
|
+
: `paused${hold.actor ? ` by ${hold.actor}` : ''} — waiting for a person to resume`,
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* AND FINALLY: HAS REPEATING STOPPED BEING WORTH ANYTHING?
|
|
477
|
+
*
|
|
478
|
+
* Reported AFTER the two human authorities and before the server, and the
|
|
479
|
+
* order is about which sentence a person is shown rather than about safety —
|
|
480
|
+
* every arm here holds. A person who paused, or who has been asked a
|
|
481
|
+
* question, should hear about that first: those are things they can act on
|
|
482
|
+
* now, and a stuck detector's explanation is still true afterwards.
|
|
483
|
+
*
|
|
484
|
+
* NOT terminal, and that is the whole distinction the phase rests on. A
|
|
485
|
+
* safety hold is not a Goal failure and not a Goal completion: the pursuit
|
|
486
|
+
* stays alive, and one explicit Start from a person spends it. Ending the
|
|
487
|
+
* grant here would turn "this is not working" into "you may never try again".
|
|
488
|
+
*/
|
|
489
|
+
if (loopSafety?.held === true) {
|
|
490
|
+
return { kind: 'hold', because: loopSafety.because };
|
|
491
|
+
}
|
|
492
|
+
return gateOnServer(r);
|
|
493
|
+
}
|
|
494
|
+
function gateOnServer(r) {
|
|
495
|
+
switch (r.kind) {
|
|
496
|
+
case 'active':
|
|
497
|
+
return null;
|
|
498
|
+
case 'ended':
|
|
499
|
+
// A person cancelled, the goal moved on, or it was given up. The machine
|
|
500
|
+
// stops locally now rather than waiting for a later projection to
|
|
501
|
+
// rediscover a fact it has already been told.
|
|
502
|
+
return { kind: 'terminal', state: r.state, because: r.because };
|
|
503
|
+
case 'mismatch':
|
|
504
|
+
// The server is describing a different grant than the one this machine
|
|
505
|
+
// holds. Not something to pick a side of.
|
|
506
|
+
return { kind: 'terminal', state: 'human_required', because: r.because };
|
|
507
|
+
case 'unreachable':
|
|
508
|
+
// NOT terminal. No new Start without current authorization, and no
|
|
509
|
+
// budget spent on a reservation that was never permitted.
|
|
510
|
+
return { kind: 'hold', because: r.because };
|
|
511
|
+
default: {
|
|
512
|
+
const never = r;
|
|
513
|
+
throw new Error(`no controller decision for reconciliation ${String(never)}`);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
//# sourceMappingURL=autonomy-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonomy-controller.js","sourceRoot":"","sources":["../src/autonomy-controller.ts"],"names":[],"mappings":"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"}
|