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,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.outcomeOf = outcomeOf;
|
|
4
|
+
exports.observationOf = observationOf;
|
|
5
|
+
exports.fixtureEffectDir = fixtureEffectDir;
|
|
6
|
+
exports.fixturePublishExecutor = fixturePublishExecutor;
|
|
7
|
+
exports.createGovernedBroker = createGovernedBroker;
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const core_1 = require("@looply/core");
|
|
10
|
+
const machine_store_1 = require("./machine-store");
|
|
11
|
+
function outcomeOf(result) {
|
|
12
|
+
switch (result.kind) {
|
|
13
|
+
case 'success':
|
|
14
|
+
return 'success';
|
|
15
|
+
case 'failure':
|
|
16
|
+
return 'failure';
|
|
17
|
+
case 'ambiguous':
|
|
18
|
+
return 'ambiguous';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function observationOf(result) {
|
|
22
|
+
switch (result.kind) {
|
|
23
|
+
case 'observed-success':
|
|
24
|
+
return 'observed-success';
|
|
25
|
+
case 'observed-not-executed':
|
|
26
|
+
return 'observed-not-executed';
|
|
27
|
+
case 'observed-failure':
|
|
28
|
+
return 'observed-failure';
|
|
29
|
+
case 'ambiguous':
|
|
30
|
+
return 'ambiguous';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/* ------------------------------------------------------- the fixture effect */
|
|
34
|
+
/**
|
|
35
|
+
* WHERE A BROKER-OWNED EFFECT LIVES.
|
|
36
|
+
*
|
|
37
|
+
* Under the machine's own Looply home, which is outside every project worktree
|
|
38
|
+
* and is one of the roots contained execution may never be granted. The
|
|
39
|
+
* contained tool worker confines every path to the project root — lexically and
|
|
40
|
+
* physically, resolving reparse points — so a model cannot read this, write it,
|
|
41
|
+
* or delete it, whatever it asks for.
|
|
42
|
+
*
|
|
43
|
+
* That is what makes the tests worth anything. A fixture effect written inside
|
|
44
|
+
* the repository would be an effect the thing under test can forge, and
|
|
45
|
+
* "exactly one effect happened" would be a claim about a file the model could
|
|
46
|
+
* have produced itself.
|
|
47
|
+
*/
|
|
48
|
+
function fixtureEffectDir(home) {
|
|
49
|
+
return (0, node_path_1.join)(home ?? (0, machine_store_1.machineHome)(), 'governed-fixture-effects');
|
|
50
|
+
}
|
|
51
|
+
/** What the effect IS, derived from the action rather than from the moment. */
|
|
52
|
+
function effectOf(request) {
|
|
53
|
+
const a = request.action;
|
|
54
|
+
return `${request.type}:${String(a['target'])}:${String(a['artifact'])}:${String(a['revision'])}`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The fixture executor for `fixture.publish`.
|
|
58
|
+
*
|
|
59
|
+
* Inert in the world and real on this machine: it produces a durable artifact
|
|
60
|
+
* outside the model's reach, which is exactly the property a real executor will
|
|
61
|
+
* need and the only one the tests can check independently.
|
|
62
|
+
*/
|
|
63
|
+
function fixturePublishExecutor(deps) {
|
|
64
|
+
const dir = fixtureEffectDir(deps.home);
|
|
65
|
+
const path = (executionId) => (0, node_path_1.join)(dir, `${executionId}.json`);
|
|
66
|
+
const read = async (executionId) => {
|
|
67
|
+
const text = await deps.fs.readFile(path(executionId));
|
|
68
|
+
if (text === null)
|
|
69
|
+
return null;
|
|
70
|
+
try {
|
|
71
|
+
const parsed = JSON.parse(text);
|
|
72
|
+
return typeof parsed?.executionId === 'string' ? parsed : null;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
return {
|
|
79
|
+
type: 'fixture.publish',
|
|
80
|
+
async execute(env) {
|
|
81
|
+
const record = {
|
|
82
|
+
executionId: env.executionId,
|
|
83
|
+
approvalId: env.approvalId,
|
|
84
|
+
claimId: env.claimId,
|
|
85
|
+
actionFingerprint: env.actionFingerprint,
|
|
86
|
+
effect: effectOf(env.actionRequest),
|
|
87
|
+
at: new Date(deps.now?.() ?? Date.now()).toISOString(),
|
|
88
|
+
};
|
|
89
|
+
await deps.fs.mkdir(dir);
|
|
90
|
+
try {
|
|
91
|
+
if (deps.attempt)
|
|
92
|
+
await deps.attempt(record);
|
|
93
|
+
await deps.fs.createExclusive(path(env.executionId), JSON.stringify(record, null, 2) + '\n');
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
if (e.code === 'EEXIST') {
|
|
97
|
+
// THIS EXECUTION HAS ALREADY HAPPENED. Not a failure and not a second
|
|
98
|
+
// effect: the same id was attempted twice and the filesystem refused
|
|
99
|
+
// the second, which is the answer rather than an error.
|
|
100
|
+
const held = await read(env.executionId);
|
|
101
|
+
if (held === null) {
|
|
102
|
+
const unreadable = {
|
|
103
|
+
kind: 'ambiguous',
|
|
104
|
+
safeReason: 'the effect exists and cannot be read',
|
|
105
|
+
evidence: {},
|
|
106
|
+
};
|
|
107
|
+
return unreadable;
|
|
108
|
+
}
|
|
109
|
+
const already = {
|
|
110
|
+
kind: 'success',
|
|
111
|
+
evidence: { effect: held.effect, at: held.at },
|
|
112
|
+
};
|
|
113
|
+
return already;
|
|
114
|
+
}
|
|
115
|
+
// ANYTHING ELSE IS AMBIGUOUS, NOT A FAILURE. The write may have landed
|
|
116
|
+
// and the acknowledgement may have been what was lost.
|
|
117
|
+
return {
|
|
118
|
+
kind: 'ambiguous',
|
|
119
|
+
safeReason: `the effect could not be confirmed (${e.message})`,
|
|
120
|
+
evidence: {},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return { kind: 'success', evidence: { effect: record.effect, at: record.at } };
|
|
124
|
+
},
|
|
125
|
+
async reconcile(env) {
|
|
126
|
+
let held;
|
|
127
|
+
try {
|
|
128
|
+
held = await read(env.executionId);
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
return { kind: 'ambiguous', safeReason: `the effect could not be read (${e.message})` };
|
|
132
|
+
}
|
|
133
|
+
if (held === null) {
|
|
134
|
+
// Looked, and there is nothing. The one arm that permits the same
|
|
135
|
+
// execution id to be attempted again.
|
|
136
|
+
return { kind: 'observed-not-executed' };
|
|
137
|
+
}
|
|
138
|
+
if (held.actionFingerprint !== env.actionFingerprint) {
|
|
139
|
+
// Something is there under this execution id and it is not this action.
|
|
140
|
+
// Not a success and certainly not a licence to write another.
|
|
141
|
+
return { kind: 'ambiguous', safeReason: 'the recorded effect is for a different action' };
|
|
142
|
+
}
|
|
143
|
+
return { kind: 'observed-success', evidence: { effect: held.effect, at: held.at } };
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/* ------------------------------------------------------------- the broker */
|
|
148
|
+
/**
|
|
149
|
+
* Route an envelope to the executor for its action, or refuse it.
|
|
150
|
+
*
|
|
151
|
+
* FAILS CLOSED THREE TIMES OVER. The action type must be one Looply has
|
|
152
|
+
* registered, it must classify as consequential, and the stored request must
|
|
153
|
+
* still verify against its own fingerprint. An unregistered type is refused
|
|
154
|
+
* rather than assumed harmless — that is the branch that stops a tool added
|
|
155
|
+
* next year from executing simply because nothing has classified it yet.
|
|
156
|
+
*
|
|
157
|
+
* A refusal here is `failure`, not `ambiguous`, and that is correct rather than
|
|
158
|
+
* convenient: nothing was attempted, so no effect can exist, and saying so
|
|
159
|
+
* definitely is what lets the pursuit plan around it instead of holding.
|
|
160
|
+
*/
|
|
161
|
+
function createGovernedBroker(executors) {
|
|
162
|
+
const byType = new Map(executors.map((e) => [e.type, e]));
|
|
163
|
+
const refuse = (why) => ({ kind: 'failure', safeReason: why, evidence: {} });
|
|
164
|
+
const executorFor = (env) => {
|
|
165
|
+
if (!(0, core_1.isActionType)(env.actionType))
|
|
166
|
+
return `no such action: ${String(env.actionType)}`;
|
|
167
|
+
if ((0, core_1.classifyAction)(env.actionType) !== 'consequential') {
|
|
168
|
+
return `${env.actionType} is not a consequential action`;
|
|
169
|
+
}
|
|
170
|
+
if (env.actionRequest.fingerprint !== env.actionFingerprint) {
|
|
171
|
+
return 'the action does not match the fingerprint this execution is for';
|
|
172
|
+
}
|
|
173
|
+
if (!(0, core_1.verifyActionRequest)(env.actionRequest)) {
|
|
174
|
+
return 'the action did not survive its own fingerprint check';
|
|
175
|
+
}
|
|
176
|
+
const executor = byType.get(env.actionType);
|
|
177
|
+
return executor ?? `nothing here can carry out ${env.actionType}`;
|
|
178
|
+
};
|
|
179
|
+
return {
|
|
180
|
+
async execute(env) {
|
|
181
|
+
const found = executorFor(env);
|
|
182
|
+
if (typeof found === 'string')
|
|
183
|
+
return refuse(found);
|
|
184
|
+
return found.execute(env);
|
|
185
|
+
},
|
|
186
|
+
async reconcile(env) {
|
|
187
|
+
const found = executorFor(env);
|
|
188
|
+
if (typeof found === 'string') {
|
|
189
|
+
// Nothing could have run it, so nothing can have happened.
|
|
190
|
+
return { kind: 'observed-not-executed' };
|
|
191
|
+
}
|
|
192
|
+
return found.reconcile(env);
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=governed-broker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-broker.js","sourceRoot":"","sources":["../src/governed-broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import type { ServerApprovalRow, ServerExecution, ServerExecutionEnvelope } from './server-client';
|
|
2
|
+
import { type GovernedApprovals } from './governed-approvals';
|
|
3
|
+
import { type BrokerEvidence, type GovernedActionBroker } from './governed-broker';
|
|
4
|
+
import { type BrokerOutcome } from '@looply/core';
|
|
5
|
+
import { type PublishPolicy } from './config';
|
|
6
|
+
/**
|
|
7
|
+
* TURNING ONE PERSON'S YES INTO ONE THING ACTUALLY HAPPENING.
|
|
8
|
+
*
|
|
9
|
+
* This runs BEFORE any model reasoning, and that ordering is the product
|
|
10
|
+
* decision it exists for. If a model asked to publish an artifact and somebody
|
|
11
|
+
* approved it, the next run should not open by asking the model what it would
|
|
12
|
+
* like to do — the exact thing a person authorised is already known, and the
|
|
13
|
+
* only honest first act is to do it.
|
|
14
|
+
*
|
|
15
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
16
|
+
* IT LIVES HERE RATHER THAN IN `run-cmd` ON PURPOSE
|
|
17
|
+
*
|
|
18
|
+
* A guard written at 7B4-B asserts that the stopping path — `run-approval`,
|
|
19
|
+
* `round-runner`, `pending-action` and `run-cmd` — contains no claim
|
|
20
|
+
* vocabulary at all. That guard is still right and still passing, and this
|
|
21
|
+
* module is why: every word about claims, execution ids and fingerprints is in
|
|
22
|
+
* here, and the composition root calls one function and reads a typed answer.
|
|
23
|
+
* A prehook inlined into `run-cmd` would have meant deleting the guard.
|
|
24
|
+
*
|
|
25
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
26
|
+
* ARGV IS TRANSPORT AND NEVER AUTHORITY
|
|
27
|
+
*
|
|
28
|
+
* The run is told an approval id on its command line. That, alone, proves
|
|
29
|
+
* nothing: anybody who can type can type an id. What makes it authority is a
|
|
30
|
+
* durable chain the daemon wrote before this process existed —
|
|
31
|
+
*
|
|
32
|
+
* explicit Start command C
|
|
33
|
+
* → the Start gate reserves the approval under `requestId = C.id`
|
|
34
|
+
* → the daemon spawns the run with `--command-id C.id`
|
|
35
|
+
* → this checks that the reservation names THIS run's Start
|
|
36
|
+
*
|
|
37
|
+
* — so `looply run --governed-approval apv_x` typed at a terminal reaches
|
|
38
|
+
* nothing. There is no reservation naming its Start, and there is no way for
|
|
39
|
+
* this module to make one.
|
|
40
|
+
*
|
|
41
|
+
* THE HONEST LIMIT: somebody with a shell on this machine already holds the
|
|
42
|
+
* machine credential and could read the reservation to copy a request id. That
|
|
43
|
+
* is not the boundary being defended. The boundary is the MODEL, which cannot
|
|
44
|
+
* reach `.looply/state` at all, cannot spawn a run, and cannot see this file.
|
|
45
|
+
*
|
|
46
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
47
|
+
* AND IT LOOKS BEFORE IT ACTS, EVERY TIME
|
|
48
|
+
*
|
|
49
|
+
* `reconcile` runs before `execute`, unconditionally — not only after a crash,
|
|
50
|
+
* because a process cannot know it is the one that crashed. That single
|
|
51
|
+
* ordering closes both dangerous windows at once: an execution recorded but not
|
|
52
|
+
* attempted, and an effect produced whose result was never written. The only
|
|
53
|
+
* observation that permits acting is the one that says nothing happened.
|
|
54
|
+
*/
|
|
55
|
+
/** What the run is told about a governed action that has been carried out. */
|
|
56
|
+
export interface GovernedActionResultContext {
|
|
57
|
+
readonly approvalId: string;
|
|
58
|
+
readonly executionId: string;
|
|
59
|
+
readonly actionType: string;
|
|
60
|
+
readonly actionFingerprint: string;
|
|
61
|
+
readonly outcome: 'succeeded' | 'failed';
|
|
62
|
+
/** The one line the person was shown, from the server's own formatter. */
|
|
63
|
+
readonly display: string;
|
|
64
|
+
readonly safeEvidence: BrokerEvidence;
|
|
65
|
+
}
|
|
66
|
+
export type GovernedOutcome =
|
|
67
|
+
/** Nothing governed was asked of this run. Carry on as an ordinary run. */
|
|
68
|
+
{
|
|
69
|
+
readonly kind: 'none';
|
|
70
|
+
}
|
|
71
|
+
/** It was carried out and this run owns the answer. Reasoning may continue. */
|
|
72
|
+
| {
|
|
73
|
+
readonly kind: 'done';
|
|
74
|
+
readonly result: GovernedActionResultContext;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The run must stop, and the pursuit stays alive.
|
|
78
|
+
*
|
|
79
|
+
* `ambiguous` is the case this exists for: nobody can say whether the effect
|
|
80
|
+
* happened, so there is nothing to tell a model and nothing safe to retry.
|
|
81
|
+
*/
|
|
82
|
+
| {
|
|
83
|
+
readonly kind: 'stop';
|
|
84
|
+
readonly because: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Nothing was attempted and nothing may be. A plain failure, not a refusal
|
|
88
|
+
* code: every `RunRefusalCode` is terminal, and ending a person's grant
|
|
89
|
+
* because a governed step could not start would be the wrong answer.
|
|
90
|
+
*/
|
|
91
|
+
| {
|
|
92
|
+
readonly kind: 'refused';
|
|
93
|
+
readonly because: string;
|
|
94
|
+
};
|
|
95
|
+
/** The client surface this needs. Injected so a test can fail any single call. */
|
|
96
|
+
export interface GovernedServer {
|
|
97
|
+
projectApproval(projectId: string, approvalId: string): Promise<ServerApprovalRow>;
|
|
98
|
+
claimApproval(projectId: string, approvalId: string, input: {
|
|
99
|
+
claimRef: string;
|
|
100
|
+
expectedFingerprint: string;
|
|
101
|
+
expectedVersion: number;
|
|
102
|
+
}): Promise<ServerApprovalRow & {
|
|
103
|
+
claimId: string | null;
|
|
104
|
+
version: number;
|
|
105
|
+
}>;
|
|
106
|
+
beginExecution(projectId: string, approvalId: string, input: {
|
|
107
|
+
claimId: string;
|
|
108
|
+
expectedFingerprint: string;
|
|
109
|
+
}): Promise<ServerExecutionEnvelope>;
|
|
110
|
+
settleExecution(projectId: string, executionId: string, input: {
|
|
111
|
+
claimId: string;
|
|
112
|
+
expectedVersion: number;
|
|
113
|
+
expectedFingerprint: string;
|
|
114
|
+
outcome: BrokerOutcome;
|
|
115
|
+
reason?: string;
|
|
116
|
+
evidence?: BrokerEvidence;
|
|
117
|
+
}): Promise<ServerExecution>;
|
|
118
|
+
assignExecutionResult(projectId: string, executionId: string, runId: string): Promise<ServerExecution>;
|
|
119
|
+
acknowledgeExecutionResult(projectId: string, executionId: string, runId: string): Promise<ServerExecution>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The governed surface, narrowed out of the full client.
|
|
123
|
+
*
|
|
124
|
+
* BUILT HERE RATHER THAN AT THE CALL SITE, and that is not tidiness. The
|
|
125
|
+
* composition root is on a list of files asserted to contain no claim
|
|
126
|
+
* vocabulary at all, and writing these six lines there would put the words back
|
|
127
|
+
* into exactly the file the guard exists to keep clean. It also keeps the
|
|
128
|
+
* narrowing discipline `openGoalServer` already follows: the client itself
|
|
129
|
+
* never leaves the function that made it.
|
|
130
|
+
*/
|
|
131
|
+
export declare function governedServerOf(client: {
|
|
132
|
+
projectApproval: GovernedServer['projectApproval'];
|
|
133
|
+
claimApproval: GovernedServer['claimApproval'];
|
|
134
|
+
beginExecution: GovernedServer['beginExecution'];
|
|
135
|
+
settleExecution: GovernedServer['settleExecution'];
|
|
136
|
+
assignExecutionResult: GovernedServer['assignExecutionResult'];
|
|
137
|
+
acknowledgeExecutionResult: GovernedServer['acknowledgeExecutionResult'];
|
|
138
|
+
}): GovernedServer;
|
|
139
|
+
export interface GovernedRunDeps {
|
|
140
|
+
readonly server: GovernedServer;
|
|
141
|
+
readonly broker: GovernedActionBroker;
|
|
142
|
+
readonly reservations: Pick<GovernedApprovals, 'reservationOf'>;
|
|
143
|
+
readonly log?: (line: string) => void;
|
|
144
|
+
}
|
|
145
|
+
export interface GovernedRunInput {
|
|
146
|
+
readonly projectId: string;
|
|
147
|
+
readonly goalId: string;
|
|
148
|
+
readonly goalVersion: number;
|
|
149
|
+
readonly runId: string;
|
|
150
|
+
/** The Start that spawned this run, from the trusted daemon-to-child wire. */
|
|
151
|
+
readonly commandId: string | undefined;
|
|
152
|
+
/** What argv said. Proves nothing on its own. */
|
|
153
|
+
readonly approvalId: string;
|
|
154
|
+
/**
|
|
155
|
+
* Whether this project permits Looply to publish. Absent means it does not.
|
|
156
|
+
*
|
|
157
|
+
* A PRE-CLAIM PREDICATE, like expiry and goal context — and for exactly the
|
|
158
|
+
* same reason they are. Before a claim it decides whether authority may be
|
|
159
|
+
* TAKEN, and a project that has turned publishing off is entitled to stop an
|
|
160
|
+
* approval it granted yesterday from being acted on today.
|
|
161
|
+
*
|
|
162
|
+
* After a claim it decides NOTHING. The machine holding one may already be
|
|
163
|
+
* between the claim and the push, and a policy flipped in that window cannot
|
|
164
|
+
* reach back through it — refusing there would strand authority legitimately
|
|
165
|
+
* taken, with an effect possibly already in the world and nothing able to
|
|
166
|
+
* record it. That is the dead claim C1 exists to prevent, and a standing
|
|
167
|
+
* setting is no more entitled to create one than a passing clock is.
|
|
168
|
+
*/
|
|
169
|
+
readonly publishPolicy?: PublishPolicy;
|
|
170
|
+
}
|
|
171
|
+
export declare function runGovernedAction(deps: GovernedRunDeps, input: GovernedRunInput): Promise<GovernedOutcome>;
|
|
172
|
+
/**
|
|
173
|
+
* What a resumed model is told, as plain lines.
|
|
174
|
+
*
|
|
175
|
+
* PROSE, AND DELIBERATELY NOT JSON, for the reason `describeResolution` gives:
|
|
176
|
+
* the implementer's transcript is scanned for a structured declaration and the
|
|
177
|
+
* scan takes the FIRST one it finds, so a prompt containing something shaped
|
|
178
|
+
* like a request is a decoy an echoing model files for real.
|
|
179
|
+
*/
|
|
180
|
+
/**
|
|
181
|
+
* WHAT A GUARANTEE RESTS ON, SAID BESIDE THE GUARANTEE (the audit’s H-06).
|
|
182
|
+
*
|
|
183
|
+
* 🔴 THE TWO ARMS OF THIS SENTENCE DISAGREED ABOUT SCOPE. The failure arm says
|
|
184
|
+
* "nothing was changed outside this machine" and scopes itself; the success arm
|
|
185
|
+
* said "it happened exactly once" and named nothing — and the success arm is the
|
|
186
|
+
* one a model acts on, because it ends "do not ask for it a second time".
|
|
187
|
+
*
|
|
188
|
+
* ⚠️ AND WHAT MAKES IT TRUE IS NOT THIS MACHINE. The audit reads the fixture
|
|
189
|
+
* executor's `createExclusive` and calls exactly-once local, which invites the
|
|
190
|
+
* conclusion that two machines could each do it once. They cannot: a claim by a
|
|
191
|
+
* second machine is refused by the server with `already_claimed`, behind a
|
|
192
|
+
* unique index, and its idempotent arm is reached only by the same machine under
|
|
193
|
+
* its own key. Two fences at two layers — the server stops a second MACHINE, the
|
|
194
|
+
* executor's own record stops the same machine doing it twice.
|
|
195
|
+
*
|
|
196
|
+
* ⚠️ IT CLAIMS NO MORE THAN THAT. It does not say the effect was verified against
|
|
197
|
+
* a remote — only `git.push` can say that, and it says it in its own evidence —
|
|
198
|
+
* and it promises nothing about a machine that never claimed.
|
|
199
|
+
*/
|
|
200
|
+
export declare const EVIDENCE_MAX_LINES = 6;
|
|
201
|
+
/** Bound on one value, for the reason every free field on a prompt has one. */
|
|
202
|
+
export declare const EVIDENCE_MAX_CHARS = 120;
|
|
203
|
+
/**
|
|
204
|
+
* The broker's own evidence, as lines in the shape this block already uses.
|
|
205
|
+
*
|
|
206
|
+
* 🔴 CARRIED HERE SINCE IT WAS WRITTEN AND READ BY NOTHING. `safeEvidence` is
|
|
207
|
+
* declared on the context, populated where the result is taken up, and shown by
|
|
208
|
+
* nobody — while for `git.push` it holds `remote`, `ref`, `sha` and the
|
|
209
|
+
* `observedSha` the executor actually read back: the observation that makes
|
|
210
|
+
* "exactly once" checkable rather than believable. Its own type calls it
|
|
211
|
+
* "bounded, deterministic where possible, and never secret".
|
|
212
|
+
*
|
|
213
|
+
* ⚠️ LINES, NEVER JSON. The block's own rule: the transcript is scanned for a
|
|
214
|
+
* structured declaration and the scan takes the first one it finds, so anything
|
|
215
|
+
* here shaped like a request is a decoy an echoing model files for real. This
|
|
216
|
+
* uses the same ` key : value` shape as the two lines above it and no other.
|
|
217
|
+
*/
|
|
218
|
+
export declare function evidenceLines(e: BrokerEvidence): string[];
|
|
219
|
+
export declare function describeGovernedResult(r: GovernedActionResultContext): string;
|
|
220
|
+
//# sourceMappingURL=governed-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-run.d.ts","sourceRoot":"","sources":["../src/governed-run.ts"],"names":[],"mappings":"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"}
|