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,519 @@
|
|
|
1
|
+
import { type TrailerInput } from '@looply/core';
|
|
2
|
+
/**
|
|
3
|
+
* The git driver.
|
|
4
|
+
*
|
|
5
|
+
* Every git interaction the round loop needs, behind one injected `exec` so the
|
|
6
|
+
* behaviour is testable without a repository. Two properties are load-bearing:
|
|
7
|
+
* a branch that already exists is refused, never reused (DESIGN §12 case 2), and
|
|
8
|
+
* the state directory survives both staging and the discard path's `clean -fd`
|
|
9
|
+
* (DESIGN §12 case 12) — explicitly, via pathspec and `-e`, not by trusting the
|
|
10
|
+
* target repo's `.gitignore` to mention `.looply`.
|
|
11
|
+
*/
|
|
12
|
+
export interface GitExecResult {
|
|
13
|
+
code: number;
|
|
14
|
+
stdout: string;
|
|
15
|
+
stderr: string;
|
|
16
|
+
}
|
|
17
|
+
export type GitExec = (args: readonly string[]) => Promise<GitExecResult>;
|
|
18
|
+
export declare class GitError extends Error {
|
|
19
|
+
}
|
|
20
|
+
/** The runner's own files; git must never stage them and never clean them. */
|
|
21
|
+
export declare const STATE_DIR = ".looply";
|
|
22
|
+
/**
|
|
23
|
+
* THE EXECUTION'S OWN STATE — one directory per checkout, one writer.
|
|
24
|
+
*
|
|
25
|
+
* Everything whose correctness rests on there being a single writer lives here:
|
|
26
|
+
* the run lease, `queue.json`'s whole-file rewrite, `status.json`'s single-run
|
|
27
|
+
* shape, `events.jsonl`'s in-memory `seq` counter. Those are correct BECAUSE
|
|
28
|
+
* one run owns one checkout, and they stay correct when a second run happens in
|
|
29
|
+
* a different one.
|
|
30
|
+
*/
|
|
31
|
+
export declare function executionStateDir(cwd: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* THE PROJECT'S STATE — one directory per repository, however many worktrees.
|
|
34
|
+
*
|
|
35
|
+
* 🔴 A LINKED WORKTREE IS THE SAME PROJECT, and the state whose invariant says
|
|
36
|
+
* "per project" must not follow the checkout. Otherwise isolating executions
|
|
37
|
+
* silently un-does safety rather than adding it:
|
|
38
|
+
*
|
|
39
|
+
* loop-safety history keyed by the state directory and the pursuit it
|
|
40
|
+
* watches, and the path half exists only as where the
|
|
41
|
+
* file sits — so a second worktree is a FRESH
|
|
42
|
+
* history. Both detectors
|
|
43
|
+
* need three observations and each run contributes
|
|
44
|
+
* one, so with a worktree per run they can never
|
|
45
|
+
* fire at all.
|
|
46
|
+
* exemption spend ledger single-use holds only because there is one
|
|
47
|
+
* `exemptions.json` per checkout. N checkouts make
|
|
48
|
+
* one granted row spendable N times — a rails bypass,
|
|
49
|
+
* not a bookkeeping detail.
|
|
50
|
+
* control.json the ONE channel the daemon, the run and the
|
|
51
|
+
* controller share about whether a person said stop.
|
|
52
|
+
* Split it and the stop button reaches one run.
|
|
53
|
+
* goals the daemon is the sole writer; a run reads.
|
|
54
|
+
*
|
|
55
|
+
* ⚠️ IDENTICAL TO `executionStateDir` IN THE ORDINARY CASE. In a normal checkout
|
|
56
|
+
* the main worktree IS the cwd, so both answer the same path and Simple Mode is
|
|
57
|
+
* byte-identical. They diverge only inside a linked worktree.
|
|
58
|
+
*
|
|
59
|
+
* ⚠️ FALLS BACK TO THE EXECUTION DIR when there is no repository or its metadata
|
|
60
|
+
* cannot be read — the pre-worktree behaviour, unchanged. `repoConfigTroubleAt`
|
|
61
|
+
* is the check that refuses on unreadable metadata; this is not that check.
|
|
62
|
+
*
|
|
63
|
+
* 🔴 AND THAT FALLBACK USED TO SWALLOW A CASE IT SHOULD NOT HAVE. A repository
|
|
64
|
+
* can have several worktrees and no main one — `clone --bare` plus two
|
|
65
|
+
* `worktree add`s — and there `mainWorktreeRoot` is null while the sharing is
|
|
66
|
+
* still required. The old code read null as "nothing to share" and put the
|
|
67
|
+
* project's state inside each checkout: a fresh loop-safety history per
|
|
68
|
+
* checkout, and one single-use exemption spendable once per checkout, with
|
|
69
|
+
* nothing said about it.
|
|
70
|
+
*
|
|
71
|
+
* For those, the shared state goes under `~/.looply/projects/<key>`, keyed by
|
|
72
|
+
* the common dir — the one identity every worktree of that repository agrees
|
|
73
|
+
* on. `~/.looply` is where this codebase already puts state that must survive
|
|
74
|
+
* the repository, and a bare repository has no tree to put it in anyway.
|
|
75
|
+
*
|
|
76
|
+
* ⚠️ AN ORDINARY CHECKOUT IS UNAFFECTED, and that is load-bearing for
|
|
77
|
+
* compatibility: `linkedRepoCommonDir` answers null unless the checkout is
|
|
78
|
+
* LINKED, so a single-worktree repository — bare or not — keeps the exact path
|
|
79
|
+
* it has always used and no existing state is orphaned.
|
|
80
|
+
*/
|
|
81
|
+
export declare function projectStateDir(cwd: string): string;
|
|
82
|
+
export declare class GitDriver {
|
|
83
|
+
private readonly exec;
|
|
84
|
+
constructor(exec: GitExec);
|
|
85
|
+
private run;
|
|
86
|
+
/**
|
|
87
|
+
* The pathspec that keeps `.looply` out of a stage — WHEN NAMING IT IS LEGAL.
|
|
88
|
+
*
|
|
89
|
+
* 🔴 `:(exclude).looply` IS A REFUSAL WHEN `.looply` IS ALREADY IGNORED, and
|
|
90
|
+
* that broke evidence gathering on every round of any project that gitignores
|
|
91
|
+
* it. Git rejects a pathspec that EXPLICITLY names an ignored path, and an
|
|
92
|
+
* exclusion names it:
|
|
93
|
+
*
|
|
94
|
+
* .looply not in .gitignore git add -N -- . :(exclude).looply exit 0
|
|
95
|
+
* .looply in .gitignore same command exit 1
|
|
96
|
+
* "The following paths are ignored by one of your .gitignore files"
|
|
97
|
+
*
|
|
98
|
+
* `advice.addIgnoredFile=false` only hides the hint; the exit code stays 1.
|
|
99
|
+
*
|
|
100
|
+
* ⚠️ AND IT IS A CATCH-22 WITHOUT THIS. Leave `.looply/` untracked and the run
|
|
101
|
+
* refuses to start on a dirty tree; gitignore it — the obvious fix, and the
|
|
102
|
+
* one a person reaches for — and every round's evidence fails instead.
|
|
103
|
+
* Measured live: a round whose gate was green and whose proof said `proven`
|
|
104
|
+
* recorded `evidence could not be gathered`.
|
|
105
|
+
*
|
|
106
|
+
* When the path is already ignored the exclusion is not merely illegal, it is
|
|
107
|
+
* REDUNDANT: git skips ignored paths under a `.` pathspec anyway. So the
|
|
108
|
+
* answer is to ask, and to drop it exactly when git is already doing the job.
|
|
109
|
+
*
|
|
110
|
+
* ⚠️ ASKED EVERY TIME, NOT MEMOISED. A round may edit `.gitignore`, and the
|
|
111
|
+
* direction that goes wrong is the one a cache would get wrong: believing
|
|
112
|
+
* `.looply` is ignored when it is no longer ignored stages the state
|
|
113
|
+
* directory into somebody's commit. One `check-ignore` is a few milliseconds.
|
|
114
|
+
*
|
|
115
|
+
* `check-ignore` only reads `.gitignore` and prints; it is in the same
|
|
116
|
+
* READ-ONLY family as `status` and `rev-parse`, and none of the forbidden
|
|
117
|
+
* verbs.
|
|
118
|
+
*/
|
|
119
|
+
private keepStateOut;
|
|
120
|
+
/** Create and switch to `name`. An existing branch of that name is a refusal. */
|
|
121
|
+
createBranch(name: string, from?: string): Promise<void>;
|
|
122
|
+
/** The sha of HEAD — recorded as the run's base before any round writes. */
|
|
123
|
+
headSha(): Promise<string>;
|
|
124
|
+
/**
|
|
125
|
+
* THE FIRST CONVERGENCE VERBS THIS DRIVER HAS EVER ISSUED.
|
|
126
|
+
*
|
|
127
|
+
* Until Phase 5 the complete list was add, cat-file, clean, commit, ls-tree,
|
|
128
|
+
* push, reset, rev-list, rev-parse, status, switch, worktree — no fetch, no
|
|
129
|
+
* merge, no rebase, no cherry-pick, no revert, no stash, no checkout, no tag,
|
|
130
|
+
* no remote, no branch -d, no notes, no gc, no bisect, no submodule. That was
|
|
131
|
+
* not an oversight; it was the whole safety argument, and it is why the three
|
|
132
|
+
* added here are the three that only ever READ or FAST-FORWARD.
|
|
133
|
+
*
|
|
134
|
+
* ⚠️ THERE IS STILL NO `merge`, NO `rebase` AND NO `cherry-pick`. Integration
|
|
135
|
+
* is a fast-forward or it is a refusal. A merge that had to combine two
|
|
136
|
+
* histories is the thing that can silently drop somebody's line, and
|
|
137
|
+
* "auto-resolving a merge conflict" is listed under **Never**.
|
|
138
|
+
*/
|
|
139
|
+
mergeBase(a: string, b: string): Promise<string | null>;
|
|
140
|
+
/**
|
|
141
|
+
* How far apart two refs are, counted rather than assumed.
|
|
142
|
+
*
|
|
143
|
+
* `--left-right --count` answers both directions in one call, so the two
|
|
144
|
+
* numbers are read at the SAME moment — asking twice would let a ref move in
|
|
145
|
+
* between and produce a pair that never simultaneously held.
|
|
146
|
+
*/
|
|
147
|
+
divergence(mine: string, theirs: string): Promise<{
|
|
148
|
+
ahead: number;
|
|
149
|
+
behind: number;
|
|
150
|
+
}>;
|
|
151
|
+
/**
|
|
152
|
+
* CREATE OR ADVANCE ONE OF LOOPLY'S OWN REFS — AND ONLY BY COMPARE-AND-SWAP.
|
|
153
|
+
*
|
|
154
|
+
* 🔴 THE FOURTH CONVERGENCE VERB, AND THE ONLY ONE THAT WRITES. Phase 5's
|
|
155
|
+
* integration queue has to move `looply/integration` forward, and until now
|
|
156
|
+
* this driver could not move a ref at all. What it must NOT become is a
|
|
157
|
+
* general `update-ref`: that is one typo away from moving `main`.
|
|
158
|
+
*
|
|
159
|
+
* Three narrowings, all of them enforced here rather than by convention:
|
|
160
|
+
*
|
|
161
|
+
* 1. THE NAME MUST BE LOOPLY'S. Anything not under `refs/heads/looply/` is
|
|
162
|
+
* refused before git is asked. A person's branch is theirs, and `main`
|
|
163
|
+
* is nobody's to move from here.
|
|
164
|
+
* 2. IT IS A COMPARE-AND-SWAP, ALWAYS. `git update-ref <ref> <new> <old>`
|
|
165
|
+
* fails if the ref is not still `old`, so a base that moved between
|
|
166
|
+
* validation and publication cannot be overwritten — git itself refuses,
|
|
167
|
+
* atomically, without this code having to re-read and hope. Creating a
|
|
168
|
+
* ref passes the all-zero oid as `old`, which is git's own way of saying
|
|
169
|
+
* "and it must not exist yet".
|
|
170
|
+
* 3. FAST-FORWARD ONLY. The caller must have established that `newSha` has
|
|
171
|
+
* `oldSha` as an ancestor; there is still no `merge`, `rebase` or
|
|
172
|
+
* `cherry-pick` in this file, so nothing here can combine two histories.
|
|
173
|
+
*
|
|
174
|
+
* ⚠️ GIT'S REFERENCE API, NOT A FILE WRITE. Writing `.git/refs/...` by hand
|
|
175
|
+
* would miss packed refs, the reflog and the lock — and would be a second,
|
|
176
|
+
* worse implementation of the compare-and-swap that is the whole point.
|
|
177
|
+
*
|
|
178
|
+
* Answers `false` when the swap was refused (the ref moved, or already
|
|
179
|
+
* existed); throws only when git could not be asked at all.
|
|
180
|
+
*/
|
|
181
|
+
compareAndSetRef(ref: string, newSha: string, oldSha: string | null): Promise<boolean>;
|
|
182
|
+
/** Local branches under a prefix, with their tips — the finished runs the lane may be offered (M5-1). */
|
|
183
|
+
listBranches(prefix: string): Promise<Array<{
|
|
184
|
+
name: string;
|
|
185
|
+
sha: string;
|
|
186
|
+
}>>;
|
|
187
|
+
/** Whether a ref exists at all. Integration may not have been cut yet. */
|
|
188
|
+
refExists(ref: string): Promise<boolean>;
|
|
189
|
+
/**
|
|
190
|
+
* WHAT THE REPOSITORY CONTAINS, as distinct from which commit produced it.
|
|
191
|
+
*
|
|
192
|
+
* ─────────────────────────────────────────────────────────────────────────
|
|
193
|
+
* A COMMIT SHA IS THE WRONG IDENTITY FOR "IS THIS THE SAME STATE AGAIN"
|
|
194
|
+
*
|
|
195
|
+
* A commit id covers the parent, the author, the message and the timestamp,
|
|
196
|
+
* so it differs on every commit even when the content is byte-identical.
|
|
197
|
+
* Loop safety needs to notice a pursuit moving A → B → A → B, and with commit
|
|
198
|
+
* ids that reads as four distinct states and no cycle is ever detectable.
|
|
199
|
+
*
|
|
200
|
+
* A tree id is the content. The same files reached twice by two different
|
|
201
|
+
* commits are ONE state, which is exactly the equality the detector needs.
|
|
202
|
+
*
|
|
203
|
+
* ⚠️ IT DESCRIBES THE COMMITTED TREE, NOT THE WORKING ONE. Uncommitted edits
|
|
204
|
+
* do not move it — the same limit `headSha` has. That is the honest reading
|
|
205
|
+
* for a Round that commits its work; a caller comparing dirty trees would
|
|
206
|
+
* need something else, and inventing one here would mean writing to the index
|
|
207
|
+
* (see `diff()`, which is not read-only despite its name).
|
|
208
|
+
*
|
|
209
|
+
* READ-ONLY. `rev-parse` resolves; it changes nothing.
|
|
210
|
+
*/
|
|
211
|
+
headTreeSha(): Promise<string>;
|
|
212
|
+
/**
|
|
213
|
+
* The tree a ref or commit points at — `headTreeSha` for any ref (F25: the lane
|
|
214
|
+
* judges coverage on the integration tip's tree). READ-ONLY, the same `rev-parse`.
|
|
215
|
+
*/
|
|
216
|
+
treeOf(ref: string): Promise<string>;
|
|
217
|
+
/**
|
|
218
|
+
* Whether `ancestor` is in `of`'s history (a commit is its own ancestor) — F31. READ-ONLY:
|
|
219
|
+
* `merge-base --is-ancestor` answers by exit code, 0 yes and 1 no; anything else is a fault.
|
|
220
|
+
*/
|
|
221
|
+
isAncestor(ancestor: string, of: string): Promise<boolean>;
|
|
222
|
+
/** The commit a ref points at (F27). READ-ONLY, the same `rev-parse`. */
|
|
223
|
+
commitOf(ref: string): Promise<string>;
|
|
224
|
+
/**
|
|
225
|
+
* Put HEAD on `sha`, detached — the tree a goal-met Start must judge (F27).
|
|
226
|
+
*
|
|
227
|
+
* ⚠️ `switch`, the verb this driver already uses, and never forced: `switch --detach`
|
|
228
|
+
* refuses when local changes would be lost, and the caller has already found the tree clean.
|
|
229
|
+
*/
|
|
230
|
+
switchDetached(sha: string): Promise<void>;
|
|
231
|
+
/**
|
|
232
|
+
* The branch HEAD is on, or `(detached)` when it is not on one.
|
|
233
|
+
*
|
|
234
|
+
* Recorded in the run lease as the branch the run was cut from. Nothing
|
|
235
|
+
* returns to it — run branches stack — so knowing where a run started is the
|
|
236
|
+
* only way a later process can tell an ordinary stacked branch from a tree
|
|
237
|
+
* somebody has since moved somewhere else entirely.
|
|
238
|
+
*/
|
|
239
|
+
/**
|
|
240
|
+
* Every tracked file at a revision, with its blob sha and size.
|
|
241
|
+
*
|
|
242
|
+
* 🔴 ENUMERATED FROM THE GIT INDEX, NEVER FROM THE FILESYSTEM, AND THAT ONE
|
|
243
|
+
* DECISION SETTLES FOUR SEPARATE PROBLEMS THE AUDIT FOUND.
|
|
244
|
+
*
|
|
245
|
+
* ignore rules git has already applied `.gitignore`. Nothing in this
|
|
246
|
+
* repository reads that file, and the one production skip
|
|
247
|
+
* list is three hardcoded basenames that would happily walk
|
|
248
|
+
* `dist/` and `coverage/` — build output that is by
|
|
249
|
+
* construction different on every machine.
|
|
250
|
+
* symlink escape the existing physical-path defence is a NAMED-PATH
|
|
251
|
+
* defence: it says nothing about an enumeration, so a
|
|
252
|
+
* directory walk inherits none of it. The git index cannot
|
|
253
|
+
* contain an entry outside the repository, so the escape is
|
|
254
|
+
* impossible here rather than guarded against.
|
|
255
|
+
* ordering `ls-tree` output is deterministic, unlike `readdir`.
|
|
256
|
+
* portability paths are already project-relative.
|
|
257
|
+
*
|
|
258
|
+
* `-r` recurses into subtrees; `-z` because a path may contain anything a
|
|
259
|
+
* newline could, and `-l` adds the size git already knows so nothing has to
|
|
260
|
+
* stat the working tree.
|
|
261
|
+
*/
|
|
262
|
+
listTree(treeIsh: string): Promise<Array<{
|
|
263
|
+
path: string;
|
|
264
|
+
blobSha: string;
|
|
265
|
+
bytes: number;
|
|
266
|
+
}>>;
|
|
267
|
+
/**
|
|
268
|
+
* The COMMITTED content of one blob.
|
|
269
|
+
*
|
|
270
|
+
* ⚠️ THE COMMITTED CONTENT, NOT THE WORKING TREE'S. An index describes a
|
|
271
|
+
* revision; reading the file from disk would describe whatever somebody has
|
|
272
|
+
* half-edited, and two machines would then disagree about a revision they
|
|
273
|
+
* both have.
|
|
274
|
+
*/
|
|
275
|
+
readBlob(blobSha: string): Promise<string>;
|
|
276
|
+
currentBranch(): Promise<string>;
|
|
277
|
+
/**
|
|
278
|
+
* Working-tree paths that differ from HEAD, with `.looply/**` filtered out —
|
|
279
|
+
* the runner's own state writes must never read as "the agent changed
|
|
280
|
+
* something", or the no-op branch becomes unreachable (DESIGN §2.4).
|
|
281
|
+
*/
|
|
282
|
+
changedPaths(): Promise<string[]>;
|
|
283
|
+
/**
|
|
284
|
+
* Every changed path WITH what happened to it, as `git status` reports it.
|
|
285
|
+
*
|
|
286
|
+
* The manifest a rejected candidate is retained with. `changedPaths` is the
|
|
287
|
+
* same list with the status dropped, and the two share one parse so they
|
|
288
|
+
* cannot disagree about which paths a round touched. `status` is the
|
|
289
|
+
* two-character porcelain code (`??` new, ` M` modified, `R ` renamed…).
|
|
290
|
+
*/
|
|
291
|
+
changedEntries(): Promise<Array<{
|
|
292
|
+
path: string;
|
|
293
|
+
status: string;
|
|
294
|
+
}>>;
|
|
295
|
+
/**
|
|
296
|
+
* Commits in `fromSha..toSha` that touch any of `paths` — the input to the
|
|
297
|
+
* re-verification trigger (DESIGN §12 case 19). Zero paths short-circuits to
|
|
298
|
+
* 0 without calling git: `rev-list --count` with an empty pathspec counts
|
|
299
|
+
* *every* commit, which would read as "everything touched the evidence".
|
|
300
|
+
*/
|
|
301
|
+
countCommitsTouching(fromSha: string, toSha: string, paths: readonly string[]): Promise<number>;
|
|
302
|
+
/** `add -A`, with the state directory excluded by pathspec. */
|
|
303
|
+
/**
|
|
304
|
+
* The round's changes as a unified diff, for the prover.
|
|
305
|
+
*
|
|
306
|
+
* Staged and unstaged both, because the round is inspected before anything is
|
|
307
|
+
* committed. State and run logs are excluded by the same pathspec the commit
|
|
308
|
+
* uses — a prover reading its own run's ledger would be grading the story.
|
|
309
|
+
*/
|
|
310
|
+
/**
|
|
311
|
+
* Create a linked worktree at `path`, on a NEW branch cut from `baseSha`.
|
|
312
|
+
*
|
|
313
|
+
* ⚠️ THROUGH THE SAME `exec` AS EVERY OTHER VERB, deliberately. A worktree
|
|
314
|
+
* provisioner with its own git runner would be a second "safe enough" path
|
|
315
|
+
* around the config check, the repository-root check, the rebuilt `GIT_`
|
|
316
|
+
* namespace and the absolute binary resolution — all four of which exist
|
|
317
|
+
* because the repository is untrusted input.
|
|
318
|
+
*
|
|
319
|
+
* ⚠️ A NEW BRANCH, NEVER AN EXISTING ONE. `-b` fails if the branch is already
|
|
320
|
+
* there, which is the same refusal `createBranch` makes and for the same
|
|
321
|
+
* reason: reusing a branch would stack this execution's commits on whatever a
|
|
322
|
+
* previous one left behind. Linked worktrees SHARE the ref namespace, so this
|
|
323
|
+
* is the check that makes two simultaneous executions safe to start.
|
|
324
|
+
*/
|
|
325
|
+
addWorktree(path: string, branch: string, baseSha: string): Promise<void>;
|
|
326
|
+
/**
|
|
327
|
+
* Every worktree of this repository: its path, its HEAD, its branch.
|
|
328
|
+
*
|
|
329
|
+
* `--porcelain` because the human-readable form is not parseable — a path may
|
|
330
|
+
* contain spaces, and the columns are aligned rather than delimited.
|
|
331
|
+
*/
|
|
332
|
+
listWorktrees(): Promise<Array<{
|
|
333
|
+
path: string;
|
|
334
|
+
head: string;
|
|
335
|
+
branch: string | null;
|
|
336
|
+
}>>;
|
|
337
|
+
/**
|
|
338
|
+
* Remove a linked worktree.
|
|
339
|
+
*
|
|
340
|
+
* 🔴 NEVER `--force`, AND THIS IS NOT A STYLE CHOICE. `git worktree remove
|
|
341
|
+
* --force` deletes IGNORED files — `node_modules`, `.env` — which `discard()`
|
|
342
|
+
* one method below deliberately preserves by omitting `-x` from `clean`. It
|
|
343
|
+
* also fires exactly when git has already refused the safe form, which is to
|
|
344
|
+
* say exactly when something is there that git thought worth refusing over.
|
|
345
|
+
*
|
|
346
|
+
* So git's own refusal IS the check. A caller that cannot remove a worktree
|
|
347
|
+
* should leave it and say so, not insist.
|
|
348
|
+
*/
|
|
349
|
+
removeWorktree(path: string): Promise<void>;
|
|
350
|
+
/**
|
|
351
|
+
* Drop the administrative records of worktrees whose directories are gone.
|
|
352
|
+
*
|
|
353
|
+
* Touches no working tree — it only reconciles `.git/worktrees/*` with what is
|
|
354
|
+
* actually on disk, which is what makes a directory that a person deleted by
|
|
355
|
+
* hand stop counting against the ref namespace.
|
|
356
|
+
*/
|
|
357
|
+
pruneWorktrees(): Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Everything THIS checkout holds that a pristine one would not — INCLUDING
|
|
360
|
+
* ignored files.
|
|
361
|
+
*
|
|
362
|
+
* ⚠️ `--ignored` IS THE WHOLE POINT. Without it this asks exactly the question
|
|
363
|
+
* `git worktree remove` already answers by refusing, and learns nothing new.
|
|
364
|
+
* With it, it sees the `node_modules` and the `.env` that `remove` deletes
|
|
365
|
+
* silently.
|
|
366
|
+
*
|
|
367
|
+
* 🔴 AND IT ANSWERS ABOUT *THIS* DRIVER'S CHECKOUT — the first version took a
|
|
368
|
+
* `workspace` and passed `-C <workspace>`, which does nothing here.
|
|
369
|
+
* `trustedGitEnv` pins GIT_DIR and GIT_WORK_TREE from the cwd the driver was
|
|
370
|
+
* built with, and a pinned work tree beats `-C`. Measured: it reported the
|
|
371
|
+
* MAIN checkout's residue while claiming to describe a workspace — so a dirty
|
|
372
|
+
* main checkout would have blocked every reap, and a clean one would have
|
|
373
|
+
* waved through a workspace full of files. To ask about another checkout,
|
|
374
|
+
* build a driver for it.
|
|
375
|
+
*/
|
|
376
|
+
statusWithIgnored(): Promise<string>;
|
|
377
|
+
diff(maxBytes?: number): Promise<string>;
|
|
378
|
+
/**
|
|
379
|
+
* The working tree's change against HEAD as one applicable patch — the
|
|
380
|
+
* artifact a rejected candidate is retained as, before `discard()` resets it.
|
|
381
|
+
*
|
|
382
|
+
* `diff()` is this with the prover's own truncation notice; the two share the
|
|
383
|
+
* implementation so the patch a repair restores and the diff a prover judged
|
|
384
|
+
* are the same text. `truncated` is a FLAG here rather than a notice in the
|
|
385
|
+
* text, because a truncated patch must never be applied: `git apply` would
|
|
386
|
+
* either refuse it or, worse, apply the part it could read.
|
|
387
|
+
*/
|
|
388
|
+
patch(maxBytes: number): Promise<{
|
|
389
|
+
text: string;
|
|
390
|
+
bytes: number;
|
|
391
|
+
truncated: boolean;
|
|
392
|
+
}>;
|
|
393
|
+
/**
|
|
394
|
+
* The change one commit range makes, as one applicable patch — the same
|
|
395
|
+
* artifact `patch()` produces for a working tree, asked about history
|
|
396
|
+
* instead.
|
|
397
|
+
*
|
|
398
|
+
* 🔴 THIS IS WHAT A REPLAY CARRIES, and it is deliberately a PATCH rather
|
|
399
|
+
* than a range of commits. Carrying commits would mean replaying their
|
|
400
|
+
* identities onto a new base, which is the rewrite `integration.spec.ts`
|
|
401
|
+
* forbids; carrying the change means a NEW commit that must earn its own
|
|
402
|
+
* proof. The distinction is the whole reason a replay is not a rebase.
|
|
403
|
+
*
|
|
404
|
+
* ⚠️ `truncated` is a flag, never a notice in the text: a truncated patch
|
|
405
|
+
* must never be applied, because `git apply` would either refuse it or,
|
|
406
|
+
* worse, apply the part it could read.
|
|
407
|
+
*/
|
|
408
|
+
patchBetween(fromSha: string, toSha: string, maxBytes: number): Promise<{
|
|
409
|
+
text: string;
|
|
410
|
+
bytes: number;
|
|
411
|
+
truncated: boolean;
|
|
412
|
+
}>;
|
|
413
|
+
/**
|
|
414
|
+
* The paths a commit range touched — what the replay fold is asked about.
|
|
415
|
+
*
|
|
416
|
+
* ⚠️ The state directory is excluded for the same reason it is excluded from
|
|
417
|
+
* the patch: it is looply's own bookkeeping, not the candidate's work, and a
|
|
418
|
+
* replay that carried it would carry one run's ledger onto another's base.
|
|
419
|
+
*/
|
|
420
|
+
changedPathsBetween(fromSha: string, toSha: string): Promise<string[]>;
|
|
421
|
+
/**
|
|
422
|
+
* Restore a retained candidate into the working tree from its patch file.
|
|
423
|
+
*
|
|
424
|
+
* ⚠️ CHECKED FIRST, THEN APPLIED, AND NEVER PARTIALLY. `--check` asks git
|
|
425
|
+
* whether the whole patch fits the tree as it stands; only then is it applied
|
|
426
|
+
* — and `git apply` without `--reject` is itself all-or-nothing, so a hunk
|
|
427
|
+
* that no longer fits leaves the tree exactly as it was. The runner decides
|
|
428
|
+
* WHETHER to restore (base matches, patch complete, paths permitted); this
|
|
429
|
+
* only does the restoring, and answers a refusal as a value rather than a
|
|
430
|
+
* throw because "the patch no longer applies" is a finding, not a fault.
|
|
431
|
+
*
|
|
432
|
+
* `patchFile` is a path on this machine, never patch text on a command line.
|
|
433
|
+
*/
|
|
434
|
+
applyPatch(patchFile: string): Promise<{
|
|
435
|
+
ok: true;
|
|
436
|
+
} | {
|
|
437
|
+
ok: false;
|
|
438
|
+
because: string;
|
|
439
|
+
}>;
|
|
440
|
+
stageAll(): Promise<void>;
|
|
441
|
+
/**
|
|
442
|
+
* Is there anything staged to commit?
|
|
443
|
+
*
|
|
444
|
+
* 🔴 BECAUSE "ALREADY DONE" WAS ENDING WHOLE RUNS. `git commit` exits 1 on an
|
|
445
|
+
* empty tree, the driver turns a non-zero exit into a `GitError`, and the
|
|
446
|
+
* runner's crash path turns that into `run-aborted` — severity critical, the
|
|
447
|
+
* run over, every remaining item dropped.
|
|
448
|
+
*
|
|
449
|
+
* Measured live: a round whose gate was GREEN in 2,148 ms and whose prover
|
|
450
|
+
* answered `proven` at 0.83 killed its run, because the previous round's
|
|
451
|
+
* implementer had already written the tests this round's item asked for. The
|
|
452
|
+
* work was right, the checks agreed it was right, and being right is what
|
|
453
|
+
* ended the run.
|
|
454
|
+
*
|
|
455
|
+
* `--quiet` implies `--exit-code`: 0 means no staged difference against HEAD,
|
|
456
|
+
* 1 means there is one. Anything else is a real git failure and is raised
|
|
457
|
+
* rather than read as "nothing staged" — answering "empty" to a broken
|
|
458
|
+
* repository would silently skip a commit that should have happened.
|
|
459
|
+
*/
|
|
460
|
+
hasStagedChanges(): Promise<boolean>;
|
|
461
|
+
/**
|
|
462
|
+
* Commit the staged tree. The trailer is generated here from the executed step
|
|
463
|
+
* list — the driver takes `TrailerInput`, not a finished string, so no caller
|
|
464
|
+
* can hand-write a trailer that claims a check it never ran.
|
|
465
|
+
*/
|
|
466
|
+
commit(subject: string, trailer: TrailerInput): Promise<string>;
|
|
467
|
+
/**
|
|
468
|
+
* The full message of a commit, or null when the ref does not resolve.
|
|
469
|
+
*
|
|
470
|
+
* Read-only, and used by recovery for one narrow question: whether the commit
|
|
471
|
+
* at HEAD is the one a crashed round was about to record. A round commits
|
|
472
|
+
* with the item's title as the subject, and only ever after the commit permit
|
|
473
|
+
* passed — so finding it is evidence the round finished, not a substitute for
|
|
474
|
+
* the checks that let it.
|
|
475
|
+
*/
|
|
476
|
+
messageOf(ref: string): Promise<string | null>;
|
|
477
|
+
/**
|
|
478
|
+
* Drop everything the round did: `reset --hard`, then `clean -fd` with the
|
|
479
|
+
* state directory explicitly spared. `-fd` (never `-fdx`) plus `-e` means
|
|
480
|
+
* `.looply/**` survives even in a repo whose `.gitignore` forgot it.
|
|
481
|
+
*/
|
|
482
|
+
discard(): Promise<void>;
|
|
483
|
+
/**
|
|
484
|
+
* WHAT THE REMOTE SAYS THIS REF IS, OR NULL.
|
|
485
|
+
*
|
|
486
|
+
* The reconciliation read, and the reason a push is the right first real
|
|
487
|
+
* action: the question "did it happen" has an exact answer that can be asked
|
|
488
|
+
* afterwards, from a different process, with nothing carried over but the
|
|
489
|
+
* approved sha.
|
|
490
|
+
*
|
|
491
|
+
* A ref the remote does not have is `null`, which is not an error — a branch
|
|
492
|
+
* that has never existed is the ordinary case for a first push.
|
|
493
|
+
*/
|
|
494
|
+
remoteRef(remoteName: string, ref: string): Promise<string | null>;
|
|
495
|
+
/**
|
|
496
|
+
* THE ONE OUTWARD ACT.
|
|
497
|
+
*
|
|
498
|
+
* `<sha>:<ref>` rather than a branch name, so what is pushed is the exact
|
|
499
|
+
* commit a person approved and not whatever a local ref points at by the time
|
|
500
|
+
* this runs. There is no `--force` and no `+` in the refspec: this method
|
|
501
|
+
* cannot express a forced push, which is a stronger statement than declining
|
|
502
|
+
* to pass a flag.
|
|
503
|
+
*
|
|
504
|
+
* Everything else about safety it inherits: `nodeGitExec` is the one trusted
|
|
505
|
+
* construction point, so this call is refused outright if the repository's
|
|
506
|
+
* config names a program for git to run, and carries the hooks override and
|
|
507
|
+
* `GIT_TERMINAL_PROMPT=0` like every other verb.
|
|
508
|
+
*/
|
|
509
|
+
push(remoteName: string, sourceSha: string, destinationRef: string): Promise<void>;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Real exec: argv straight to git, no shell, so message bytes arrive verbatim.
|
|
513
|
+
*
|
|
514
|
+
* THE ONE TRUSTED CONSTRUCTION POINT. Every production git call in the tree —
|
|
515
|
+
* the daemon's, the run's, the verifier's — is built here, which is why the
|
|
516
|
+
* repository-config defence can live in one place and cover all of them.
|
|
517
|
+
*/
|
|
518
|
+
export declare function nodeGitExec(cwd: string): GitExec;
|
|
519
|
+
//# sourceMappingURL=git-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-driver.d.ts","sourceRoot":"","sources":["../src/git-driver.ts"],"names":[],"mappings":"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"}
|