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/detect.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { readdirSync, existsSync, statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { workFolderPath, isWorkItemFile } from './work-layout.js';
|
|
4
|
+
/**
|
|
5
|
+
* Discovery of `work/`-participating repos in a FOLDER. In the registry model
|
|
6
|
+
* (ADR `command-surface-and-journeys` §1) the registered set IS the hub-mirror
|
|
7
|
+
* set on disk — there is NO config `roots`/`remotes` walk. This module is no
|
|
8
|
+
* longer implicit discovery; its sole remaining job is to serve
|
|
9
|
+
* **`remote find <folder>`** (ADR §1): walk ONE folder, find the participating
|
|
10
|
+
* repos, and let the user toggle-add them. `isParticipatingRepo` is the same
|
|
11
|
+
* predicate `remote find` filters on. A repo participates when it holds dorfl
|
|
12
|
+
* WORK content in any lifecycle pool (see {@link isParticipatingRepo}), not only
|
|
13
|
+
* a non-empty `tasks/ready/`.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* The `work/` pools whose presence makes a repo a dorfl WORK repo. Participation
|
|
17
|
+
* is NOT "has a claimable task": a repo whose `tasks/ready/` build pool is drained
|
|
18
|
+
* but whose LIFECYCLE queues are full (answered `questions/` sidecars awaiting
|
|
19
|
+
* apply, `needsAnswers` observations awaiting surface, staged prds/tasks awaiting
|
|
20
|
+
* promotion) is still very much participating — the lifecycle rungs
|
|
21
|
+
* (triage / surface / apply / promote) act on exactly those pools. Gating
|
|
22
|
+
* participation on `tasks/ready/` ALONE made such a repo read as non-participating,
|
|
23
|
+
* so `scan --here` returned empty lifecycle buckets and the CI enumerate step found
|
|
24
|
+
* nothing to do (a silent green no-op while real work sat in `questions/`).
|
|
25
|
+
*
|
|
26
|
+
* The predicate therefore mirrors what `enumerate`/`scan` can actually produce
|
|
27
|
+
* items from: it stays a CHEAP, fetch-free local `readdirSync` (no network — it is
|
|
28
|
+
* the pre-gate `remote find` and the cwd-section resolver call before paying for a
|
|
29
|
+
* fetch), just no longer NARROWER than the lifecycle it guards.
|
|
30
|
+
*/
|
|
31
|
+
const PARTICIPATING_POOLS = [
|
|
32
|
+
'tasks-ready',
|
|
33
|
+
'tasks-backlog',
|
|
34
|
+
'specs-proposed',
|
|
35
|
+
'specs-ready',
|
|
36
|
+
'observations',
|
|
37
|
+
'questions',
|
|
38
|
+
];
|
|
39
|
+
/**
|
|
40
|
+
* A repo participates iff any of its lifecycle-bearing `work/` pools
|
|
41
|
+
* ({@link PARTICIPATING_POOLS}) contains at least one `.md` file. This is the
|
|
42
|
+
* predicate `remote find` (ADR §1) filters on AND the fetch-free gate
|
|
43
|
+
* `scan`/`status` use before resolving the (expensive) cwd section.
|
|
44
|
+
*/
|
|
45
|
+
export function isParticipatingRepo(repoPath) {
|
|
46
|
+
return PARTICIPATING_POOLS.some((key) => folderHasWorkItem(repoPath, key));
|
|
47
|
+
}
|
|
48
|
+
/** True iff the named work folder exists and holds at least one work-item `.md`. */
|
|
49
|
+
function folderHasWorkItem(repoPath, key) {
|
|
50
|
+
let entries;
|
|
51
|
+
try {
|
|
52
|
+
entries = readdirSync(workFolderPath(repoPath, key));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return entries.some((name) => isWorkItemFile(name));
|
|
58
|
+
}
|
|
59
|
+
function shouldPrune(name) {
|
|
60
|
+
return name === 'node_modules' || name.startsWith('.');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Walk a single folder, collecting participating repo paths. Prunes
|
|
64
|
+
* `node_modules` and dotdirs, and does not descend into a repo once it is found
|
|
65
|
+
* to participate (a participating repo's own subtree yields no more repos).
|
|
66
|
+
*/
|
|
67
|
+
function walkFolder(folder, found) {
|
|
68
|
+
const stack = [folder];
|
|
69
|
+
while (stack.length > 0) {
|
|
70
|
+
const dir = stack.pop();
|
|
71
|
+
if (isParticipatingRepo(dir)) {
|
|
72
|
+
found.add(dir);
|
|
73
|
+
// Don't descend further into a participating repo.
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
let entries;
|
|
77
|
+
try {
|
|
78
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
for (const entry of entries) {
|
|
84
|
+
if (!entry.isDirectory()) {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (shouldPrune(entry.name)) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
stack.push(join(dir, entry.name));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Find every `work/`-participating repo under `folder` (recursively), pruning
|
|
96
|
+
* `node_modules`/dotdirs and not descending into a participating repo. The
|
|
97
|
+
* returned list is deduplicated and sorted (deterministic). This is the
|
|
98
|
+
* discovery primitive behind `remote find <folder>` (ADR §1): the caller filters
|
|
99
|
+
* on {@link isParticipatingRepo} and toggle-adds the chosen ones via `remote
|
|
100
|
+
* add`. A non-existent / non-directory `folder` yields `[]` (never throws).
|
|
101
|
+
*/
|
|
102
|
+
export function findParticipatingRepos(folder) {
|
|
103
|
+
const found = new Set();
|
|
104
|
+
if (!existsSync(folder)) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
if (!statSync(folder).isDirectory()) {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
walkFolder(folder, found);
|
|
116
|
+
return [...found].sort();
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type DoOptions, type DoResult } from './do.js';
|
|
2
|
+
import { type LedgerReadStrategy } from './ledger-read.js';
|
|
3
|
+
import type { Config } from './config.js';
|
|
4
|
+
import type { ConfigOverrideMap } from './config-override.js';
|
|
5
|
+
/**
|
|
6
|
+
* The MULTI-ITEM selection forms of `do` (ADR `command-surface-and-journeys`
|
|
7
|
+
* §3), layered ON TOP of the single-item in-place pipeline from `do-in-place`
|
|
8
|
+
* ({@link performDo}) — it does NOT reimplement that pipeline; it SELECTS +
|
|
9
|
+
* ORDERS items and runs the existing pipeline per item, SEQUENTIALLY (`do` is
|
|
10
|
+
* sequential; parallelism is `run`'s job).
|
|
11
|
+
*
|
|
12
|
+
* - **`do` (no arg)** — auto-pick ONE eligible thing and do it.
|
|
13
|
+
* - **`do -n <x>`** — do x eligible things, in sequence.
|
|
14
|
+
* - **`do <a> <b> …`** — do those NAMED items, in sequence.
|
|
15
|
+
*
|
|
16
|
+
* Auto-pick / `-n` draw from TWO POOLS ordered by the configurable
|
|
17
|
+
* `selectionOrder` (the shared, pure {@link selectPrioritised} helper): eligible
|
|
18
|
+
* TASKS (the `build` pool — the existing `scan`/`selectCandidates`/eligibility
|
|
19
|
+
* path) and TASKABLE prds (the `task` pool — built from the prd reader +
|
|
20
|
+
* `autoslice-gate`'s predicate), in the per-repo `selectionOrder` (default `drain`
|
|
21
|
+
* = tasks-first). A selected prd dispatches to the `do prd:<slug>` path (tasking
|
|
22
|
+
* itself is `autoslice-command`, not built here).
|
|
23
|
+
*
|
|
24
|
+
* Explicit multi-arg (`do <a> <b>`) bypasses the pools/priority entirely — the
|
|
25
|
+
* named items are resolved + run in the given order (the operator chose them).
|
|
26
|
+
*/
|
|
27
|
+
/** The single-`do` runner the multi-item layer drives per selected item. */
|
|
28
|
+
export type DoRunner = (options: DoOptions) => Promise<DoResult>;
|
|
29
|
+
/** Options shared with {@link performDo}, threaded verbatim to each per-item run. */
|
|
30
|
+
type SharedDoOptions = Omit<DoOptions, 'arg'>;
|
|
31
|
+
export interface PerformDoMultiOptions extends SharedDoOptions {
|
|
32
|
+
/**
|
|
33
|
+
* The resolved repo config (provides `autoTask` for the prd gate,
|
|
34
|
+
* `selectionOrder` for the pool order, and the task-pool selection caps). The
|
|
35
|
+
* per-item runs still receive `autoTask`/`integration`/etc. via the spread
|
|
36
|
+
* `SharedDoOptions`.
|
|
37
|
+
*/
|
|
38
|
+
config: Config;
|
|
39
|
+
/**
|
|
40
|
+
* The per-machine {@link ConfigOverrideMap}. Threaded into the in-place pool
|
|
41
|
+
* scan (`scanRepoPaths`) so the override applies to autopick eligibility just
|
|
42
|
+
* as it does to the single-`do` resolution — WITHOUT it the committed
|
|
43
|
+
* `.dorfl.json` silently beats the per-machine override on this path.
|
|
44
|
+
*/
|
|
45
|
+
override?: ConfigOverrideMap;
|
|
46
|
+
/**
|
|
47
|
+
* `do -n <x>`: how many eligible items to do, in sequence. Auto-pick (no arg,
|
|
48
|
+
* no count) ⇒ 1. SEQUENTIAL — never a parallelism knob (advance-loop locks
|
|
49
|
+
* this: `-n` is always sequential for `do`/`advance`).
|
|
50
|
+
*/
|
|
51
|
+
count?: number;
|
|
52
|
+
/** Override the single-`do` runner (tests inject a stub). Defaults to {@link performDo}. */
|
|
53
|
+
run?: DoRunner;
|
|
54
|
+
/** Override the read seam (prd pool); defaults to the active {@link ledgerRead}. */
|
|
55
|
+
read?: LedgerReadStrategy;
|
|
56
|
+
}
|
|
57
|
+
/** The aggregate result of a multi-item `do` invocation. */
|
|
58
|
+
export interface DoMultiResult {
|
|
59
|
+
/** Each per-item {@link DoResult}, in the order they ran. */
|
|
60
|
+
results: DoResult[];
|
|
61
|
+
/**
|
|
62
|
+
* The process exit code for the whole invocation: 0 iff EVERY item that ran
|
|
63
|
+
* succeeded (or there was nothing eligible to do — an empty auto-pick is not a
|
|
64
|
+
* failure); otherwise the first non-zero per-item exit code (the worst
|
|
65
|
+
* outcome surfaces). Mirrors the single-`do` exit contract per item.
|
|
66
|
+
*/
|
|
67
|
+
exitCode: number;
|
|
68
|
+
/** Human-readable summary (printed by the CLI). */
|
|
69
|
+
message: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Run the AUTO-PICK / `-n <x>` form: build the two pools for `cwd`, order them
|
|
73
|
+
* per the resolved `selectionOrder` (default `drain` = tasks-first), take `count`
|
|
74
|
+
* (default 1), and run the existing `do` pipeline per selected item, SEQUENTIALLY.
|
|
75
|
+
*/
|
|
76
|
+
export declare function performDoAuto(options: PerformDoMultiOptions): Promise<DoMultiResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Run the EXPLICIT multi-arg form (`do <a> <b> …`): the named items in the GIVEN
|
|
79
|
+
* order (no pool/priority — the operator chose them). Each arg is run through the
|
|
80
|
+
* existing `do` pipeline, which itself resolves bare/`task:`/`prd:` (so a named
|
|
81
|
+
* prd dispatches to the tasking path and a collision errors), SEQUENTIALLY.
|
|
82
|
+
*/
|
|
83
|
+
export declare function performDoArgs(args: string[], options: PerformDoMultiOptions): Promise<DoMultiResult>;
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=do-autopick.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"do-autopick.d.ts","sourceRoot":"","sources":["../src/do-autopick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjE,OAAO,EAAa,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAOrE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjE,qFAAqF;AACrF,KAAK,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAE9C,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC7D;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,oFAAoF;IACpF,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC7B,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CAChB;AAYD;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAoDxB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAUxB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { performDo } from './do.js';
|
|
2
|
+
import { scanRepoPaths } from './scan.js';
|
|
3
|
+
import { ledgerRead } from './ledger-read.js';
|
|
4
|
+
import { selectPrioritised, taskableSpecs, } from './select-priority.js';
|
|
5
|
+
/**
|
|
6
|
+
* The task-pool caps for an in-place `do` selection. `do` is per-repo +
|
|
7
|
+
* sequential, so the REAL bound is the requested `count` (handled by the
|
|
8
|
+
* priority helper); the task-pool selection should not truncate BEFORE the
|
|
9
|
+
* count + the prd pool are combined. We therefore cap the task pool at "all
|
|
10
|
+
* eligible" (a large bound) and let {@link selectPrioritised}'s `count` do the
|
|
11
|
+
* trimming across both pools.
|
|
12
|
+
*/
|
|
13
|
+
const ALL_ELIGIBLE = Number.MAX_SAFE_INTEGER;
|
|
14
|
+
/**
|
|
15
|
+
* Run the AUTO-PICK / `-n <x>` form: build the two pools for `cwd`, order them
|
|
16
|
+
* per the resolved `selectionOrder` (default `drain` = tasks-first), take `count`
|
|
17
|
+
* (default 1), and run the existing `do` pipeline per selected item, SEQUENTIALLY.
|
|
18
|
+
*/
|
|
19
|
+
export async function performDoAuto(options) {
|
|
20
|
+
const run = options.run ?? performDo;
|
|
21
|
+
const read = options.read ?? ledgerRead;
|
|
22
|
+
const note = options.note ?? (() => { });
|
|
23
|
+
const cwd = options.cwd;
|
|
24
|
+
const count = options.count ?? 1;
|
|
25
|
+
// Pool 1 — eligible TASKS via the EXISTING scan/select path (task-only).
|
|
26
|
+
// Thread `override` so the per-machine override is applied per repo (the
|
|
27
|
+
// inner `resolveRepoConfig` re-applies it AFTER the committed file, restoring
|
|
28
|
+
// the override value even though `config` is already resolved).
|
|
29
|
+
const report = scanRepoPaths([cwd], options.config, new Set(), options.override);
|
|
30
|
+
// Pool 2 — TASKABLE prds: the NEW pool from the shared prd read path
|
|
31
|
+
// (`resolveSpecPool`) filtered by `autoslice-gate`'s predicate (not reinvented).
|
|
32
|
+
const pool = read.resolveSpecPool({ repoPath: cwd });
|
|
33
|
+
const specCandidates = pool.specs.map((spec) => ({
|
|
34
|
+
repoPath: cwd,
|
|
35
|
+
slug: spec.slug,
|
|
36
|
+
humanOnly: spec.humanOnly,
|
|
37
|
+
needsAnswers: spec.needsAnswers,
|
|
38
|
+
taskedAfter: spec.taskedAfter,
|
|
39
|
+
}));
|
|
40
|
+
const eligibleSpecs = taskableSpecs({
|
|
41
|
+
candidates: specCandidates,
|
|
42
|
+
taskedSlugs: pool.taskedSlugs,
|
|
43
|
+
autoTask: options.config.autoTask,
|
|
44
|
+
});
|
|
45
|
+
// Order across both pools per the resolved `selectionOrder` + bound by count. The
|
|
46
|
+
// task pool is selected via the SHARED `selectCandidates` primitive `run` uses.
|
|
47
|
+
const selected = selectPrioritised({
|
|
48
|
+
report,
|
|
49
|
+
caps: { maxParallel: ALL_ELIGIBLE, perRepoMax: ALL_ELIGIBLE },
|
|
50
|
+
specs: eligibleSpecs,
|
|
51
|
+
selectionOrder: options.config.selectionOrder,
|
|
52
|
+
count,
|
|
53
|
+
});
|
|
54
|
+
if (selected.length === 0) {
|
|
55
|
+
const message = 'Nothing eligible to do (no eligible tasks and no taskable prds).';
|
|
56
|
+
note(message);
|
|
57
|
+
return { results: [], exitCode: 0, message };
|
|
58
|
+
}
|
|
59
|
+
return runSelectedInSequence(selected, options, run);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run the EXPLICIT multi-arg form (`do <a> <b> …`): the named items in the GIVEN
|
|
63
|
+
* order (no pool/priority — the operator chose them). Each arg is run through the
|
|
64
|
+
* existing `do` pipeline, which itself resolves bare/`task:`/`prd:` (so a named
|
|
65
|
+
* prd dispatches to the tasking path and a collision errors), SEQUENTIALLY.
|
|
66
|
+
*/
|
|
67
|
+
export async function performDoArgs(args, options) {
|
|
68
|
+
const run = options.run ?? performDo;
|
|
69
|
+
const selected = args.map((arg) => ({
|
|
70
|
+
repoPath: options.cwd,
|
|
71
|
+
slug: arg,
|
|
72
|
+
// The arg is passed VERBATIM to `performDo` (it does its own slug
|
|
73
|
+
// resolution); the namespace is irrelevant for explicit args.
|
|
74
|
+
namespace: 'task',
|
|
75
|
+
}));
|
|
76
|
+
return runSelectedInSequence(selected, options, run, { verbatimArg: true });
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Run a list of selected items through the existing `do` pipeline, SEQUENTIALLY,
|
|
80
|
+
* threading the shared options to each. For the pool path the `do` arg encodes
|
|
81
|
+
* the namespace (`prd:<slug>` for a selected prd, bare slug for a task); for the
|
|
82
|
+
* explicit-arg path the caller's raw arg is passed verbatim.
|
|
83
|
+
*/
|
|
84
|
+
async function runSelectedInSequence(selected, options, run, mode = {}) {
|
|
85
|
+
const shared = sharedDoOptions(options);
|
|
86
|
+
const results = [];
|
|
87
|
+
for (const item of selected) {
|
|
88
|
+
const arg = mode.verbatimArg
|
|
89
|
+
? item.slug
|
|
90
|
+
: item.namespace === 'spec'
|
|
91
|
+
? `spec:${item.slug}`
|
|
92
|
+
: item.slug;
|
|
93
|
+
const result = await run({ ...shared, arg });
|
|
94
|
+
results.push(result);
|
|
95
|
+
}
|
|
96
|
+
const firstFailure = results.find((r) => r.exitCode !== 0);
|
|
97
|
+
const exitCode = firstFailure ? firstFailure.exitCode : 0;
|
|
98
|
+
const ok = results.filter((r) => r.exitCode === 0).length;
|
|
99
|
+
const message = `did ${results.length} item${results.length === 1 ? '' : 's'} ` +
|
|
100
|
+
`(${ok} ok, ${results.length - ok} not).`;
|
|
101
|
+
return { results, exitCode, message };
|
|
102
|
+
}
|
|
103
|
+
/** Strip the multi-only fields, leaving exactly the per-item {@link DoOptions} base. */
|
|
104
|
+
function sharedDoOptions(options) {
|
|
105
|
+
const { config: _config, count: _count, run: _run, read: _read, ...rest } = options;
|
|
106
|
+
void _config;
|
|
107
|
+
void _count;
|
|
108
|
+
void _run;
|
|
109
|
+
void _read;
|
|
110
|
+
return rest;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=do-autopick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"do-autopick.js","sourceRoot":"","sources":["../src/do-autopick.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import type { Config, IntegrationMode, PartialConfig } from './config.js';
|
|
2
|
+
/**
|
|
3
|
+
* The CLI flags that select WHICH agent runs and HOW it is launched — shared,
|
|
4
|
+
* verbatim, by `run` and `do`. Both commands offer `--harness`/`--agent-cmd`/
|
|
5
|
+
* `--pi-bin`/`--model`; this is the single place their string→`PartialConfig`
|
|
6
|
+
* mapping lives so there is exactly ONE override path (not a parallel one per
|
|
7
|
+
* command). `cli.ts`'s `runFlagOverrides` and {@link doFlagOverrides} both fold
|
|
8
|
+
* this in.
|
|
9
|
+
*/
|
|
10
|
+
export interface HarnessFlags {
|
|
11
|
+
agentCmd?: string;
|
|
12
|
+
model?: string;
|
|
13
|
+
harness?: string;
|
|
14
|
+
piBin?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The HOST-ONLY root folder under which a job's pi session FILE is generated
|
|
17
|
+
* (`--sessions-dir`). Forwarded verbatim like `piBin`; the path generator turns
|
|
18
|
+
* it into `<sessionsDir>/<unique-id>.jsonl` at launch (unset ⇒ pi's per-cwd
|
|
19
|
+
* default folder).
|
|
20
|
+
*/
|
|
21
|
+
sessionsDir?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Map the shared harness/adapter flags into a {@link PartialConfig} of overrides
|
|
25
|
+
* — the per-key mapping `run` and `do` both reuse. Only flags actually present
|
|
26
|
+
* contribute (absent flag ⇒ absent key), so the override layer never clobbers a
|
|
27
|
+
* lower precedence source with `undefined`. `--harness` is validated against the
|
|
28
|
+
* `HarnessAdapter` union (an out-of-range value is dropped, matching `run`).
|
|
29
|
+
*/
|
|
30
|
+
export declare function harnessFlagOverrides(flags: HarnessFlags): PartialConfig;
|
|
31
|
+
/**
|
|
32
|
+
* Build the flag-override `PartialConfig` for the `do` command. This is the FIX
|
|
33
|
+
* for the silent-drop bug: `do` DECLARES `--harness`/`--agent-cmd`/`--pi-bin`/
|
|
34
|
+
* `--model`, so its action MUST thread them into `resolveRepoConfig`'s `flags`
|
|
35
|
+
* — not just `{integration}`. It reuses the SAME per-key mapping `run` uses
|
|
36
|
+
* ({@link harnessFlagOverrides}), then folds in the integrate-time mode (the
|
|
37
|
+
* already-resolved `--merge`/`--propose`, via `integrationFromFlags`) so the
|
|
38
|
+
* full set rides the same precedence chain (flag > env > per-repo > global >
|
|
39
|
+
* default).
|
|
40
|
+
*/
|
|
41
|
+
export declare function doFlagOverrides(flags: HarnessFlags & ReviewFlags & TaskerLoopFlags & FreshWorktreeGateFlags & SelectionOrderFlags & ObservationTriageFlags & SurfaceBlockersFlags & MergeQuestionsFlags & StrictMergeApprovalFlags & NoPRFlags & MergeRetriesFlags, integration?: IntegrationMode): PartialConfig;
|
|
42
|
+
/**
|
|
43
|
+
* The Gate-2 (PR/code review) CLI flags, offered by `do` AND `complete`
|
|
44
|
+
* (`--review`/`--no-review`, `--review-model`, `--review-max-rounds`). Both commands resolve them through
|
|
45
|
+
* the SAME `flag > env > per-repo > global > default` chain as `integration`, so
|
|
46
|
+
* the mapping lives in ONE place (not a parallel copy per command).
|
|
47
|
+
*/
|
|
48
|
+
export interface ReviewFlags {
|
|
49
|
+
/** `--review` ⇒ true, `--no-review` ⇒ false, absent ⇒ undefined. */
|
|
50
|
+
review?: boolean;
|
|
51
|
+
/** `--review-model <id>` — the de-correlated review model (routing intent). */
|
|
52
|
+
reviewModel?: string;
|
|
53
|
+
/** `--review-max-rounds <n>` — the revise↔review loop bound (parsed to a number). */
|
|
54
|
+
reviewMaxRounds?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The tasker IMPROVER-loop CLI flags (`do` only): `--tasker-loop` /
|
|
58
|
+
* `--no-tasker-loop` (the on/off toggle), `--tasker-loop-max <n>` (the in-context
|
|
59
|
+
* convergence cap), and `--tasker-loop-model <id>` (the loop reviewer's
|
|
60
|
+
* de-correlated model). A DISTINCT family from the acceptance gate's `--review*`
|
|
61
|
+
* (see {@link ReviewFlags}) — no flag/key/field name spans both. Resolved through
|
|
62
|
+
* the SAME `flag > env > per-repo > global > default` chain.
|
|
63
|
+
*
|
|
64
|
+
* NOTE the flag NAMES are tasking-vocabulary (`--tasker-loop*`, so commander
|
|
65
|
+
* populates the `taskerLoop*` fields below), and they resolve into the
|
|
66
|
+
* `taskerLoop*` CONFIG KEYS, so {@link taskerLoopFlagOverrides} bridges the
|
|
67
|
+
* flag fields onto the config keys.
|
|
68
|
+
*/
|
|
69
|
+
export interface TaskerLoopFlags {
|
|
70
|
+
/** `--tasker-loop` ⇒ true, `--no-tasker-loop` ⇒ false, absent ⇒ undefined. */
|
|
71
|
+
taskerLoop?: boolean;
|
|
72
|
+
/** `--tasker-loop-max <n>` — the loop's in-context convergence cap (parsed to a number). */
|
|
73
|
+
taskerLoopMax?: string;
|
|
74
|
+
/** `--tasker-loop-model <id>` — the loop reviewer's de-correlated model (routing intent). */
|
|
75
|
+
taskerLoopModel?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Map the Gate-2 review flags into a {@link PartialConfig} of overrides — the
|
|
79
|
+
* per-key mapping `do` and `complete` both reuse. Only flags actually present
|
|
80
|
+
* contribute (absent flag ⇒ absent key), so the override layer never clobbers a
|
|
81
|
+
* lower-precedence source with `undefined`. `--review-max-rounds` is parsed to a
|
|
82
|
+
* number; a non-numeric value is dropped (the lower layer / default decides).
|
|
83
|
+
*/
|
|
84
|
+
export declare function reviewFlagOverrides(flags: ReviewFlags): PartialConfig;
|
|
85
|
+
/**
|
|
86
|
+
* Map the tasker IMPROVER-loop flags into a {@link PartialConfig} of overrides.
|
|
87
|
+
* Only flags actually present contribute (absent flag ⇒ absent key), so the
|
|
88
|
+
* override layer never clobbers a lower-precedence source with `undefined`.
|
|
89
|
+
* `--tasker-loop-max` is parsed to a number; a non-numeric value is dropped (the
|
|
90
|
+
* lower layer / default decides). A DISTINCT family from {@link reviewFlagOverrides}.
|
|
91
|
+
*
|
|
92
|
+
* The tasking-vocabulary FLAG fields (`taskerLoop*`) bridge onto the
|
|
93
|
+
* `taskerLoop*` CONFIG KEYS, so the operator types `--tasker-loop` and the value
|
|
94
|
+
* resolves through the standard precedence into `config.taskerLoop`.
|
|
95
|
+
*/
|
|
96
|
+
export declare function taskerLoopFlagOverrides(flags: TaskerLoopFlags): PartialConfig;
|
|
97
|
+
/**
|
|
98
|
+
* The fresh-worktree acceptance-gate CLI flag (`do`/`complete`/`run`):
|
|
99
|
+
* `--fresh-worktree-gate` / `--no-fresh-worktree-gate`, the POSITIVE boolean
|
|
100
|
+
* (default ON) toggling whether the acceptance gate (`prepare` then `verify`)
|
|
101
|
+
* runs against the REBASED tip in a clean throwaway worktree (the merged
|
|
102
|
+
* artifact) or in the agent's build worktree (the pre-rebase tree). Modelled
|
|
103
|
+
* EXACTLY on {@link TaskerLoopFlags}'s on/off toggle; a DISTINCT family (no
|
|
104
|
+
* flag/key/field name spans both). Resolved through the SAME
|
|
105
|
+
* `flag > env > per-repo > global > default` chain.
|
|
106
|
+
*/
|
|
107
|
+
export interface FreshWorktreeGateFlags {
|
|
108
|
+
/** `--fresh-worktree-gate` ⇒ true, `--no-fresh-worktree-gate` ⇒ false, absent ⇒ undefined. */
|
|
109
|
+
freshWorktreeGate?: boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Map the `--fresh-worktree-gate`/`--no-fresh-worktree-gate` flag into a
|
|
113
|
+
* {@link PartialConfig} override. Only a present flag contributes (absent ⇒
|
|
114
|
+
* absent key), so the override layer never clobbers a lower-precedence source
|
|
115
|
+
* with `undefined`. A negatable boolean (mirrors `taskerLoop`), so the caller
|
|
116
|
+
* leaves `freshWorktreeGate` UNDEFINED unless the user explicitly passed the
|
|
117
|
+
* flag (see the cli's option-source read).
|
|
118
|
+
*/
|
|
119
|
+
export declare function freshWorktreeGateFlagOverrides(flags: FreshWorktreeGateFlags): PartialConfig;
|
|
120
|
+
/**
|
|
121
|
+
* The selection-order CLI flag (`do` AND `advance`): `--selection-order <order>`
|
|
122
|
+
* (a preset keyword like `drain`/`groom`, or a comma-separated explicit pool
|
|
123
|
+
* order like `build,task,surface,triage`). Resolved through the SAME
|
|
124
|
+
* `flag > env > per-repo > global > default` chain as the other `do` flags.
|
|
125
|
+
*/
|
|
126
|
+
export interface SelectionOrderFlags {
|
|
127
|
+
/** `--selection-order <order>` — a preset keyword or comma-separated pool list. */
|
|
128
|
+
selectionOrder?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Map the `--selection-order` flag into a {@link PartialConfig} override. Only a
|
|
132
|
+
* present flag contributes (absent ⇒ absent key). A value CONTAINING a comma is
|
|
133
|
+
* parsed into a trimmed, non-empty list (an explicit pool order, mirroring the
|
|
134
|
+
* env `'list'` coercion); otherwise it is the verbatim string (a preset keyword
|
|
135
|
+
* or a single pool name). The resolver (`select-order.ts`) does the
|
|
136
|
+
* validation/expansion + loud failure at selection time — this only normalises
|
|
137
|
+
* the flag's surface syntax.
|
|
138
|
+
*/
|
|
139
|
+
export declare function selectionOrderFlagOverrides(flags: SelectionOrderFlags): PartialConfig;
|
|
140
|
+
/**
|
|
141
|
+
* The observation-triage CLI flag (`advance`): `--observation-triage
|
|
142
|
+
* <off|ask|auto>`, the 3-state gate over the observation INBOX (ADR
|
|
143
|
+
* `ci-config-policy-and-gate-family`). Resolved through the SAME
|
|
144
|
+
* `flag > env > per-repo > global > default` chain as the other gate flags.
|
|
145
|
+
*/
|
|
146
|
+
export interface ObservationTriageFlags {
|
|
147
|
+
/** `--observation-triage <off|ask|auto>` — the observation-inbox gate state. */
|
|
148
|
+
observationTriage?: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Map the `--observation-triage` flag into a {@link PartialConfig} override. Only
|
|
152
|
+
* a present flag contributes (absent ⇒ absent key). An INVALID value FAILS LOUDLY
|
|
153
|
+
* (the same loud-failure contract the env enum coercion enforces) rather than
|
|
154
|
+
* silently falling through to a lower layer — a typo on an autonomy gate must
|
|
155
|
+
* never be quietly ignored.
|
|
156
|
+
*/
|
|
157
|
+
export declare function observationTriageFlagOverrides(flags: ObservationTriageFlags): PartialConfig;
|
|
158
|
+
/**
|
|
159
|
+
* The surface-blockers CLI flag (`advance`): `--surface-blockers` /
|
|
160
|
+
* `--no-surface-blockers`, the BOOLEAN gate over DECLARED blocked work (whether a
|
|
161
|
+
* `needsAnswers:true` task/prd is rendered into a question sidecar; ADR
|
|
162
|
+
* `ci-config-policy-and-gate-family`). The orthogonal PEER of
|
|
163
|
+
* `--observation-triage`. Resolved through the SAME
|
|
164
|
+
* `flag > env > per-repo > global > default` chain as the other gate flags.
|
|
165
|
+
*/
|
|
166
|
+
export interface SurfaceBlockersFlags {
|
|
167
|
+
/** `--surface-blockers` ⇒ true, `--no-surface-blockers` ⇒ false, absent ⇒ undefined. */
|
|
168
|
+
surfaceBlockers?: boolean;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Map the `--surface-blockers` flag into a {@link PartialConfig} override. Only a
|
|
172
|
+
* present flag contributes (absent ⇒ absent key), so the override layer never
|
|
173
|
+
* clobbers a lower-precedence source with `undefined`. A negatable boolean, so the
|
|
174
|
+
* caller leaves `surfaceBlockers` UNDEFINED unless the user explicitly passed
|
|
175
|
+
* `--surface-blockers`/`--no-surface-blockers` (see the cli's option-source read).
|
|
176
|
+
*/
|
|
177
|
+
export declare function surfaceBlockersFlagOverrides(flags: SurfaceBlockersFlags): PartialConfig;
|
|
178
|
+
/**
|
|
179
|
+
* **The cross-job merge-serialiser CAS-retry cap CLI flag** (`--merge-retries
|
|
180
|
+
* <n>`) — prd `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied
|
|
181
|
+
* Answer q1 (a). The git-alone FLOOR of the cross-job land-queue; a wide-matrix
|
|
182
|
+
* CI raises the cap so more contenders converge before any spurious bounce to
|
|
183
|
+
* needs-attention. Offered by `do`/`run`/`complete`. Resolved through the SAME
|
|
184
|
+
* `flag > env > per-repo > global > default` chain as `--review-max-rounds` /
|
|
185
|
+
* `--fresh-worktree-gate`.
|
|
186
|
+
*/
|
|
187
|
+
export interface MergeRetriesFlags {
|
|
188
|
+
/** `--merge-retries <n>` — the cross-job CAS-retry cap (parsed to a non-negative integer). */
|
|
189
|
+
mergeRetries?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Map the `--merge-retries <n>` flag into a {@link PartialConfig} override. Only
|
|
193
|
+
* a present flag contributes (absent ⇒ absent key), so the override layer never
|
|
194
|
+
* clobbers a lower-precedence source with `undefined`. The value MUST be a
|
|
195
|
+
* NON-NEGATIVE integer (`0` is meaningful — it disables the retry, the
|
|
196
|
+
* un-retried path the engine's tests pin); a non-integer / negative value is
|
|
197
|
+
* dropped silently so the lower layer / default decides (mirrors
|
|
198
|
+
* {@link reviewFlagOverrides}'s parse-or-drop on `--review-max-rounds`).
|
|
199
|
+
*/
|
|
200
|
+
export declare function mergeRetriesFlagOverrides(flags: MergeRetriesFlags): PartialConfig;
|
|
201
|
+
/**
|
|
202
|
+
* The merge-questions CLI flag (`advance`): `--merge-questions <off|ask|auto>`,
|
|
203
|
+
* the 3-state gate over the MERGE-QUESTION SURFACER (prd
|
|
204
|
+
* `land-time-reverify-and-parallel-merge-ceiling` Story 17 / task
|
|
205
|
+
* `merge-questions-gate-axis`). MIRRORS `--observation-triage`'s SHAPE but is a
|
|
206
|
+
* SEPARATE axis with a HIGHER default (`ask`, never `off` — a dropped merge-
|
|
207
|
+
* question means pushed work never lands). Resolved through the SAME
|
|
208
|
+
* `flag > env > per-repo > global > default` chain as the other gate flags.
|
|
209
|
+
*/
|
|
210
|
+
export interface MergeQuestionsFlags {
|
|
211
|
+
/** `--merge-questions <off|ask|auto>` — the merge-question surfacer gate. */
|
|
212
|
+
mergeQuestions?: string;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Map the `--merge-questions` flag into a {@link PartialConfig} override. Only a
|
|
216
|
+
* present flag contributes (absent ⇒ absent key). An INVALID value FAILS LOUDLY
|
|
217
|
+
* (the same loud-failure contract `--observation-triage` enforces) rather than
|
|
218
|
+
* silently falling through — a typo on a question-surfacing gate must never be
|
|
219
|
+
* quietly ignored.
|
|
220
|
+
*/
|
|
221
|
+
export declare function mergeQuestionsFlagOverrides(flags: MergeQuestionsFlags): PartialConfig;
|
|
222
|
+
/**
|
|
223
|
+
* **The strict-merge-approval CLI flag** (`--strict-merge-approval` /
|
|
224
|
+
* `--no-strict-merge-approval`) — prd
|
|
225
|
+
* `land-time-reverify-and-parallel-merge-ceiling` sidecar OQ6 / task
|
|
226
|
+
* `strict-merge-approval-gate`. The OPT-IN strictness layered on the OQ6
|
|
227
|
+
* stale-approval default: ON re-surfaces the merge-question on a merge-base
|
|
228
|
+
* change instead of auto-landing on a green re-verify (the host-agnostic
|
|
229
|
+
* analogue of GitHub's "dismiss stale approvals when the base changes"); OFF
|
|
230
|
+
* (default) honours the prior answer + lands when the rebased tip re-verifies
|
|
231
|
+
* GREEN. Offered alongside `--merge-questions` on `advance` (the apply rung is
|
|
232
|
+
* the consumer). Resolved through the SAME `flag > env > per-repo > global >
|
|
233
|
+
* default` chain as the other gate-family members. A negatable boolean
|
|
234
|
+
* (mirrors `--fresh-worktree-gate`).
|
|
235
|
+
*/
|
|
236
|
+
export interface StrictMergeApprovalFlags {
|
|
237
|
+
/** `--strict-merge-approval` ⇒ true, `--no-strict-merge-approval` ⇒ false, absent ⇒ undefined. */
|
|
238
|
+
strictMergeApproval?: boolean;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Map the `--strict-merge-approval`/`--no-strict-merge-approval` flag into a
|
|
242
|
+
* {@link PartialConfig} override. Only a present flag contributes (absent ⇒
|
|
243
|
+
* absent key), so the override layer never clobbers a lower-precedence source
|
|
244
|
+
* with `undefined`. A negatable boolean (mirrors
|
|
245
|
+
* {@link freshWorktreeGateFlagOverrides}): the caller leaves
|
|
246
|
+
* `strictMergeApproval` UNDEFINED unless the user explicitly passed the flag.
|
|
247
|
+
*/
|
|
248
|
+
export declare function strictMergeApprovalFlagOverrides(flags: StrictMergeApprovalFlags): PartialConfig;
|
|
249
|
+
/**
|
|
250
|
+
* The PR-INTENT CLI flag (`--no-pr`), offered by `do`/`complete`/`run`: push the
|
|
251
|
+
* branch but deliberately skip the review request (the explicit suppress-PR
|
|
252
|
+
* intent, ADR §6). NOT a provider choice. Commander stores the negatable flag as
|
|
253
|
+
* `pr` (false when `--no-pr` is passed). Resolved through the SAME
|
|
254
|
+
* `flag > env > per-repo > global > default` chain as `integration`/`review`.
|
|
255
|
+
*/
|
|
256
|
+
export interface NoPRFlags {
|
|
257
|
+
/** `--no-pr` ⇒ commander stores `pr === false` (the suppress-PR intent). */
|
|
258
|
+
pr?: boolean;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Map the `--no-pr` flag into a {@link PartialConfig} override. Only an explicit
|
|
262
|
+
* `--no-pr` (commander's `pr === false`) contributes `noPR: true`; otherwise the
|
|
263
|
+
* key stays absent so the lower layer (env / per-repo / global / default) decides.
|
|
264
|
+
*/
|
|
265
|
+
export declare function noPRFlagOverrides(flags: NoPRFlags): PartialConfig;
|
|
266
|
+
/**
|
|
267
|
+
* The null-default guard: the `null` adapter shells out to `agentCmd`, so it is
|
|
268
|
+
* required there; the `pi` adapter invokes the pi CLI directly and does not
|
|
269
|
+
* consume `agentCmd`. Returns `true` when the resolved config selects the null
|
|
270
|
+
* adapter with no `agentCmd` — the case `do`/`run`/`--remote` must reject with a
|
|
271
|
+
* clear error ({@link NO_AGENT_CMD_MESSAGE}). All three CLI sites call THIS one
|
|
272
|
+
* predicate (named here so the fix's no-regression test can pin it).
|
|
273
|
+
*/
|
|
274
|
+
export declare function doNeedsAgentCmd(config: Config): boolean;
|
|
275
|
+
/**
|
|
276
|
+
* The shared up-front message for the {@link doNeedsAgentCmd} refusal. Names BOTH
|
|
277
|
+
* escape hatches: the `--harness pi` adapter (which needs no agentCmd) and
|
|
278
|
+
* setting `harness`/`agentCmd` in config. Shared so `do`/`run`/`--remote` speak
|
|
279
|
+
* with one voice (and the test that pins `--harness pi` only has to pin it once).
|
|
280
|
+
*/
|
|
281
|
+
export declare const NO_AGENT_CMD_MESSAGE: string;
|
|
282
|
+
/**
|
|
283
|
+
* The shared up-front message for the PR-INTENT pre-flight refusal: a `propose`
|
|
284
|
+
* run on a GitHub arbiter intends a PR (`noPR` unset) but a `gh` AUTH/AVAILABILITY
|
|
285
|
+
* PROBE says `gh` cannot open one. Surfaced BEFORE any claim/onboard/build so no
|
|
286
|
+
* work is wasted, and naming EVERY real fix (auth `gh`, set a `providers.github`
|
|
287
|
+
* identity token, switch to `--merge`, or `--no-pr` to push without a PR). The
|
|
288
|
+
* honest-failure value the `noPR` axis buys: it disambiguates "I deliberately
|
|
289
|
+
* want no PR" from "I wanted a PR and silently didn't get one". Shared so the
|
|
290
|
+
* in-place + no-checkout `do` paths speak with one voice.
|
|
291
|
+
*/
|
|
292
|
+
export declare const PROPOSE_PR_INTENT_GH_UNAVAILABLE_MESSAGE: string;
|
|
293
|
+
/**
|
|
294
|
+
* Should the PR-INTENT pre-flight guard FIRE for this run? It fires ONLY when ALL
|
|
295
|
+
* hold: the run is `propose` mode (not `merge` — merge never opens a PR), the
|
|
296
|
+
* arbiter is a GitHub URL (only then is a PR even possible), `noPR` is UNSET (the
|
|
297
|
+
* operator INTENDS a PR), and the injected `gh` auth/availability `probe` reports
|
|
298
|
+
* `gh` cannot open one. The probe (mirroring `GitHubProvider.available`) is
|
|
299
|
+
* the signal, NOT a config inspection: an ABSENT `providers.github` identity must
|
|
300
|
+
* NOT trip this guard — it falls back to AMBIENT `gh` auth (the common local-dev
|
|
301
|
+
* case), which the probe correctly reports as available. A genuinely TRANSIENT
|
|
302
|
+
* mid-run `gh` outage (the probe passes here but the API fails later) is left to
|
|
303
|
+
* the runtime degrade — the probe only catches the start-of-run unauthed case.
|
|
304
|
+
*/
|
|
305
|
+
export declare function shouldFailProposePrIntent(input: {
|
|
306
|
+
mode: IntegrationMode;
|
|
307
|
+
arbiterIsGitHub: boolean;
|
|
308
|
+
noPR: boolean | undefined;
|
|
309
|
+
/** The `gh` auth/availability probe (true ⇒ `gh` CAN open a PR). */
|
|
310
|
+
ghCanOpenPr: () => boolean;
|
|
311
|
+
}): boolean;
|
|
312
|
+
//# sourceMappingURL=do-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"do-config.d.ts","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}
|