dorfl 0.14.2 → 0.15.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 +17 -16
- package/dist/advance-ci-template.d.ts.map +1 -1
- package/dist/advance-ci-template.js +42 -53
- package/dist/advance-ci-template.js.map +1 -1
- package/dist/advance-drivers.d.ts +8 -0
- package/dist/advance-drivers.d.ts.map +1 -1
- package/dist/advance-drivers.js +28 -4
- package/dist/advance-drivers.js.map +1 -1
- package/dist/advance-isolated.d.ts.map +1 -1
- package/dist/advance-isolated.js +3 -2
- package/dist/advance-isolated.js.map +1 -1
- package/dist/advance-lifecycle-template.d.ts +41 -40
- package/dist/advance-lifecycle-template.d.ts.map +1 -1
- package/dist/advance-lifecycle-template.js +309 -489
- package/dist/advance-lifecycle-template.js.map +1 -1
- package/dist/advance-loop-driver.d.ts.map +1 -1
- package/dist/advance-loop-driver.js +3 -2
- package/dist/advance-loop-driver.js.map +1 -1
- package/dist/advance-treeless-publish.d.ts +31 -0
- package/dist/advance-treeless-publish.d.ts.map +1 -1
- package/dist/advance-treeless-publish.js +40 -0
- package/dist/advance-treeless-publish.js.map +1 -1
- package/dist/advance.d.ts +63 -3
- package/dist/advance.d.ts.map +1 -1
- package/dist/advance.js +80 -12
- package/dist/advance.js.map +1 -1
- package/dist/advancing-lock.d.ts +9 -0
- package/dist/advancing-lock.d.ts.map +1 -1
- package/dist/advancing-lock.js +21 -1
- package/dist/advancing-lock.js.map +1 -1
- package/dist/agent-env.d.ts +61 -0
- package/dist/agent-env.d.ts.map +1 -0
- package/dist/agent-env.js +144 -0
- package/dist/agent-env.js.map +1 -0
- package/dist/agent-stop.d.ts +35 -0
- package/dist/agent-stop.d.ts.map +1 -1
- package/dist/agent-stop.js +62 -0
- package/dist/agent-stop.js.map +1 -1
- package/dist/apply-merge-action.d.ts +76 -34
- package/dist/apply-merge-action.d.ts.map +1 -1
- package/dist/apply-merge-action.js +339 -129
- package/dist/apply-merge-action.js.map +1 -1
- package/dist/apply-stuck-action.js +2 -2
- package/dist/apply-stuck-action.js.map +1 -1
- package/dist/ci-agent-result.d.ts +151 -0
- package/dist/ci-agent-result.d.ts.map +1 -0
- package/dist/ci-agent-result.js +314 -0
- package/dist/ci-agent-result.js.map +1 -0
- package/dist/ci-handoff-apply.d.ts +162 -0
- package/dist/ci-handoff-apply.d.ts.map +1 -0
- package/dist/ci-handoff-apply.js +497 -0
- package/dist/ci-handoff-apply.js.map +1 -0
- package/dist/ci-handoff-format.d.ts +369 -0
- package/dist/ci-handoff-format.d.ts.map +1 -0
- package/dist/ci-handoff-format.js +646 -0
- package/dist/ci-handoff-format.js.map +1 -0
- package/dist/ci-handoff-lfs.d.ts +146 -0
- package/dist/ci-handoff-lfs.d.ts.map +1 -0
- package/dist/ci-handoff-lfs.js +397 -0
- package/dist/ci-handoff-lfs.js.map +1 -0
- package/dist/ci-handoff.d.ts +99 -0
- package/dist/ci-handoff.d.ts.map +1 -0
- package/dist/ci-handoff.js +277 -0
- package/dist/ci-handoff.js.map +1 -0
- package/dist/ci-lock-outputs.d.ts +93 -0
- package/dist/ci-lock-outputs.d.ts.map +1 -0
- package/dist/ci-lock-outputs.js +223 -0
- package/dist/ci-lock-outputs.js.map +1 -0
- package/dist/ci-phase-build.d.ts +178 -0
- package/dist/ci-phase-build.d.ts.map +1 -0
- package/dist/ci-phase-build.js +989 -0
- package/dist/ci-phase-build.js.map +1 -0
- package/dist/ci-phase-driver.d.ts +247 -0
- package/dist/ci-phase-driver.d.ts.map +1 -0
- package/dist/ci-phase-driver.js +370 -0
- package/dist/ci-phase-driver.js.map +1 -0
- package/dist/ci-phase-intake.d.ts +172 -0
- package/dist/ci-phase-intake.d.ts.map +1 -0
- package/dist/ci-phase-intake.js +555 -0
- package/dist/ci-phase-intake.js.map +1 -0
- package/dist/ci-phase-tasking.d.ts +205 -0
- package/dist/ci-phase-tasking.d.ts.map +1 -0
- package/dist/ci-phase-tasking.js +906 -0
- package/dist/ci-phase-tasking.js.map +1 -0
- package/dist/ci-phase-treeless.d.ts +224 -0
- package/dist/ci-phase-treeless.d.ts.map +1 -0
- package/dist/ci-phase-treeless.js +1482 -0
- package/dist/ci-phase-treeless.js.map +1 -0
- package/dist/ci-read-token.d.ts +47 -0
- package/dist/ci-read-token.d.ts.map +1 -0
- package/dist/ci-read-token.js +80 -0
- package/dist/ci-read-token.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +447 -22
- package/dist/cli.js.map +1 -1
- package/dist/close-job-template.d.ts +10 -1
- package/dist/close-job-template.d.ts.map +1 -1
- package/dist/close-job-template.js +46 -14
- package/dist/close-job-template.js.map +1 -1
- package/dist/close-job.d.ts +20 -5
- package/dist/close-job.d.ts.map +1 -1
- package/dist/close-job.js +65 -12
- package/dist/close-job.js.map +1 -1
- package/dist/complete.d.ts.map +1 -1
- package/dist/complete.js +20 -1
- package/dist/complete.js.map +1 -1
- package/dist/config.d.ts +41 -44
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -4
- package/dist/config.js.map +1 -1
- package/dist/continue-branch.d.ts +63 -15
- package/dist/continue-branch.d.ts.map +1 -1
- package/dist/continue-branch.js +75 -8
- package/dist/continue-branch.js.map +1 -1
- package/dist/crashed-run-save.d.ts +73 -0
- package/dist/crashed-run-save.d.ts.map +1 -0
- package/dist/crashed-run-save.js +86 -0
- package/dist/crashed-run-save.js.map +1 -0
- package/dist/cwd-section.d.ts.map +1 -1
- package/dist/cwd-section.js +10 -2
- package/dist/cwd-section.js.map +1 -1
- package/dist/decision-engine.d.ts +10 -0
- package/dist/decision-engine.d.ts.map +1 -1
- package/dist/decision-engine.js.map +1 -1
- package/dist/do-config.d.ts +2 -24
- package/dist/do-config.d.ts.map +1 -1
- package/dist/do-config.js +1 -33
- package/dist/do-config.js.map +1 -1
- package/dist/do.d.ts +149 -1
- package/dist/do.d.ts.map +1 -1
- package/dist/do.js +115 -25
- package/dist/do.js.map +1 -1
- package/dist/dorfl-item-template.d.ts +98 -0
- package/dist/dorfl-item-template.d.ts.map +1 -0
- package/dist/dorfl-item-template.js +504 -0
- package/dist/dorfl-item-template.js.map +1 -0
- package/dist/env-config.d.ts.map +1 -1
- package/dist/env-config.js +7 -5
- package/dist/env-config.js.map +1 -1
- package/dist/frontmatter.d.ts +52 -0
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +136 -2
- package/dist/frontmatter.js.map +1 -1
- package/dist/gc.d.ts +13 -0
- package/dist/gc.d.ts.map +1 -1
- package/dist/gc.js +16 -2
- package/dist/gc.js.map +1 -1
- package/dist/git.d.ts +18 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +70 -5
- package/dist/git.js.map +1 -1
- package/dist/harness.d.ts +44 -5
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +24 -1
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/install-ci-action-pins.d.ts +123 -0
- package/dist/install-ci-action-pins.d.ts.map +1 -0
- package/dist/install-ci-action-pins.js +190 -0
- package/dist/install-ci-action-pins.js.map +1 -0
- package/dist/install-ci-actions-pr-creation.d.ts +70 -0
- package/dist/install-ci-actions-pr-creation.d.ts.map +1 -0
- package/dist/install-ci-actions-pr-creation.js +106 -0
- package/dist/install-ci-actions-pr-creation.js.map +1 -0
- package/dist/install-ci-capabilities/dorfl-item.d.ts +12 -0
- package/dist/install-ci-capabilities/dorfl-item.d.ts.map +1 -0
- package/dist/install-ci-capabilities/dorfl-item.js +26 -0
- package/dist/install-ci-capabilities/dorfl-item.js.map +1 -0
- package/dist/install-ci-core.d.ts +155 -37
- package/dist/install-ci-core.d.ts.map +1 -1
- package/dist/install-ci-core.js +304 -200
- package/dist/install-ci-core.js.map +1 -1
- package/dist/install-ci-github.d.ts +47 -2
- package/dist/install-ci-github.d.ts.map +1 -1
- package/dist/install-ci-github.js +113 -1
- package/dist/install-ci-github.js.map +1 -1
- package/dist/install-ci.d.ts +25 -6
- package/dist/install-ci.d.ts.map +1 -1
- package/dist/install-ci.js +72 -36
- package/dist/install-ci.js.map +1 -1
- package/dist/intake-marker.d.ts +6 -1
- package/dist/intake-marker.d.ts.map +1 -1
- package/dist/intake-marker.js.map +1 -1
- package/dist/intake-triage.d.ts.map +1 -1
- package/dist/intake-triage.js +6 -2
- package/dist/intake-triage.js.map +1 -1
- package/dist/intake-trigger-template.d.ts +31 -25
- package/dist/intake-trigger-template.d.ts.map +1 -1
- package/dist/intake-trigger-template.js +107 -292
- package/dist/intake-trigger-template.js.map +1 -1
- package/dist/intake.d.ts +186 -4
- package/dist/intake.d.ts.map +1 -1
- package/dist/intake.js +533 -416
- package/dist/intake.js.map +1 -1
- package/dist/integration-core.d.ts +154 -1
- package/dist/integration-core.d.ts.map +1 -1
- package/dist/integration-core.js +759 -486
- package/dist/integration-core.js.map +1 -1
- package/dist/integrator.d.ts +12 -0
- package/dist/integrator.d.ts.map +1 -1
- package/dist/integrator.js +21 -0
- package/dist/integrator.js.map +1 -1
- package/dist/isolation.d.ts +12 -2
- package/dist/isolation.d.ts.map +1 -1
- package/dist/isolation.js +19 -8
- package/dist/isolation.js.map +1 -1
- package/dist/item-lock.d.ts +93 -11
- package/dist/item-lock.d.ts.map +1 -1
- package/dist/item-lock.js +233 -65
- package/dist/item-lock.js.map +1 -1
- package/dist/land-question-residue.d.ts +58 -0
- package/dist/land-question-residue.d.ts.map +1 -0
- package/dist/land-question-residue.js +95 -0
- package/dist/land-question-residue.js.map +1 -0
- package/dist/lifecycle-gather.d.ts +16 -0
- package/dist/lifecycle-gather.d.ts.map +1 -1
- package/dist/lifecycle-gather.js +54 -6
- package/dist/lifecycle-gather.js.map +1 -1
- package/dist/merge-answer.d.ts +41 -0
- package/dist/merge-answer.d.ts.map +1 -0
- package/dist/merge-answer.js +60 -0
- package/dist/merge-answer.js.map +1 -0
- package/dist/merge-question-surfacer.d.ts +105 -30
- package/dist/merge-question-surfacer.d.ts.map +1 -1
- package/dist/merge-question-surfacer.js +202 -91
- package/dist/merge-question-surfacer.js.map +1 -1
- package/dist/merge-question-tick.d.ts +64 -0
- package/dist/merge-question-tick.d.ts.map +1 -0
- package/dist/merge-question-tick.js +96 -0
- package/dist/merge-question-tick.js.map +1 -0
- package/dist/mint-adr.d.ts.map +1 -1
- package/dist/mint-adr.js +20 -2
- package/dist/mint-adr.js.map +1 -1
- package/dist/needs-attention.d.ts +72 -2
- package/dist/needs-attention.d.ts.map +1 -1
- package/dist/needs-attention.js +275 -38
- package/dist/needs-attention.js.map +1 -1
- package/dist/phase-recorder.d.ts +168 -0
- package/dist/phase-recorder.d.ts.map +1 -0
- package/dist/phase-recorder.js +218 -0
- package/dist/phase-recorder.js.map +1 -0
- package/dist/phase.d.ts +94 -0
- package/dist/phase.d.ts.map +1 -0
- package/dist/phase.js +148 -0
- package/dist/phase.js.map +1 -0
- package/dist/pi-harness.d.ts.map +1 -1
- package/dist/pi-harness.js +19 -6
- package/dist/pi-harness.js.map +1 -1
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +4 -0
- package/dist/prepare.js.map +1 -1
- package/dist/prompt.d.ts +4 -0
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +48 -1
- package/dist/prompt.js.map +1 -1
- package/dist/protocol/CLAIM-PROTOCOL.md +3 -1
- package/dist/protocol/WORK-CONTRACT.md +1 -1
- package/dist/reap-branches.d.ts +48 -0
- package/dist/reap-branches.d.ts.map +1 -1
- package/dist/reap-branches.js +64 -0
- package/dist/reap-branches.js.map +1 -1
- package/dist/ref-write.d.ts +198 -0
- package/dist/ref-write.d.ts.map +1 -0
- package/dist/ref-write.js +79 -0
- package/dist/ref-write.js.map +1 -0
- package/dist/repo-config.js +8 -8
- package/dist/repo-config.js.map +1 -1
- package/dist/repo-mirror.d.ts +36 -0
- package/dist/repo-mirror.d.ts.map +1 -1
- package/dist/repo-mirror.js +91 -1
- package/dist/repo-mirror.js.map +1 -1
- package/dist/review-verdict.d.ts +1 -1
- package/dist/review-verdict.js +1 -1
- package/dist/run.d.ts +7 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +28 -4
- package/dist/run.js.map +1 -1
- package/dist/scan.d.ts +19 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +21 -8
- package/dist/scan.js.map +1 -1
- package/dist/sidecar.d.ts +14 -0
- package/dist/sidecar.d.ts.map +1 -1
- package/dist/sidecar.js +21 -0
- package/dist/sidecar.js.map +1 -1
- package/dist/single-job-warning.d.ts +63 -0
- package/dist/single-job-warning.d.ts.map +1 -0
- package/dist/single-job-warning.js +110 -0
- package/dist/single-job-warning.js.map +1 -0
- package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +3 -1
- package/dist/skills/setup/protocol/WORK-CONTRACT.md +1 -1
- package/dist/spec-complete.d.ts +13 -6
- package/dist/spec-complete.d.ts.map +1 -1
- package/dist/spec-complete.js +23 -11
- package/dist/spec-complete.js.map +1 -1
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +47 -14
- package/dist/start.js.map +1 -1
- package/dist/status.d.ts +12 -0
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +11 -3
- package/dist/status.js.map +1 -1
- package/dist/tasking.d.ts +246 -1
- package/dist/tasking.d.ts.map +1 -1
- package/dist/tasking.js +452 -358
- package/dist/tasking.js.map +1 -1
- package/dist/triage-persist.d.ts.map +1 -1
- package/dist/triage-persist.js +21 -2
- package/dist/triage-persist.js.map +1 -1
- package/dist/verify-workflow-template.d.ts.map +1 -1
- package/dist/verify-workflow-template.js +8 -4
- package/dist/verify-workflow-template.js.map +1 -1
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +4 -0
- package/dist/verify.js.map +1 -1
- package/dist/watch-session.d.ts +42 -13
- package/dist/watch-session.d.ts.map +1 -1
- package/dist/watch-session.js +52 -23
- package/dist/watch-session.js.map +1 -1
- package/dist/work-layout.d.ts +10 -4
- package/dist/work-layout.d.ts.map +1 -1
- package/dist/work-layout.js +11 -3
- package/dist/work-layout.js.map +1 -1
- package/dist/workspace.d.ts +65 -4
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +159 -11
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
- package/src/advance-ci-template.ts +80 -81
- package/src/advance-drivers.ts +45 -6
- package/src/advance-isolated.ts +3 -5
- package/src/advance-lifecycle-template.ts +375 -538
- package/src/advance-loop-driver.ts +3 -5
- package/src/advance-treeless-publish.ts +61 -0
- package/src/advance.ts +145 -15
- package/src/advancing-lock.ts +36 -1
- package/src/agent-env.ts +174 -0
- package/src/agent-stop.ts +81 -0
- package/src/apply-merge-action.ts +401 -154
- package/src/apply-stuck-action.ts +2 -2
- package/src/ci-agent-result.ts +421 -0
- package/src/ci-handoff-apply.ts +737 -0
- package/src/ci-handoff-format.ts +926 -0
- package/src/ci-handoff-lfs.ts +519 -0
- package/src/ci-handoff.ts +392 -0
- package/src/ci-lock-outputs.ts +273 -0
- package/src/ci-phase-build.ts +1328 -0
- package/src/ci-phase-driver.ts +548 -0
- package/src/ci-phase-intake.ts +861 -0
- package/src/ci-phase-tasking.ts +1255 -0
- package/src/ci-phase-treeless.ts +2028 -0
- package/src/ci-read-token.ts +90 -0
- package/src/cli.ts +591 -29
- package/src/close-job-template.ts +52 -15
- package/src/close-job.ts +77 -12
- package/src/complete.ts +19 -1
- package/src/config.ts +43 -48
- package/src/continue-branch.ts +121 -16
- package/src/crashed-run-save.ts +162 -0
- package/src/cwd-section.ts +10 -0
- package/src/decision-engine.ts +10 -0
- package/src/do-config.ts +2 -57
- package/src/do.ts +170 -28
- package/src/dorfl-item-template.ts +556 -0
- package/src/env-config.ts +7 -5
- package/src/frontmatter.ts +155 -2
- package/src/gc.ts +27 -2
- package/src/git.ts +83 -5
- package/src/harness.ts +58 -6
- package/src/index.ts +50 -1
- package/src/install-ci-action-pins.ts +209 -0
- package/src/install-ci-actions-pr-creation.ts +186 -0
- package/src/install-ci-capabilities/dorfl-item.ts +33 -0
- package/src/install-ci-core.ts +388 -233
- package/src/install-ci-github.ts +149 -1
- package/src/install-ci.ts +83 -37
- package/src/intake-marker.ts +6 -1
- package/src/intake-triage.ts +7 -3
- package/src/intake-trigger-template.ts +126 -327
- package/src/intake.ts +725 -544
- package/src/integration-core.ts +975 -523
- package/src/integrator.ts +28 -0
- package/src/isolation.ts +29 -10
- package/src/item-lock.ts +308 -92
- package/src/land-question-residue.ts +122 -0
- package/src/lifecycle-gather.ts +82 -10
- package/src/merge-answer.ts +82 -0
- package/src/merge-question-surfacer.ts +320 -112
- package/src/merge-question-tick.ts +182 -0
- package/src/mint-adr.ts +28 -2
- package/src/needs-attention.ts +350 -42
- package/src/phase-recorder.ts +350 -0
- package/src/phase.ts +177 -0
- package/src/pi-harness.ts +25 -5
- package/src/prepare.ts +4 -0
- package/src/prompt.ts +68 -1
- package/src/reap-branches.ts +107 -0
- package/src/ref-write.ts +324 -0
- package/src/repo-config.ts +8 -8
- package/src/repo-mirror.ts +107 -1
- package/src/review-verdict.ts +1 -1
- package/src/run.ts +47 -6
- package/src/scan.ts +37 -7
- package/src/sidecar.ts +36 -0
- package/src/single-job-warning.ts +135 -0
- package/src/spec-complete.ts +36 -14
- package/src/start.ts +55 -16
- package/src/status.ts +29 -3
- package/src/tasking.ts +593 -378
- package/src/triage-persist.ts +24 -2
- package/src/verify-workflow-template.ts +8 -4
- package/src/verify.ts +4 -0
- package/src/watch-session.ts +86 -28
- package/src/work-layout.ts +11 -3
- package/src/workspace.ts +210 -14
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "Allow GitHub Actions to create and approve pull requests" STEP for
|
|
3
|
+
* `install-ci` (task `install-ci-enables-actions-pr-creation`). A new GitHub
|
|
4
|
+
* repository has this setting OFF (`GET repos/<r>/actions/permissions/workflow`
|
|
5
|
+
* answers `can_approve_pull_request_reviews: false`), and with it off GitHub
|
|
6
|
+
* refuses every pull request the generated workflows try to open with the
|
|
7
|
+
* ambient `GITHUB_TOKEN`, so propose mode silently opens no PR. dorfl's own
|
|
8
|
+
* repository has it on, which is why this was only found in a fresh sandbox.
|
|
9
|
+
*
|
|
10
|
+
* BEHAVIOUR (mirrors the Tier-1 branch-protection step,
|
|
11
|
+
* `install-ci-branch-protection.ts`: auto-when-admin, instruct-otherwise):
|
|
12
|
+
*
|
|
13
|
+
* - READ the setting ({@link CIProviderContext.getActionsWorkflowPermissions}).
|
|
14
|
+
* Already on: leave it alone and say so.
|
|
15
|
+
* - Off (or unreadable) and the credential is repo-admin-scoped: SET it
|
|
16
|
+
* ({@link CIProviderContext.setActionsWorkflowPermissions}) with
|
|
17
|
+
* `can_approve_pull_request_reviews: true`, carrying the
|
|
18
|
+
* `default_workflow_permissions` value that was read so the GITHUB_TOKEN's
|
|
19
|
+
* default scope is preserved, never widened or narrowed.
|
|
20
|
+
* - Not admin (or unknown): never call the API; print the exact `gh api`
|
|
21
|
+
* command and the settings page instead. A rejected PUT is `failed` and
|
|
22
|
+
* prints the same command to retry by hand.
|
|
23
|
+
* - `--fake`: report what would be checked, call nothing.
|
|
24
|
+
*
|
|
25
|
+
* Never throws: a failure is reported in the result and the log, so install-ci's
|
|
26
|
+
* later steps still run.
|
|
27
|
+
*/
|
|
28
|
+
import type { ActionsWorkflowPermissions, CIProviderContext } from './install-ci-core.js';
|
|
29
|
+
export type { ActionsWorkflowPermissions };
|
|
30
|
+
/**
|
|
31
|
+
* The exact `gh api` command a user runs to turn the setting on by hand. When
|
|
32
|
+
* the current `default_workflow_permissions` is known it is passed back
|
|
33
|
+
* unchanged; when it is not, the field is omitted, which leaves it as it is on
|
|
34
|
+
* GitHub (both PUT fields are optional). Pure string, no I/O.
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatManualActionsPrCreationCommand(repo: string, defaultWorkflowPermissions?: string): string;
|
|
37
|
+
/** Options for {@link installCIActionsPrCreationStep}. */
|
|
38
|
+
export interface ActionsPrCreationStepOptions {
|
|
39
|
+
/** The CI-provider seam (GitHub adapter in production; stub in tests). */
|
|
40
|
+
ctx: CIProviderContext;
|
|
41
|
+
/** Snapshot mode: never call the live API. */
|
|
42
|
+
fake?: boolean;
|
|
43
|
+
/** Sink for human-facing progress lines. */
|
|
44
|
+
log: (line: string) => void;
|
|
45
|
+
}
|
|
46
|
+
/** The outcome of one actions-PR-creation step run. */
|
|
47
|
+
export interface ActionsPrCreationStepResult {
|
|
48
|
+
/**
|
|
49
|
+
* - `already-enabled`: the setting was on; nothing was changed;
|
|
50
|
+
* - `set`: it was off (or unreadable), admin scope, the PUT succeeded;
|
|
51
|
+
* - `failed`: admin scope, the PUT was rejected (detail in `error`);
|
|
52
|
+
* - `instructed`: not admin (or unknown), the manual command was printed;
|
|
53
|
+
* - `skipped-no-repo`: the provider context has no `repo` known;
|
|
54
|
+
* - `skipped-no-seam`: the provider does not implement the seam;
|
|
55
|
+
* - `skipped-fake`: `--fake` snapshot mode (no real API touched).
|
|
56
|
+
*/
|
|
57
|
+
status: 'already-enabled' | 'set' | 'failed' | 'instructed' | 'skipped-no-repo' | 'skipped-no-seam' | 'skipped-fake';
|
|
58
|
+
/** The permissions read before any change (`undefined` when unreadable). */
|
|
59
|
+
before?: ActionsWorkflowPermissions;
|
|
60
|
+
/** The detected admin-scope verdict (`true`/`false`/`undefined`=unknown). */
|
|
61
|
+
adminScope?: boolean;
|
|
62
|
+
/** The failure detail when `status === 'failed'`. */
|
|
63
|
+
error?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check, and when off and permitted, enable the repository setting that lets
|
|
67
|
+
* GitHub Actions create pull requests (see the module header).
|
|
68
|
+
*/
|
|
69
|
+
export declare function installCIActionsPrCreationStep(options: ActionsPrCreationStepOptions): Promise<ActionsPrCreationStepResult>;
|
|
70
|
+
//# sourceMappingURL=install-ci-actions-pr-creation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-ci-actions-pr-creation.d.ts","sourceRoot":"","sources":["../src/install-ci-actions-pr-creation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EACX,0BAA0B,EAC1B,iBAAiB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAC,0BAA0B,EAAC,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,oCAAoC,CACnD,IAAI,EAAE,MAAM,EACZ,0BAA0B,CAAC,EAAE,MAAM,GACjC,MAAM,CASR;AAED,0DAA0D;AAC1D,MAAM,WAAW,4BAA4B;IAC5C,0EAA0E;IAC1E,GAAG,EAAE,iBAAiB,CAAC;IACvB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC3C;;;;;;;;OAQG;IACH,MAAM,EACH,iBAAiB,GACjB,KAAK,GACL,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAID;;;GAGG;AACH,wBAAsB,8BAA8B,CACnD,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,2BAA2B,CAAC,CAqFtC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "Allow GitHub Actions to create and approve pull requests" STEP for
|
|
3
|
+
* `install-ci` (task `install-ci-enables-actions-pr-creation`). A new GitHub
|
|
4
|
+
* repository has this setting OFF (`GET repos/<r>/actions/permissions/workflow`
|
|
5
|
+
* answers `can_approve_pull_request_reviews: false`), and with it off GitHub
|
|
6
|
+
* refuses every pull request the generated workflows try to open with the
|
|
7
|
+
* ambient `GITHUB_TOKEN`, so propose mode silently opens no PR. dorfl's own
|
|
8
|
+
* repository has it on, which is why this was only found in a fresh sandbox.
|
|
9
|
+
*
|
|
10
|
+
* BEHAVIOUR (mirrors the Tier-1 branch-protection step,
|
|
11
|
+
* `install-ci-branch-protection.ts`: auto-when-admin, instruct-otherwise):
|
|
12
|
+
*
|
|
13
|
+
* - READ the setting ({@link CIProviderContext.getActionsWorkflowPermissions}).
|
|
14
|
+
* Already on: leave it alone and say so.
|
|
15
|
+
* - Off (or unreadable) and the credential is repo-admin-scoped: SET it
|
|
16
|
+
* ({@link CIProviderContext.setActionsWorkflowPermissions}) with
|
|
17
|
+
* `can_approve_pull_request_reviews: true`, carrying the
|
|
18
|
+
* `default_workflow_permissions` value that was read so the GITHUB_TOKEN's
|
|
19
|
+
* default scope is preserved, never widened or narrowed.
|
|
20
|
+
* - Not admin (or unknown): never call the API; print the exact `gh api`
|
|
21
|
+
* command and the settings page instead. A rejected PUT is `failed` and
|
|
22
|
+
* prints the same command to retry by hand.
|
|
23
|
+
* - `--fake`: report what would be checked, call nothing.
|
|
24
|
+
*
|
|
25
|
+
* Never throws: a failure is reported in the result and the log, so install-ci's
|
|
26
|
+
* later steps still run.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* The exact `gh api` command a user runs to turn the setting on by hand. When
|
|
30
|
+
* the current `default_workflow_permissions` is known it is passed back
|
|
31
|
+
* unchanged; when it is not, the field is omitted, which leaves it as it is on
|
|
32
|
+
* GitHub (both PUT fields are optional). Pure string, no I/O.
|
|
33
|
+
*/
|
|
34
|
+
export function formatManualActionsPrCreationCommand(repo, defaultWorkflowPermissions) {
|
|
35
|
+
const keep = defaultWorkflowPermissions !== undefined
|
|
36
|
+
? ` -f default_workflow_permissions=${defaultWorkflowPermissions}`
|
|
37
|
+
: '';
|
|
38
|
+
return (`gh api -X PUT repos/${repo}/actions/permissions/workflow ` +
|
|
39
|
+
`-F can_approve_pull_request_reviews=true${keep}`);
|
|
40
|
+
}
|
|
41
|
+
const LABEL = 'actions PR creation';
|
|
42
|
+
/**
|
|
43
|
+
* Check, and when off and permitted, enable the repository setting that lets
|
|
44
|
+
* GitHub Actions create pull requests (see the module header).
|
|
45
|
+
*/
|
|
46
|
+
export async function installCIActionsPrCreationStep(options) {
|
|
47
|
+
const { ctx, log, fake } = options;
|
|
48
|
+
if (fake) {
|
|
49
|
+
log(`${LABEL}: skipped (--fake; would check that "Allow GitHub Actions to create and approve pull requests" is on, and enable it if not)`);
|
|
50
|
+
return { status: 'skipped-fake' };
|
|
51
|
+
}
|
|
52
|
+
if (!ctx.getActionsWorkflowPermissions ||
|
|
53
|
+
!ctx.setActionsWorkflowPermissions) {
|
|
54
|
+
log(`${LABEL}: skipped (provider does not implement the seam, non-GitHub host).`);
|
|
55
|
+
return { status: 'skipped-no-seam' };
|
|
56
|
+
}
|
|
57
|
+
if (!ctx.repo) {
|
|
58
|
+
log(`${LABEL}: skipped (repo unknown, pass --repo to enable).`);
|
|
59
|
+
return { status: 'skipped-no-repo' };
|
|
60
|
+
}
|
|
61
|
+
const repo = ctx.repo;
|
|
62
|
+
const before = await ctx
|
|
63
|
+
.getActionsWorkflowPermissions()
|
|
64
|
+
.catch(() => undefined);
|
|
65
|
+
if (before?.canApprovePullRequestReviews === true) {
|
|
66
|
+
log(`${LABEL}: "Allow GitHub Actions to create and approve pull requests" is already on for ${repo}.`);
|
|
67
|
+
return { status: 'already-enabled', before };
|
|
68
|
+
}
|
|
69
|
+
const keep = before?.defaultWorkflowPermissions;
|
|
70
|
+
const adminScope = ctx.getRepoAdminScope
|
|
71
|
+
? await ctx.getRepoAdminScope().catch(() => undefined)
|
|
72
|
+
: undefined;
|
|
73
|
+
if (adminScope !== true) {
|
|
74
|
+
log(before === undefined
|
|
75
|
+
? `${LABEL}: could not read "Allow GitHub Actions to create and approve pull requests" for ${repo}, and no admin-scoped credential was detected.`
|
|
76
|
+
: `${LABEL}: "Allow GitHub Actions to create and approve pull requests" is OFF for ${repo}, and no admin-scoped credential was detected.`);
|
|
77
|
+
log(' With it off, propose mode opens no pull request (GitHub refuses PRs created with GITHUB_TOKEN).');
|
|
78
|
+
log(' install-ci will NOT call the GitHub API. Run this yourself (admin token required):');
|
|
79
|
+
log(` ${formatManualActionsPrCreationCommand(repo, keep)}`);
|
|
80
|
+
log(` Manual UI fallback: https://github.com/${repo}/settings/actions ` +
|
|
81
|
+
'→ "Workflow permissions" → tick "Allow GitHub Actions to create and approve pull requests" → Save.');
|
|
82
|
+
return { status: 'instructed', before, adminScope };
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
// Carry the default scope through unchanged; when it could not be read,
|
|
86
|
+
// omit it so GitHub keeps whatever it is.
|
|
87
|
+
await ctx.setActionsWorkflowPermissions({
|
|
88
|
+
canApprovePullRequestReviews: true,
|
|
89
|
+
...(keep !== undefined ? { defaultWorkflowPermissions: keep } : {}),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
94
|
+
log(`${LABEL}: FAILED (${error})`);
|
|
95
|
+
log(' With it off, propose mode opens no pull request (GitHub refuses PRs created with GITHUB_TOKEN).');
|
|
96
|
+
log(` Retry by hand (admin token required):\n` +
|
|
97
|
+
` ${formatManualActionsPrCreationCommand(repo, keep)}`);
|
|
98
|
+
return { status: 'failed', before, adminScope, error };
|
|
99
|
+
}
|
|
100
|
+
log(`${LABEL}: enabled "Allow GitHub Actions to create and approve pull requests" on ${repo}` +
|
|
101
|
+
(keep !== undefined
|
|
102
|
+
? ` (default_workflow_permissions kept as ${keep}).`
|
|
103
|
+
: '.'));
|
|
104
|
+
return { status: 'set', before, adminScope };
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=install-ci-actions-pr-creation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-ci-actions-pr-creation.js","sourceRoot":"","sources":["../src/install-ci-actions-pr-creation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SPLIT CI ITEM capability emitter (spec `ci-agent-job-without-write-token`,
|
|
3
|
+
* task `ci-split-generate-workflows`). A SELF-REGISTERING module (see
|
|
4
|
+
* `example-noop.ts`): it emits `dorfl-item.yml` (the lock, agent and apply jobs
|
|
5
|
+
* of ONE item) and `dorfl-item-dispatch.yml` (the per-item dispatch wrapper the
|
|
6
|
+
* advance tick starts), which the advance-lifecycle and intake workflows call.
|
|
7
|
+
*
|
|
8
|
+
* The workflow text lives in `dorfl-item-template.ts`; this file is the thin
|
|
9
|
+
* registry-wiring shim.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=dorfl-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dorfl-item.d.ts","sourceRoot":"","sources":["../../src/install-ci-capabilities/dorfl-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SPLIT CI ITEM capability emitter (spec `ci-agent-job-without-write-token`,
|
|
3
|
+
* task `ci-split-generate-workflows`). A SELF-REGISTERING module (see
|
|
4
|
+
* `example-noop.ts`): it emits `dorfl-item.yml` (the lock, agent and apply jobs
|
|
5
|
+
* of ONE item) and `dorfl-item-dispatch.yml` (the per-item dispatch wrapper the
|
|
6
|
+
* advance tick starts), which the advance-lifecycle and intake workflows call.
|
|
7
|
+
*
|
|
8
|
+
* The workflow text lives in `dorfl-item-template.ts`; this file is the thin
|
|
9
|
+
* registry-wiring shim.
|
|
10
|
+
*/
|
|
11
|
+
import { registerCapability } from '../install-ci-core.js';
|
|
12
|
+
import { ITEM_DISPATCH_WORKFLOW_PATH, ITEM_WORKFLOW_PATH, generateItemDispatchWorkflow, generateItemWorkflow, } from '../dorfl-item-template.js';
|
|
13
|
+
registerCapability({
|
|
14
|
+
id: 'dorfl-item',
|
|
15
|
+
label: 'Run each CI item as lock, agent and apply jobs (the per-item workflow the advance tick and intake call)',
|
|
16
|
+
emit(config) {
|
|
17
|
+
return [
|
|
18
|
+
{ path: ITEM_WORKFLOW_PATH, content: generateItemWorkflow(config) },
|
|
19
|
+
{
|
|
20
|
+
path: ITEM_DISPATCH_WORKFLOW_PATH,
|
|
21
|
+
content: generateItemDispatchWorkflow(config),
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=dorfl-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dorfl-item.js","sourceRoot":"","sources":["../../src/install-ci-capabilities/dorfl-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACN,2BAA2B,EAC3B,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,kBAAkB,CAAC;IAClB,EAAE,EAAE,YAAY;IAChB,KAAK,EACJ,yGAAyG;IAC1G,IAAI,CAAC,MAAM;QACV,OAAO;YACN,EAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAC;YACjE;gBACC,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,4BAA4B,CAAC,MAAM,CAAC;aAC7C;SACD,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
* This module is the PROVIDER-AGNOSTIC half: the config model (`ProviderEntry` /
|
|
11
11
|
* `AuthMode` / `CIConfigFile`), the `models.json` builder, the secret-orchestration
|
|
12
12
|
* LOGIC (which secrets, dedup, prompt-or-take-from-config), the `--export-config`
|
|
13
|
-
* (+ `--include-secrets`) round-trip, the composite-setup-action
|
|
14
|
-
* script generators, the `--fake` snapshot mechanism (write to `.fake/` instead of
|
|
13
|
+
* (+ `--include-secrets`) round-trip, the composite-setup-action generators, the `--fake` snapshot mechanism (write to `.fake/` instead of
|
|
15
14
|
* `.github/`), and the capability-emitter REGISTRY seam. It imports NOTHING
|
|
16
15
|
* GitHub-specific: the thin GitHub adapter (`github-ci.ts`) plugs into the
|
|
17
16
|
* {@link CIProviderContext} seam, so a second provider could slot in WITHOUT
|
|
@@ -26,16 +25,26 @@
|
|
|
26
25
|
*/
|
|
27
26
|
import type { HarnessAdapter } from './config.js';
|
|
28
27
|
/**
|
|
29
|
-
* The
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
28
|
+
* The auth mode. `models-json` is the ONLY mode: one GitHub secret per provider
|
|
29
|
+
* API key; the harness `models.json` is generated inline and references the env
|
|
30
|
+
* vars (`$NAME`). Credential rotation (e.g. OAuth) is NOT done in CI: point a
|
|
31
|
+
* provider's `baseUrl` at a proxy that rotates credentials outside GitHub.
|
|
32
|
+
*
|
|
33
|
+
* The former `auth-json` mode (a `PI_AUTH_JSON` secret + an OAuth-refresh
|
|
34
|
+
* script that wrote the rotated token back with a write-capable `GH_PAT`) was
|
|
35
|
+
* REMOVED: its refresh needed a write token in the agent job, which ADR
|
|
36
|
+
* `ci-agent-job-holds-no-write-token` forbids, and without the refresh the
|
|
37
|
+
* OAuth token expires within hours. A config still naming it is refused by
|
|
38
|
+
* {@link loadCIConfigFile} with {@link AUTH_JSON_REMOVED_MESSAGE}. The type
|
|
39
|
+
* (and the `authMode` config key) is kept so existing `models-json` configs
|
|
40
|
+
* still parse and export unchanged.
|
|
41
|
+
*/
|
|
42
|
+
export type AuthMode = 'models-json';
|
|
43
|
+
/**
|
|
44
|
+
* The refusal a config naming the removed `auth-json` mode gets: it says the
|
|
45
|
+
* mode is gone and names the replacement (`models-json` + a proxy `baseUrl`).
|
|
37
46
|
*/
|
|
38
|
-
export
|
|
47
|
+
export declare const AUTH_JSON_REMOVED_MESSAGE: string;
|
|
39
48
|
/**
|
|
40
49
|
* Where the composite setup action gets the `dorfl` CLI from:
|
|
41
50
|
* - `registry` (default): `npm install -g dorfl` — the published CLI,
|
|
@@ -76,7 +85,7 @@ export interface ProviderEntry {
|
|
|
76
85
|
export interface CIConfigFile {
|
|
77
86
|
/** The auth mode (`models-json` default). */
|
|
78
87
|
authMode: AuthMode;
|
|
79
|
-
/** The configured providers (empty
|
|
88
|
+
/** The configured providers (non-empty). */
|
|
80
89
|
providers: ProviderEntry[];
|
|
81
90
|
/** The default provider name. */
|
|
82
91
|
defaultProvider: string;
|
|
@@ -172,6 +181,19 @@ export declare const DEFAULT_HARNESS: HarnessAdapter;
|
|
|
172
181
|
export declare const DEFAULT_MAX_PARALLEL = 2;
|
|
173
182
|
/** The default install source: the published CLI via `npm install -g`. */
|
|
174
183
|
export declare const DEFAULT_INSTALL_SOURCE: InstallSource;
|
|
184
|
+
/**
|
|
185
|
+
* A repository's GitHub Actions workflow permissions, as
|
|
186
|
+
* `GET /repos/{owner}/{repo}/actions/permissions/workflow` answers them (the
|
|
187
|
+
* same two fields the PUT accepts). `defaultWorkflowPermissions` is `read` or
|
|
188
|
+
* `write` on GitHub; typed as a string so an unexpected value is carried
|
|
189
|
+
* through untouched rather than rewritten.
|
|
190
|
+
*/
|
|
191
|
+
export interface ActionsWorkflowPermissions {
|
|
192
|
+
/** The GITHUB_TOKEN's default scope (`read` / `write`); preserved on set. */
|
|
193
|
+
defaultWorkflowPermissions: string;
|
|
194
|
+
/** "Allow GitHub Actions to create and approve pull requests". */
|
|
195
|
+
canApprovePullRequestReviews: boolean;
|
|
196
|
+
}
|
|
175
197
|
/**
|
|
176
198
|
* The thin CI-provider seam (whitesmith's proven `GitHubCIContext` shape,
|
|
177
199
|
* generalised so a second provider could slot in without touching the core). A
|
|
@@ -252,6 +274,21 @@ export interface CIProviderContext {
|
|
|
252
274
|
* GitHub provider. Throws on failure (caller catches + logs).
|
|
253
275
|
*/
|
|
254
276
|
setBranchRuleset?(ruleset: unknown): Promise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* OPTIONALLY read the repo's Actions workflow permissions (GitHub:
|
|
279
|
+
* `GET /repos/{owner}/{repo}/actions/permissions/workflow`), whose
|
|
280
|
+
* `can_approve_pull_request_reviews` is the "Allow GitHub Actions to create
|
|
281
|
+
* and approve pull requests" setting propose mode needs. Returns `undefined`
|
|
282
|
+
* when the read fails. Absent on a provider with no such setting.
|
|
283
|
+
*/
|
|
284
|
+
getActionsWorkflowPermissions?(): Promise<ActionsWorkflowPermissions | undefined>;
|
|
285
|
+
/**
|
|
286
|
+
* OPTIONALLY set the repo's Actions workflow permissions (GitHub:
|
|
287
|
+
* `PUT /repos/{owner}/{repo}/actions/permissions/workflow`). A field left
|
|
288
|
+
* `undefined` is not sent, so GitHub keeps its current value. Throws on
|
|
289
|
+
* failure (caller catches + logs). Absent on a provider with no such setting.
|
|
290
|
+
*/
|
|
291
|
+
setActionsWorkflowPermissions?(permissions: Partial<ActionsWorkflowPermissions>): Promise<void>;
|
|
255
292
|
/**
|
|
256
293
|
* OPTIONALLY render the user's project-setup payload (the value of
|
|
257
294
|
* {@link CIConfigFile.projectSetup}[providerId]) to the NATIVE-SYNTAX
|
|
@@ -322,30 +359,41 @@ export declare function resolveCapabilitiesDir(override?: string): string;
|
|
|
322
359
|
export declare function loadCapabilityRegistry(dir?: string): Promise<CapabilityEmitter[]>;
|
|
323
360
|
/**
|
|
324
361
|
* Build the harness `models.json` object from the providers. Built-in providers
|
|
325
|
-
* (`anthropic`/`openai`) get `{apiKey:
|
|
326
|
-
* var at runtime); a custom provider carries its `baseUrl`/`api`/`models`/`compat`.
|
|
362
|
+
* (`anthropic`/`openai`) get `{apiKey: "$<ENV_VAR>"}` (the harness resolves the
|
|
363
|
+
* env var at runtime); a custom provider carries its `baseUrl`/`api`/`models`/`compat`.
|
|
327
364
|
* Mirrors whitesmith's `buildModelsJson`.
|
|
365
|
+
*
|
|
366
|
+
* The `apiKey` is an env-var REFERENCE (see {@link modelsJsonEnvRef}), never the
|
|
367
|
+
* bare env-var name: pi treats a bare value as a LITERAL key.
|
|
328
368
|
*/
|
|
329
369
|
export declare function buildModelsJson(providers: ProviderEntry[]): {
|
|
330
370
|
providers: Record<string, unknown>;
|
|
331
371
|
};
|
|
372
|
+
/**
|
|
373
|
+
* The `models.json` config value that makes the pi harness read `envVarName`
|
|
374
|
+
* from the environment: `"$NAME"`. The pinned harness
|
|
375
|
+
* (`@earendil-works/pi-coding-agent`, `dist/core/resolve-config-value.js`)
|
|
376
|
+
* resolves a config value as a shell command when it starts with `!`, as an env
|
|
377
|
+
* var when it is `$NAME` / `${NAME}`, and as a LITERAL otherwise. Writing the bare
|
|
378
|
+
* name therefore sent the string `ANTHROPIC_API_KEY` as the token (`401
|
|
379
|
+
* Unauthorized` on every CI launch).
|
|
380
|
+
*/
|
|
381
|
+
export declare function modelsJsonEnvRef(envVarName: string): string;
|
|
332
382
|
/**
|
|
333
383
|
* The DEDUPLICATED set of secret env-var names the config requires, in first-seen
|
|
334
|
-
* order
|
|
335
|
-
* for `auth-json` mode it is the fixed `PI_AUTH_JSON` + `GH_PAT` pair (the sharp
|
|
336
|
-
* edge). This is the pure secret-orchestration LOGIC the adapter's setter
|
|
384
|
+
* order: one per distinct provider `apiKeyEnvVar`. This is the pure secret-orchestration LOGIC the adapter's setter
|
|
337
385
|
* consumes — which secrets, deduped — separated from any provider I/O.
|
|
338
386
|
*/
|
|
339
387
|
export declare function requiredSecretNames(config: ResolvedCIConfig): string[];
|
|
340
388
|
/**
|
|
341
389
|
* The GitHub secret the propose/merge CI legs read as `GH_TOKEN` to open PRs
|
|
342
|
-
* under a CHOSEN identity (a PAT / App token).
|
|
343
|
-
* distinct purpose from `auth-json` mode's `GH_PAT` (which exists only to rotate
|
|
344
|
-
* the OAuth `PI_AUTH_JSON` secret). The generated workflows reference it as
|
|
390
|
+
* under a CHOSEN identity (a PAT / App token). The generated workflows reference it as
|
|
345
391
|
* `${{ secrets.DORFL_GH_TOKEN || secrets.GITHUB_TOKEN }}` so it is
|
|
346
392
|
* OPTIONAL: unset ⇒ the legs fall back to the built-in `GITHUB_TOKEN` (PRs are
|
|
347
|
-
* `github-actions[bot]
|
|
348
|
-
*
|
|
393
|
+
* `github-actions[bot]`, and GitHub holds their `on: pull_request` runs in
|
|
394
|
+
* `action_required` until someone approves them); set ⇒ PRs carry the token's
|
|
395
|
+
* identity and trigger those workflows on their own. `intake.yml` never passes
|
|
396
|
+
* it, so intake PRs always need the approval (`docs/ci/README.md`).
|
|
349
397
|
*/
|
|
350
398
|
export declare const PR_IDENTITY_SECRET_NAME = "DORFL_GH_TOKEN";
|
|
351
399
|
/**
|
|
@@ -367,12 +415,20 @@ export declare function optionalSecretNames(config: ResolvedCIConfig): string[];
|
|
|
367
415
|
* entry). Each entry maps the action input (named identically to the secret) to
|
|
368
416
|
* `${{ secrets.<NAME> }}`.
|
|
369
417
|
*
|
|
370
|
-
* Empty string when there are no provider keys (
|
|
418
|
+
* Empty string when there are no provider keys (no providers),
|
|
371
419
|
* so the `uses:` line is emitted bare and unchanged. This is the SINGLE place the
|
|
372
420
|
* provider→`with:` shape lives, shared by every capability workflow generator, so
|
|
373
421
|
* no template re-derives it.
|
|
374
422
|
*/
|
|
375
423
|
export declare function providerSecretsWithBlock(config: ResolvedCIConfig): string;
|
|
424
|
+
/**
|
|
425
|
+
* The provider API key secrets the AGENT-running jobs forward to the setup
|
|
426
|
+
* action: one per distinct provider key (the same set as
|
|
427
|
+
* {@link requiredSecretNames}). The split item workflow declares exactly these (plus
|
|
428
|
+
* {@link PR_IDENTITY_SECRET_NAME}) as its `workflow_call` secrets, and hands
|
|
429
|
+
* them to its agent job only.
|
|
430
|
+
*/
|
|
431
|
+
export declare function providerSecretNames(config: ResolvedCIConfig): string[];
|
|
376
432
|
/** The outcome of orchestrating one secret through the provider seam. */
|
|
377
433
|
export interface SecretSetResult {
|
|
378
434
|
/** The secret env-var name. */
|
|
@@ -460,6 +516,42 @@ export declare const PI_HARNESS_PACKAGE = "@earendil-works/pi-coding-agent";
|
|
|
460
516
|
* `node-version: '22'` satisfies (setup-node resolves the latest 22.x).
|
|
461
517
|
*/
|
|
462
518
|
export declare const PI_HARNESS_VERSION = "0.80.6";
|
|
519
|
+
/**
|
|
520
|
+
* The `pi` packages the harness LOADS besides itself, each pinned to an exact
|
|
521
|
+
* version that is known to load with {@link PI_HARNESS_VERSION}.
|
|
522
|
+
*
|
|
523
|
+
* `pi-coding-agent` declares its sibling packages with a caret range
|
|
524
|
+
* (`@earendil-works/pi-ai: ^0.80.6`), which on a `0.x` version floats within
|
|
525
|
+
* the minor. `pi-ai@0.80.10` removed the `getOAuthApiKey` export that
|
|
526
|
+
* `pi-coding-agent@0.80.6` imports, so a resolver that honours the caret kills
|
|
527
|
+
* `pi` on start. npm happens to be protected by the `npm-shrinkwrap.json` the
|
|
528
|
+
* package publishes; pnpm ignores that file and was broken. Pinning the family
|
|
529
|
+
* explicitly (as npm `overrides`, see {@link piHarnessManifest}) makes the
|
|
530
|
+
* install reproducible whatever the resolver.
|
|
531
|
+
*
|
|
532
|
+
* The set is `pi-coding-agent`'s own `@earendil-works/*` dependencies plus
|
|
533
|
+
* theirs (`npm view @earendil-works/pi-coding-agent@<v> dependencies`,
|
|
534
|
+
* recursively): at 0.80.6 that is pi-ai, pi-agent-core (which depends on pi-ai)
|
|
535
|
+
* and pi-tui. Re-derive it on every {@link PI_HARNESS_VERSION} bump: a newer
|
|
536
|
+
* harness may add a package (0.87 adds `@earendil-works/chord`).
|
|
537
|
+
*/
|
|
538
|
+
export declare const PI_HARNESS_PINNED_DEPENDENCIES: Readonly<Record<string, string>>;
|
|
539
|
+
/**
|
|
540
|
+
* The throwaway `package.json` the setup action installs the harness from: the
|
|
541
|
+
* harness at {@link PI_HARNESS_VERSION} as the only dependency, and every pi
|
|
542
|
+
* package it loads forced to its exact pin through npm `overrides`.
|
|
543
|
+
*
|
|
544
|
+
* A project-local install (not `npm install -g`) because `overrides` only apply
|
|
545
|
+
* to the ROOT project, and a global install makes each package its own root. The
|
|
546
|
+
* same file is used in `registry` and `workspace` mode: pnpm 11 also isolates
|
|
547
|
+
* every global package, so listing the pins next to the harness in
|
|
548
|
+
* `pnpm add -g` would not constrain the harness's own tree either.
|
|
549
|
+
*/
|
|
550
|
+
export declare function piHarnessManifest(): {
|
|
551
|
+
private: true;
|
|
552
|
+
dependencies: Record<string, string>;
|
|
553
|
+
overrides: Record<string, string>;
|
|
554
|
+
};
|
|
463
555
|
/**
|
|
464
556
|
* The version of THIS dorfl package, read at runtime from its own
|
|
465
557
|
* `package.json` (the single source changesets bumps on release). The composite
|
|
@@ -480,14 +572,11 @@ export declare function dorflPackageVersion(): string;
|
|
|
480
572
|
* `uses: ./.github/actions/dorfl-setup`. The advance-loop seed template
|
|
481
573
|
* already references this exact action name + path (`docs/ci/README.md`).
|
|
482
574
|
*
|
|
483
|
-
* The auth step
|
|
484
|
-
* `~/.pi/agent/models.json` inline (the conservative default) AND exports each
|
|
575
|
+
* The auth step writes a generated `~/.pi/agent/models.json` inline AND exports each
|
|
485
576
|
* configured provider's API key from a same-named ACTION INPUT to `$GITHUB_ENV`,
|
|
486
577
|
* so the agent step (`pi`) can resolve the env var `models.json` references; the
|
|
487
578
|
* workflow passes the secrets ONCE via `with:` on the `uses:` line (no
|
|
488
|
-
* per-step / per-capability provider enumeration).
|
|
489
|
-
* `~/.pi/agent/auth.json` from `$PI_AUTH_JSON` + runs the OAuth-refresh script
|
|
490
|
-
* (the sharp edge). Deterministic: the same config produces byte-identical output.
|
|
579
|
+
* per-step / per-capability provider enumeration). Deterministic: the same config produces byte-identical output.
|
|
491
580
|
*/
|
|
492
581
|
export declare function generateSetupAction(config: ResolvedCIConfig,
|
|
493
582
|
/**
|
|
@@ -499,17 +588,39 @@ export declare function generateSetupAction(config: ResolvedCIConfig,
|
|
|
499
588
|
* baseline (the load-bearing absent-⇒-identical contract).
|
|
500
589
|
*/
|
|
501
590
|
projectSetupSteps?: string): string;
|
|
502
|
-
/**
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
*
|
|
591
|
+
/** The local path a workflow step `uses:` for the agent-role setup action. */
|
|
592
|
+
export declare const SETUP_ACTION_USES = "./.github/actions/dorfl-setup";
|
|
593
|
+
/** The local path a workflow step `uses:` for the writer-role setup action. */
|
|
594
|
+
export declare const WRITER_SETUP_ACTION_USES = "./.github/actions/dorfl-setup-writer";
|
|
595
|
+
/**
|
|
596
|
+
* Generate the WRITER-ROLE composite setup action (`dorfl-setup-writer`, spec
|
|
597
|
+
* `ci-agent-job-without-write-token` §9, ADR
|
|
598
|
+
* `ci-agent-job-holds-no-write-token`; task `ci-split-generate-workflows`).
|
|
599
|
+
*
|
|
600
|
+
* The jobs that hold a write token and run no agent (the split item
|
|
601
|
+
* workflow's lock and apply jobs, `reap-merged-branches`, `close-job`, and the
|
|
602
|
+
* read-only `enumerate`) install Node and dorfl ONLY: no harness, no provider
|
|
603
|
+
* key, no `models.json`, no project-setup hook, no install of the project's
|
|
604
|
+
* dependencies, and no Actions cache. In `registry` mode the dorfl install runs
|
|
605
|
+
* from `$RUNNER_TEMP`, outside the checkout, with `--ignore-scripts`, so a
|
|
606
|
+
* repository `.npmrc` cannot redirect the registry and no install script runs.
|
|
607
|
+
*
|
|
608
|
+
* In `workspace` mode (dorfl's own repository) dorfl is built from source
|
|
609
|
+
* (decision 8): the tree of `source-ref` (default the checkout's `HEAD`) is
|
|
610
|
+
* exported with `git archive` into `$RUNNER_TEMP` and built there with
|
|
611
|
+
* `--ignore-scripts`. In merge mode that is code an earlier agent landed on
|
|
612
|
+
* `main`, which is the trust merge mode already implies.
|
|
613
|
+
*
|
|
614
|
+
* It is a SIBLING action rather than a `role` input on `dorfl-setup`: the
|
|
615
|
+
* project-setup hook is an opaque fragment spliced first into `dorfl-setup`
|
|
616
|
+
* (ADR `install-ci-project-provisioning-native-passthrough`), and a composite
|
|
617
|
+
* action cannot skip an opaque block of steps by input. `dorfl-setup` stays the
|
|
618
|
+
* agent role, byte for byte.
|
|
508
619
|
*/
|
|
509
|
-
export declare
|
|
620
|
+
export declare function generateWriterSetupAction(config: ResolvedCIConfig): string;
|
|
510
621
|
/**
|
|
511
|
-
* The setup ARTIFACTS this task generates: the composite setup
|
|
512
|
-
*
|
|
622
|
+
* The setup ARTIFACTS this task generates: the composite setup actions, plus
|
|
623
|
+
* any selected capabilities'
|
|
513
624
|
* workflow files. This task emits NO capability workflow itself (those are the
|
|
514
625
|
* sibling tasks); `capabilities` defaults to none.
|
|
515
626
|
*/
|
|
@@ -534,6 +645,13 @@ export declare function outputBaseName(fake: boolean): string;
|
|
|
534
645
|
* Write the artifacts under `<workDir>/<base>/` (base = `.fake` when `fake`, else
|
|
535
646
|
* `.github`). Returns the repo-relative paths actually written. Pure filesystem
|
|
536
647
|
* I/O — no secrets, no git. Creates parent dirs as needed.
|
|
648
|
+
*
|
|
649
|
+
* PIN PRESERVATION. Before writing a YAML artifact, any `uses:` of an action the
|
|
650
|
+
* repository's EXISTING `.github/<path>` already pins to a full commit SHA keeps
|
|
651
|
+
* that reference and its trailing comment (see {@link preserveExistingPins}),
|
|
652
|
+
* so a Dependabot bump survives regeneration and a pin is never swapped for a
|
|
653
|
+
* tag. The existing file is always read from `.github/`, also in `--fake` mode,
|
|
654
|
+
* so the `.fake/` preview shows what a real run would write.
|
|
537
655
|
*/
|
|
538
656
|
export declare function writeArtifacts(options: {
|
|
539
657
|
workDir: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-ci-core.d.ts","sourceRoot":"","sources":["../src/install-ci-core.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install-ci-core.d.ts","sourceRoot":"","sources":["../src/install-ci-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAWH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAShD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAIa,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;AAErD,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC7B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IACvB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,4CAA4C;IAC5C,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,sFAAsF;IACtF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAG3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAC9C,OAAO,CAET;AAED,+DAA+D;AAC/D,eAAO,MAAM,eAAe,EAAE,cAAqB,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,EAAE,aAA0B,CAAC;AAIhE;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IAC1C,6EAA6E;IAC7E,0BAA0B,EAAE,MAAM,CAAC;IACnC,kEAAkE;IAClE,4BAA4B,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,sEAAsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD;;;;OAIG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,mBAAmB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE;;;;;;;;OAQG;IACH,gBAAgB,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC1D;;;;;;;;OAQG;IACH,gBAAgB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,6BAA6B,CAAC,IAAI,OAAO,CACxC,0BAA0B,GAAG,SAAS,CACtC,CAAC;IACF;;;;;OAKG;IACH,6BAA6B,CAAC,CAC7B,WAAW,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9C;AAED,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAIhD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,EAAE,CAAC;CAC9C;AAWD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEnE;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,IAAI,iBAAiB,EAAE,CAE5D;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAiB9B;AASD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG;IAC5D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAqBA;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAStE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAExD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAGtE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CASzE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAEtE;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC/B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IACjD,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,oFAAoF;IACpF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAoC7B;AAID,gDAAgD;AAChD,qBAAa,aAAc,SAAQ,KAAK;CAAG;AAE3C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAoE/D;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAWpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,CAqBR;AAaD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1E,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,IAAI;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAMA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAwB5C;AAgDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,gBAAgB;AACxB;;;;;;;GAOG;AACH,iBAAiB,CAAC,EAAE,MAAM,GACxB,MAAM,CAiLR;AAED,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,kCAAkC,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,yCAAyC,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAoF1E;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,iBAAiB,EAAO;AACtC;;;;;GAKG;AACH,OAAO,CAAC,EAAE;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAC,GACpC,WAAW,EAAE,CAef;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;CACrB,GAAG,MAAM,EAAE,CAiBX"}
|