dorfl 0.0.0 → 0.1.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/dist/advance-ci-template.d.ts +73 -0
- package/dist/advance-ci-template.d.ts.map +1 -0
- package/dist/advance-ci-template.js +104 -0
- package/dist/advance-ci-template.js.map +1 -0
- package/dist/advance-classify.d.ts +132 -0
- package/dist/advance-classify.d.ts.map +1 -0
- package/dist/advance-classify.js +120 -0
- package/dist/advance-classify.js.map +1 -0
- package/dist/advance-drivers.d.ts +182 -0
- package/dist/advance-drivers.d.ts.map +1 -0
- package/dist/advance-drivers.js +231 -0
- package/dist/advance-drivers.js.map +1 -0
- package/dist/advance-isolated.d.ts +156 -0
- package/dist/advance-isolated.d.ts.map +1 -0
- package/dist/advance-isolated.js +256 -0
- package/dist/advance-isolated.js.map +1 -0
- package/dist/advance-lifecycle-template.d.ts +107 -0
- package/dist/advance-lifecycle-template.d.ts.map +1 -0
- package/dist/advance-lifecycle-template.js +668 -0
- package/dist/advance-lifecycle-template.js.map +1 -0
- package/dist/advance-loop-driver.d.ts +325 -0
- package/dist/advance-loop-driver.d.ts.map +1 -0
- package/dist/advance-loop-driver.js +437 -0
- package/dist/advance-loop-driver.js.map +1 -0
- package/dist/advance-treeless-publish.d.ts +108 -0
- package/dist/advance-treeless-publish.d.ts.map +1 -0
- package/dist/advance-treeless-publish.js +71 -0
- package/dist/advance-treeless-publish.js.map +1 -0
- package/dist/advance.d.ts +340 -0
- package/dist/advance.d.ts.map +1 -0
- package/dist/advance.js +1122 -0
- package/dist/advance.js.map +1 -0
- package/dist/advancing-lock.d.ts +294 -0
- package/dist/advancing-lock.d.ts.map +1 -0
- package/dist/advancing-lock.js +594 -0
- package/dist/advancing-lock.js.map +1 -0
- package/dist/agent-launch.d.ts +79 -0
- package/dist/agent-launch.d.ts.map +1 -0
- package/dist/agent-launch.js +61 -0
- package/dist/agent-launch.js.map +1 -0
- package/dist/agent-stop.d.ts +149 -0
- package/dist/agent-stop.d.ts.map +1 -0
- package/dist/agent-stop.js +307 -0
- package/dist/agent-stop.js.map +1 -0
- package/dist/apply-decide.d.ts +127 -0
- package/dist/apply-decide.d.ts.map +1 -0
- package/dist/apply-decide.js +176 -0
- package/dist/apply-decide.js.map +1 -0
- package/dist/apply-merge-action.d.ts +206 -0
- package/dist/apply-merge-action.d.ts.map +1 -0
- package/dist/apply-merge-action.js +307 -0
- package/dist/apply-merge-action.js.map +1 -0
- package/dist/apply-persist.d.ts +174 -0
- package/dist/apply-persist.d.ts.map +1 -0
- package/dist/apply-persist.js +359 -0
- package/dist/apply-persist.js.map +1 -0
- package/dist/arbiter.d.ts +120 -0
- package/dist/arbiter.d.ts.map +1 -0
- package/dist/arbiter.js +255 -0
- package/dist/arbiter.js.map +1 -0
- package/dist/brand.d.ts +70 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +84 -0
- package/dist/brand.js.map +1 -0
- package/dist/buildable-body.d.ts +132 -0
- package/dist/buildable-body.d.ts.map +1 -0
- package/dist/buildable-body.js +131 -0
- package/dist/buildable-body.js.map +1 -0
- package/dist/categorise.d.ts +66 -0
- package/dist/categorise.d.ts.map +1 -0
- package/dist/categorise.js +106 -0
- package/dist/categorise.js.map +1 -0
- package/dist/claim-cas.d.ts +117 -0
- package/dist/claim-cas.d.ts.map +1 -0
- package/dist/claim-cas.js +312 -0
- package/dist/claim-cas.js.map +1 -0
- package/dist/cli-spinner.d.ts +112 -0
- package/dist/cli-spinner.d.ts.map +1 -0
- package/dist/cli-spinner.js +157 -0
- package/dist/cli-spinner.js.map +1 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3094 -0
- package/dist/cli.js.map +1 -0
- package/dist/close-job-template.d.ts +70 -0
- package/dist/close-job-template.d.ts.map +1 -0
- package/dist/close-job-template.js +180 -0
- package/dist/close-job-template.js.map +1 -0
- package/dist/close-job.d.ts +95 -0
- package/dist/close-job.d.ts.map +1 -0
- package/dist/close-job.js +226 -0
- package/dist/close-job.js.map +1 -0
- package/dist/complete.d.ts +361 -0
- package/dist/complete.d.ts.map +1 -0
- package/dist/complete.js +885 -0
- package/dist/complete.js.map +1 -0
- package/dist/concurrency.d.ts +68 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +112 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/config-override.d.ts +76 -0
- package/dist/config-override.d.ts.map +1 -0
- package/dist/config-override.js +50 -0
- package/dist/config-override.js.map +1 -0
- package/dist/config.d.ts +668 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +241 -0
- package/dist/config.js.map +1 -0
- package/dist/continue-branch.d.ts +249 -0
- package/dist/continue-branch.d.ts.map +1 -0
- package/dist/continue-branch.js +389 -0
- package/dist/continue-branch.js.map +1 -0
- package/dist/cwd-section.d.ts +186 -0
- package/dist/cwd-section.d.ts.map +1 -0
- package/dist/cwd-section.js +209 -0
- package/dist/cwd-section.js.map +1 -0
- package/dist/decision-engine.d.ts +170 -0
- package/dist/decision-engine.d.ts.map +1 -0
- package/dist/decision-engine.js +136 -0
- package/dist/decision-engine.js.map +1 -0
- package/dist/detect.d.ts +17 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +118 -0
- package/dist/detect.js.map +1 -0
- package/dist/do-autopick.d.ts +85 -0
- package/dist/do-autopick.d.ts.map +1 -0
- package/dist/do-autopick.js +112 -0
- package/dist/do-autopick.js.map +1 -0
- package/dist/do-config.d.ts +312 -0
- package/dist/do-config.d.ts.map +1 -0
- package/dist/do-config.js +358 -0
- package/dist/do-config.js.map +1 -0
- package/dist/do-remote-auto.d.ts +75 -0
- package/dist/do-remote-auto.d.ts.map +1 -0
- package/dist/do-remote-auto.js +111 -0
- package/dist/do-remote-auto.js.map +1 -0
- package/dist/do.d.ts +621 -0
- package/dist/do.d.ts.map +1 -0
- package/dist/do.js +1882 -0
- package/dist/do.js.map +1 -0
- package/dist/drop-source.d.ts +96 -0
- package/dist/drop-source.d.ts.map +1 -0
- package/dist/drop-source.js +91 -0
- package/dist/drop-source.js.map +1 -0
- package/dist/eligibility.d.ts +46 -0
- package/dist/eligibility.d.ts.map +1 -0
- package/dist/eligibility.js +34 -0
- package/dist/eligibility.js.map +1 -0
- package/dist/env-config.d.ts +51 -0
- package/dist/env-config.d.ts.map +1 -0
- package/dist/env-config.js +272 -0
- package/dist/env-config.js.map +1 -0
- package/dist/failure-cause.d.ts +70 -0
- package/dist/failure-cause.d.ts.map +1 -0
- package/dist/failure-cause.js +126 -0
- package/dist/failure-cause.js.map +1 -0
- package/dist/format.d.ts +43 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +256 -0
- package/dist/format.js.map +1 -0
- package/dist/frontmatter.d.ts +215 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +345 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/gate-readiness.d.ts +84 -0
- package/dist/gate-readiness.d.ts.map +1 -0
- package/dist/gate-readiness.js +103 -0
- package/dist/gate-readiness.js.map +1 -0
- package/dist/gc.d.ts +165 -0
- package/dist/gc.d.ts.map +1 -0
- package/dist/gc.js +313 -0
- package/dist/gc.js.map +1 -0
- package/dist/gh-failure.d.ts +42 -0
- package/dist/gh-failure.d.ts.map +1 -0
- package/dist/gh-failure.js +49 -0
- package/dist/gh-failure.js.map +1 -0
- package/dist/git.d.ts +75 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +130 -0
- package/dist/git.js.map +1 -0
- package/dist/github.d.ts +187 -0
- package/dist/github.d.ts.map +1 -0
- package/dist/github.js +343 -0
- package/dist/github.js.map +1 -0
- package/dist/harness.d.ts +242 -0
- package/dist/harness.d.ts.map +1 -0
- package/dist/harness.js +157 -0
- package/dist/harness.js.map +1 -0
- package/dist/identity.d.ts +167 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +231 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +147 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/install-ci-branch-protection.d.ts +147 -0
- package/dist/install-ci-branch-protection.d.ts.map +1 -0
- package/dist/install-ci-branch-protection.js +166 -0
- package/dist/install-ci-branch-protection.js.map +1 -0
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts +15 -0
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts.map +1 -0
- package/dist/install-ci-capabilities/advance-lifecycle.js +28 -0
- package/dist/install-ci-capabilities/advance-lifecycle.js.map +1 -0
- package/dist/install-ci-capabilities/close-job.d.ts +13 -0
- package/dist/install-ci-capabilities/close-job.d.ts.map +1 -0
- package/dist/install-ci-capabilities/close-job.js +26 -0
- package/dist/install-ci-capabilities/close-job.js.map +1 -0
- package/dist/install-ci-capabilities/example-noop.d.ts +16 -0
- package/dist/install-ci-capabilities/example-noop.d.ts.map +1 -0
- package/dist/install-ci-capabilities/example-noop.js +23 -0
- package/dist/install-ci-capabilities/example-noop.js.map +1 -0
- package/dist/install-ci-capabilities/intake.d.ts +15 -0
- package/dist/install-ci-capabilities/intake.d.ts.map +1 -0
- package/dist/install-ci-capabilities/intake.js +28 -0
- package/dist/install-ci-capabilities/intake.js.map +1 -0
- package/dist/install-ci-capabilities/verify.d.ts +14 -0
- package/dist/install-ci-capabilities/verify.d.ts.map +1 -0
- package/dist/install-ci-capabilities/verify.js +27 -0
- package/dist/install-ci-capabilities/verify.js.map +1 -0
- package/dist/install-ci-core.d.ts +446 -0
- package/dist/install-ci-core.d.ts.map +1 -0
- package/dist/install-ci-core.js +760 -0
- package/dist/install-ci-core.js.map +1 -0
- package/dist/install-ci-github.d.ts +167 -0
- package/dist/install-ci-github.d.ts.map +1 -0
- package/dist/install-ci-github.js +315 -0
- package/dist/install-ci-github.js.map +1 -0
- package/dist/install-ci.d.ts +105 -0
- package/dist/install-ci.d.ts.map +1 -0
- package/dist/install-ci.js +363 -0
- package/dist/install-ci.js.map +1 -0
- package/dist/intake-event.d.ts +88 -0
- package/dist/intake-event.d.ts.map +1 -0
- package/dist/intake-event.js +66 -0
- package/dist/intake-event.js.map +1 -0
- package/dist/intake-marker.d.ts +95 -0
- package/dist/intake-marker.d.ts.map +1 -0
- package/dist/intake-marker.js +127 -0
- package/dist/intake-marker.js.map +1 -0
- package/dist/intake-triage.d.ts +48 -0
- package/dist/intake-triage.d.ts.map +1 -0
- package/dist/intake-triage.js +95 -0
- package/dist/intake-triage.js.map +1 -0
- package/dist/intake-trigger-template.d.ts +185 -0
- package/dist/intake-trigger-template.d.ts.map +1 -0
- package/dist/intake-trigger-template.js +449 -0
- package/dist/intake-trigger-template.js.map +1 -0
- package/dist/intake.d.ts +569 -0
- package/dist/intake.d.ts.map +1 -0
- package/dist/intake.js +1628 -0
- package/dist/intake.js.map +1 -0
- package/dist/integration-core.d.ts +539 -0
- package/dist/integration-core.d.ts.map +1 -0
- package/dist/integration-core.js +2195 -0
- package/dist/integration-core.js.map +1 -0
- package/dist/integrator.d.ts +343 -0
- package/dist/integrator.d.ts.map +1 -0
- package/dist/integrator.js +400 -0
- package/dist/integrator.js.map +1 -0
- package/dist/isolation.d.ts +219 -0
- package/dist/isolation.d.ts.map +1 -0
- package/dist/isolation.js +261 -0
- package/dist/isolation.js.map +1 -0
- package/dist/issue-provider.d.ts +349 -0
- package/dist/issue-provider.d.ts.map +1 -0
- package/dist/issue-provider.js +360 -0
- package/dist/issue-provider.js.map +1 -0
- package/dist/item-lock.d.ts +626 -0
- package/dist/item-lock.d.ts.map +1 -0
- package/dist/item-lock.js +1381 -0
- package/dist/item-lock.js.map +1 -0
- package/dist/item-path.d.ts +49 -0
- package/dist/item-path.d.ts.map +1 -0
- package/dist/item-path.js +66 -0
- package/dist/item-path.js.map +1 -0
- package/dist/ledger-lint.d.ts +129 -0
- package/dist/ledger-lint.d.ts.map +1 -0
- package/dist/ledger-lint.js +249 -0
- package/dist/ledger-lint.js.map +1 -0
- package/dist/ledger-read.d.ts +357 -0
- package/dist/ledger-read.d.ts.map +1 -0
- package/dist/ledger-read.js +442 -0
- package/dist/ledger-read.js.map +1 -0
- package/dist/ledger-write.d.ts +330 -0
- package/dist/ledger-write.d.ts.map +1 -0
- package/dist/ledger-write.js +411 -0
- package/dist/ledger-write.js.map +1 -0
- package/dist/lifecycle-gather.d.ts +30 -0
- package/dist/lifecycle-gather.d.ts.map +1 -0
- package/dist/lifecycle-gather.js +205 -0
- package/dist/lifecycle-gather.js.map +1 -0
- package/dist/lifecycle-pools.d.ts +180 -0
- package/dist/lifecycle-pools.d.ts.map +1 -0
- package/dist/lifecycle-pools.js +78 -0
- package/dist/lifecycle-pools.js.map +1 -0
- package/dist/merge-question-surfacer.d.ts +166 -0
- package/dist/merge-question-surfacer.d.ts.map +1 -0
- package/dist/merge-question-surfacer.js +297 -0
- package/dist/merge-question-surfacer.js.map +1 -0
- package/dist/mint-adr.d.ts +126 -0
- package/dist/mint-adr.d.ts.map +1 -0
- package/dist/mint-adr.js +257 -0
- package/dist/mint-adr.js.map +1 -0
- package/dist/mirror-pool-scan.d.ts +125 -0
- package/dist/mirror-pool-scan.d.ts.map +1 -0
- package/dist/mirror-pool-scan.js +104 -0
- package/dist/mirror-pool-scan.js.map +1 -0
- package/dist/needs-attention.d.ts +341 -0
- package/dist/needs-attention.d.ts.map +1 -0
- package/dist/needs-attention.js +900 -0
- package/dist/needs-attention.js.map +1 -0
- package/dist/orphan-sidecar.d.ts +79 -0
- package/dist/orphan-sidecar.d.ts.map +1 -0
- package/dist/orphan-sidecar.js +71 -0
- package/dist/orphan-sidecar.js.map +1 -0
- package/dist/output.d.ts +48 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +66 -0
- package/dist/output.js.map +1 -0
- package/dist/pi-harness.d.ts +179 -0
- package/dist/pi-harness.d.ts.map +1 -0
- package/dist/pi-harness.js +342 -0
- package/dist/pi-harness.js.map +1 -0
- package/dist/placement.d.ts +99 -0
- package/dist/placement.d.ts.map +1 -0
- package/dist/placement.js +67 -0
- package/dist/placement.js.map +1 -0
- package/dist/prd-to-spec.d.ts +315 -0
- package/dist/prd-to-spec.d.ts.map +1 -0
- package/dist/prd-to-spec.js +684 -0
- package/dist/prd-to-spec.js.map +1 -0
- package/dist/prepare.d.ts +121 -0
- package/dist/prepare.d.ts.map +1 -0
- package/dist/prepare.js +140 -0
- package/dist/prepare.js.map +1 -0
- package/dist/prompt.d.ts +360 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +499 -0
- package/dist/prompt.js.map +1 -0
- package/dist/protocol/ADR-FORMAT.md +47 -0
- package/dist/protocol/CLAIM-PROTOCOL.md +217 -0
- package/dist/protocol/REVIEW-PROTOCOL.md +119 -0
- package/dist/protocol/SURFACE-PROTOCOL.md +121 -0
- package/dist/protocol/TASKING-PROTOCOL.md +122 -0
- package/dist/protocol/WORK-CONTRACT.md +276 -0
- package/dist/protocol/spec-template.md +71 -0
- package/dist/protocol/task-template.md +65 -0
- package/dist/readiness.d.ts +66 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +36 -0
- package/dist/readiness.js.map +1 -0
- package/dist/reap-branches.d.ts +102 -0
- package/dist/reap-branches.d.ts.map +1 -0
- package/dist/reap-branches.js +149 -0
- package/dist/reap-branches.js.map +1 -0
- package/dist/recover-isolated.d.ts +72 -0
- package/dist/recover-isolated.d.ts.map +1 -0
- package/dist/recover-isolated.js +188 -0
- package/dist/recover-isolated.js.map +1 -0
- package/dist/registry.d.ts +172 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +296 -0
- package/dist/registry.js.map +1 -0
- package/dist/repo-config.d.ts +201 -0
- package/dist/repo-config.d.ts.map +1 -0
- package/dist/repo-config.js +414 -0
- package/dist/repo-config.js.map +1 -0
- package/dist/repo-key.d.ts +20 -0
- package/dist/repo-key.d.ts.map +1 -0
- package/dist/repo-key.js +68 -0
- package/dist/repo-key.js.map +1 -0
- package/dist/repo-mirror.d.ts +177 -0
- package/dist/repo-mirror.d.ts.map +1 -0
- package/dist/repo-mirror.js +271 -0
- package/dist/repo-mirror.js.map +1 -0
- package/dist/retry-backoff.d.ts +90 -0
- package/dist/retry-backoff.d.ts.map +1 -0
- package/dist/retry-backoff.js +98 -0
- package/dist/retry-backoff.js.map +1 -0
- package/dist/review-gate.d.ts +173 -0
- package/dist/review-gate.d.ts.map +1 -0
- package/dist/review-gate.js +261 -0
- package/dist/review-gate.js.map +1 -0
- package/dist/review-verdict.d.ts +149 -0
- package/dist/review-verdict.d.ts.map +1 -0
- package/dist/review-verdict.js +332 -0
- package/dist/review-verdict.js.map +1 -0
- package/dist/run.d.ts +221 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +963 -0
- package/dist/run.js.map +1 -0
- package/dist/scan.d.ts +308 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +374 -0
- package/dist/scan.js.map +1 -0
- package/dist/select-order.d.ts +75 -0
- package/dist/select-order.d.ts.map +1 -0
- package/dist/select-order.js +108 -0
- package/dist/select-order.js.map +1 -0
- package/dist/select-priority.d.ts +188 -0
- package/dist/select-priority.d.ts.map +1 -0
- package/dist/select-priority.js +80 -0
- package/dist/select-priority.js.map +1 -0
- package/dist/select.d.ts +25 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +43 -0
- package/dist/select.js.map +1 -0
- package/dist/session-path.d.ts +36 -0
- package/dist/session-path.d.ts.map +1 -0
- package/dist/session-path.js +129 -0
- package/dist/session-path.js.map +1 -0
- package/dist/sidecar-apply.d.ts +83 -0
- package/dist/sidecar-apply.d.ts.map +1 -0
- package/dist/sidecar-apply.js +111 -0
- package/dist/sidecar-apply.js.map +1 -0
- package/dist/sidecar.d.ts +245 -0
- package/dist/sidecar.d.ts.map +1 -0
- package/dist/sidecar.js +481 -0
- package/dist/sidecar.js.map +1 -0
- package/dist/slug-namespace.d.ts +204 -0
- package/dist/slug-namespace.d.ts.map +1 -0
- package/dist/slug-namespace.js +229 -0
- package/dist/slug-namespace.js.map +1 -0
- package/dist/spec-complete.d.ts +44 -0
- package/dist/spec-complete.d.ts.map +1 -0
- package/dist/spec-complete.js +69 -0
- package/dist/spec-complete.js.map +1 -0
- package/dist/start.d.ts +97 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +633 -0
- package/dist/start.js.map +1 -0
- package/dist/status.d.ts +199 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +228 -0
- package/dist/status.js.map +1 -0
- package/dist/surface-gate.d.ts +162 -0
- package/dist/surface-gate.d.ts.map +1 -0
- package/dist/surface-gate.js +206 -0
- package/dist/surface-gate.js.map +1 -0
- package/dist/surface-persist.d.ts +86 -0
- package/dist/surface-persist.d.ts.map +1 -0
- package/dist/surface-persist.js +129 -0
- package/dist/surface-persist.js.map +1 -0
- package/dist/tasker-review-loop.d.ts +249 -0
- package/dist/tasker-review-loop.d.ts.map +1 -0
- package/dist/tasker-review-loop.js +369 -0
- package/dist/tasker-review-loop.js.map +1 -0
- package/dist/tasking-eligibility.d.ts +74 -0
- package/dist/tasking-eligibility.d.ts.map +1 -0
- package/dist/tasking-eligibility.js +52 -0
- package/dist/tasking-eligibility.js.map +1 -0
- package/dist/tasking-lock.d.ts +111 -0
- package/dist/tasking-lock.d.ts.map +1 -0
- package/dist/tasking-lock.js +256 -0
- package/dist/tasking-lock.js.map +1 -0
- package/dist/tasking.d.ts +275 -0
- package/dist/tasking.d.ts.map +1 -0
- package/dist/tasking.js +952 -0
- package/dist/tasking.js.map +1 -0
- package/dist/triage-gate.d.ts +127 -0
- package/dist/triage-gate.d.ts.map +1 -0
- package/dist/triage-gate.js +139 -0
- package/dist/triage-gate.js.map +1 -0
- package/dist/triage-persist.d.ts +163 -0
- package/dist/triage-persist.d.ts.map +1 -0
- package/dist/triage-persist.js +387 -0
- package/dist/triage-persist.js.map +1 -0
- package/dist/verdict-json.d.ts +32 -0
- package/dist/verdict-json.d.ts.map +1 -0
- package/dist/verdict-json.js +74 -0
- package/dist/verdict-json.js.map +1 -0
- package/dist/verify-workflow-template.d.ts +60 -0
- package/dist/verify-workflow-template.d.ts.map +1 -0
- package/dist/verify-workflow-template.js +126 -0
- package/dist/verify-workflow-template.js.map +1 -0
- package/dist/verify.d.ts +60 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +62 -0
- package/dist/verify.js.map +1 -0
- package/dist/watch-session.d.ts +112 -0
- package/dist/watch-session.d.ts.map +1 -0
- package/dist/watch-session.js +347 -0
- package/dist/watch-session.js.map +1 -0
- package/dist/work-layout.d.ts +198 -0
- package/dist/work-layout.d.ts.map +1 -0
- package/dist/work-layout.js +217 -0
- package/dist/work-layout.js.map +1 -0
- package/dist/work-on.d.ts +154 -0
- package/dist/work-on.d.ts.map +1 -0
- package/dist/work-on.js +387 -0
- package/dist/work-on.js.map +1 -0
- package/dist/workspace.d.ts +224 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +325 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +46 -2
- package/src/advance-ci-template.ts +203 -0
- package/src/advance-classify.ts +197 -0
- package/src/advance-drivers.ts +414 -0
- package/src/advance-isolated.ts +432 -0
- package/src/advance-lifecycle-template.ts +791 -0
- package/src/advance-loop-driver.ts +745 -0
- package/src/advance-treeless-publish.ts +177 -0
- package/src/advance.ts +1564 -0
- package/src/advancing-lock.ts +988 -0
- package/src/agent-launch.ts +137 -0
- package/src/agent-stop.ts +361 -0
- package/src/apply-decide.ts +242 -0
- package/src/apply-merge-action.ts +502 -0
- package/src/apply-persist.ts +518 -0
- package/src/arbiter.ts +372 -0
- package/src/brand.ts +111 -0
- package/src/buildable-body.ts +196 -0
- package/src/categorise.ts +158 -0
- package/src/claim-cas.ts +513 -0
- package/src/cli-spinner.ts +225 -0
- package/src/cli.ts +4369 -0
- package/src/close-job-template.ts +236 -0
- package/src/close-job.ts +319 -0
- package/src/complete.ts +1379 -0
- package/src/concurrency.ts +151 -0
- package/src/config-override.ts +116 -0
- package/src/config.ts +883 -0
- package/src/continue-branch.ts +542 -0
- package/src/cwd-section.ts +392 -0
- package/src/decision-engine.ts +272 -0
- package/src/detect.ts +124 -0
- package/src/do-autopick.ts +223 -0
- package/src/do-config.ts +589 -0
- package/src/do-remote-auto.ts +197 -0
- package/src/do.ts +2623 -0
- package/src/drop-source.ts +194 -0
- package/src/eligibility.ts +79 -0
- package/src/env-config.ts +305 -0
- package/src/failure-cause.ts +142 -0
- package/src/format.ts +313 -0
- package/src/frontmatter.ts +485 -0
- package/src/gate-readiness.ts +147 -0
- package/src/gc.ts +510 -0
- package/src/gh-failure.ts +53 -0
- package/src/git.ts +186 -0
- package/src/github.ts +468 -0
- package/src/harness.ts +355 -0
- package/src/identity.ts +322 -0
- package/src/index.ts +785 -0
- package/src/install-ci-branch-protection.ts +255 -0
- package/src/install-ci-capabilities/advance-lifecycle.ts +34 -0
- package/src/install-ci-capabilities/close-job.ts +32 -0
- package/src/install-ci-capabilities/example-noop.ts +24 -0
- package/src/install-ci-capabilities/intake.ts +34 -0
- package/src/install-ci-capabilities/verify.ts +33 -0
- package/src/install-ci-core.ts +1088 -0
- package/src/install-ci-github.ts +376 -0
- package/src/install-ci.ts +552 -0
- package/src/intake-event.ts +102 -0
- package/src/intake-marker.ts +195 -0
- package/src/intake-triage.ts +138 -0
- package/src/intake-trigger-template.ts +591 -0
- package/src/intake.ts +2445 -0
- package/src/integration-core.ts +3065 -0
- package/src/integrator.ts +771 -0
- package/src/isolation.ts +484 -0
- package/src/issue-provider.ts +733 -0
- package/src/item-lock.ts +1858 -0
- package/src/item-path.ts +75 -0
- package/src/ledger-lint.ts +332 -0
- package/src/ledger-read.ts +924 -0
- package/src/ledger-write.ts +865 -0
- package/src/lifecycle-gather.ts +298 -0
- package/src/lifecycle-pools.ts +250 -0
- package/src/merge-question-surfacer.ts +496 -0
- package/src/mint-adr.ts +362 -0
- package/src/mirror-pool-scan.ts +240 -0
- package/src/needs-attention.ts +1506 -0
- package/src/orphan-sidecar.ts +150 -0
- package/src/output.ts +89 -0
- package/src/pi-harness.ts +403 -0
- package/src/placement.ts +131 -0
- package/src/prd-to-spec.ts +1023 -0
- package/src/prepare.ts +230 -0
- package/src/prompt.ts +760 -0
- package/src/readiness.ts +98 -0
- package/src/reap-branches.ts +278 -0
- package/src/recover-isolated.ts +276 -0
- package/src/registry.ts +475 -0
- package/src/repo-config.ts +550 -0
- package/src/repo-key.ts +74 -0
- package/src/repo-mirror.ts +367 -0
- package/src/retry-backoff.ts +130 -0
- package/src/review-gate.ts +389 -0
- package/src/review-verdict.ts +422 -0
- package/src/run.ts +1430 -0
- package/src/scan.ts +611 -0
- package/src/select-order.ts +143 -0
- package/src/select-priority.ts +266 -0
- package/src/select.ts +62 -0
- package/src/session-path.ts +153 -0
- package/src/sidecar-apply.ts +216 -0
- package/src/sidecar.ts +700 -0
- package/src/slug-namespace.ts +367 -0
- package/src/spec-complete.ts +118 -0
- package/src/start.ts +974 -0
- package/src/status.ts +441 -0
- package/src/surface-gate.ts +337 -0
- package/src/surface-persist.ts +241 -0
- package/src/tasker-review-loop.ts +671 -0
- package/src/tasking-eligibility.ts +114 -0
- package/src/tasking-lock.ts +416 -0
- package/src/tasking.ts +1438 -0
- package/src/triage-gate.ts +248 -0
- package/src/triage-persist.ts +570 -0
- package/src/verdict-json.ts +73 -0
- package/src/verify-workflow-template.ts +159 -0
- package/src/verify.ts +123 -0
- package/src/watch-session.ts +397 -0
- package/src/work-layout.ts +262 -0
- package/src/work-on.ts +660 -0
- package/src/workspace.ts +502 -0
package/dist/do.d.ts
ADDED
|
@@ -0,0 +1,621 @@
|
|
|
1
|
+
import type { TaskReviewGate } from './tasker-review-loop.js';
|
|
2
|
+
import { type Harness } from './harness.js';
|
|
3
|
+
import { type LedgerReadStrategy } from './ledger-read.js';
|
|
4
|
+
import type { ReviewProvider } from './integrator.js';
|
|
5
|
+
import type { IntegrationMode, PromptGuidance } from './config.js';
|
|
6
|
+
import type { VerifyConfig } from './verify.js';
|
|
7
|
+
import type { ReviewGate } from './review-gate.js';
|
|
8
|
+
import { type Identity } from './identity.js';
|
|
9
|
+
/**
|
|
10
|
+
* `dorfl do <slug>` (in-place form) — the per-repo, in-place WORKER that
|
|
11
|
+
* claims + builds + gates + integrates in ONE checkout, then EXITS (ADR §3).
|
|
12
|
+
* **This is the CI command** (CI has a checkout, is one repo, is one triggered
|
|
13
|
+
* invocation, exits) and it ABSORBS the manual `ar-run.sh` test-driver.
|
|
14
|
+
*
|
|
15
|
+
* In-place `do` is on the ISOLATION SEAM (`do-run-share-isolation-seam`): it is
|
|
16
|
+
* the FIRST production consumer of `selectIsolationStrategy`/`inPlaceStrategy`,
|
|
17
|
+
* so all THREE `do`/`run` forms (in-place `do`, `do --remote`, `run`) share the
|
|
18
|
+
* ONE `IsolatedTree`-handle post-claim shape. The composition mirrors
|
|
19
|
+
* `do --remote`/`run` exactly: keep the two in-place GUARDS (dirty-tree refusal
|
|
20
|
+
* + pre-flight diverged-main guard) in this driver BEFORE onboarding, CLAIM
|
|
21
|
+
* explicitly via the CAS (`performClaim`), then let
|
|
22
|
+
* `selectIsolationStrategy({checkout}).prepare()` do the ONBOARDING half (fetch +
|
|
23
|
+
* continue-detection + fresh-main `work/<slug>` switch, incl. the §14
|
|
24
|
+
* continue/rebase + §10 conflict path) WITHOUT re-claiming. The agent run is the
|
|
25
|
+
* ONLY new middle step (the one `ar-run.sh` shelled out for, `prompt | pi`). The
|
|
26
|
+
* runner owns EVERY git-state transition (claim, done-move, completion commit,
|
|
27
|
+
* integration); the agent only edits code.
|
|
28
|
+
*
|
|
29
|
+
* The in-place ISOLATION (ADR §3): the current checkout / CI container IS the
|
|
30
|
+
* isolation — no hub mirror, no external worktree. `inPlaceStrategy.prepare()`
|
|
31
|
+
* puts the checkout on `work/<slug>` cut from the freshly-fetched
|
|
32
|
+
* `<arbiter>/main`; its handle's `teardown` is a NO-OP (the checkout is left in a
|
|
33
|
+
* defined state on `work/<slug>`, NEVER reaped). `do --remote` (the job-worktree
|
|
34
|
+
* strategy) is the SEPARATE `do-remote` task; auto-pick / multi-arg / `-n` is
|
|
35
|
+
* `do-autopick`.
|
|
36
|
+
*
|
|
37
|
+
* CLAIM SEMANTICS (autonomous, same as `do --remote`/`run`): the claim is
|
|
38
|
+
* explicit and claim-or-lose. An item that is NOT in the pool (`tasks-ready`) on
|
|
39
|
+
* the arbiter (already in-progress / done / absent) is not claimable, so the CAS
|
|
40
|
+
* returns
|
|
41
|
+
* `lost` (exit 2) and the run skips cleanly — `do`, the unattended CI worker,
|
|
42
|
+
* never re-claims an item someone else holds and never silently picks up a
|
|
43
|
+
* needs-attention item (a human does that through the human face).
|
|
44
|
+
*
|
|
45
|
+
* **CRITICAL — `do` is AUTONOMOUS, so its failure path is `run`'s, NOT
|
|
46
|
+
* `complete`'s.** On a red gate / rebase conflict, `performComplete` routes the
|
|
47
|
+
* item to needs-attention via the SAME seam call as `run`'s `runOneItem`, but
|
|
48
|
+
* `complete` calls it WITHOUT an arbiter (the human path: a human is right
|
|
49
|
+
* there). `do` runs UNATTENDED, so it MUST get the autonomous, arbiter-passed
|
|
50
|
+
* surfacing like `run` (the on-`main` cherry-pick that makes a stuck CI run
|
|
51
|
+
* visible to `scan`/`status`/another machine). We achieve this by passing
|
|
52
|
+
* `surfaceArbiter` into `performComplete` (resolution (a) from the task): the
|
|
53
|
+
* success path reuses `complete`'s machinery; only the NEEDS-ATTENTION routing
|
|
54
|
+
* becomes the autonomous variant.
|
|
55
|
+
*
|
|
56
|
+
* `--propose` (default) / `--merge` is resolved at integrate-time exactly like
|
|
57
|
+
* `complete` (the caller threads the resolved mode in as `integration`).
|
|
58
|
+
*/
|
|
59
|
+
/** The terminal status of one in-place `do` run. */
|
|
60
|
+
export type DoOutcome = 'completed' | 'lost' | 'contended' | 'needs-attention' | 'surface-unmoved' | 'agent-failed' | 'transient-infra' | 'config-error' | 'agent-stopped' | 'refused' | 'usage-error' | 'tasked' | 'gate-refused' | 'stale';
|
|
61
|
+
export interface DoResult {
|
|
62
|
+
exitCode: 0 | 1 | 2 | 3;
|
|
63
|
+
outcome: DoOutcome;
|
|
64
|
+
/** The resolved bare slug acted on (task or prd), when one was resolved. */
|
|
65
|
+
slug?: string;
|
|
66
|
+
/** The work branch the run operated on, when one was created/switched-to. */
|
|
67
|
+
branch?: string;
|
|
68
|
+
/**
|
|
69
|
+
* True iff a FAILURE (agent-failed) SAVED + surfaced the partial work via the
|
|
70
|
+
* needs-attention mechanism (committed the agent's work, pushed the
|
|
71
|
+
* `work/<slug>` branch, surfaced on the arbiter's main) rather than dropping it.
|
|
72
|
+
* Undefined/false on the success, lost/contended/refused, and usage-error paths.
|
|
73
|
+
*/
|
|
74
|
+
routedToNeedsAttention?: boolean;
|
|
75
|
+
/** Human-readable summary of the terminal condition. */
|
|
76
|
+
message: string;
|
|
77
|
+
}
|
|
78
|
+
/** The agent invocation: edits code in `cwd` to satisfy the prompt. */
|
|
79
|
+
export type DoDorfl = (input: {
|
|
80
|
+
cwd: string;
|
|
81
|
+
prompt: string;
|
|
82
|
+
slug: string;
|
|
83
|
+
env?: NodeJS.ProcessEnv;
|
|
84
|
+
}) => {
|
|
85
|
+
ok: boolean;
|
|
86
|
+
detail?: string;
|
|
87
|
+
/**
|
|
88
|
+
* The agent's FINAL SUMMARY (the harness seam's `LaunchResult.output`): the
|
|
89
|
+
* channel the propose-mode PR BODY is built from. Optional so a test agent may
|
|
90
|
+
* supply a body; production surfaces the build agent's last assistant message.
|
|
91
|
+
* Absent ⇒ no body ⇒ the provider degrades to `--fill` (no regression).
|
|
92
|
+
*/
|
|
93
|
+
output?: string;
|
|
94
|
+
};
|
|
95
|
+
export interface DoOptions {
|
|
96
|
+
/** The raw CLI slug argument: bare (= task), `task:<slug>`, or `prd:<slug>`. */
|
|
97
|
+
arg: string;
|
|
98
|
+
/** The working clone/checkout to run in-place in. */
|
|
99
|
+
cwd: string;
|
|
100
|
+
/** Name of the arbiter git remote. Defaults to `origin`. */
|
|
101
|
+
arbiter?: string;
|
|
102
|
+
/**
|
|
103
|
+
* The optional runner IDENTITY (a bot), threaded from host-only
|
|
104
|
+
* `config.identity`. Scopes the runner's GIT/provider ops (claim, push,
|
|
105
|
+
* integrate, `gh`) — NEVER the agent launch (the agent stays ambient; it must
|
|
106
|
+
* not commit as the identity). Absent ⇒ ambient. See {@link identityEnv}.
|
|
107
|
+
*/
|
|
108
|
+
identity?: Identity;
|
|
109
|
+
/**
|
|
110
|
+
* Per-repo `autoTask` policy (resolved by `autoslice-gate`: flag > env >
|
|
111
|
+
* per-repo > global > default false). It gates the AUTO-PICK / pool path only
|
|
112
|
+
* (`do-autopick.ts`'s taskable-prd pool): "may an agent auto-task an
|
|
113
|
+
* UNDECLARED prd in this repo?". An EXPLICITLY-named `do prd:<slug>` tasks
|
|
114
|
+
* REGARDLESS of this policy (the dispatch passes `explicit: true` to
|
|
115
|
+
* `performTask` — naming the prd IS the authorization, exactly as `do <task>`
|
|
116
|
+
* builds regardless of `autoBuild`). Ignored by the task-build path.
|
|
117
|
+
*/
|
|
118
|
+
autoTask?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* The resolved {@link PromptGuidance} NUDGE namespace (e.g. `testFirst`),
|
|
121
|
+
* threaded from the per-repo config by the CLI and forwarded INTO
|
|
122
|
+
* {@link buildAgentPrompt} so the autonomous in-place `do` worker prompt
|
|
123
|
+
* actually carries the nudge. Absent ⇒ every member false ⇒ byte-identical to
|
|
124
|
+
* today. (Without this the per-repo `promptGuidance.testFirst` was a silent
|
|
125
|
+
* no-op on the build path — only `dorfl prompt` honoured it.)
|
|
126
|
+
*/
|
|
127
|
+
promptGuidance?: PromptGuidance;
|
|
128
|
+
/**
|
|
129
|
+
* **The tasker review→edit→converge LOOP seam** (`slicer-review-edit-loop`):
|
|
130
|
+
* consumed ONLY by the `do prd:<slug>` tasking path — after the agent produces
|
|
131
|
+
* candidate tasks, run the `review` SKILL as a review→edit→re-review loop that
|
|
132
|
+
* improves them, routing the verdict through the needsAnswers / needs-attention
|
|
133
|
+
* sink. Ignored by the task-build path. Omitted ⇒ no loop (candidate tasks land
|
|
134
|
+
* as-is). Production wires {@link harnessTaskReviewGate}; tests inject a canned
|
|
135
|
+
* verdict+edits.
|
|
136
|
+
*/
|
|
137
|
+
reviewLoop?: TaskReviewGate;
|
|
138
|
+
/** The tasker improver loop's `taskerLoopMax` cap (flag > env > per-repo > global > default). Loop only. */
|
|
139
|
+
taskerLoopMax?: number;
|
|
140
|
+
/** The tasker improver loop's de-correlated review model (`--tasker-loop-model`). Loop only. */
|
|
141
|
+
taskerLoopModel?: string;
|
|
142
|
+
/** How many fresh-context (M) executions of the tasker loop to run. Default 1. Loop only. */
|
|
143
|
+
reviewExecutions?: number;
|
|
144
|
+
/** Integration mode resolved at integrate-time (flag > per-repo > global > default). */
|
|
145
|
+
integration?: IntegrationMode;
|
|
146
|
+
/**
|
|
147
|
+
* **The explicit `--merge` override** for the untrusted-origin build-propose rule
|
|
148
|
+
* (task `untrusted-origin-forces-build-propose`). `true` iff the operator
|
|
149
|
+
* EXPLICITLY typed `--merge` (vs `merge` resolved from config). Forwarded to the
|
|
150
|
+
* task-BUILD `performComplete` → `performIntegration` so an explicit `--merge`
|
|
151
|
+
* OVERRIDES the untrusted-origin build-propose rule. The autonomous/CI path (a bare
|
|
152
|
+
* `advance`/`do` auto-pick) passes no flag ⇒ unset ⇒ an untrusted-origin task
|
|
153
|
+
* reliably forces `propose`. (Build transition only; the tasking transition is
|
|
154
|
+
* unaffected — a task FILE landing on main is inert.)
|
|
155
|
+
*/
|
|
156
|
+
explicitMerge?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* **Per-TRANSITION override for the TASKING transition only** (config
|
|
159
|
+
* `taskingIntegration`). Consumed ONLY by the `do prd:<slug>` tasking path: the
|
|
160
|
+
* value threaded into {@link performTask} is `taskingIntegration ?? integration`,
|
|
161
|
+
* so an unset override is byte-for-byte today's behaviour (tasking uses
|
|
162
|
+
* `integration`). The task-BUILD path ALWAYS threads `integration` (never this
|
|
163
|
+
* key). An explicit `--merge`/`--propose` flag wins over BOTH (the flag-override
|
|
164
|
+
* layer sets `integration` AND `taskingIntegration` to the typed mode — see
|
|
165
|
+
* `do-config.ts`). DISTINCT from intake's per-EMITTED-TYPE `{task, prd}` resolver.
|
|
166
|
+
*/
|
|
167
|
+
taskingIntegration?: IntegrationMode;
|
|
168
|
+
/**
|
|
169
|
+
* **The per-repo TASK-PLACEMENT default** (prd
|
|
170
|
+
* `staging-pool-position-gate-and-trust-model` US #5, task
|
|
171
|
+
* `runner-deterministic-slice-placement-policy-and-precedence`). Consumed by
|
|
172
|
+
* the `do prd:<slug>` tasking path: the value is fed as the
|
|
173
|
+
* CONFIGURED-DEFAULT rung into the runner-deterministic placement resolver
|
|
174
|
+
* (`src/placement.ts`). Resolved per-repo through the SAME chain as
|
|
175
|
+
* `taskingIntegration` (flag > env > per-repo > global > built-in
|
|
176
|
+
* `pre-backlog`). The task-BUILD path ignores it (placement is a TASKING
|
|
177
|
+
* lifecycle concern).
|
|
178
|
+
*/
|
|
179
|
+
tasksLandIn?: 'pre-backlog' | 'ready';
|
|
180
|
+
/**
|
|
181
|
+
* **The OPERATOR's EXPLICIT task-placement override** (the TOP precedence
|
|
182
|
+
* rung in the placement resolver). Set ONLY when the operator typed
|
|
183
|
+
* `--tasks-land-in <where>` on this invocation; never when the value came
|
|
184
|
+
* from config. Wins over `originTrust: untrusted` (the operator is present;
|
|
185
|
+
* CLI always wins, no special force-key) — the positional analogue of
|
|
186
|
+
* `explicitMerge` overriding the untrusted-origin build-propose rule.
|
|
187
|
+
*/
|
|
188
|
+
explicitTasksLandIn?: 'pre-backlog' | 'ready';
|
|
189
|
+
/**
|
|
190
|
+
* Override the pre-flight DIVERGENCE guard (`--ignore-diverged-main`, mirroring
|
|
191
|
+
* `--ignore-not-ready`): proceed even when local `main` is ahead of
|
|
192
|
+
* `<arbiter>/main` (has unpushed commits). When overridden and the divergence
|
|
193
|
+
* persists, `complete`'s now-NON-FATAL local-main sync handles the outcome
|
|
194
|
+
* honestly (the work lands on the arbiter; local `main` is left for the operator
|
|
195
|
+
* to rebase). Loud, never the default.
|
|
196
|
+
*/
|
|
197
|
+
ignoreDivergedMain?: boolean;
|
|
198
|
+
/**
|
|
199
|
+
* **`--allow-backlog`** (prd
|
|
200
|
+
* `do-allow-backlog-drive-staged-tasks-without-promotion`): let this `do task:`
|
|
201
|
+
* invocation FIND, CLAIM, and COMPLETE a task that lives in `tasks/backlog/`
|
|
202
|
+
* (staging) IN PLACE, WITHOUT first promoting it to the pool — so no `advance`
|
|
203
|
+
* leg / `run` daemon can claim it out from under the operator. It widens ONLY
|
|
204
|
+
* resolution (`resolveTask` also searches `tasks-backlog`, lowest priority) +
|
|
205
|
+
* the claimable predicate (`performClaim` accepts a staged body); claim/lock/
|
|
206
|
+
* build/gate are identical, and the done-move goes `tasks/backlog/ → tasks/done/`
|
|
207
|
+
* directly (the explicit drive IS the promotion). EXPLICIT-INVOCATION-ONLY:
|
|
208
|
+
* default off, never set by `run`/auto-pick/`advance` (the leak-fence). The
|
|
209
|
+
* task-build path only; the `do prd:` path is unaffected.
|
|
210
|
+
*/
|
|
211
|
+
allowBacklog?: boolean;
|
|
212
|
+
/** The declared per-repo ENV-PREP step (string | list), run ONCE before the
|
|
213
|
+
* first `verify` on a fresh worktree. Unset ⇒ a no-op (NO default install). */
|
|
214
|
+
prepare?: VerifyConfig;
|
|
215
|
+
/** The declared per-repo acceptance gate (string | list). */
|
|
216
|
+
verify?: VerifyConfig;
|
|
217
|
+
/**
|
|
218
|
+
* Run the acceptance gate against the REBASED tip in a clean throwaway worktree
|
|
219
|
+
* (the tree that integrates) when `true` (the default), else in the build
|
|
220
|
+
* worktree (the pre-rebase tree). `do` is a SINGLE-JOB path, so the resolved
|
|
221
|
+
* flag is passed UNCONDITIONALLY (no `run`-fleet downgrade).
|
|
222
|
+
*/
|
|
223
|
+
freshWorktreeGate?: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* **The cross-job merge-serialiser CAS-retry cap** (config `mergeRetries`, prd
|
|
226
|
+
* `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied Answer q1
|
|
227
|
+
* (a)). Threaded VERBATIM into `performComplete` → `performIntegration` so a
|
|
228
|
+
* wide-matrix CI's raised cap actually reaches the cross-job land queue (the
|
|
229
|
+
* CAS loop IS the queue across separate jobs). Resolved per-repo through the
|
|
230
|
+
* gate-family precedence chain (flag > env > per-repo > global > default).
|
|
231
|
+
*/
|
|
232
|
+
mergeRetries?: number;
|
|
233
|
+
/**
|
|
234
|
+
* **The PR-INTENT axis** (config `noPR`, ADR §6): when `true`, propose pushes
|
|
235
|
+
* the branch but deliberately skips the PR (the explicit suppress-PR intent).
|
|
236
|
+
* NOT a provider choice — the provider is purely arbiter-derived. Threaded
|
|
237
|
+
* verbatim into `performComplete`. Unset/false ⇒ propose opens the PR normally.
|
|
238
|
+
*/
|
|
239
|
+
noPR?: boolean;
|
|
240
|
+
/**
|
|
241
|
+
* The `gh` AUTH/AVAILABILITY PROBE the PR-INTENT pre-flight guard runs UP FRONT
|
|
242
|
+
* (propose + GitHub arbiter + `noPR` unset): `true` ⇒ `gh` CAN open a PR. The
|
|
243
|
+
* probe is the signal (mirroring `GitHubProvider.available`), NOT a config check
|
|
244
|
+
* — an absent identity falls back to ambient `gh` auth and the probe reports it
|
|
245
|
+
* available. Injectable so tests stub `gh` without a real binary; production
|
|
246
|
+
* defaults to `new GitHubProvider().available(cwd, env)`. Side-effecting (it
|
|
247
|
+
* shells `gh`), a deliberate pre-flight cost justified by saving a wasted build.
|
|
248
|
+
*/
|
|
249
|
+
ghCanOpenPr?: (cwd: string, env: NodeJS.ProcessEnv | undefined) => boolean;
|
|
250
|
+
/**
|
|
251
|
+
* Optional FULLY-FORMED review provider INSTANCE used VERBATIM (the SAME seam
|
|
252
|
+
* `run` exposes via `RunOptions.provider`; threaded to `performComplete` →
|
|
253
|
+
* `performIntegration` as `providerInstance`). Tests/embeddings inject a stubbed
|
|
254
|
+
* `GitHubProvider` (a custom `gh` path) to drive the full propose pipeline
|
|
255
|
+
* OFFLINE without a real GitHub arbiter. The resolved provider OBJECT, NOT a
|
|
256
|
+
* config override (there is none). Unset ⇒ the core selects from the arbiter URL.
|
|
257
|
+
*/
|
|
258
|
+
providerInstance?: ReviewProvider;
|
|
259
|
+
/**
|
|
260
|
+
* **Gate 2 — the PR/code review gate** (GATES prd `work/prds/tasked/review.md`):
|
|
261
|
+
* threaded VERBATIM into `performComplete` (the gate rides inside the shared
|
|
262
|
+
* `do`/`complete` pipeline, so CI inherits it for free). When `review` is on,
|
|
263
|
+
* the `review` SKILL runs as a fresh-context agent AFTER the green `verify` and
|
|
264
|
+
* BEFORE the done-move; a `block` maps to the `needs-attention` outcome the same
|
|
265
|
+
* way `gate-failed` does (exit 1). `reviewModel`/`reviewMaxRounds`
|
|
266
|
+
* tune it; `reviewGate` is the injectable seam (production: harness-backed).
|
|
267
|
+
*/
|
|
268
|
+
review?: boolean;
|
|
269
|
+
reviewModel?: string;
|
|
270
|
+
reviewMaxRounds?: number;
|
|
271
|
+
reviewGate?: ReviewGate;
|
|
272
|
+
/**
|
|
273
|
+
* **The task-SET ACCEPTANCE GATE seam** (task `slice-acceptance-gate`):
|
|
274
|
+
* consumed ONLY by the `do prd:<slug>` tasking path. When `review` resolves on,
|
|
275
|
+
* a fresh-context review of the produced task SET runs BEFORE the tasks
|
|
276
|
+
* integrate (riding `performIntegration`'s review block); `block` routes the set
|
|
277
|
+
* to needs-attention, `approve` lets it integrate. It rides the SAME BUILD
|
|
278
|
+
* `--review`/`--no-review`/`--review-model` family as Gate-2 (one gate-config
|
|
279
|
+
* story) and is ONE-SHOT (no rounds; it does NOT inherit `reviewMaxRounds`). It
|
|
280
|
+
* is DISTINCT from the build {@link reviewGate} (a task-SET prompt, not a code
|
|
281
|
+
* diff) and from the tasker improver loop ({@link reviewLoop}). Production wires
|
|
282
|
+
* `harnessTaskAcceptanceGate`; tests inject a canned verdict. Omitted ⇒ no gate.
|
|
283
|
+
*/
|
|
284
|
+
taskReviewGate?: ReviewGate;
|
|
285
|
+
/**
|
|
286
|
+
* The autonomous agent invocation. Tests inject this to edit files directly;
|
|
287
|
+
* production wires the harness seam (the prompt-fed, run-to-completion launch
|
|
288
|
+
* `run` uses). When omitted, {@link harness} is used.
|
|
289
|
+
*/
|
|
290
|
+
dorfl?: DoDorfl;
|
|
291
|
+
/** The harness seam used when `dorfl` is omitted; defaults to the null adapter. */
|
|
292
|
+
harness?: Harness;
|
|
293
|
+
/**
|
|
294
|
+
* `do --watch`: stream the agent's high-signal events live by tailing the pi
|
|
295
|
+
* session `.jsonl` (task `do-watch`, option (a)). A READ-ONLY observer — it
|
|
296
|
+
* NEVER changes the run's outcome, gate, integration, git, or exit code; only a
|
|
297
|
+
* concurrent log-tail is added. REQUIRES the pi harness (the null adapter has
|
|
298
|
+
* no session log to tail) — passing it with a non-pi harness is a usage error.
|
|
299
|
+
*/
|
|
300
|
+
watch?: boolean;
|
|
301
|
+
/** The configured agent command the harness shells out to (null adapter). */
|
|
302
|
+
agentCmd?: string;
|
|
303
|
+
/** The model routing intent forwarded to the harness (ADR §13). */
|
|
304
|
+
model?: string;
|
|
305
|
+
/**
|
|
306
|
+
* The HOST-ONLY root folder under which this run's pi session FILE is generated
|
|
307
|
+
* (resolved `config.sessionsDir`; flag > env > global > default). `undefined`
|
|
308
|
+
* ⇒ pi's default per-cwd folder. Mapped from `Config` in `cli.ts`'s `do`
|
|
309
|
+
* action (the bridge from resolved config to the launch — without it the key
|
|
310
|
+
* resolves but never reaches pi).
|
|
311
|
+
*/
|
|
312
|
+
sessionsDir?: string;
|
|
313
|
+
/** Override the read seam (slug resolution); defaults to {@link ledgerRead}. */
|
|
314
|
+
read?: LedgerReadStrategy;
|
|
315
|
+
/** Override the resolver's repo path (slug-namespace existence reads). Defaults to `cwd`. */
|
|
316
|
+
repoPath?: string;
|
|
317
|
+
/** Environment for child git/agent processes. */
|
|
318
|
+
env?: NodeJS.ProcessEnv;
|
|
319
|
+
/** Sink for human-readable progress notes. */
|
|
320
|
+
note?: (message: string) => void;
|
|
321
|
+
/**
|
|
322
|
+
* Sink for a pre-formatted block printed VERBATIM (forwarded to `complete`'s
|
|
323
|
+
* propose-mode next-step block). Defaults to `note`.
|
|
324
|
+
*/
|
|
325
|
+
noteBlock?: (message: string) => void;
|
|
326
|
+
/** Emit ANSI color in `complete`'s (cosmetic) propose next-step block. */
|
|
327
|
+
color?: boolean;
|
|
328
|
+
/**
|
|
329
|
+
* Where `--watch`'s tailed events are written (defaults to stderr). Tests inject
|
|
330
|
+
* a sink to assert the surfaced lines without a real terminal.
|
|
331
|
+
*/
|
|
332
|
+
watchSink?: (line: string) => void;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* The agent-launch fields {@link runDoAgent} reads, shared by the in-place
|
|
336
|
+
* {@link DoOptions} and the remote {@link DoRemoteOptions} (so one launch helper
|
|
337
|
+
* serves both forms). A structural subset — both option shapes satisfy it.
|
|
338
|
+
*/
|
|
339
|
+
interface DoAgentLaunchOptions {
|
|
340
|
+
dorfl?: DoDorfl;
|
|
341
|
+
harness?: Harness;
|
|
342
|
+
agentCmd?: string;
|
|
343
|
+
model?: string;
|
|
344
|
+
sessionsDir?: string;
|
|
345
|
+
/**
|
|
346
|
+
* The resolved {@link PromptGuidance} NUDGE namespace (e.g. `testFirst`),
|
|
347
|
+
* threaded from the per-repo config by the CLI and forwarded INTO
|
|
348
|
+
* {@link buildAgentPrompt} so the autonomous worker prompt actually carries the
|
|
349
|
+
* nudge. Absent ⇒ every member false ⇒ the wrapper is byte-identical to today.
|
|
350
|
+
* (Without this the per-repo `promptGuidance.testFirst` was a silent no-op on
|
|
351
|
+
* the build path — only `dorfl prompt` honoured it.)
|
|
352
|
+
*/
|
|
353
|
+
promptGuidance?: PromptGuidance;
|
|
354
|
+
watch?: boolean;
|
|
355
|
+
watchSink?: (line: string) => void;
|
|
356
|
+
color?: boolean;
|
|
357
|
+
env?: NodeJS.ProcessEnv;
|
|
358
|
+
/**
|
|
359
|
+
* The optional runner IDENTITY (a bot). Threaded from the host-only
|
|
360
|
+
* `config.identity`. It scopes the runner's GIT + provider operations (claim,
|
|
361
|
+
* push, integration, `gh`) via process-scoped env overrides — NEVER the AGENT
|
|
362
|
+
* launch (the agent keeps the plain ambient `env`; the agent must not commit as
|
|
363
|
+
* the identity, only the runner's own git transitions do). Absent ⇒ ambient
|
|
364
|
+
* (today's behaviour, byte-for-byte).
|
|
365
|
+
*/
|
|
366
|
+
identity?: Identity;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Options for {@link performDoRemote} — `do --remote <r> <arg>`. It carries the
|
|
370
|
+
* SAME pipeline knobs as {@link DoOptions} (integration / verify / review /
|
|
371
|
+
* agent-launch), but selects a REGISTERED repo by `remote` (auto-mirrored) +
|
|
372
|
+
* `workspacesDir` (the agents' execution area) INSTEAD of an in-place `cwd`:
|
|
373
|
+
* there is no checkout, so the worktree is materialised under `workspacesDir`.
|
|
374
|
+
*/
|
|
375
|
+
export interface DoRemoteOptions extends DoAgentLaunchOptions {
|
|
376
|
+
/** The raw CLI slug argument: bare (= task), `task:<slug>`, or `prd:<slug>`. */
|
|
377
|
+
arg: string;
|
|
378
|
+
/**
|
|
379
|
+
* The registered remote spec/URL to run against (`do --remote <r>`). Resolved
|
|
380
|
+
* to a hub mirror via `ensureMirror` (auto-created when unregistered).
|
|
381
|
+
*/
|
|
382
|
+
remote: string;
|
|
383
|
+
/**
|
|
384
|
+
* The execution working area (config `workspacesDir`) — the AGENTS' area where
|
|
385
|
+
* the hub mirror + job worktree live. NEVER the human area.
|
|
386
|
+
*/
|
|
387
|
+
workspacesDir: string;
|
|
388
|
+
/**
|
|
389
|
+
* Name of the arbiter remote, used ONLY for human-readable surfacing messages
|
|
390
|
+
* (the actual rebase/integrate/push target inside the worktree is `origin`, the
|
|
391
|
+
* bare mirror's clone remote). Defaults to `origin`.
|
|
392
|
+
*/
|
|
393
|
+
arbiter?: string;
|
|
394
|
+
/**
|
|
395
|
+
* Per-repo `autoTask` policy — gates the AUTO-PICK / pool path only. An
|
|
396
|
+
* EXPLICITLY-named `do --remote prd:<slug>` tasks regardless of it (the
|
|
397
|
+
* dispatch passes `explicit: true`), mirroring `do <task>` vs `autoBuild`.
|
|
398
|
+
* Ignored by the task-build path.
|
|
399
|
+
*/
|
|
400
|
+
autoTask?: boolean;
|
|
401
|
+
/** The tasker review→edit→converge loop seam — `do --remote prd:<slug>` path only (see {@link DoOptions.reviewLoop}). */
|
|
402
|
+
reviewLoop?: TaskReviewGate;
|
|
403
|
+
/** The tasker improver loop's `taskerLoopMax` cap. Loop only. */
|
|
404
|
+
taskerLoopMax?: number;
|
|
405
|
+
/** The tasker improver loop's de-correlated review model (`--tasker-loop-model`). Loop only. */
|
|
406
|
+
taskerLoopModel?: string;
|
|
407
|
+
/** How many fresh-context (M) executions of the tasker loop to run. Default 1. Loop only. */
|
|
408
|
+
reviewExecutions?: number;
|
|
409
|
+
/** Integration mode resolved at integrate-time (flag > per-repo > global > default). */
|
|
410
|
+
integration?: IntegrationMode;
|
|
411
|
+
/**
|
|
412
|
+
* The explicit `--merge` override for the untrusted-origin build-propose rule on the
|
|
413
|
+
* `do --remote` task-BUILD path. See {@link DoOptions.explicitMerge}.
|
|
414
|
+
*/
|
|
415
|
+
explicitMerge?: boolean;
|
|
416
|
+
/**
|
|
417
|
+
* **Per-TRANSITION override for the TASKING transition only** (config
|
|
418
|
+
* `taskingIntegration`) on the `do --remote prd:<slug>` path: threaded into
|
|
419
|
+
* {@link performTask} as `taskingIntegration ?? integration`. Unset ⇒ tasking
|
|
420
|
+
* uses `integration` (today's behaviour); the task-BUILD path always threads
|
|
421
|
+
* `integration`. See {@link DoOptions.taskingIntegration}.
|
|
422
|
+
*/
|
|
423
|
+
taskingIntegration?: IntegrationMode;
|
|
424
|
+
/**
|
|
425
|
+
* **The per-repo TASK-PLACEMENT default** (prd
|
|
426
|
+
* `staging-pool-position-gate-and-trust-model` US #5) on the `do --remote
|
|
427
|
+
* prd:<slug>` path: threaded into {@link performTask} as the
|
|
428
|
+
* configured-default rung. See {@link DoOptions.tasksLandIn}.
|
|
429
|
+
*/
|
|
430
|
+
tasksLandIn?: 'pre-backlog' | 'ready';
|
|
431
|
+
/**
|
|
432
|
+
* **The OPERATOR's EXPLICIT task-placement override** on the `do --remote
|
|
433
|
+
* prd:` path. See {@link DoOptions.explicitTasksLandIn}.
|
|
434
|
+
*/
|
|
435
|
+
explicitTasksLandIn?: 'pre-backlog' | 'ready';
|
|
436
|
+
/** The declared per-repo ENV-PREP step (string | list), run ONCE before the
|
|
437
|
+
* first `verify` on a fresh worktree. Unset ⇒ a no-op (NO default install). */
|
|
438
|
+
prepare?: VerifyConfig;
|
|
439
|
+
/** The declared per-repo acceptance gate (string | list). */
|
|
440
|
+
verify?: VerifyConfig;
|
|
441
|
+
/**
|
|
442
|
+
* Run the acceptance gate against the REBASED tip in a clean throwaway worktree
|
|
443
|
+
* (the tree that integrates) when `true` (the default), else in the build
|
|
444
|
+
* worktree. `do --remote`/`--isolated` is a SINGLE-JOB path, so the resolved
|
|
445
|
+
* flag is passed UNCONDITIONALLY (no `run`-fleet downgrade).
|
|
446
|
+
*/
|
|
447
|
+
freshWorktreeGate?: boolean;
|
|
448
|
+
/**
|
|
449
|
+
* **The cross-job merge-serialiser CAS-retry cap** (config `mergeRetries`, prd
|
|
450
|
+
* `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied Answer q1
|
|
451
|
+
* (a)). Threaded VERBATIM into `performComplete` → `performIntegration` so the
|
|
452
|
+
* resolved cap reaches the cross-job land queue (the CAS loop IS the queue
|
|
453
|
+
* across separate jobs). Mirrors {@link DoOptions.mergeRetries} so the in-place
|
|
454
|
+
* and no-checkout `do` paths share ONE knob.
|
|
455
|
+
*/
|
|
456
|
+
mergeRetries?: number;
|
|
457
|
+
/**
|
|
458
|
+
* **The PR-INTENT axis** (config `noPR`, ADR §6): when `true`, propose pushes
|
|
459
|
+
* the branch but skips the PR (the explicit suppress-PR intent). NOT a provider
|
|
460
|
+
* choice — the provider is purely arbiter-derived. Unset/false ⇒ PR opens.
|
|
461
|
+
*/
|
|
462
|
+
noPR?: boolean;
|
|
463
|
+
/**
|
|
464
|
+
* The `gh` AUTH/AVAILABILITY PROBE the PR-INTENT pre-flight guard runs UP FRONT
|
|
465
|
+
* on the AUTONOMOUS path too (propose + GitHub arbiter + `noPR` unset): `true` ⇒
|
|
466
|
+
* `gh` CAN open a PR. Mirrors {@link DoOptions.ghCanOpenPr} so the in-place and
|
|
467
|
+
* no-checkout `do` paths share ONE signal. The probe (not a config check) is the
|
|
468
|
+
* signal — an absent `providers.github` identity falls back to ambient `gh` auth,
|
|
469
|
+
* which the probe reports available, so a working ambient setup still PROCEEDS.
|
|
470
|
+
* Injectable so tests stub `gh` without a real binary; production defaults to
|
|
471
|
+
* `new GitHubProvider().available(probeDir, env)`, run in the claim clone (which
|
|
472
|
+
* carries the arbiter remote), NOT a bare cwd.
|
|
473
|
+
*/
|
|
474
|
+
ghCanOpenPr?: (cwd: string, env: NodeJS.ProcessEnv | undefined) => boolean;
|
|
475
|
+
/**
|
|
476
|
+
* Optional FULLY-FORMED review provider INSTANCE (tests/embeddings inject a
|
|
477
|
+
* stubbed `GitHubProvider` to drive the propose pipeline offline). The resolved
|
|
478
|
+
* provider OBJECT, NOT a config override. Unset ⇒ the core selects from the
|
|
479
|
+
* arbiter URL.
|
|
480
|
+
*/
|
|
481
|
+
providerInstance?: ReviewProvider;
|
|
482
|
+
/** Gate 2 (PR/code review) toggle — threaded verbatim into `performComplete`. */
|
|
483
|
+
review?: boolean;
|
|
484
|
+
reviewModel?: string;
|
|
485
|
+
reviewMaxRounds?: number;
|
|
486
|
+
reviewGate?: ReviewGate;
|
|
487
|
+
/** The task-SET ACCEPTANCE GATE seam — `do --remote prd:<slug>` path only (see {@link DoOptions.taskReviewGate}). */
|
|
488
|
+
taskReviewGate?: ReviewGate;
|
|
489
|
+
/**
|
|
490
|
+
* **`--allow-backlog`** on the no-checkout `do --remote`/`--isolated` path (see
|
|
491
|
+
* {@link DoOptions.allowBacklog}): widen resolution + the claimable predicate to
|
|
492
|
+
* ALSO accept a `tasks/backlog/`-resident task, so the human-driven `drive-tasks`
|
|
493
|
+
* opt-in backlog mode can build a STAGED task in place. The done-move goes
|
|
494
|
+
* `tasks/backlog/ → tasks/done/` directly. Default off; never set by an
|
|
495
|
+
* autonomous path. The task-build path only.
|
|
496
|
+
*/
|
|
497
|
+
allowBacklog?: boolean;
|
|
498
|
+
/** Override the read seam (slug resolution); defaults to {@link ledgerRead}. */
|
|
499
|
+
read?: LedgerReadStrategy;
|
|
500
|
+
/** Sink for human-readable progress notes. */
|
|
501
|
+
note?: (message: string) => void;
|
|
502
|
+
/** Sink for a pre-formatted block (forwarded to `complete`'s next-step block). */
|
|
503
|
+
noteBlock?: (message: string) => void;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Run the in-place `do` ritual end-to-end. Never throws for the expected
|
|
507
|
+
* lost/contended/refused/needs-attention cases — those are returned with the
|
|
508
|
+
* appropriate exit code and outcome. The runner owns all git; the agent only
|
|
509
|
+
* edits code.
|
|
510
|
+
*/
|
|
511
|
+
export declare function performDo(options: DoOptions): Promise<DoResult>;
|
|
512
|
+
/**
|
|
513
|
+
* The EXACT recovery one-liner handed to the operator when an isolated/remote `do`
|
|
514
|
+
* integration fails terminally AFTER the work was committed + done-moved (the
|
|
515
|
+
* stale-lease-strand class surfaced by Part B #97), leaving the job worktree
|
|
516
|
+
* RETAINED. It points them straight at the recover-already-committed path
|
|
517
|
+
* (`complete --isolated <slug>`) so they need not reverse-engineer the encoded
|
|
518
|
+
* worktree path \u2014 the FINISH half of try-to-finish / else-surface. Detection is
|
|
519
|
+
* unspoofable (an already-integrated task is a clean no-op), so re-running it is
|
|
520
|
+
* always safe.
|
|
521
|
+
*
|
|
522
|
+
* `complete --isolated` recovers the retained WORKTREE, so it ONLY works ON THE
|
|
523
|
+
* MACHINE that ran the job (the worktree is local + reaped when that runner ends).
|
|
524
|
+
* From a DIFFERENT checkout (e.g. a CI-stranded job finished on your laptop),
|
|
525
|
+
* `--isolated` finds no local worktree and silently no-ops; there, check out the
|
|
526
|
+
* already-pushed work branch off the arbiter and run plain `complete`. Both named.
|
|
527
|
+
*/
|
|
528
|
+
export declare function recoverIsolatedOneLiner(slug: string): string;
|
|
529
|
+
/**
|
|
530
|
+
* `dorfl do --remote <r> <arg>` — the per-repo `do` WORKER run against a
|
|
531
|
+
* REGISTERED repo with NO checkout (`docs/adr/command-surface-and-journeys.md`
|
|
532
|
+
* §3). Where the in-place {@link performDo} uses the CURRENT checkout AS its
|
|
533
|
+
* isolation, this form materialises a **hub mirror + job worktree in the AGENTS'
|
|
534
|
+
* area** (`workspacesDir`, the SAME isolation `run` uses — NEVER the human area),
|
|
535
|
+
* runs the existing `do` pipeline against that worktree, then tears it down per
|
|
536
|
+
* the §4 provably-safe deletion predicate.
|
|
537
|
+
*
|
|
538
|
+
* **Option A — materialise-then-reuse** (the drift correction; the full
|
|
539
|
+
* IsolatedTree-seam unification is the SEPARATE `do-run-share-isolation-seam`
|
|
540
|
+
* task). `performDo` composes the human verbs against a literal `cwd`; this
|
|
541
|
+
* function does the same — it just points that `cwd` at a freshly-cut job
|
|
542
|
+
* worktree instead of a checkout. It reuses (does NOT reimplement) the pipeline:
|
|
543
|
+
* `performStart` (resume) → agent → `performComplete`.
|
|
544
|
+
*
|
|
545
|
+
* **The claim ↔ worktree ↔ start composition.** Both `createJob` (cuts the
|
|
546
|
+
* `work/<slug>` branch off the mirror's fresh main) and `performStart` (claims +
|
|
547
|
+
* switches to `work/<slug>`) overlap. To compose without double-claiming or
|
|
548
|
+
* fighting over the branch we order them as the task mandates:
|
|
549
|
+
*
|
|
550
|
+
* 1. **CLAIM FIRST** — the CAS push to the arbiter, run in a throwaway clone of
|
|
551
|
+
* the mirror (the CAS needs a non-bare checkout with an `origin/main`
|
|
552
|
+
* tracking ref + a worktree to commit in, which a bare mirror does not
|
|
553
|
+
* provide — exactly `work-on`'s remote-form claim context).
|
|
554
|
+
* 2. **MATERIALISE the worktree** off the POST-CLAIM fresh main via the EXISTING
|
|
555
|
+
* job-worktree machinery (`jobWorktreeStrategy`/`createJob`): `createJob`
|
|
556
|
+
* re-`ensureMirror`s (fetching the claim move) then cuts `work/<slug>` off
|
|
557
|
+
* the freshly-fetched mirror main.
|
|
558
|
+
* 3. **RUN start/agent/complete** against the worktree dir as `cwd`. `start` is
|
|
559
|
+
* driven with `resume: true` so it PLAIN-SWITCHES the branch `createJob`
|
|
560
|
+
* already created (the item is in-progress on the arbiter after the claim;
|
|
561
|
+
* `performStart`'s resume path switches without re-claiming) — no
|
|
562
|
+
* double-claim, no branch fight. The worktree's arbiter remote is `origin`
|
|
563
|
+
* (the bare mirror's clone remote), so both `start` and `complete` use
|
|
564
|
+
* `origin`.
|
|
565
|
+
*
|
|
566
|
+
* **Teardown** re-applies the §4 predicate via the strategy handle's `teardown`
|
|
567
|
+
* (`reapJob`): reap the worktree iff clean AND on the arbiter, retain otherwise
|
|
568
|
+
* (the never-lose-work signal). NEVER `--force`.
|
|
569
|
+
*
|
|
570
|
+
* **Recovery contract.** The worktree is disposable; the durable artifact is the
|
|
571
|
+
* `work/<slug>` BRANCH (pushed by the autonomous needs-attention surfacing on a
|
|
572
|
+
* stuck/failed run). A human recovers via the human face (`requeue` + re-claim,
|
|
573
|
+
* or `work-on`), NEVER by editing the agents'-area worktree.
|
|
574
|
+
*/
|
|
575
|
+
/**
|
|
576
|
+
* Resolve the URL of a CHECKOUT's arbiter remote — the primitive `do --isolated`
|
|
577
|
+
* needs to point the job-worktree pipeline ({@link performDoRemote}) at MY OWN
|
|
578
|
+
* arbiter (`git -C <cwd> remote get-url <arbiter>`). Returns the URL, or
|
|
579
|
+
* `undefined` when the cwd is not a git repo or has no such remote (the
|
|
580
|
+
* "isolated against what?" case the CLI turns into a clear error naming
|
|
581
|
+
* `--remote <url>`). Does NOT fork the isolation/integrate path — it only feeds
|
|
582
|
+
* the EXISTING `performDoRemote` its `remote` URL.
|
|
583
|
+
*/
|
|
584
|
+
export declare function resolveArbiterUrlFromCheckout(cwd: string, arbiter: string, env?: NodeJS.ProcessEnv): string | undefined;
|
|
585
|
+
export declare function performDoRemote(options: DoRemoteOptions): Promise<DoResult>;
|
|
586
|
+
/**
|
|
587
|
+
* Adapt the IN-PLACE {@link DoOptions} build/task driver onto the WORKTREE-
|
|
588
|
+
* ISOLATED {@link performDoRemote} pipeline (task
|
|
589
|
+
* `advance-loop-driver-registry-set-job-worktrees`) — the per-mirror job-worktree
|
|
590
|
+
* `doDriver` the registry-set advance driver threads into the advance tick.
|
|
591
|
+
*
|
|
592
|
+
* The advance tick's build/task rung ORCHESTRATES `do` by calling the
|
|
593
|
+
* {@link AdvanceContext.doDriver} seam with a resolved {@link DoOptions} (whose
|
|
594
|
+
* `cwd` is the per-mirror in-place checkout). The DEFAULT driver is
|
|
595
|
+
* {@link performDo} (in-place, the cwd checkout IS the isolation — the human-local
|
|
596
|
+
* one-shot `advance` + today's `run --advance`). The DAEMON/CI registry-set path
|
|
597
|
+
* wants the SAME per-job-worktree isolation `run`'s build tick gives `runOneItem`,
|
|
598
|
+
* so it injects THIS driver instead: it re-routes the orchestration onto
|
|
599
|
+
* {@link performDoRemote}, which materialises a hub mirror + job worktree off the
|
|
600
|
+
* mirror's arbiter via the EXISTING `jobWorktreeStrategy` (no second isolation
|
|
601
|
+
* mechanism), runs the SAME `do` pipeline there, and reaps per the §4 predicate.
|
|
602
|
+
* The cwd checkout is NEVER touched (the equivalence the task asserts vs plain
|
|
603
|
+
* `run`).
|
|
604
|
+
*
|
|
605
|
+
* The pipeline knobs (verify / integration / review family / agent launch /
|
|
606
|
+
* identity) ride VERBATIM from the threaded `DoOptions` onto the structurally-
|
|
607
|
+
* matching {@link DoRemoteOptions} fields; `cwd` is DROPPED (the worktree replaces
|
|
608
|
+
* it) and `remote` + `workspacesDir` are supplied from this driver's closure (the
|
|
609
|
+
* mirror's arbiter URL + the agents' execution area). A `prd:` arg flows through
|
|
610
|
+
* unchanged — `performDoRemote` tasks it against the claim clone with NO build
|
|
611
|
+
* worktree (the tasking/surface/triage/apply rungs are tree-less ledger moves, the
|
|
612
|
+
* substrate the task's criterion 4 preserves).
|
|
613
|
+
*/
|
|
614
|
+
export declare function jobWorktreeDoDriver(closure: {
|
|
615
|
+
/** The mirror's arbiter URL (`git -C <mirror> remote get-url origin`) — `performDoRemote`'s `remote`. */
|
|
616
|
+
remote: string;
|
|
617
|
+
/** The agents' execution area (config `workspacesDir`) where the hub mirror + worktree live. */
|
|
618
|
+
workspacesDir: string;
|
|
619
|
+
}): (options: DoOptions) => Promise<DoResult>;
|
|
620
|
+
export {};
|
|
621
|
+
//# sourceMappingURL=do.d.ts.map
|
package/dist/do.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"do.d.ts","sourceRoot":"","sources":["../src/do.ts"],"names":[],"mappings":"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"}
|