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
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The provider-agnostic CORE of the `install-ci` scaffolder (prd `runner-in-ci`,
|
|
3
|
+
* task `install-ci-core-and-github-adapter`; US #7/#10). `install-ci` is a
|
|
4
|
+
* human-run, one-time SCAFFOLDER (mirrors whitesmith's `src/providers/github-ci.ts`):
|
|
5
|
+
* it writes `.github/**` + a composite setup action + secrets so autonomous work
|
|
6
|
+
* can run headless in CI. The running CI job NEVER edits `.github/workflows/**`
|
|
7
|
+
* (US #9 — that boundary is enforced by the per-capability workflow tasks; the
|
|
8
|
+
* core stays agnostic to it).
|
|
9
|
+
*
|
|
10
|
+
* This module is the PROVIDER-AGNOSTIC half: the config model (`ProviderEntry` /
|
|
11
|
+
* `AuthMode` / `CIConfigFile`), the `models.json` builder, the secret-orchestration
|
|
12
|
+
* LOGIC (which secrets, dedup, prompt-or-take-from-config), the `--export-config`
|
|
13
|
+
* (+ `--include-secrets`) round-trip, the composite-setup-action + OAuth-refresh-
|
|
14
|
+
* script generators, the `--fake` snapshot mechanism (write to `.fake/` instead of
|
|
15
|
+
* `.github/`), and the capability-emitter REGISTRY seam. It imports NOTHING
|
|
16
|
+
* GitHub-specific: the thin GitHub adapter (`github-ci.ts`) plugs into the
|
|
17
|
+
* {@link CIProviderContext} seam, so a second provider could slot in WITHOUT
|
|
18
|
+
* touching this core.
|
|
19
|
+
*
|
|
20
|
+
* Reuses whitesmith's PATTERNS (the wizard prompts, the `models.json` shape, the
|
|
21
|
+
* config load/export, the `--fake` mechanism, the secret dedup) but NOT its label
|
|
22
|
+
* state-machine or issue lifecycle (out of scope). The auth/config shape carries
|
|
23
|
+
* NO CI-specific policy field: per ADR `ci-config-policy-and-gate-family`, CI
|
|
24
|
+
* policy is the SAME engine gate family resolved via the generated workflow's
|
|
25
|
+
* `DORFL_*` env block, NOT a new config knob minted here.
|
|
26
|
+
*/
|
|
27
|
+
import type { HarnessAdapter } from './config.js';
|
|
28
|
+
/**
|
|
29
|
+
* The two auth modes, mirroring whitesmith:
|
|
30
|
+
* - `models-json` (DEFAULT): one GitHub secret per provider API key; the harness
|
|
31
|
+
* `models.json` is generated inline and references the env var names. No
|
|
32
|
+
* OAuth-refresh machinery, no `GH_PAT` — the conservative default.
|
|
33
|
+
* - `auth-json`: a single `PI_AUTH_JSON` secret + a `GH_PAT` for OAuth-token
|
|
34
|
+
* refresh + an OAuth-refresh script (the `pi-mono#2743` workaround, the SINGLE
|
|
35
|
+
* CI→repo mutation in the whole design). The known SHARP EDGE; default AWAY
|
|
36
|
+
* from it.
|
|
37
|
+
*/
|
|
38
|
+
export type AuthMode = 'auth-json' | 'models-json';
|
|
39
|
+
/**
|
|
40
|
+
* Where the composite setup action gets the `dorfl` CLI from:
|
|
41
|
+
* - `registry` (default): `npm install -g dorfl` — the published CLI,
|
|
42
|
+
* for every CONSUMER repo;
|
|
43
|
+
* - `workspace`: build the CLI from the checked-out source (`pnpm install` +
|
|
44
|
+
* `pnpm -r build`) and link it onto PATH, for the SELF-HOSTING dorfl
|
|
45
|
+
* monorepo (which is not published under that npm name, so `registry` would
|
|
46
|
+
* die with `dorfl: command not found`). Auto-detected when generating
|
|
47
|
+
* inside the monorepo (see `installCI`), overridable by an explicit flag/config.
|
|
48
|
+
*/
|
|
49
|
+
export type InstallSource = 'registry' | 'workspace';
|
|
50
|
+
/** A configured AI provider (the harness `models.json` shape this emits). */
|
|
51
|
+
export interface ProviderEntry {
|
|
52
|
+
/** Provider name (`anthropic` / `openai` / a custom name). */
|
|
53
|
+
name: string;
|
|
54
|
+
/** Optional custom base URL (overrides the built-in default). */
|
|
55
|
+
baseUrl?: string;
|
|
56
|
+
/** API type for a custom provider (`anthropic-messages` / `openai-completions`). */
|
|
57
|
+
api?: string;
|
|
58
|
+
/** The GitHub-secret / env var name the API key is read from at runtime. */
|
|
59
|
+
apiKeyEnvVar: string;
|
|
60
|
+
/** The model ids exposed for this provider. */
|
|
61
|
+
models: {
|
|
62
|
+
id: string;
|
|
63
|
+
}[];
|
|
64
|
+
/** OpenAI-compat capability flags for a custom provider. */
|
|
65
|
+
compat?: Record<string, boolean>;
|
|
66
|
+
/** True for the built-in providers (`anthropic` / `openai`). */
|
|
67
|
+
builtin: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Serializable CI configuration: the non-interactive `--config <file>` INPUT and
|
|
71
|
+
* the `--export-config` OUTPUT. The wizard gathers exactly this; the config-file
|
|
72
|
+
* path reproduces the wizard's output byte-for-byte from it. When
|
|
73
|
+
* `--include-secrets` is used, `secrets` maps env var names to their actual API
|
|
74
|
+
* key values (set via the provider seam's `setSecret` on install).
|
|
75
|
+
*/
|
|
76
|
+
export interface CIConfigFile {
|
|
77
|
+
/** The auth mode (`models-json` default). */
|
|
78
|
+
authMode: AuthMode;
|
|
79
|
+
/** The configured providers (empty for `auth-json` mode). */
|
|
80
|
+
providers: ProviderEntry[];
|
|
81
|
+
/** The default provider name. */
|
|
82
|
+
defaultProvider: string;
|
|
83
|
+
/** The default model id. */
|
|
84
|
+
defaultModel: string;
|
|
85
|
+
/** Which harness the composite setup action installs (`pi` default). */
|
|
86
|
+
harness?: HarnessAdapter;
|
|
87
|
+
/** Where to get the CLI from (`registry` default; `workspace` builds from source). */
|
|
88
|
+
installSource?: InstallSource;
|
|
89
|
+
/**
|
|
90
|
+
* Cap on CONCURRENT advance-lifecycle matrix legs (the `max-parallel` of the
|
|
91
|
+
* propose/merge matrices). Each leg spawns a FULL agent session (build + Gate-2
|
|
92
|
+
* review), so an unbounded fan-out over a large item set exhausts the model
|
|
93
|
+
* provider's API rate limit (429s that strand legs as transient-infra stuck) and
|
|
94
|
+
* thrashes the arbiter-main CAS. Default {@link DEFAULT_MAX_PARALLEL}. Must be a
|
|
95
|
+
* positive integer.
|
|
96
|
+
*/
|
|
97
|
+
maxParallel?: number;
|
|
98
|
+
/** API key values keyed by env var name. Only present with `--include-secrets`. */
|
|
99
|
+
secrets?: Record<string, string>;
|
|
100
|
+
/**
|
|
101
|
+
* The project-setup escape hatch (prd `install-ci-project-provisioning`,
|
|
102
|
+
* task `install-ci-project-setup-hook`): a PROVIDER-NAMESPACED, OPAQUE,
|
|
103
|
+
* NATIVE-SYNTAX pass-through map. The key is a provider id (today only
|
|
104
|
+
* `github`); the value is the user's own project-toolchain snippet in that
|
|
105
|
+
* provider's NATIVE syntax (for GitHub: a string of Actions step YAML —
|
|
106
|
+
* `uses:` marketplace actions, `run:` steps). The CORE never parses or
|
|
107
|
+
* normalizes the snippet (only validates the outer map shape); the active
|
|
108
|
+
* provider's adapter splices it VERBATIM and FIRST into the generated
|
|
109
|
+
* composite setup action, before dorfl-install + AI-auth (US #10 of
|
|
110
|
+
* `install-ci-project-provisioning`). Absent/empty ⇒ the generated
|
|
111
|
+
* composite action is BYTE-IDENTICAL to today. Round-trips through
|
|
112
|
+
* `--config` / `--export-config` like every existing knob. Deliberately
|
|
113
|
+
* NOT a portable cross-provider step-DSL — each adapter consumes its OWN
|
|
114
|
+
* native shape (ADR `install-ci-project-provisioning-native-passthrough`).
|
|
115
|
+
*/
|
|
116
|
+
projectSetup?: Record<string, unknown>;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The fully-resolved config the generators consume (the wizard / config-file path
|
|
120
|
+
* both produce one of these). Distinct from {@link CIConfigFile} only in that
|
|
121
|
+
* `authMode` + `harness` are guaranteed present and `secrets` is dropped (secrets
|
|
122
|
+
* are orchestrated separately, never written into a generated artifact).
|
|
123
|
+
*/
|
|
124
|
+
export interface ResolvedCIConfig {
|
|
125
|
+
authMode: AuthMode;
|
|
126
|
+
providers: ProviderEntry[];
|
|
127
|
+
defaultProvider: string;
|
|
128
|
+
defaultModel: string;
|
|
129
|
+
harness: HarnessAdapter;
|
|
130
|
+
installSource: InstallSource;
|
|
131
|
+
/** See {@link CIConfigFile.projectSetup}. */
|
|
132
|
+
projectSetup?: Record<string, unknown>;
|
|
133
|
+
/** See {@link CIConfigFile.maxParallel}. Always resolved (default applied). */
|
|
134
|
+
maxParallel: number;
|
|
135
|
+
}
|
|
136
|
+
/** The default harness the composite setup action installs. */
|
|
137
|
+
export declare const DEFAULT_HARNESS: HarnessAdapter;
|
|
138
|
+
/**
|
|
139
|
+
* The default {@link CIConfigFile.maxParallel}: cap the advance-lifecycle fan-out
|
|
140
|
+
* at 4 concurrent legs. A full agent session per leg, so this keeps the loop
|
|
141
|
+
* draining steadily rather than stampeding the model-provider rate limit + the
|
|
142
|
+
* arbiter CAS. Tunable via `install-ci --max-parallel <n>` / the config file.
|
|
143
|
+
*/
|
|
144
|
+
export declare const DEFAULT_MAX_PARALLEL = 4;
|
|
145
|
+
/** The default install source: the published CLI via `npm install -g`. */
|
|
146
|
+
export declare const DEFAULT_INSTALL_SOURCE: InstallSource;
|
|
147
|
+
/**
|
|
148
|
+
* The thin CI-provider seam (whitesmith's proven `GitHubCIContext` shape,
|
|
149
|
+
* generalised so a second provider could slot in without touching the core). A
|
|
150
|
+
* provider supplies: where it is (`repo`), whether its CLI is usable
|
|
151
|
+
* (`ghAvailable` for GitHub), and how to set a secret (`setSecret`). Tests STUB
|
|
152
|
+
* this entirely — `setSecret` records to memory, `ghAvailable=false`, `repo` a
|
|
153
|
+
* fixture — so no network, no real `gh`, no real GitHub repo detection is touched.
|
|
154
|
+
*
|
|
155
|
+
* The historical GitHub name {@link GitHubCIContext} is kept as an alias so the
|
|
156
|
+
* whitesmith vocabulary the task adopts reads literally.
|
|
157
|
+
*/
|
|
158
|
+
export interface CIProviderContext {
|
|
159
|
+
/** The target repo's working directory (where `.github/` / `.fake/` is written). */
|
|
160
|
+
workDir: string;
|
|
161
|
+
/**
|
|
162
|
+
* Stable id for THIS provider adapter (today only `github`). Used by the
|
|
163
|
+
* orchestrator to pick the active provider's payload out of
|
|
164
|
+
* {@link CIConfigFile.projectSetup} (the provider-namespaced opaque
|
|
165
|
+
* pass-through). Optional so a provider that never participates in the
|
|
166
|
+
* project-setup hook can omit it; the orchestrator then renders no
|
|
167
|
+
* fragment and the composite action is unchanged.
|
|
168
|
+
*/
|
|
169
|
+
readonly providerId?: string;
|
|
170
|
+
/** The `owner/repo` slug, or `undefined` when not (yet) known. */
|
|
171
|
+
repo: string | undefined;
|
|
172
|
+
/** Whether the provider's CLI (`gh`) is available + authenticated. */
|
|
173
|
+
ghAvailable: boolean;
|
|
174
|
+
/** Record/set a secret on the provider. Tests record to memory. */
|
|
175
|
+
setSecret(name: string, value: string): Promise<void>;
|
|
176
|
+
/**
|
|
177
|
+
* OPTIONALLY set a provider repo-setting (capability-F residue: GitHub's
|
|
178
|
+
* `delete_branch_on_merge`). Absent on a provider that has no such setting.
|
|
179
|
+
* Stubbed in tests; never silently toggled (the wizard prompts).
|
|
180
|
+
*/
|
|
181
|
+
setRepoSetting?(name: string, value: boolean): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* OPTIONALLY report whether the configured credential has REPO-ADMIN scope
|
|
184
|
+
* on the provider (→ can set branch protection / rulesets). Used by the
|
|
185
|
+
* Tier-1 branch-protection step (prd `land-time-reverify-and-parallel-
|
|
186
|
+
* merge-ceiling`, Story 11) to pick `auto-configure` vs `print fallback`.
|
|
187
|
+
* `true` ⇒ admin, `false` ⇒ explicitly NOT admin, `undefined` ⇒ unknown
|
|
188
|
+
* (treated as non-admin: never silently attempt a call that would 403).
|
|
189
|
+
* Absent on a provider that has no concept of admin scope.
|
|
190
|
+
*/
|
|
191
|
+
getRepoAdminScope?(): Promise<boolean | undefined>;
|
|
192
|
+
/**
|
|
193
|
+
* OPTIONALLY configure Tier-1 branch protection on `branch` per `spec`. The
|
|
194
|
+
* spec body (`BranchProtectionSpec` in `install-ci-branch-protection.ts`) is
|
|
195
|
+
* a structural type — typed as `unknown` here to keep this core seam free of
|
|
196
|
+
* the branch-protection module's import. Absent on a non-GitHub provider.
|
|
197
|
+
* Throws on failure (caller catches + logs).
|
|
198
|
+
*/
|
|
199
|
+
setBranchProtection?(branch: string, spec: unknown): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* OPTIONALLY render the user's project-setup payload (the value of
|
|
202
|
+
* {@link CIConfigFile.projectSetup}[providerId]) to the NATIVE-SYNTAX
|
|
203
|
+
* fragment the composite setup action splices in FIRST (before
|
|
204
|
+
* setup-node, dorfl-install, and AI-auth). The adapter owns the LIGHT
|
|
205
|
+
* structural sanity check (for GitHub: list-of-mapping-shaped steps) and
|
|
206
|
+
* the indentation that makes the fragment splice cleanly into the
|
|
207
|
+
* composite action's `steps:` body. The returned string is treated as
|
|
208
|
+
* OPAQUE by the core — bytes-in == bytes-out, modulo the indentation the
|
|
209
|
+
* adapter applies. Throws on a malformed payload (caller surfaces). An
|
|
210
|
+
* adapter that never participates in this hook omits the method; an
|
|
211
|
+
* `undefined`/missing payload short-circuits to no fragment.
|
|
212
|
+
*/
|
|
213
|
+
renderProjectSetup?(payload: unknown): string;
|
|
214
|
+
}
|
|
215
|
+
/** Whitesmith's name for {@link CIProviderContext} (the seam this task adopts). */
|
|
216
|
+
export type GitHubCIContext = CIProviderContext;
|
|
217
|
+
/**
|
|
218
|
+
* One file/artifact a capability emitter produces (a workflow YAML, etc.). `path`
|
|
219
|
+
* is repo-relative (under the output base — `.github/` or `.fake/`).
|
|
220
|
+
*/
|
|
221
|
+
export interface EmittedFile {
|
|
222
|
+
/** Path relative to the output base (e.g. `workflows/advance-lifecycle.yml`). */
|
|
223
|
+
path: string;
|
|
224
|
+
/** The file's full text content. */
|
|
225
|
+
content: string;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* A capability emitter: a per-capability module that, given the resolved config,
|
|
229
|
+
* returns the workflow file(s) for its capability. The sibling capability
|
|
230
|
+
* tasks (advance-lifecycle, intake, close-job) each ADD one of these
|
|
231
|
+
* as a NEW self-registering module — NOT an edit to a shared central
|
|
232
|
+
* list/switch — so they stay file-orthogonal and mergeable in parallel
|
|
233
|
+
* (WORK-CONTRACT task-quality / `to-task` §3).
|
|
234
|
+
*/
|
|
235
|
+
export interface CapabilityEmitter {
|
|
236
|
+
/** A stable id for the capability (e.g. `advance-lifecycle`). */
|
|
237
|
+
id: string;
|
|
238
|
+
/** Human-readable label for the wizard's capability selection. */
|
|
239
|
+
label: string;
|
|
240
|
+
/** Emit this capability's workflow file(s) for the resolved config. */
|
|
241
|
+
emit(config: ResolvedCIConfig): EmittedFile[];
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Register a capability emitter. Idempotent per id (re-registering the same id
|
|
245
|
+
* replaces it — module import is idempotent). Called at import time by each
|
|
246
|
+
* capability module under `install-ci-capabilities/`.
|
|
247
|
+
*/
|
|
248
|
+
export declare function registerCapability(emitter: CapabilityEmitter): void;
|
|
249
|
+
/** The currently-registered capabilities (in registration order). */
|
|
250
|
+
export declare function registeredCapabilities(): CapabilityEmitter[];
|
|
251
|
+
/** Reset the registry (tests; never used in production). */
|
|
252
|
+
export declare function clearCapabilityRegistry(): void;
|
|
253
|
+
/**
|
|
254
|
+
* Locate the `install-ci-capabilities/` directory next to this module — the
|
|
255
|
+
* DIRECTORY of self-registering capability emitters. Resolved relative to this
|
|
256
|
+
* source file so it works from both `src/` (tsx) and `dist/` (the built CLI).
|
|
257
|
+
* `override` short-circuits for tests / unusual layouts.
|
|
258
|
+
*/
|
|
259
|
+
export declare function resolveCapabilitiesDir(override?: string): string;
|
|
260
|
+
/**
|
|
261
|
+
* Discover + import every capability module under `install-ci-capabilities/`,
|
|
262
|
+
* each of which self-registers via {@link registerCapability} at import time.
|
|
263
|
+
* This is the file-orthogonality mechanism: a new capability is a NEW file in
|
|
264
|
+
* that directory, picked up here WITHOUT editing any shared list/switch. Returns
|
|
265
|
+
* the registry after loading. `dir` overrides the directory (tests).
|
|
266
|
+
*/
|
|
267
|
+
export declare function loadCapabilityRegistry(dir?: string): Promise<CapabilityEmitter[]>;
|
|
268
|
+
/**
|
|
269
|
+
* Build the harness `models.json` object from the providers. Built-in providers
|
|
270
|
+
* (`anthropic`/`openai`) get `{apiKey: <ENV_VAR>}` (the harness resolves the env
|
|
271
|
+
* var at runtime); a custom provider carries its `baseUrl`/`api`/`models`/`compat`.
|
|
272
|
+
* Mirrors whitesmith's `buildModelsJson`.
|
|
273
|
+
*/
|
|
274
|
+
export declare function buildModelsJson(providers: ProviderEntry[]): {
|
|
275
|
+
providers: Record<string, unknown>;
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* The DEDUPLICATED set of secret env-var names the config requires, in first-seen
|
|
279
|
+
* order. For `models-json` mode it is one per distinct provider `apiKeyEnvVar`;
|
|
280
|
+
* for `auth-json` mode it is the fixed `PI_AUTH_JSON` + `GH_PAT` pair (the sharp
|
|
281
|
+
* edge). This is the pure secret-orchestration LOGIC the adapter's setter
|
|
282
|
+
* consumes — which secrets, deduped — separated from any provider I/O.
|
|
283
|
+
*/
|
|
284
|
+
export declare function requiredSecretNames(config: ResolvedCIConfig): string[];
|
|
285
|
+
/**
|
|
286
|
+
* The GitHub secret the propose/merge CI legs read as `GH_TOKEN` to open PRs
|
|
287
|
+
* under a CHOSEN identity (a PAT / App token). It is the PR-IDENTITY token, a
|
|
288
|
+
* distinct purpose from `auth-json` mode's `GH_PAT` (which exists only to rotate
|
|
289
|
+
* the OAuth `PI_AUTH_JSON` secret). The generated workflows reference it as
|
|
290
|
+
* `${{ secrets.DORFL_GH_TOKEN || secrets.GITHUB_TOKEN }}` so it is
|
|
291
|
+
* OPTIONAL: unset ⇒ the legs fall back to the built-in `GITHUB_TOKEN` (PRs are
|
|
292
|
+
* `github-actions[bot]` and do not trigger downstream `on: pull_request`
|
|
293
|
+
* workflows); set ⇒ PRs carry the token's identity and DO trigger them.
|
|
294
|
+
*/
|
|
295
|
+
export declare const PR_IDENTITY_SECRET_NAME = "DORFL_GH_TOKEN";
|
|
296
|
+
/**
|
|
297
|
+
* The DEDUPLICATED set of OPTIONAL secret env-var names install-ci offers but
|
|
298
|
+
* never requires. Today that is the single PR-identity token
|
|
299
|
+
* ({@link PR_IDENTITY_SECRET_NAME}). Kept separate from {@link requiredSecretNames}
|
|
300
|
+
* so "required" stays honestly required (an empty required key still SKIPS, but
|
|
301
|
+
* these are offered as explicitly optional and are never part of the required
|
|
302
|
+
* set the export/validation paths reason about). De-duped against the required
|
|
303
|
+
* names so a token already required (it never is today) is not offered twice.
|
|
304
|
+
*/
|
|
305
|
+
export declare function optionalSecretNames(config: ResolvedCIConfig): string[];
|
|
306
|
+
/**
|
|
307
|
+
* The `with:` block (YAML fragment, leading newline included) the AGENT-RUNNING CI
|
|
308
|
+
* jobs append to their `uses: ./.github/actions/dorfl-setup` line to pass
|
|
309
|
+
* the configured provider API key secret(s) to the setup action ONCE — the action
|
|
310
|
+
* forwards them to `$GITHUB_ENV` so `pi` can authenticate. Indented to attach
|
|
311
|
+
* under a ` - uses: ...` step line (8 spaces for `with:`, 10 for each
|
|
312
|
+
* entry). Each entry maps the action input (named identically to the secret) to
|
|
313
|
+
* `${{ secrets.<NAME> }}`.
|
|
314
|
+
*
|
|
315
|
+
* Empty string when there are no provider keys (auth-json mode, or no providers),
|
|
316
|
+
* so the `uses:` line is emitted bare and unchanged. This is the SINGLE place the
|
|
317
|
+
* provider→`with:` shape lives, shared by every capability workflow generator, so
|
|
318
|
+
* no template re-derives it.
|
|
319
|
+
*/
|
|
320
|
+
export declare function providerSecretsWithBlock(config: ResolvedCIConfig): string;
|
|
321
|
+
/** The outcome of orchestrating one secret through the provider seam. */
|
|
322
|
+
export interface SecretSetResult {
|
|
323
|
+
/** The secret env-var name. */
|
|
324
|
+
name: string;
|
|
325
|
+
/** `set` (recorded on the provider) / `skipped` (no value) / `failed`. */
|
|
326
|
+
status: 'set' | 'skipped' | 'failed';
|
|
327
|
+
/** The failure detail when `status === 'failed'`. */
|
|
328
|
+
error?: string;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Orchestrate the required secrets through the provider seam: for each
|
|
332
|
+
* DEDUPLICATED required name, take its value from `knownSecrets` (the
|
|
333
|
+
* config-file/`--include-secrets` path) when present, else from `prompt` (the
|
|
334
|
+
* interactive path), then record it via `ctx.setSecret`. An empty value is
|
|
335
|
+
* SKIPPED (never set blank); a `setSecret` rejection is reported as `failed`
|
|
336
|
+
* without aborting the rest. Mirrors whitesmith's `setOrPromptSecrets` dedup +
|
|
337
|
+
* prompt-or-take logic, but provider-agnostic (the seam is `ctx.setSecret`).
|
|
338
|
+
*
|
|
339
|
+
* NO real secret is touched in `--fake` mode / tests: the caller passes a STUB
|
|
340
|
+
* `ctx` whose `setSecret` records to memory. This function never reads/writes a
|
|
341
|
+
* real secrets store, `~`, or git config.
|
|
342
|
+
*/
|
|
343
|
+
export declare function orchestrateSecrets(options: {
|
|
344
|
+
ctx: CIProviderContext;
|
|
345
|
+
config: ResolvedCIConfig;
|
|
346
|
+
/** Known secret values (config-file `secrets` / `--include-secrets`). */
|
|
347
|
+
knownSecrets?: Record<string, string>;
|
|
348
|
+
/** Prompt for a missing REQUIRED secret value (interactive path). Tests stub it. */
|
|
349
|
+
prompt?: (name: string) => Promise<string>;
|
|
350
|
+
/**
|
|
351
|
+
* Prompt for a missing OPTIONAL secret value ({@link optionalSecretNames}) — the
|
|
352
|
+
* PR-identity token. Distinct from {@link orchestrateSecrets.prompt} so the UI can
|
|
353
|
+
* phrase it as optional (empty ⇒ cleanly skipped, the documented zero-config
|
|
354
|
+
* fallback). Omitted ⇒ optional secrets are taken ONLY from `knownSecrets`
|
|
355
|
+
* (never prompted), so the non-interactive/config-file path is unchanged.
|
|
356
|
+
*/
|
|
357
|
+
optionalPrompt?: (name: string) => Promise<string>;
|
|
358
|
+
}): Promise<SecretSetResult[]>;
|
|
359
|
+
/** Raised for a malformed `--config <file>`. */
|
|
360
|
+
export declare class CIConfigError extends Error {
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Load + validate a `--config <file>`: the non-interactive path that skips all
|
|
364
|
+
* prompts. The loaded config reproduces the wizard's output byte-for-byte. A
|
|
365
|
+
* missing/empty required field is a loud {@link CIConfigError} (never a silent
|
|
366
|
+
* default), because a config file is a deliberate reproduction artifact.
|
|
367
|
+
*/
|
|
368
|
+
export declare function loadCIConfigFile(filePath: string): CIConfigFile;
|
|
369
|
+
/** Resolve a loaded/gathered {@link CIConfigFile} into a {@link ResolvedCIConfig}. */
|
|
370
|
+
export declare function resolveCIConfig(file: CIConfigFile): ResolvedCIConfig;
|
|
371
|
+
/**
|
|
372
|
+
* Serialise a config to the `--export-config` JSON text (stable 2-space indent +
|
|
373
|
+
* trailing newline, exactly the shape {@link loadCIConfigFile} reads back). When
|
|
374
|
+
* `secrets` is supplied (the `--include-secrets` path) it is included; otherwise
|
|
375
|
+
* the `secrets` field is omitted entirely (never an empty object).
|
|
376
|
+
*/
|
|
377
|
+
export declare function exportCIConfig(config: ResolvedCIConfig, secrets?: Record<string, string>): string;
|
|
378
|
+
/**
|
|
379
|
+
* Generate the shared COMPOSITE SETUP ACTION (`dorfl-setup`): installs
|
|
380
|
+
* Node + `dorfl` + the configured harness, configures git identity, and
|
|
381
|
+
* configures AI-provider auth. Written to
|
|
382
|
+
* `<base>/actions/dorfl-setup/action.yml` so a workflow can
|
|
383
|
+
* `uses: ./.github/actions/dorfl-setup`. The advance-loop seed template
|
|
384
|
+
* already references this exact action name + path (`docs/ci/README.md`).
|
|
385
|
+
*
|
|
386
|
+
* The auth step branches on the mode: `models-json` writes a generated
|
|
387
|
+
* `~/.pi/agent/models.json` inline (the conservative default) AND exports each
|
|
388
|
+
* configured provider's API key from a same-named ACTION INPUT to `$GITHUB_ENV`,
|
|
389
|
+
* so the agent step (`pi`) can resolve the env var `models.json` references; the
|
|
390
|
+
* workflow passes the secrets ONCE via `with:` on the `uses:` line (no
|
|
391
|
+
* per-step / per-capability provider enumeration). `auth-json` writes
|
|
392
|
+
* `~/.pi/agent/auth.json` from `$PI_AUTH_JSON` + runs the OAuth-refresh script
|
|
393
|
+
* (the sharp edge). Deterministic: the same config produces byte-identical output.
|
|
394
|
+
*/
|
|
395
|
+
export declare function generateSetupAction(config: ResolvedCIConfig,
|
|
396
|
+
/**
|
|
397
|
+
* OPTIONAL provider-rendered project-setup steps fragment, already indented
|
|
398
|
+
* to splice into the composite action's `steps:` body (4-space indent on
|
|
399
|
+
* the `- ` list-item lines). The CORE treats this as OPAQUE: bytes-in ==
|
|
400
|
+
* bytes-out (modulo the indentation the adapter already applied). When
|
|
401
|
+
* absent/empty, the generated action is BYTE-IDENTICAL to the no-hook
|
|
402
|
+
* baseline (the load-bearing absent-⇒-identical contract).
|
|
403
|
+
*/
|
|
404
|
+
projectSetupSteps?: string): string;
|
|
405
|
+
/**
|
|
406
|
+
* The OAuth-refresh script emitted ONLY in `auth-json` mode (whitesmith's
|
|
407
|
+
* `pi-mono#2743` workaround): refreshes the Anthropic OAuth token in
|
|
408
|
+
* `~/.pi/agent/auth.json` before the agent runs, then writes the rotated token
|
|
409
|
+
* BACK via `gh secret set PI_AUTH_JSON` (the single CI→repo mutation, needing a
|
|
410
|
+
* `GH_PAT`). This is the documented SHARP EDGE; `models-json` mode avoids it.
|
|
411
|
+
*/
|
|
412
|
+
export declare const REFRESH_OAUTH_SCRIPT = "#!/usr/bin/env node\n/**\n * Refresh OAuth tokens in the agent's auth.json before it runs.\n *\n * Workaround for https://github.com/badlogic/pi-mono/issues/2743.\n * After refreshing, updates the PI_AUTH_JSON GitHub secret so the next run has\n * the latest rotated refresh token (requires GH_PAT with repo scope). This is the\n * known SHARP EDGE of auth-json mode; models-json mode avoids it entirely.\n *\n * Remove this script once the upstream fix is released.\n */\nimport { readFileSync, writeFileSync, chmodSync } from \"fs\";\nimport { join } from \"path\";\nimport { execSync } from \"child_process\";\n\nconst ANTHROPIC_CLIENT_ID = \"9d1c250a-e61b-44d9-88ed-5944d1962f5e\";\nconst ANTHROPIC_TOKEN_URL = \"https://platform.claude.com/v1/oauth/token\";\n\nconst authPath = join(process.env.HOME, \".pi\", \"agent\", \"auth.json\");\nconst auth = JSON.parse(readFileSync(authPath, \"utf-8\"));\nconst cred = auth.anthropic;\n\nif (!cred || cred.type !== \"oauth\") {\n console.log(\"No OAuth credentials for anthropic, skipping refresh\");\n process.exit(0);\n}\n\nif (Date.now() < cred.expires) {\n console.log(\"Token still valid until\", new Date(cred.expires).toISOString());\n process.exit(0);\n}\n\nconsole.log(\n \"Token expired at\",\n new Date(cred.expires).toISOString(),\n \"- refreshing...\"\n);\n\nconst response = await fetch(ANTHROPIC_TOKEN_URL, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\",\n },\n body: new URLSearchParams({\n grant_type: \"refresh_token\",\n client_id: ANTHROPIC_CLIENT_ID,\n refresh_token: cred.refresh,\n }).toString(),\n signal: AbortSignal.timeout(30_000),\n});\n\nconst data = await response.json();\n\nif (!response.ok) {\n console.error(\"Refresh failed:\", response.status, JSON.stringify(data));\n process.exit(1);\n}\n\nauth.anthropic = {\n type: \"oauth\",\n refresh: data.refresh_token,\n access: data.access_token,\n expires: Date.now() + data.expires_in * 1000 - 5 * 60 * 1000,\n};\n\nwriteFileSync(authPath, JSON.stringify(auth, null, 2));\nchmodSync(authPath, 0o600);\nconsole.log(\n \"Token refreshed, new expiry:\",\n new Date(auth.anthropic.expires).toISOString()\n);\n\n// Update the GitHub secret so the next run has the latest refresh token.\nconst repo = process.env.GITHUB_REPOSITORY;\nconst token = process.env.GH_PAT;\nif (repo && token) {\n try {\n execSync(`gh secret set PI_AUTH_JSON --repo \"${repo}\"`, {\n input: JSON.stringify(auth),\n env: { ...process.env, GH_TOKEN: token },\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n });\n console.log(\"PI_AUTH_JSON secret updated\");\n } catch (err) {\n console.warn(\"Failed to update secret (non-fatal):\", err.stderr?.toString() || err.message);\n }\n} else {\n console.log(\"Skipping secret update (no GH_PAT or GITHUB_REPOSITORY)\");\n}\n";
|
|
413
|
+
/**
|
|
414
|
+
* The setup ARTIFACTS this task generates: the composite setup action + (in
|
|
415
|
+
* `auth-json` mode) the OAuth-refresh script, plus any selected capabilities'
|
|
416
|
+
* workflow files. This task emits NO capability workflow itself (those are the
|
|
417
|
+
* sibling tasks); `capabilities` defaults to none.
|
|
418
|
+
*/
|
|
419
|
+
export declare function buildSetupArtifacts(config: ResolvedCIConfig, capabilities?: CapabilityEmitter[],
|
|
420
|
+
/**
|
|
421
|
+
* OPTIONAL bag of provider-rendered fragments to splice into the generated
|
|
422
|
+
* artifacts. `projectSetupSteps`: see {@link generateSetupAction}. Threaded
|
|
423
|
+
* here so the orchestrator (`installCI`) can pre-render via the active
|
|
424
|
+
* provider seam and keep this core function provider-agnostic.
|
|
425
|
+
*/
|
|
426
|
+
options?: {
|
|
427
|
+
projectSetupSteps?: string;
|
|
428
|
+
}): EmittedFile[];
|
|
429
|
+
/**
|
|
430
|
+
* The output base directory name: `.fake` in `--fake` snapshot mode (a scratch
|
|
431
|
+
* dir, NEVER `.github/`), else `.github`. The `--fake` mechanism: write to a
|
|
432
|
+
* `.fake/` scratch dir, never the real `.github/`, and set NO real secret — so
|
|
433
|
+
* the produced files are snapshot-asserted with no side effects on the repo.
|
|
434
|
+
*/
|
|
435
|
+
export declare function outputBaseName(fake: boolean): string;
|
|
436
|
+
/**
|
|
437
|
+
* Write the artifacts under `<workDir>/<base>/` (base = `.fake` when `fake`, else
|
|
438
|
+
* `.github`). Returns the repo-relative paths actually written. Pure filesystem
|
|
439
|
+
* I/O — no secrets, no git. Creates parent dirs as needed.
|
|
440
|
+
*/
|
|
441
|
+
export declare function writeArtifacts(options: {
|
|
442
|
+
workDir: string;
|
|
443
|
+
fake: boolean;
|
|
444
|
+
files: EmittedFile[];
|
|
445
|
+
}): string[];
|
|
446
|
+
//# sourceMappingURL=install-ci-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-ci-core.d.ts","sourceRoot":"","sources":["../src/install-ci-core.ts"],"names":[],"mappings":"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"}
|