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
@@ -306,6 +306,68 @@ export function emptyDiffStopReason(slug) {
306
306
  return (`the agent produced no source change building '${slug}' (empty diff vs the ` +
307
307
  'arbiter main); treating as a no-op/stop — re-scope or re-claim.');
308
308
  }
309
+ /**
310
+ * The provider error text is capped at this many characters in the failure
311
+ * detail: pi records the raw provider body (often a JSON blob), and the detail
312
+ * becomes the needs-attention reason on the lock, which must stay one readable
313
+ * line rather than a pasted payload.
314
+ */
315
+ const MAX_CUT_OFF_ERROR_LENGTH = 300;
316
+ /**
317
+ * The `agent-failed` detail for a run whose FINAL model turn was CUT OFF
318
+ * ({@link CutOffTurn}) and which left no source change (task
319
+ * `a-truncated-agent-turn-routes-as-agent-failed`). Names the stop cause so the
320
+ * operator reads a harness failure, never "the agent found nothing to build".
321
+ * The provider's `errorMessage` (an `error` stop) is appended VERBATIM (bounded)
322
+ * so the shared failure-cause classifier can still recognise an infra signature
323
+ * in it (an overloaded provider reads `transient-infra`).
324
+ */
325
+ export function cutOffTurnFailureDetail(slug, cutOff) {
326
+ const cause = cutOff.cause === 'length'
327
+ ? "stopReason 'length': the turn hit the model's per-turn output-token cap"
328
+ : "stopReason 'error': the provider ended the turn with an error";
329
+ const error = cutOff.errorMessage === undefined
330
+ ? ''
331
+ : ` (${boundErrorMessage(cutOff.errorMessage)})`;
332
+ return (`the agent's final model turn was cut off (${cause}${error}) before it ` +
333
+ `produced any source change building '${slug}'; this is a harness failure, ` +
334
+ 'not a judgement that there is nothing to build. Requeue to retry.');
335
+ }
336
+ function boundErrorMessage(text) {
337
+ const oneLine = text.replace(/\s+/g, ' ').trim();
338
+ return oneLine.length <= MAX_CUT_OFF_ERROR_LENGTH
339
+ ? oneLine
340
+ : `${oneLine.slice(0, MAX_CUT_OFF_ERROR_LENGTH)}…`;
341
+ }
342
+ /**
343
+ * The CUT-OFF-TURN guard in front of the empty-diff STOP backstop (task
344
+ * `a-truncated-agent-turn-routes-as-agent-failed`): returns the `agent-failed`
345
+ * detail when the run's final model turn was cut off ({@link CutOffTurn}), the
346
+ * agent raised NO in-band STOP sentinel, AND the work branch is empty; else
347
+ * `undefined` (the caller proceeds to its usual STOP resolution / gate).
348
+ *
349
+ * Only a NORMAL end of turn may reach the empty-diff backstop: that route reads
350
+ * an empty diff as the agent's deliberate "nothing to build" and surfaces a
351
+ * DISPOSE-defaulted question, which for a truncated turn puts a real, unbuilt
352
+ * task one default answer away from `tasks/cancelled/`. A sentinel still wins
353
+ * (the agent DID report a deliberate STOP), and a non-empty diff still goes to
354
+ * the gate (the gate, not the stop reason, judges built work). Shared by `do`
355
+ * (in-place and remote, hence the CI agent phase) and `run` so every path with
356
+ * the empty-diff backstop applies the same rule.
357
+ */
358
+ export async function resolveCutOffTurnFailure(params) {
359
+ const { cutOffTurn, output, slug, cwd, arbiter, env } = params;
360
+ if (cutOffTurn === undefined) {
361
+ return undefined;
362
+ }
363
+ if (parseStopSentinel(output) !== undefined) {
364
+ return undefined;
365
+ }
366
+ if (!(await isWorkBranchDiffEmpty({ cwd, arbiter, env }))) {
367
+ return undefined;
368
+ }
369
+ return cutOffTurnFailureDetail(slug, cutOffTurn);
370
+ }
309
371
  /**
310
372
  * The DISPOSE-DEFAULTED disposition question the empty-diff bounce path surfaces
311
373
  * as its engine-authored envelope entry (spec resolved decision #2). The engine
@@ -1 +1 @@
1
- {"version":3,"file":"agent-stop.js","sourceRoot":"","sources":["../src/agent-stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-stop.js","sourceRoot":"","sources":["../src/agent-stop.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { type SidecarEntry } from './sidecar.js';
2
1
  import { type IntegrationCoreResult } from './integration-core.js';
3
2
  import type { VerifyConfig } from './verify.js';
4
3
  /**
@@ -43,9 +42,9 @@ import type { VerifyConfig } from './verify.js';
43
42
  * "HONOUR the prior approval + land on a green re-verify" path; opt-in
44
43
  * `strictMergeApproval` (resolved per-repo via the gate-family precedence chain
45
44
  * by the sibling task `strict-merge-approval-gate`, default OFF) RE-SURFACES
46
- * the merge-question instead of landing when the merge-base moved between the
47
- * surfacer's question and this apply. The RED-re-verify refusal is unchanged
48
- * in both modes.
45
+ * the merge-question instead of landing when `main`'s code moved since the
46
+ * question was asked (its recorded `askedAtMain`; see `approvedBaseMoved`).
47
+ * The RED-re-verify refusal is unchanged in both modes.
49
48
  *
50
49
  * House-style boundary: this module is the DETERMINISTIC DISPATCH LAYER. It
51
50
  * does NOT re-implement rebase / verify / integrate (it drives the EXISTING
@@ -56,31 +55,8 @@ import type { VerifyConfig } from './verify.js';
56
55
  * they assert on EXTERNAL behaviour (what lands on `main`, what routes to
57
56
  * needs-attention, that `verify` ran on the rebased tip).
58
57
  */
59
- /** The three deterministic actions a merge-question answer encodes. */
60
- export type MergeActionVerb = 'merge' | 'hold' | 'drop';
61
- /** A detected, answer-driven merge-action keyed off ONE answered `kind: merge` entry. */
62
- export interface DetectedMergeAction {
63
- /** The deterministic verb parsed from the entry's answer text. */
64
- verb: MergeActionVerb;
65
- /** The answered `kind: merge` entry the verb came from. */
66
- entry: SidecarEntry;
67
- }
68
- /**
69
- * Parse the human's plain free-text answer into the deterministic
70
- * {@link MergeActionVerb}. The merge-question surfacer renders
71
- * `merge | hold | drop` in the entry's `default` as a human-readable hint, so
72
- * the human typically types one of those words verbatim. We accept any text
73
- * whose first whole word (case-insensitive) is one of `merge` / `hold` / `drop`
74
- * — this is the same machine-parseable choice shape the surfacer's applied
75
- * answer q1 documents ("a DETERMINISTIC CHOICE shape … the human picks and the
76
- * system parses unambiguously").
77
- *
78
- * Returns `undefined` on ANYTHING else (an empty answer, a typo, a long
79
- * narrative without one of the three words at the start) so the caller can
80
- * route the ambiguity HONESTLY — never default-to-merge on a malformed answer,
81
- * which would invent a land the human did not authorise.
82
- */
83
- export declare function parseMergeAnswer(text: string): MergeActionVerb | undefined;
58
+ export { answeredMergeActionIn, parseMergeAnswer, type DetectedMergeAction, type MergeActionVerb, } from './merge-answer.js';
59
+ import { type DetectedMergeAction } from './merge-answer.js';
84
60
  /**
85
61
  * Detect the `kind: merge` action verb that should drive the next apply run.
86
62
  * The apply rung's pre-decider kind-check; returns `undefined` when there is
@@ -135,8 +111,8 @@ export interface MergeActionInput {
135
111
  * `strictMergeApproval` (resolved per-repo by the sibling task
136
112
  * `strict-merge-approval-gate`; default OFF). OFF ⇒ honour the prior answer
137
113
  * + land on a green re-verify (the cheap default). ON ⇒ re-surface the
138
- * merge-question when the merge-base moved between the surfacer's question
139
- * and this apply (don't land; the apply rung folds this into a re-pause).
114
+ * merge-question when `main`'s code moved since the question was asked
115
+ * (don't land; the apply rung folds this into a re-pause).
140
116
  */
141
117
  strictMergeApproval?: boolean;
142
118
  /** Bounded recovery-rebase retry knob (mirrors the build path). */
@@ -165,9 +141,9 @@ export type MergeActionOutcome =
165
141
  */
166
142
  | 'refused'
167
143
  /**
168
- * `answer=merge` + `strictMergeApproval` ON + the merge-base moved between
169
- * the surfacer's question and this apply: the dispatcher RE-SURFACES the
170
- * merge-question (the apply rung appends a fresh follow-up + re-pauses).
144
+ * `answer=merge` + `strictMergeApproval` ON + `main`'s code moved since the
145
+ * question was asked: the dispatcher RE-SURFACES the merge-question (the
146
+ * apply rung appends a fresh follow-up asked at the new `main` + re-pauses).
171
147
  */
172
148
  | 'restale'
173
149
  /** `answer=hold` ⇒ no land; the apply rung records the answer in body as usual. */
@@ -186,6 +162,12 @@ export interface MergeActionResult {
186
162
  * `already-integrated`, …), so callers can branch on it.
187
163
  */
188
164
  integration?: IntegrationCoreResult;
165
+ /**
166
+ * On `restale`: the arbiter `main` the approval was found stale against. The
167
+ * apply rung records it as the re-surfaced question's `askedAtMain`, so a
168
+ * re-answer while `main` stays put lands (no re-stale livelock).
169
+ */
170
+ main?: string;
189
171
  }
190
172
  /**
191
173
  * The injectable dispatch SEAM. Production wires {@link performMergeAction}
@@ -215,4 +197,64 @@ export type MergeActionHandler = (input: MergeActionInput) => Promise<MergeActio
215
197
  * recorded and a future surfacer / human handles the artifact.)
216
198
  */
217
199
  export declare function performMergeAction(input: MergeActionInput): Promise<MergeActionResult>;
200
+ /**
201
+ * What the CI agent job found for an answered `merge` (spec
202
+ * `ci-agent-job-without-write-token` §3, the `apply, kind: merge` row). Each
203
+ * maps to one handoff intent of the `apply` rung:
204
+ *
205
+ * - `integrate`: the rebased tip passed the fresh-worktree gate; the apply job
206
+ * pushes it leased and lands it (`integrate`, the rebased tip bundled);
207
+ * - `restale`: `strictMergeApproval` is on and `main`'s code moved since the
208
+ * question was asked (`merge-restale`; checked before any checkout);
209
+ * - `needs-attention`: a red gate on the rebased tip (the rebased tip bundled)
210
+ * or a rebase conflict (nothing bundled: the kept branch is untouched);
211
+ * - `already-integrated`: the kept tip is already on `main`; nothing to land
212
+ * (the lock job's `needsAgent: false` covers this case, so here it means the
213
+ * branch landed between the lock job and this one).
214
+ */
215
+ export type MergeLandPreparation = {
216
+ kind: 'integrate';
217
+ repo: string;
218
+ workBranch: string;
219
+ tip: string;
220
+ } | {
221
+ kind: 'restale';
222
+ message: string;
223
+ main: string;
224
+ } | {
225
+ kind: 'needs-attention';
226
+ reason: string;
227
+ questions?: string[];
228
+ /** The rebased (red) tip to publish, when there is one. */
229
+ bundle?: {
230
+ repo: string;
231
+ workBranch: string;
232
+ };
233
+ } | {
234
+ kind: 'already-integrated';
235
+ message: string;
236
+ };
237
+ /** A {@link MergeLandPreparation} and the job worktree it lives in. */
238
+ export interface PreparedMergeLand {
239
+ preparation: MergeLandPreparation;
240
+ /** Remove the job worktree; call it once the handoff (and its bundle) is written. */
241
+ dispose(): void;
242
+ }
243
+ /**
244
+ * The AGENT half of the answered-merge land, for the CI agent job, which holds a
245
+ * read-only token: the SAME optional `strictMergeApproval` re-stale check
246
+ * (before the checkout), checkout ({@link createJob}), rebase and
247
+ * fresh-worktree gate (`prepare` +
248
+ * `verify` run the branch's code) as {@link performMergeAction}, but nothing is
249
+ * written to the arbiter. The continue rebase stays local (decision 7,
250
+ * `localContinue`), and `performIntegration` runs under the phase recorder, so
251
+ * its first write (the land, or the needs-attention route of a red gate) halts
252
+ * it and names what the apply job performs. Only an answered `merge` gets here
253
+ * (`hold` / `drop` need no agent job).
254
+ *
255
+ * The caller writes the handoff from the returned preparation (a bundle reads
256
+ * the job worktree) and then calls `dispose`. Throws when the checkout itself
257
+ * fails (the agent job then fails, and the apply job surfaces the item).
258
+ */
259
+ export declare function prepareMergeLand(answered: MergeActionInput): Promise<PreparedMergeLand>;
218
260
  //# sourceMappingURL=apply-merge-action.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-merge-action.d.ts","sourceRoot":"","sources":["../src/apply-merge-action.ts"],"names":[],"mappings":"AAEA,OAAO,EAKN,KAAK,YAAY,EAEjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEN,KAAK,qBAAqB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IACnC,kEAAkE;IAClE,IAAI,EAAE,eAAe,CAAC;IACtB,2DAA2D;IAC3D,KAAK,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAe1E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACV,mBAAmB,GAAG,SAAS,CAwBjC;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAChC,iDAAiD;IACjD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,mEAAmE;AACnE,MAAM,MAAM,kBAAkB;AAC7B,qFAAqF;AACnF,QAAQ;AACV,yFAAyF;GACvF,oBAAoB;AACtB;;;;;;GAMG;GACD,SAAS;AACX;;;;GAIG;GACD,SAAS;AACX,mFAAmF;GACjF,MAAM;AACR,mFAAmF;GACjF,MAAM,CAAC;AAEV,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAChC,KAAK,EAAE,gBAAgB,KACnB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAmEhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,gBAAgB,GACrB,OAAO,CAAC,iBAAiB,CAAC,CA4L5B"}
1
+ {"version":3,"file":"apply-merge-action.d.ts","sourceRoot":"","sources":["../src/apply-merge-action.ts"],"names":[],"mappings":"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"}