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,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **The CI handoff record: `handoff.json` schema v1 and its intent table**
|
|
3
|
+
* (spec `ci-agent-job-without-write-token`, ADR
|
|
4
|
+
* `ci-agent-job-holds-no-write-token`).
|
|
5
|
+
*
|
|
6
|
+
* In CI every item runs as three jobs: **lock** (write token, no agent),
|
|
7
|
+
* **agent** (read-only token) and **apply** (write token, no agent). The agent
|
|
8
|
+
* job hands its results to the apply job through ONE artifact per item run (the
|
|
9
|
+
* file I/O is `ci-handoff.ts`). Named "CI handoff" to keep it apart from the
|
|
10
|
+
* requeue "handoff note" (`prompt.ts`), an unrelated human-written body section.
|
|
11
|
+
*
|
|
12
|
+
* `handoff.json` is `{schema: 1, item, intent: {kind}, products}`. `intent` is
|
|
13
|
+
* the closed union of the 15 kinds, one per boundary; `products` holds the
|
|
14
|
+
* bounded fields the agent phase produced (texts, verdict enums, booleans).
|
|
15
|
+
*
|
|
16
|
+
* **The security contract is {@link HANDOFF_INTENT_TABLE}.** For every intent
|
|
17
|
+
* it lists what the apply job recomputes from trusted inputs, the ONLY fields
|
|
18
|
+
* it takes from the record, whether a bundle comes with it, and the tail
|
|
19
|
+
* function the apply job resumes at. A field outside a row's `record` column is
|
|
20
|
+
* REJECTED, never ignored, so a record cannot smuggle a target, a mode or a path
|
|
21
|
+
* the apply job must derive itself. Which intents a run may hand over is bounded
|
|
22
|
+
* by its TRUSTED rung (a lock-job output): a surface run cannot hand over
|
|
23
|
+
* `integrate`. Every limit is a constant here, never read from the artifact.
|
|
24
|
+
*/
|
|
25
|
+
/** The only `schema` value this dorfl reads or writes. */
|
|
26
|
+
export declare const HANDOFF_SCHEMA = 1;
|
|
27
|
+
/**
|
|
28
|
+
* The size limits (spec, "Size limits"), set in code and never read from the
|
|
29
|
+
* artifact. Byte limits are on file sizes; character limits are on JavaScript
|
|
30
|
+
* string length (UTF-16 code units, never fewer than the characters GitHub
|
|
31
|
+
* counts).
|
|
32
|
+
*/
|
|
33
|
+
export declare const HANDOFF_LIMITS: {
|
|
34
|
+
/** Every file of the extracted artifact together. */
|
|
35
|
+
readonly artifactBytes: number;
|
|
36
|
+
/** `work.bundle`. */
|
|
37
|
+
readonly bundleBytes: number;
|
|
38
|
+
/** One blob inside the bundle (enforced by the bundle content validation). */
|
|
39
|
+
readonly blobBytes: number;
|
|
40
|
+
/** Every file under `lfs/` together. */
|
|
41
|
+
readonly lfsBytes: number;
|
|
42
|
+
/** `handoff.json`. */
|
|
43
|
+
readonly handoffJsonBytes: number;
|
|
44
|
+
/** A PR title (the existing {@link PR_TITLE_MAX}). */
|
|
45
|
+
readonly prTitleChars: 72;
|
|
46
|
+
/** A PR body, and every text posted as one comment (under GitHub's 65,536). */
|
|
47
|
+
readonly commentChars: 60000;
|
|
48
|
+
/** Each reason or question (and a surfaced question's context and default). */
|
|
49
|
+
readonly reasonChars: 10000;
|
|
50
|
+
/**
|
|
51
|
+
* A drafted document title (task, spec or ADR `title:`). Not in the spec's
|
|
52
|
+
* list: a single line that becomes frontmatter, so it gets a tight bound.
|
|
53
|
+
*/
|
|
54
|
+
readonly documentTitleChars: 200;
|
|
55
|
+
/**
|
|
56
|
+
* A whole document (a candidate task file, a drafted task/spec/ADR body, the
|
|
57
|
+
* trimmed spec body). Not in the spec's list: the largest spec in this repo
|
|
58
|
+
* is about 52,000 characters, so the comment limit would be too tight. All
|
|
59
|
+
* documents together are still bounded by `handoffJsonBytes`.
|
|
60
|
+
*/
|
|
61
|
+
readonly documentChars: 200000;
|
|
62
|
+
};
|
|
63
|
+
/** The byte limits of {@link HANDOFF_LIMITS} (the ones a test may lower). */
|
|
64
|
+
export type HandoffByteLimits = {
|
|
65
|
+
[K in 'artifactBytes' | 'bundleBytes' | 'blobBytes' | 'lfsBytes' | 'handoffJsonBytes']: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* The byte limits in force: {@link HANDOFF_LIMITS}, unless a test lowered some
|
|
69
|
+
* of them with {@link setHandoffByteLimitsForTest} (so a size-limit test does
|
|
70
|
+
* not need a 200 MB fixture). Nothing read from an artifact reaches this.
|
|
71
|
+
*/
|
|
72
|
+
export declare function handoffByteLimits(): HandoffByteLimits;
|
|
73
|
+
/** Lower some byte limits (tests only); `undefined` restores the production values. */
|
|
74
|
+
export declare function setHandoffByteLimitsForTest(override: Partial<HandoffByteLimits> | undefined): void;
|
|
75
|
+
/** Which rule a rejected handoff broke (machine-stable, for tests and reports). */
|
|
76
|
+
export type HandoffRule = 'location' | 'layout' | 'symlink' | 'size' | 'json' | 'schema' | 'shape' | 'item' | 'kind' | 'kind-for-rung' | 'field' | 'limit' | 'bundle-presence' | 'bundle-format' | 'bundle-refs' | 'name' | 'history' | 'merge-commit' | 'commit-count' | 'protected-path' | 'symlink-target' | 'gitlink' | 'ledger' | 'lfs-pointer' | 'lfs-missing' | 'lfs-mismatch' | 'lfs-extra';
|
|
77
|
+
/** A handoff (or one being written) that breaks one of the rules. */
|
|
78
|
+
export declare class HandoffRejected extends Error {
|
|
79
|
+
readonly rule: HandoffRule;
|
|
80
|
+
constructor(rule: HandoffRule, message: string);
|
|
81
|
+
}
|
|
82
|
+
/** Throw a {@link HandoffRejected}. */
|
|
83
|
+
export declare function rejectHandoff(rule: HandoffRule, message: string): never;
|
|
84
|
+
/**
|
|
85
|
+
* The trusted rung the lock job classified (its `rung` output): the agent
|
|
86
|
+
* rungs of `advance-classify.ts` (`TickRungKind`) plus `intake`. It bounds
|
|
87
|
+
* which intents the run may hand over.
|
|
88
|
+
*/
|
|
89
|
+
export declare const HANDOFF_RUNGS: readonly ["build-task", "task-spec", "surface", "triage-observation", "apply", "intake"];
|
|
90
|
+
export type HandoffRung = (typeof HANDOFF_RUNGS)[number];
|
|
91
|
+
/** The 15 intent kinds (spec, "The intent kinds"). */
|
|
92
|
+
export declare const HANDOFF_INTENT_KINDS: readonly ["integrate", "merge-restale", "needs-attention", "deadline-checkpoint", "stop", "agent-failed", "tasking-land", "tasking-surface", "surface", "triage", "apply-decision", "intake-ask", "intake-bounce", "intake-task", "intake-spec"];
|
|
93
|
+
export type HandoffIntentKind = (typeof HANDOFF_INTENT_KINDS)[number];
|
|
94
|
+
/** The agent-stop kinds a `stop` carries (`agent-stop.ts` `AgentStopKind`). */
|
|
95
|
+
export declare const STOP_KINDS: readonly ["sentinel", "empty-diff"];
|
|
96
|
+
/** The triage gate's dispositions (`keep` is the fall-through to surface). */
|
|
97
|
+
export declare const TRIAGE_DISPOSITIONS: readonly ["keep", "duplicate", "map"];
|
|
98
|
+
/** The agentic apply decision's outcomes (`APPLY_ALLOWED_OUTCOMES`). */
|
|
99
|
+
export declare const APPLY_DECISION_OUTCOMES: readonly ["task", "spec", "adr", "dispose", "resolve", "ask"];
|
|
100
|
+
/** The task-set review verdict of `tasking-land`. */
|
|
101
|
+
export declare const REVIEW_VERDICTS: readonly ["approve", "block"];
|
|
102
|
+
/** `integrate` on the build rung. */
|
|
103
|
+
export interface IntegrateBuildProducts {
|
|
104
|
+
prTitle: string;
|
|
105
|
+
prBody: string;
|
|
106
|
+
reviewProse?: string;
|
|
107
|
+
}
|
|
108
|
+
/** Answered-merge `integrate`, `merge-restale`, `deadline-checkpoint`: nothing. */
|
|
109
|
+
export type NoProducts = Record<string, never>;
|
|
110
|
+
export interface NeedsAttentionProducts {
|
|
111
|
+
reason: string;
|
|
112
|
+
questions?: string[];
|
|
113
|
+
}
|
|
114
|
+
export interface StopProducts {
|
|
115
|
+
reason: string;
|
|
116
|
+
stopKind: (typeof STOP_KINDS)[number];
|
|
117
|
+
}
|
|
118
|
+
export interface AgentFailedProducts {
|
|
119
|
+
failureDetail: string;
|
|
120
|
+
}
|
|
121
|
+
export interface TaskingLandProducts {
|
|
122
|
+
/** Candidate task file contents keyed by safe slug. */
|
|
123
|
+
candidates: Record<string, string>;
|
|
124
|
+
prBody: string;
|
|
125
|
+
reviewVerdict?: (typeof REVIEW_VERDICTS)[number];
|
|
126
|
+
reviewProse?: string;
|
|
127
|
+
/** The trimmed spec body (task `ci-split-tasking`). */
|
|
128
|
+
specBody: string;
|
|
129
|
+
}
|
|
130
|
+
export interface TaskingSurfaceProducts {
|
|
131
|
+
candidates: Record<string, string>;
|
|
132
|
+
reason: string;
|
|
133
|
+
questions?: string[];
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* A surfaced question with the optional context and suggested default the
|
|
137
|
+
* `surface-questions` agent gave it (the sidecar authoring fields, see
|
|
138
|
+
* `SurfaceQuestion` in `surface-gate.ts`). A closed shape: no other key is
|
|
139
|
+
* accepted, and each text is bounded by `reasonChars`.
|
|
140
|
+
*/
|
|
141
|
+
export interface HandoffQuestion {
|
|
142
|
+
question: string;
|
|
143
|
+
context?: string;
|
|
144
|
+
default?: string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* One entry of a surfaced-question list: a {@link HandoffQuestion}, or a bare
|
|
148
|
+
* string for a question with neither context nor default (the plain form every
|
|
149
|
+
* schema-1 writer before the object form wrote, still read).
|
|
150
|
+
*/
|
|
151
|
+
export type HandoffQuestionEntry = string | HandoffQuestion;
|
|
152
|
+
export interface SurfaceProducts {
|
|
153
|
+
questions: HandoffQuestionEntry[];
|
|
154
|
+
}
|
|
155
|
+
export interface TriageProducts {
|
|
156
|
+
disposition: (typeof TRIAGE_DISPOSITIONS)[number];
|
|
157
|
+
/** The existing item (`<task|spec|observation>:<slug>`) for `duplicate` / `map`. */
|
|
158
|
+
target?: string;
|
|
159
|
+
reason?: string;
|
|
160
|
+
/** The surface agent's questions when the rung fell through (`keep`). */
|
|
161
|
+
questions?: HandoffQuestionEntry[];
|
|
162
|
+
}
|
|
163
|
+
export interface ApplyDecisionProducts {
|
|
164
|
+
outcome: (typeof APPLY_DECISION_OUTCOMES)[number];
|
|
165
|
+
/** For `task` / `spec` / `adr`: the minted title, body and slug. */
|
|
166
|
+
title?: string;
|
|
167
|
+
body?: string;
|
|
168
|
+
slug?: string;
|
|
169
|
+
reason?: string;
|
|
170
|
+
/** For `ask`: the follow-up questions, one entry per question (never joined). */
|
|
171
|
+
questions?: string[];
|
|
172
|
+
}
|
|
173
|
+
export interface IntakeAskProducts {
|
|
174
|
+
question: string;
|
|
175
|
+
}
|
|
176
|
+
export interface IntakeBounceProducts {
|
|
177
|
+
bounceText: string;
|
|
178
|
+
}
|
|
179
|
+
export interface IntakeTaskProducts {
|
|
180
|
+
title: string;
|
|
181
|
+
body: string;
|
|
182
|
+
}
|
|
183
|
+
export interface IntakeSpecProducts {
|
|
184
|
+
title: string;
|
|
185
|
+
body: string;
|
|
186
|
+
humanOnly?: boolean;
|
|
187
|
+
needsAnswers?: boolean;
|
|
188
|
+
}
|
|
189
|
+
/** One `{intent, products}` pair; `products` narrows with `intent.kind`. */
|
|
190
|
+
export type HandoffPayload = {
|
|
191
|
+
intent: {
|
|
192
|
+
kind: 'integrate';
|
|
193
|
+
};
|
|
194
|
+
products: IntegrateBuildProducts | NoProducts;
|
|
195
|
+
} | {
|
|
196
|
+
intent: {
|
|
197
|
+
kind: 'merge-restale';
|
|
198
|
+
};
|
|
199
|
+
products: NoProducts;
|
|
200
|
+
} | {
|
|
201
|
+
intent: {
|
|
202
|
+
kind: 'needs-attention';
|
|
203
|
+
};
|
|
204
|
+
products: NeedsAttentionProducts;
|
|
205
|
+
} | {
|
|
206
|
+
intent: {
|
|
207
|
+
kind: 'deadline-checkpoint';
|
|
208
|
+
};
|
|
209
|
+
products: NoProducts;
|
|
210
|
+
} | {
|
|
211
|
+
intent: {
|
|
212
|
+
kind: 'stop';
|
|
213
|
+
};
|
|
214
|
+
products: StopProducts;
|
|
215
|
+
} | {
|
|
216
|
+
intent: {
|
|
217
|
+
kind: 'agent-failed';
|
|
218
|
+
};
|
|
219
|
+
products: AgentFailedProducts;
|
|
220
|
+
} | {
|
|
221
|
+
intent: {
|
|
222
|
+
kind: 'tasking-land';
|
|
223
|
+
};
|
|
224
|
+
products: TaskingLandProducts;
|
|
225
|
+
} | {
|
|
226
|
+
intent: {
|
|
227
|
+
kind: 'tasking-surface';
|
|
228
|
+
};
|
|
229
|
+
products: TaskingSurfaceProducts;
|
|
230
|
+
} | {
|
|
231
|
+
intent: {
|
|
232
|
+
kind: 'surface';
|
|
233
|
+
};
|
|
234
|
+
products: SurfaceProducts;
|
|
235
|
+
} | {
|
|
236
|
+
intent: {
|
|
237
|
+
kind: 'triage';
|
|
238
|
+
};
|
|
239
|
+
products: TriageProducts;
|
|
240
|
+
} | {
|
|
241
|
+
intent: {
|
|
242
|
+
kind: 'apply-decision';
|
|
243
|
+
};
|
|
244
|
+
products: ApplyDecisionProducts;
|
|
245
|
+
} | {
|
|
246
|
+
intent: {
|
|
247
|
+
kind: 'intake-ask';
|
|
248
|
+
};
|
|
249
|
+
products: IntakeAskProducts;
|
|
250
|
+
} | {
|
|
251
|
+
intent: {
|
|
252
|
+
kind: 'intake-bounce';
|
|
253
|
+
};
|
|
254
|
+
products: IntakeBounceProducts;
|
|
255
|
+
} | {
|
|
256
|
+
intent: {
|
|
257
|
+
kind: 'intake-task';
|
|
258
|
+
};
|
|
259
|
+
products: IntakeTaskProducts;
|
|
260
|
+
} | {
|
|
261
|
+
intent: {
|
|
262
|
+
kind: 'intake-spec';
|
|
263
|
+
};
|
|
264
|
+
products: IntakeSpecProducts;
|
|
265
|
+
};
|
|
266
|
+
/** The whole `handoff.json`. */
|
|
267
|
+
export type HandoffRecord = {
|
|
268
|
+
schema: typeof HANDOFF_SCHEMA;
|
|
269
|
+
/** The canonical item id ({@link canonicalHandoffItem}). */
|
|
270
|
+
item: string;
|
|
271
|
+
} & HandoffPayload;
|
|
272
|
+
/** How one field of a row's `record` column is validated. */
|
|
273
|
+
export type FieldSpec = {
|
|
274
|
+
required: boolean;
|
|
275
|
+
} & ({
|
|
276
|
+
type: 'line';
|
|
277
|
+
maxChars: number;
|
|
278
|
+
} | {
|
|
279
|
+
type: 'text';
|
|
280
|
+
maxChars: number;
|
|
281
|
+
} | {
|
|
282
|
+
type: 'text-list';
|
|
283
|
+
maxChars: number;
|
|
284
|
+
} | {
|
|
285
|
+
type: 'question-list';
|
|
286
|
+
maxChars: number;
|
|
287
|
+
} | {
|
|
288
|
+
type: 'documents';
|
|
289
|
+
maxChars: number;
|
|
290
|
+
} | {
|
|
291
|
+
type: 'enum';
|
|
292
|
+
values: readonly string[];
|
|
293
|
+
} | {
|
|
294
|
+
type: 'boolean';
|
|
295
|
+
} | {
|
|
296
|
+
type: 'slug';
|
|
297
|
+
} | {
|
|
298
|
+
type: 'item-ref';
|
|
299
|
+
});
|
|
300
|
+
/** Whether a bundle must, may or must not come with an intent. */
|
|
301
|
+
export type BundleRule = 'required' | 'optional' | 'none';
|
|
302
|
+
/** One row of the intent table: its four columns plus the rungs that produce it. */
|
|
303
|
+
export interface IntentRow {
|
|
304
|
+
/** A stable row name (`integrate` has two rows). */
|
|
305
|
+
row: string;
|
|
306
|
+
kind: HandoffIntentKind;
|
|
307
|
+
/** The trusted rungs that may hand this intent over. */
|
|
308
|
+
rungs: readonly HandoffRung[];
|
|
309
|
+
/** Column 1: what the apply job recomputes from trusted inputs. */
|
|
310
|
+
recomputed: readonly string[];
|
|
311
|
+
/** Column 2: the ONLY fields taken from the record (`products`); `{}` = none. */
|
|
312
|
+
record: Readonly<Record<string, FieldSpec>>;
|
|
313
|
+
/** Cross-field rules of the record, run after every field passed. */
|
|
314
|
+
check?: (products: Record<string, unknown>) => void;
|
|
315
|
+
/** Column 3: what comes from the bundle, and whether one must come. */
|
|
316
|
+
bundle: {
|
|
317
|
+
rule: BundleRule;
|
|
318
|
+
carries: string;
|
|
319
|
+
};
|
|
320
|
+
/** Column 4: the tail function the apply job resumes at. */
|
|
321
|
+
resumesAt: string;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* The intent table, carried from the spec row by row. `integrate` has two rows
|
|
325
|
+
* (build on the `build-task` rung, answered merge on the `apply` rung); the
|
|
326
|
+
* spec's shared `intake-task` / `intake-spec` row is split in two here because
|
|
327
|
+
* only the spec variant carries the two gate booleans.
|
|
328
|
+
*/
|
|
329
|
+
export declare const HANDOFF_INTENT_TABLE: readonly IntentRow[];
|
|
330
|
+
/** The row for an intent handed over by a run on `rung`, or `undefined`. */
|
|
331
|
+
export declare function intentRowFor(rung: HandoffRung, kind: HandoffIntentKind): IntentRow | undefined;
|
|
332
|
+
/**
|
|
333
|
+
* The canonical form of a legal item id: `issue:<N>`, or `task:` / `spec:` /
|
|
334
|
+
* `observation:` plus a safe slug. A bare slug is a task and `obs:` an
|
|
335
|
+
* observation, as everywhere else in dorfl (`resolveSidecarIdentity`). Anything
|
|
336
|
+
* else (an issue title, say) throws {@link HandoffRejected} (`item`).
|
|
337
|
+
*/
|
|
338
|
+
export declare function canonicalHandoffItem(item: string): string;
|
|
339
|
+
/** The artifact-name shape {@link handoffName} produces (and only that). */
|
|
340
|
+
export declare const HANDOFF_NAME_RE: RegExp;
|
|
341
|
+
/**
|
|
342
|
+
* The artifact name of an item run: `dorfl-handoff-<type>-<slug>-attempt-<N>`,
|
|
343
|
+
* derived by the lock job from the item and `github.run_attempt`. The item id's
|
|
344
|
+
* `:` becomes `-` (artifact names refuse `:`), so the name holds only
|
|
345
|
+
* `[A-Za-z0-9._-]`, which every artifact-name rule accepts. The canonical item
|
|
346
|
+
* type is a fixed word without `-`, so two different items never share a name;
|
|
347
|
+
* the attempt keeps "Re-run all jobs" from colliding with attempt 1's artifact
|
|
348
|
+
* (artifacts belong to the run, not the attempt).
|
|
349
|
+
*/
|
|
350
|
+
export declare function handoffName(item: string, runAttempt: number | string): string;
|
|
351
|
+
/** The trusted facts a handoff is judged against (lock-job outputs). */
|
|
352
|
+
export interface HandoffTrust {
|
|
353
|
+
/** The item this run carries. */
|
|
354
|
+
item: string;
|
|
355
|
+
/** The rung the lock job classified. */
|
|
356
|
+
rung: HandoffRung;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Validate a parsed `handoff.json` against the trusted item and rung, and return
|
|
360
|
+
* it typed together with its table row. Rejects an unknown schema, a record for
|
|
361
|
+
* another item, an unknown kind, a kind the rung cannot produce, any field
|
|
362
|
+
* outside the row's `record` column (at every level), a missing required field,
|
|
363
|
+
* a malformed value and any over-limit text.
|
|
364
|
+
*/
|
|
365
|
+
export declare function validateHandoffRecord(value: unknown, trust: HandoffTrust): {
|
|
366
|
+
record: HandoffRecord;
|
|
367
|
+
row: IntentRow;
|
|
368
|
+
};
|
|
369
|
+
//# sourceMappingURL=ci-handoff-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-handoff-format.d.ts","sourceRoot":"","sources":["../src/ci-handoff-format.ts"],"names":[],"mappings":"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"}
|