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.
Files changed (418) hide show
  1. package/dist/advance-ci-template.d.ts +17 -16
  2. package/dist/advance-ci-template.d.ts.map +1 -1
  3. package/dist/advance-ci-template.js +42 -53
  4. package/dist/advance-ci-template.js.map +1 -1
  5. package/dist/advance-drivers.d.ts +8 -0
  6. package/dist/advance-drivers.d.ts.map +1 -1
  7. package/dist/advance-drivers.js +28 -4
  8. package/dist/advance-drivers.js.map +1 -1
  9. package/dist/advance-isolated.d.ts.map +1 -1
  10. package/dist/advance-isolated.js +3 -2
  11. package/dist/advance-isolated.js.map +1 -1
  12. package/dist/advance-lifecycle-template.d.ts +41 -40
  13. package/dist/advance-lifecycle-template.d.ts.map +1 -1
  14. package/dist/advance-lifecycle-template.js +309 -489
  15. package/dist/advance-lifecycle-template.js.map +1 -1
  16. package/dist/advance-loop-driver.d.ts.map +1 -1
  17. package/dist/advance-loop-driver.js +3 -2
  18. package/dist/advance-loop-driver.js.map +1 -1
  19. package/dist/advance-treeless-publish.d.ts +31 -0
  20. package/dist/advance-treeless-publish.d.ts.map +1 -1
  21. package/dist/advance-treeless-publish.js +40 -0
  22. package/dist/advance-treeless-publish.js.map +1 -1
  23. package/dist/advance.d.ts +63 -3
  24. package/dist/advance.d.ts.map +1 -1
  25. package/dist/advance.js +80 -12
  26. package/dist/advance.js.map +1 -1
  27. package/dist/advancing-lock.d.ts +9 -0
  28. package/dist/advancing-lock.d.ts.map +1 -1
  29. package/dist/advancing-lock.js +21 -1
  30. package/dist/advancing-lock.js.map +1 -1
  31. package/dist/agent-env.d.ts +61 -0
  32. package/dist/agent-env.d.ts.map +1 -0
  33. package/dist/agent-env.js +144 -0
  34. package/dist/agent-env.js.map +1 -0
  35. package/dist/agent-stop.d.ts +35 -0
  36. package/dist/agent-stop.d.ts.map +1 -1
  37. package/dist/agent-stop.js +62 -0
  38. package/dist/agent-stop.js.map +1 -1
  39. package/dist/apply-merge-action.d.ts +76 -34
  40. package/dist/apply-merge-action.d.ts.map +1 -1
  41. package/dist/apply-merge-action.js +339 -129
  42. package/dist/apply-merge-action.js.map +1 -1
  43. package/dist/apply-stuck-action.js +2 -2
  44. package/dist/apply-stuck-action.js.map +1 -1
  45. package/dist/ci-agent-result.d.ts +151 -0
  46. package/dist/ci-agent-result.d.ts.map +1 -0
  47. package/dist/ci-agent-result.js +314 -0
  48. package/dist/ci-agent-result.js.map +1 -0
  49. package/dist/ci-handoff-apply.d.ts +162 -0
  50. package/dist/ci-handoff-apply.d.ts.map +1 -0
  51. package/dist/ci-handoff-apply.js +497 -0
  52. package/dist/ci-handoff-apply.js.map +1 -0
  53. package/dist/ci-handoff-format.d.ts +369 -0
  54. package/dist/ci-handoff-format.d.ts.map +1 -0
  55. package/dist/ci-handoff-format.js +646 -0
  56. package/dist/ci-handoff-format.js.map +1 -0
  57. package/dist/ci-handoff-lfs.d.ts +146 -0
  58. package/dist/ci-handoff-lfs.d.ts.map +1 -0
  59. package/dist/ci-handoff-lfs.js +397 -0
  60. package/dist/ci-handoff-lfs.js.map +1 -0
  61. package/dist/ci-handoff.d.ts +99 -0
  62. package/dist/ci-handoff.d.ts.map +1 -0
  63. package/dist/ci-handoff.js +277 -0
  64. package/dist/ci-handoff.js.map +1 -0
  65. package/dist/ci-lock-outputs.d.ts +93 -0
  66. package/dist/ci-lock-outputs.d.ts.map +1 -0
  67. package/dist/ci-lock-outputs.js +223 -0
  68. package/dist/ci-lock-outputs.js.map +1 -0
  69. package/dist/ci-phase-build.d.ts +178 -0
  70. package/dist/ci-phase-build.d.ts.map +1 -0
  71. package/dist/ci-phase-build.js +989 -0
  72. package/dist/ci-phase-build.js.map +1 -0
  73. package/dist/ci-phase-driver.d.ts +247 -0
  74. package/dist/ci-phase-driver.d.ts.map +1 -0
  75. package/dist/ci-phase-driver.js +370 -0
  76. package/dist/ci-phase-driver.js.map +1 -0
  77. package/dist/ci-phase-intake.d.ts +172 -0
  78. package/dist/ci-phase-intake.d.ts.map +1 -0
  79. package/dist/ci-phase-intake.js +555 -0
  80. package/dist/ci-phase-intake.js.map +1 -0
  81. package/dist/ci-phase-tasking.d.ts +205 -0
  82. package/dist/ci-phase-tasking.d.ts.map +1 -0
  83. package/dist/ci-phase-tasking.js +906 -0
  84. package/dist/ci-phase-tasking.js.map +1 -0
  85. package/dist/ci-phase-treeless.d.ts +224 -0
  86. package/dist/ci-phase-treeless.d.ts.map +1 -0
  87. package/dist/ci-phase-treeless.js +1482 -0
  88. package/dist/ci-phase-treeless.js.map +1 -0
  89. package/dist/ci-read-token.d.ts +47 -0
  90. package/dist/ci-read-token.d.ts.map +1 -0
  91. package/dist/ci-read-token.js +80 -0
  92. package/dist/ci-read-token.js.map +1 -0
  93. package/dist/cli.d.ts.map +1 -1
  94. package/dist/cli.js +447 -22
  95. package/dist/cli.js.map +1 -1
  96. package/dist/close-job-template.d.ts +10 -1
  97. package/dist/close-job-template.d.ts.map +1 -1
  98. package/dist/close-job-template.js +46 -14
  99. package/dist/close-job-template.js.map +1 -1
  100. package/dist/close-job.d.ts +20 -5
  101. package/dist/close-job.d.ts.map +1 -1
  102. package/dist/close-job.js +65 -12
  103. package/dist/close-job.js.map +1 -1
  104. package/dist/complete.d.ts.map +1 -1
  105. package/dist/complete.js +20 -1
  106. package/dist/complete.js.map +1 -1
  107. package/dist/config.d.ts +41 -44
  108. package/dist/config.d.ts.map +1 -1
  109. package/dist/config.js +2 -4
  110. package/dist/config.js.map +1 -1
  111. package/dist/continue-branch.d.ts +63 -15
  112. package/dist/continue-branch.d.ts.map +1 -1
  113. package/dist/continue-branch.js +75 -8
  114. package/dist/continue-branch.js.map +1 -1
  115. package/dist/crashed-run-save.d.ts +73 -0
  116. package/dist/crashed-run-save.d.ts.map +1 -0
  117. package/dist/crashed-run-save.js +86 -0
  118. package/dist/crashed-run-save.js.map +1 -0
  119. package/dist/cwd-section.d.ts.map +1 -1
  120. package/dist/cwd-section.js +10 -2
  121. package/dist/cwd-section.js.map +1 -1
  122. package/dist/decision-engine.d.ts +10 -0
  123. package/dist/decision-engine.d.ts.map +1 -1
  124. package/dist/decision-engine.js.map +1 -1
  125. package/dist/do-config.d.ts +2 -24
  126. package/dist/do-config.d.ts.map +1 -1
  127. package/dist/do-config.js +1 -33
  128. package/dist/do-config.js.map +1 -1
  129. package/dist/do.d.ts +149 -1
  130. package/dist/do.d.ts.map +1 -1
  131. package/dist/do.js +115 -25
  132. package/dist/do.js.map +1 -1
  133. package/dist/dorfl-item-template.d.ts +98 -0
  134. package/dist/dorfl-item-template.d.ts.map +1 -0
  135. package/dist/dorfl-item-template.js +504 -0
  136. package/dist/dorfl-item-template.js.map +1 -0
  137. package/dist/env-config.d.ts.map +1 -1
  138. package/dist/env-config.js +7 -5
  139. package/dist/env-config.js.map +1 -1
  140. package/dist/frontmatter.d.ts +52 -0
  141. package/dist/frontmatter.d.ts.map +1 -1
  142. package/dist/frontmatter.js +136 -2
  143. package/dist/frontmatter.js.map +1 -1
  144. package/dist/gc.d.ts +13 -0
  145. package/dist/gc.d.ts.map +1 -1
  146. package/dist/gc.js +16 -2
  147. package/dist/gc.js.map +1 -1
  148. package/dist/git.d.ts +18 -1
  149. package/dist/git.d.ts.map +1 -1
  150. package/dist/git.js +70 -5
  151. package/dist/git.js.map +1 -1
  152. package/dist/harness.d.ts +44 -5
  153. package/dist/harness.d.ts.map +1 -1
  154. package/dist/harness.js +24 -1
  155. package/dist/harness.js.map +1 -1
  156. package/dist/index.d.ts +11 -4
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +7 -3
  159. package/dist/index.js.map +1 -1
  160. package/dist/install-ci-action-pins.d.ts +123 -0
  161. package/dist/install-ci-action-pins.d.ts.map +1 -0
  162. package/dist/install-ci-action-pins.js +190 -0
  163. package/dist/install-ci-action-pins.js.map +1 -0
  164. package/dist/install-ci-actions-pr-creation.d.ts +70 -0
  165. package/dist/install-ci-actions-pr-creation.d.ts.map +1 -0
  166. package/dist/install-ci-actions-pr-creation.js +106 -0
  167. package/dist/install-ci-actions-pr-creation.js.map +1 -0
  168. package/dist/install-ci-capabilities/dorfl-item.d.ts +12 -0
  169. package/dist/install-ci-capabilities/dorfl-item.d.ts.map +1 -0
  170. package/dist/install-ci-capabilities/dorfl-item.js +26 -0
  171. package/dist/install-ci-capabilities/dorfl-item.js.map +1 -0
  172. package/dist/install-ci-core.d.ts +155 -37
  173. package/dist/install-ci-core.d.ts.map +1 -1
  174. package/dist/install-ci-core.js +304 -200
  175. package/dist/install-ci-core.js.map +1 -1
  176. package/dist/install-ci-github.d.ts +47 -2
  177. package/dist/install-ci-github.d.ts.map +1 -1
  178. package/dist/install-ci-github.js +113 -1
  179. package/dist/install-ci-github.js.map +1 -1
  180. package/dist/install-ci.d.ts +25 -6
  181. package/dist/install-ci.d.ts.map +1 -1
  182. package/dist/install-ci.js +72 -36
  183. package/dist/install-ci.js.map +1 -1
  184. package/dist/intake-marker.d.ts +6 -1
  185. package/dist/intake-marker.d.ts.map +1 -1
  186. package/dist/intake-marker.js.map +1 -1
  187. package/dist/intake-triage.d.ts.map +1 -1
  188. package/dist/intake-triage.js +6 -2
  189. package/dist/intake-triage.js.map +1 -1
  190. package/dist/intake-trigger-template.d.ts +31 -25
  191. package/dist/intake-trigger-template.d.ts.map +1 -1
  192. package/dist/intake-trigger-template.js +107 -292
  193. package/dist/intake-trigger-template.js.map +1 -1
  194. package/dist/intake.d.ts +186 -4
  195. package/dist/intake.d.ts.map +1 -1
  196. package/dist/intake.js +533 -416
  197. package/dist/intake.js.map +1 -1
  198. package/dist/integration-core.d.ts +154 -1
  199. package/dist/integration-core.d.ts.map +1 -1
  200. package/dist/integration-core.js +759 -486
  201. package/dist/integration-core.js.map +1 -1
  202. package/dist/integrator.d.ts +12 -0
  203. package/dist/integrator.d.ts.map +1 -1
  204. package/dist/integrator.js +21 -0
  205. package/dist/integrator.js.map +1 -1
  206. package/dist/isolation.d.ts +12 -2
  207. package/dist/isolation.d.ts.map +1 -1
  208. package/dist/isolation.js +19 -8
  209. package/dist/isolation.js.map +1 -1
  210. package/dist/item-lock.d.ts +93 -11
  211. package/dist/item-lock.d.ts.map +1 -1
  212. package/dist/item-lock.js +233 -65
  213. package/dist/item-lock.js.map +1 -1
  214. package/dist/land-question-residue.d.ts +58 -0
  215. package/dist/land-question-residue.d.ts.map +1 -0
  216. package/dist/land-question-residue.js +95 -0
  217. package/dist/land-question-residue.js.map +1 -0
  218. package/dist/lifecycle-gather.d.ts +16 -0
  219. package/dist/lifecycle-gather.d.ts.map +1 -1
  220. package/dist/lifecycle-gather.js +54 -6
  221. package/dist/lifecycle-gather.js.map +1 -1
  222. package/dist/merge-answer.d.ts +41 -0
  223. package/dist/merge-answer.d.ts.map +1 -0
  224. package/dist/merge-answer.js +60 -0
  225. package/dist/merge-answer.js.map +1 -0
  226. package/dist/merge-question-surfacer.d.ts +105 -30
  227. package/dist/merge-question-surfacer.d.ts.map +1 -1
  228. package/dist/merge-question-surfacer.js +202 -91
  229. package/dist/merge-question-surfacer.js.map +1 -1
  230. package/dist/merge-question-tick.d.ts +64 -0
  231. package/dist/merge-question-tick.d.ts.map +1 -0
  232. package/dist/merge-question-tick.js +96 -0
  233. package/dist/merge-question-tick.js.map +1 -0
  234. package/dist/mint-adr.d.ts.map +1 -1
  235. package/dist/mint-adr.js +20 -2
  236. package/dist/mint-adr.js.map +1 -1
  237. package/dist/needs-attention.d.ts +72 -2
  238. package/dist/needs-attention.d.ts.map +1 -1
  239. package/dist/needs-attention.js +275 -38
  240. package/dist/needs-attention.js.map +1 -1
  241. package/dist/phase-recorder.d.ts +168 -0
  242. package/dist/phase-recorder.d.ts.map +1 -0
  243. package/dist/phase-recorder.js +218 -0
  244. package/dist/phase-recorder.js.map +1 -0
  245. package/dist/phase.d.ts +94 -0
  246. package/dist/phase.d.ts.map +1 -0
  247. package/dist/phase.js +148 -0
  248. package/dist/phase.js.map +1 -0
  249. package/dist/pi-harness.d.ts.map +1 -1
  250. package/dist/pi-harness.js +19 -6
  251. package/dist/pi-harness.js.map +1 -1
  252. package/dist/prepare.d.ts.map +1 -1
  253. package/dist/prepare.js +4 -0
  254. package/dist/prepare.js.map +1 -1
  255. package/dist/prompt.d.ts +4 -0
  256. package/dist/prompt.d.ts.map +1 -1
  257. package/dist/prompt.js +48 -1
  258. package/dist/prompt.js.map +1 -1
  259. package/dist/protocol/CLAIM-PROTOCOL.md +3 -1
  260. package/dist/protocol/WORK-CONTRACT.md +1 -1
  261. package/dist/reap-branches.d.ts +48 -0
  262. package/dist/reap-branches.d.ts.map +1 -1
  263. package/dist/reap-branches.js +64 -0
  264. package/dist/reap-branches.js.map +1 -1
  265. package/dist/ref-write.d.ts +198 -0
  266. package/dist/ref-write.d.ts.map +1 -0
  267. package/dist/ref-write.js +79 -0
  268. package/dist/ref-write.js.map +1 -0
  269. package/dist/repo-config.js +8 -8
  270. package/dist/repo-config.js.map +1 -1
  271. package/dist/repo-mirror.d.ts +36 -0
  272. package/dist/repo-mirror.d.ts.map +1 -1
  273. package/dist/repo-mirror.js +91 -1
  274. package/dist/repo-mirror.js.map +1 -1
  275. package/dist/review-verdict.d.ts +1 -1
  276. package/dist/review-verdict.js +1 -1
  277. package/dist/run.d.ts +7 -1
  278. package/dist/run.d.ts.map +1 -1
  279. package/dist/run.js +28 -4
  280. package/dist/run.js.map +1 -1
  281. package/dist/scan.d.ts +19 -1
  282. package/dist/scan.d.ts.map +1 -1
  283. package/dist/scan.js +21 -8
  284. package/dist/scan.js.map +1 -1
  285. package/dist/sidecar.d.ts +14 -0
  286. package/dist/sidecar.d.ts.map +1 -1
  287. package/dist/sidecar.js +21 -0
  288. package/dist/sidecar.js.map +1 -1
  289. package/dist/single-job-warning.d.ts +63 -0
  290. package/dist/single-job-warning.d.ts.map +1 -0
  291. package/dist/single-job-warning.js +110 -0
  292. package/dist/single-job-warning.js.map +1 -0
  293. package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +3 -1
  294. package/dist/skills/setup/protocol/WORK-CONTRACT.md +1 -1
  295. package/dist/spec-complete.d.ts +13 -6
  296. package/dist/spec-complete.d.ts.map +1 -1
  297. package/dist/spec-complete.js +23 -11
  298. package/dist/spec-complete.js.map +1 -1
  299. package/dist/start.d.ts.map +1 -1
  300. package/dist/start.js +47 -14
  301. package/dist/start.js.map +1 -1
  302. package/dist/status.d.ts +12 -0
  303. package/dist/status.d.ts.map +1 -1
  304. package/dist/status.js +11 -3
  305. package/dist/status.js.map +1 -1
  306. package/dist/tasking.d.ts +246 -1
  307. package/dist/tasking.d.ts.map +1 -1
  308. package/dist/tasking.js +452 -358
  309. package/dist/tasking.js.map +1 -1
  310. package/dist/triage-persist.d.ts.map +1 -1
  311. package/dist/triage-persist.js +21 -2
  312. package/dist/triage-persist.js.map +1 -1
  313. package/dist/verify-workflow-template.d.ts.map +1 -1
  314. package/dist/verify-workflow-template.js +8 -4
  315. package/dist/verify-workflow-template.js.map +1 -1
  316. package/dist/verify.d.ts.map +1 -1
  317. package/dist/verify.js +4 -0
  318. package/dist/verify.js.map +1 -1
  319. package/dist/watch-session.d.ts +42 -13
  320. package/dist/watch-session.d.ts.map +1 -1
  321. package/dist/watch-session.js +52 -23
  322. package/dist/watch-session.js.map +1 -1
  323. package/dist/work-layout.d.ts +10 -4
  324. package/dist/work-layout.d.ts.map +1 -1
  325. package/dist/work-layout.js +11 -3
  326. package/dist/work-layout.js.map +1 -1
  327. package/dist/workspace.d.ts +65 -4
  328. package/dist/workspace.d.ts.map +1 -1
  329. package/dist/workspace.js +159 -11
  330. package/dist/workspace.js.map +1 -1
  331. package/package.json +1 -1
  332. package/src/advance-ci-template.ts +80 -81
  333. package/src/advance-drivers.ts +45 -6
  334. package/src/advance-isolated.ts +3 -5
  335. package/src/advance-lifecycle-template.ts +375 -538
  336. package/src/advance-loop-driver.ts +3 -5
  337. package/src/advance-treeless-publish.ts +61 -0
  338. package/src/advance.ts +145 -15
  339. package/src/advancing-lock.ts +36 -1
  340. package/src/agent-env.ts +174 -0
  341. package/src/agent-stop.ts +81 -0
  342. package/src/apply-merge-action.ts +401 -154
  343. package/src/apply-stuck-action.ts +2 -2
  344. package/src/ci-agent-result.ts +421 -0
  345. package/src/ci-handoff-apply.ts +737 -0
  346. package/src/ci-handoff-format.ts +926 -0
  347. package/src/ci-handoff-lfs.ts +519 -0
  348. package/src/ci-handoff.ts +392 -0
  349. package/src/ci-lock-outputs.ts +273 -0
  350. package/src/ci-phase-build.ts +1328 -0
  351. package/src/ci-phase-driver.ts +548 -0
  352. package/src/ci-phase-intake.ts +861 -0
  353. package/src/ci-phase-tasking.ts +1255 -0
  354. package/src/ci-phase-treeless.ts +2028 -0
  355. package/src/ci-read-token.ts +90 -0
  356. package/src/cli.ts +591 -29
  357. package/src/close-job-template.ts +52 -15
  358. package/src/close-job.ts +77 -12
  359. package/src/complete.ts +19 -1
  360. package/src/config.ts +43 -48
  361. package/src/continue-branch.ts +121 -16
  362. package/src/crashed-run-save.ts +162 -0
  363. package/src/cwd-section.ts +10 -0
  364. package/src/decision-engine.ts +10 -0
  365. package/src/do-config.ts +2 -57
  366. package/src/do.ts +170 -28
  367. package/src/dorfl-item-template.ts +556 -0
  368. package/src/env-config.ts +7 -5
  369. package/src/frontmatter.ts +155 -2
  370. package/src/gc.ts +27 -2
  371. package/src/git.ts +83 -5
  372. package/src/harness.ts +58 -6
  373. package/src/index.ts +50 -1
  374. package/src/install-ci-action-pins.ts +209 -0
  375. package/src/install-ci-actions-pr-creation.ts +186 -0
  376. package/src/install-ci-capabilities/dorfl-item.ts +33 -0
  377. package/src/install-ci-core.ts +388 -233
  378. package/src/install-ci-github.ts +149 -1
  379. package/src/install-ci.ts +83 -37
  380. package/src/intake-marker.ts +6 -1
  381. package/src/intake-triage.ts +7 -3
  382. package/src/intake-trigger-template.ts +126 -327
  383. package/src/intake.ts +725 -544
  384. package/src/integration-core.ts +975 -523
  385. package/src/integrator.ts +28 -0
  386. package/src/isolation.ts +29 -10
  387. package/src/item-lock.ts +308 -92
  388. package/src/land-question-residue.ts +122 -0
  389. package/src/lifecycle-gather.ts +82 -10
  390. package/src/merge-answer.ts +82 -0
  391. package/src/merge-question-surfacer.ts +320 -112
  392. package/src/merge-question-tick.ts +182 -0
  393. package/src/mint-adr.ts +28 -2
  394. package/src/needs-attention.ts +350 -42
  395. package/src/phase-recorder.ts +350 -0
  396. package/src/phase.ts +177 -0
  397. package/src/pi-harness.ts +25 -5
  398. package/src/prepare.ts +4 -0
  399. package/src/prompt.ts +68 -1
  400. package/src/reap-branches.ts +107 -0
  401. package/src/ref-write.ts +324 -0
  402. package/src/repo-config.ts +8 -8
  403. package/src/repo-mirror.ts +107 -1
  404. package/src/review-verdict.ts +1 -1
  405. package/src/run.ts +47 -6
  406. package/src/scan.ts +37 -7
  407. package/src/sidecar.ts +36 -0
  408. package/src/single-job-warning.ts +135 -0
  409. package/src/spec-complete.ts +36 -14
  410. package/src/start.ts +55 -16
  411. package/src/status.ts +29 -3
  412. package/src/tasking.ts +593 -378
  413. package/src/triage-persist.ts +24 -2
  414. package/src/verify-workflow-template.ts +8 -4
  415. package/src/verify.ts +4 -0
  416. package/src/watch-session.ts +86 -28
  417. package/src/work-layout.ts +11 -3
  418. 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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"}