@joshuafolkken/kit 1.3000.0 → 1.3041.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 (684) hide show
  1. package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
  2. package/.claude/skills/workflow-commands/kickoff.md +6 -0
  3. package/dist/.inputs-verified.json +1 -1
  4. package/dist/commands/adopt.js +12 -12
  5. package/dist/commands/auto-ok-judge-cli.js +18 -14
  6. package/dist/commands/auto-ok-main.js +42 -40
  7. package/dist/commands/backlog-budget-main.js +3 -3
  8. package/dist/commands/backlog-drive-cli.js +276 -188
  9. package/dist/commands/backlog-next-main.js +77 -75
  10. package/dist/commands/backlog-offer-main.js +80 -78
  11. package/dist/commands/backlog-plan-cli.js +96 -97
  12. package/dist/commands/backlog-triage-cli.js +94 -92
  13. package/dist/commands/backlogrun-cli.js +212 -206
  14. package/dist/commands/behavior-cli.js +12 -13
  15. package/dist/commands/bump-version-main.js +2 -2
  16. package/dist/commands/bytes-command.js +61 -22
  17. package/dist/commands/check-related.js +61 -60
  18. package/dist/commands/{chunk-X7PN54LZ.js → chunk-22DVQCP6.js} +16 -6
  19. package/dist/commands/{chunk-7GHOFHUS.js → chunk-24ZDAWML.js} +3 -3
  20. package/dist/commands/{chunk-HBNB3TLG.js → chunk-2BB5ZR2F.js} +13 -7
  21. package/dist/commands/{chunk-F22G3VDB.js → chunk-2BC33QPY.js} +1 -1
  22. package/dist/commands/{chunk-72EW7AVI.js → chunk-2BJJUTZA.js} +2 -2
  23. package/dist/commands/{chunk-XDQOWUVT.js → chunk-2CXT6MBR.js} +4 -4
  24. package/dist/commands/{chunk-TVJE67O2.js → chunk-2EZTYLO4.js} +6 -6
  25. package/dist/commands/{chunk-JLYW7CP6.js → chunk-2PHOLX62.js} +1 -1
  26. package/dist/commands/{chunk-6EU5ZCDP.js → chunk-2QM72JCJ.js} +23 -87
  27. package/dist/commands/{chunk-EFHSCUFN.js → chunk-2VFPUPSG.js} +2 -2
  28. package/dist/commands/{chunk-ATRMETHT.js → chunk-2XAH3MHV.js} +1 -1
  29. package/dist/commands/{chunk-T2E724HN.js → chunk-34JJYCIY.js} +2 -2
  30. package/dist/commands/{chunk-REMKUFAC.js → chunk-34KZDKQJ.js} +1 -1
  31. package/dist/commands/{chunk-GK2KY4MO.js → chunk-352KLSFX.js} +3 -3
  32. package/dist/commands/{chunk-7S6VRZOH.js → chunk-3AEDZZNL.js} +5 -5
  33. package/dist/commands/{chunk-KVJDDECB.js → chunk-3B2HEFNO.js} +2 -2
  34. package/dist/commands/{chunk-HZBTXKT2.js → chunk-3Z425MM3.js} +2 -2
  35. package/dist/commands/{chunk-J3G2R64I.js → chunk-3ZOX4G4U.js} +3 -3
  36. package/dist/commands/{chunk-LRS2OS5J.js → chunk-452HWOJ7.js} +2 -2
  37. package/dist/commands/{chunk-HRT4KWP4.js → chunk-475EFIJV.js} +1 -1
  38. package/dist/commands/{chunk-4HBVHYNL.js → chunk-47UZB54M.js} +3 -3
  39. package/dist/commands/{chunk-H4LYG37R.js → chunk-4DN4XVPL.js} +6 -6
  40. package/dist/commands/{chunk-TMLNI3YW.js → chunk-4HERA2GY.js} +1 -1
  41. package/dist/commands/{chunk-W6V4DWC5.js → chunk-4JI35CVO.js} +1 -1
  42. package/dist/commands/{chunk-YT342DRV.js → chunk-4L4LNWZ7.js} +2 -2
  43. package/dist/commands/{chunk-ZZAH3YQP.js → chunk-4N32QKJZ.js} +6 -6
  44. package/dist/commands/{chunk-GDUK5YPO.js → chunk-4NRSFLG7.js} +12 -12
  45. package/dist/commands/{chunk-O5QZ2S6X.js → chunk-4OKRPAUT.js} +4 -4
  46. package/dist/commands/{chunk-QDFDB4CF.js → chunk-4Q64PG46.js} +13 -13
  47. package/dist/commands/{chunk-HO52D6JY.js → chunk-4UDTQVDD.js} +14 -14
  48. package/dist/commands/{chunk-HPVLI26Z.js → chunk-4WR2LEZL.js} +6 -6
  49. package/dist/commands/{chunk-DP7WIGQ4.js → chunk-4ZJOC6OK.js} +4 -4
  50. package/dist/commands/{chunk-WTRDWEUQ.js → chunk-4ZQM4I7R.js} +12 -12
  51. package/dist/commands/{chunk-OTZJXU2R.js → chunk-54X37JEJ.js} +8 -8
  52. package/dist/commands/{chunk-A5V7EWIX.js → chunk-56KW5EOK.js} +2 -2
  53. package/dist/commands/chunk-5CG3XU3O.js +74 -0
  54. package/dist/commands/{chunk-FC33R5UN.js → chunk-5ESZLHDZ.js} +13 -15
  55. package/dist/commands/{chunk-OVA7STGP.js → chunk-5FBRMARM.js} +9 -9
  56. package/dist/commands/{chunk-SK2LJBFS.js → chunk-5PCK53WP.js} +3 -3
  57. package/dist/commands/{chunk-6NV2F7QH.js → chunk-5RG4S66L.js} +1 -1
  58. package/dist/commands/{chunk-JOARHU3M.js → chunk-5UJGACVN.js} +1 -1
  59. package/dist/commands/{chunk-NKOET4FB.js → chunk-5Y7B7FDL.js} +2 -2
  60. package/dist/commands/{chunk-XMBRXCIE.js → chunk-5Z6E5ZUV.js} +4 -4
  61. package/dist/commands/{chunk-RZ4OKKPM.js → chunk-5ZNUH4LV.js} +2 -2
  62. package/dist/commands/{chunk-7CHCZBNF.js → chunk-6CFHLMKM.js} +4 -4
  63. package/dist/commands/{chunk-TXXYC7EV.js → chunk-6DDK5XWK.js} +1 -1
  64. package/dist/commands/{chunk-2TQXCH2K.js → chunk-6GQX752S.js} +3 -3
  65. package/dist/commands/{chunk-RY6ZDHKB.js → chunk-6MAZ55GF.js} +107 -84
  66. package/dist/commands/{chunk-SNFLV7VV.js → chunk-6RUWU2SB.js} +2 -2
  67. package/dist/commands/{chunk-D4SZK7H2.js → chunk-6TIVDEKG.js} +2 -2
  68. package/dist/commands/{chunk-RIQ75QWR.js → chunk-6UCWAFQY.js} +55 -43
  69. package/dist/commands/{chunk-4D5KWMFL.js → chunk-6YURRFRU.js} +19 -19
  70. package/dist/commands/{chunk-7MOZEEFJ.js → chunk-6YVURZAJ.js} +1 -1
  71. package/dist/commands/{chunk-73JOEKIC.js → chunk-6Z4YZG7P.js} +5 -5
  72. package/dist/commands/{chunk-NJ53AWJU.js → chunk-77BIN247.js} +9 -9
  73. package/dist/commands/{chunk-MZHOPRI6.js → chunk-7ABHNNY3.js} +7 -7
  74. package/dist/commands/{chunk-6WTVAL4D.js → chunk-7C7FOKJK.js} +1 -1
  75. package/dist/commands/{chunk-KVSSLDA3.js → chunk-7HAGC6SW.js} +5 -5
  76. package/dist/commands/{chunk-IG22Y5MA.js → chunk-7KKUFLH5.js} +1 -1
  77. package/dist/commands/{chunk-ZQ3CKRMP.js → chunk-7MJYLUF4.js} +2 -2
  78. package/dist/commands/{chunk-6UGFS3EU.js → chunk-7NHZCI5Y.js} +11 -11
  79. package/dist/commands/{chunk-FB3D7CX5.js → chunk-7OQ56DVW.js} +5 -7
  80. package/dist/commands/{chunk-EK327QOS.js → chunk-7VWPGTZO.js} +10 -10
  81. package/dist/commands/{chunk-WSOF74K4.js → chunk-7YZXS3AK.js} +3 -3
  82. package/dist/commands/{chunk-N6TYL3B2.js → chunk-AAUDI7WJ.js} +2 -2
  83. package/dist/commands/{chunk-3GF52L5F.js → chunk-AC26ZUG5.js} +12 -24
  84. package/dist/commands/{chunk-EK2Y6B4X.js → chunk-ACZ52JPI.js} +7 -7
  85. package/dist/commands/{chunk-VD72V5VX.js → chunk-AJ65WNJB.js} +4 -4
  86. package/dist/commands/{chunk-MYWRGF5A.js → chunk-AK7SEO4Y.js} +2 -2
  87. package/dist/commands/{chunk-IBEKFLWG.js → chunk-ALDAS2WG.js} +9 -9
  88. package/dist/commands/{chunk-W32DIQEP.js → chunk-ARFBIJFS.js} +1 -1
  89. package/dist/commands/{chunk-F3WBEEYC.js → chunk-AVVMDVGO.js} +5 -5
  90. package/dist/commands/chunk-AXXEMVRJ.js +23 -0
  91. package/dist/commands/{chunk-GIGKMIPQ.js → chunk-B3M5WSGN.js} +1 -1
  92. package/dist/commands/{chunk-4Z5723GA.js → chunk-B7ZNIEDV.js} +5 -4
  93. package/dist/commands/{chunk-B3XFOHDX.js → chunk-BCUDQWYK.js} +10 -4
  94. package/dist/commands/{chunk-PR3JCPP7.js → chunk-BMKWSWWE.js} +1 -1
  95. package/dist/commands/{chunk-RZJAUVMI.js → chunk-BMM4RHCG.js} +2 -2
  96. package/dist/commands/{chunk-LAKVPOJQ.js → chunk-BMTYUJNT.js} +2 -2
  97. package/dist/commands/{chunk-DAJCUSPG.js → chunk-BRHPRDDV.js} +3 -3
  98. package/dist/commands/{chunk-UZAU6UI6.js → chunk-BRUBX64M.js} +2 -2
  99. package/dist/commands/{chunk-BFLFPKQQ.js → chunk-BTZJDHQT.js} +4 -4
  100. package/dist/commands/{chunk-AI5K4QJO.js → chunk-BYFC6MD2.js} +1 -1
  101. package/dist/commands/{chunk-JGTLNFFE.js → chunk-BYGJ3BCJ.js} +10 -10
  102. package/dist/commands/{chunk-5HWZFL4D.js → chunk-C54QXJD6.js} +51 -18
  103. package/dist/commands/{chunk-LMS6N6GE.js → chunk-CBAKBWSZ.js} +7 -7
  104. package/dist/commands/{chunk-7EAMUVIO.js → chunk-CFHRNTE5.js} +1 -1
  105. package/dist/commands/{chunk-UIWAMLQH.js → chunk-CGYDIYHD.js} +2 -2
  106. package/dist/commands/{chunk-4QYW2IL7.js → chunk-CHKYPF5O.js} +1 -1
  107. package/dist/commands/{chunk-5HCPSV45.js → chunk-CJBW6BWG.js} +8 -8
  108. package/dist/commands/chunk-CKUKK7JG.js +252 -0
  109. package/dist/commands/{chunk-4PES3BAA.js → chunk-CMHGDCGN.js} +3 -3
  110. package/dist/commands/{chunk-F6OWP2AY.js → chunk-CNGTHSUS.js} +22 -22
  111. package/dist/commands/{chunk-B2EA2HCY.js → chunk-COGKULQH.js} +4 -4
  112. package/dist/commands/{chunk-S7XWXG4M.js → chunk-CP2J4RV2.js} +175 -81
  113. package/dist/commands/{chunk-YGDNUTTI.js → chunk-CQUZ6TNQ.js} +2 -2
  114. package/dist/commands/chunk-CQZI7RIK.js +72 -0
  115. package/dist/commands/chunk-CVJHQOI3.js +153 -0
  116. package/dist/commands/{chunk-2MJ4OCDL.js → chunk-CWCKCZS6.js} +1 -1
  117. package/dist/commands/chunk-D5OHVIPM.js +17 -0
  118. package/dist/commands/{chunk-TPKFVVJQ.js → chunk-D6D6WQR6.js} +2 -2
  119. package/dist/commands/{chunk-5PAEXYIY.js → chunk-D7JRJI44.js} +69 -6
  120. package/dist/commands/{chunk-LOSOLCCW.js → chunk-D7OAU32Z.js} +1 -1
  121. package/dist/commands/{chunk-VZHC2I3T.js → chunk-DAAX7XDS.js} +8 -8
  122. package/dist/commands/{chunk-OHVAEJSM.js → chunk-DEZF7QZZ.js} +5 -5
  123. package/dist/commands/{chunk-CA6F5OXK.js → chunk-DYZOOWVW.js} +124 -21
  124. package/dist/commands/{chunk-TKGBF75Y.js → chunk-EDKOSZ3K.js} +5 -5
  125. package/dist/commands/{chunk-YPNTORQD.js → chunk-EFDVE5P5.js} +1 -1
  126. package/dist/commands/{chunk-EH3LVYOX.js → chunk-EGIHAEMT.js} +1 -1
  127. package/dist/commands/{chunk-7P4X4TQL.js → chunk-EKLU6QR7.js} +4 -4
  128. package/dist/commands/{chunk-ILQZFUDC.js → chunk-ELY76WAR.js} +2 -2
  129. package/dist/commands/{chunk-2VLHFILE.js → chunk-EM3HAZF6.js} +2 -2
  130. package/dist/commands/{chunk-F2HFWLQR.js → chunk-EMTZAGT5.js} +20 -1
  131. package/dist/commands/{chunk-GA4VIFHD.js → chunk-ERG4QRNG.js} +2 -2
  132. package/dist/commands/{chunk-ICEMFE2V.js → chunk-EUGNQCYK.js} +1 -1
  133. package/dist/commands/{chunk-3HU3LPIF.js → chunk-EXDFKKMH.js} +2 -2
  134. package/dist/commands/{chunk-ISPBJVXM.js → chunk-EXWB34R2.js} +7 -7
  135. package/dist/commands/{chunk-FNOSSXLG.js → chunk-EYMPBHDN.js} +2 -2
  136. package/dist/commands/{chunk-7V5UVKFG.js → chunk-EZ7IPKIH.js} +2 -2
  137. package/dist/commands/{chunk-KQWSENCT.js → chunk-F6IQHZYY.js} +3 -3
  138. package/dist/commands/{chunk-7ZECP3J6.js → chunk-FDS65XOJ.js} +5 -5
  139. package/dist/commands/{chunk-KXRFGPZD.js → chunk-FGG7V473.js} +21 -5
  140. package/dist/commands/{chunk-PZ6VWHOO.js → chunk-FHFWNNUC.js} +1 -1
  141. package/dist/commands/{chunk-XBRD2BDL.js → chunk-FJX7AENO.js} +2 -2
  142. package/dist/commands/{chunk-M42SLJCD.js → chunk-FKZ5E4JD.js} +4 -4
  143. package/dist/commands/{chunk-F2J6DGDM.js → chunk-FMZWRDKH.js} +8 -8
  144. package/dist/commands/{chunk-DSBK66US.js → chunk-FOKCRIAN.js} +10 -10
  145. package/dist/commands/{chunk-OI7KM4K3.js → chunk-FQGWO2ZH.js} +2 -2
  146. package/dist/commands/{chunk-2IESYBZH.js → chunk-FURNDIT3.js} +3 -3
  147. package/dist/commands/chunk-FVDQNMP6.js +93 -0
  148. package/dist/commands/{chunk-PZU6FZO6.js → chunk-FWU3H4TX.js} +1 -1
  149. package/dist/commands/{chunk-RYZ3RQRH.js → chunk-G3HBYHFA.js} +1 -1
  150. package/dist/commands/{chunk-HCA5QG2U.js → chunk-G4E4M2P4.js} +2 -2
  151. package/dist/commands/{chunk-VJLZ3IQQ.js → chunk-G5KSL2Q2.js} +1 -1
  152. package/dist/commands/{chunk-Y5ZW3KN5.js → chunk-G6XC7V6Y.js} +2 -2
  153. package/dist/commands/{chunk-73EBNBUW.js → chunk-GCPP5XIG.js} +1 -1
  154. package/dist/commands/{chunk-Q3463XNL.js → chunk-GITT5A5A.js} +3 -3
  155. package/dist/commands/{chunk-T2IO4LEB.js → chunk-GLC47H7I.js} +10 -10
  156. package/dist/commands/{chunk-GA6E4VGO.js → chunk-GUR54ELE.js} +1 -1
  157. package/dist/commands/{chunk-7IT23HIR.js → chunk-GY4DMCKS.js} +2 -2
  158. package/dist/commands/{chunk-PZ4ITSLG.js → chunk-H6JQRHDC.js} +3 -3
  159. package/dist/commands/{chunk-ZHZSZNE2.js → chunk-HATKF6VX.js} +2 -2
  160. package/dist/commands/{chunk-ELWNRE6E.js → chunk-HH3CVIFU.js} +5 -5
  161. package/dist/commands/{chunk-7GMTJDO2.js → chunk-HHMMGDMP.js} +6 -6
  162. package/dist/commands/{chunk-VD5674LW.js → chunk-HI5WPM6C.js} +2 -2
  163. package/dist/commands/{chunk-JUUBDYFZ.js → chunk-HQSWPRUF.js} +4 -4
  164. package/dist/commands/{chunk-ZAJD6T6E.js → chunk-HVCQYZVD.js} +2 -2
  165. package/dist/commands/chunk-HWEZRNPL.js +66 -0
  166. package/dist/commands/{chunk-J6GIVMXI.js → chunk-HX3FFIO5.js} +18 -3
  167. package/dist/commands/{chunk-GU5ML3Y3.js → chunk-HXDTA5VU.js} +13 -68
  168. package/dist/commands/{chunk-BNXE3NVB.js → chunk-I2KCGKJI.js} +1 -1
  169. package/dist/commands/{chunk-LC7SBONO.js → chunk-IAD4WLLI.js} +1 -1
  170. package/dist/commands/{chunk-WWC5L3AO.js → chunk-IB5TT73I.js} +2 -2
  171. package/dist/commands/{chunk-HOSZITJM.js → chunk-IBAYXCMU.js} +2 -2
  172. package/dist/commands/{chunk-UTBVTCQN.js → chunk-IF3EIFK4.js} +267 -153
  173. package/dist/commands/chunk-IGDJNXX2.js +49 -0
  174. package/dist/commands/{chunk-OJ4LGBVD.js → chunk-ILIITIMQ.js} +3 -3
  175. package/dist/commands/{chunk-CUR2WNYB.js → chunk-IRGDMSTI.js} +3 -3
  176. package/dist/commands/{chunk-PZTWQYRI.js → chunk-IYJEBWW5.js} +3 -3
  177. package/dist/commands/{chunk-A3D2XHOJ.js → chunk-J22PSIXR.js} +40 -9
  178. package/dist/commands/{chunk-O27H6NN6.js → chunk-J66YBAAM.js} +3 -5
  179. package/dist/commands/{chunk-P6RGQXHI.js → chunk-J6WKZRV2.js} +2 -2
  180. package/dist/commands/{chunk-NFEBQED3.js → chunk-J7IO3AYH.js} +2 -2
  181. package/dist/commands/{chunk-T57W3UWK.js → chunk-JAKC2BHX.js} +1 -1
  182. package/dist/commands/{chunk-3EO2XN3A.js → chunk-JCAQ7B6J.js} +4 -4
  183. package/dist/commands/{chunk-QQZOQ7AM.js → chunk-JFLFGLE4.js} +1 -1
  184. package/dist/commands/{chunk-ZDSDPKCD.js → chunk-JIGBNCDR.js} +1 -1
  185. package/dist/commands/{chunk-Q5N2J2UF.js → chunk-JJHWTFWQ.js} +5 -7
  186. package/dist/commands/{chunk-EI6JG5DF.js → chunk-JKOGWGQM.js} +1 -1
  187. package/dist/commands/{chunk-RK4HE5NW.js → chunk-JM6EVOFN.js} +4 -4
  188. package/dist/commands/{chunk-EBNIX2TC.js → chunk-JV24VP2O.js} +1 -1
  189. package/dist/commands/{chunk-BCK5LW4F.js → chunk-JVKXJ763.js} +3 -3
  190. package/dist/commands/{chunk-D5TAR6TV.js → chunk-JZHY7D6D.js} +1 -1
  191. package/dist/commands/{chunk-CRNPPKP2.js → chunk-JZK33TA5.js} +1 -1
  192. package/dist/commands/{chunk-UOAG2XQT.js → chunk-K275REYP.js} +3 -3
  193. package/dist/commands/{chunk-HESMKHEB.js → chunk-K4G3HOKS.js} +2 -2
  194. package/dist/commands/{chunk-L6XN3EXI.js → chunk-K64EIHD2.js} +1 -1
  195. package/dist/commands/{chunk-RINVPTA2.js → chunk-KCFOP5RI.js} +28 -28
  196. package/dist/commands/{chunk-O26Y2FOJ.js → chunk-KGE4AS2Y.js} +1 -1
  197. package/dist/commands/{chunk-EWA72KO7.js → chunk-KK2SL42W.js} +2 -2
  198. package/dist/commands/{chunk-MMXZKLDU.js → chunk-KK7TEL5G.js} +10 -4
  199. package/dist/commands/{chunk-UEURNXE5.js → chunk-KKIMVXAP.js} +2 -2
  200. package/dist/commands/{chunk-MAGJFH5T.js → chunk-KODXWMBX.js} +6 -6
  201. package/dist/commands/{chunk-D4HNS43Q.js → chunk-KPSKWTOS.js} +17 -17
  202. package/dist/commands/{chunk-VFJYOAOQ.js → chunk-KTV2HNWB.js} +2 -2
  203. package/dist/commands/{chunk-OWR2TCOY.js → chunk-KWYQR5MK.js} +5 -5
  204. package/dist/commands/{chunk-FNQW6NY7.js → chunk-KXK2A2HB.js} +6 -2
  205. package/dist/commands/{chunk-O5FVBIRI.js → chunk-KZ5BBBMO.js} +5 -5
  206. package/dist/commands/{chunk-JUJFIATR.js → chunk-KZ7HD37E.js} +6 -6
  207. package/dist/commands/{chunk-2YCKPX3A.js → chunk-KZZWPUJW.js} +1 -1
  208. package/dist/commands/{chunk-MYNM3YMR.js → chunk-L7DAL54N.js} +3 -3
  209. package/dist/commands/{chunk-NOXLKIPR.js → chunk-LAR76BFA.js} +1 -1
  210. package/dist/commands/{chunk-ZA3W73PF.js → chunk-LB557AHJ.js} +3 -3
  211. package/dist/commands/{chunk-LYEKT3IN.js → chunk-LEB2VP7F.js} +1 -1
  212. package/dist/commands/{chunk-WQJ7O3C3.js → chunk-LJXKVLYI.js} +1 -1
  213. package/dist/commands/{chunk-CHX4QTP4.js → chunk-LJZERYLG.js} +1 -1
  214. package/dist/commands/{chunk-PF22VUWB.js → chunk-LOOFYHUM.js} +76 -26
  215. package/dist/commands/{chunk-HIPO6HUG.js → chunk-LPSULLNK.js} +1 -1
  216. package/dist/commands/{chunk-G47ZNQVG.js → chunk-LR22UK5W.js} +1 -1
  217. package/dist/commands/{chunk-SV4FHQE7.js → chunk-LT7QSHR4.js} +14 -14
  218. package/dist/commands/{chunk-HIB5G2X6.js → chunk-LUXWDMKI.js} +7 -7
  219. package/dist/commands/{chunk-XH6BGVVP.js → chunk-LX7TIEMI.js} +9 -36
  220. package/dist/commands/{chunk-OGNTJ5JB.js → chunk-LYO6TX5L.js} +1 -1
  221. package/dist/commands/{chunk-JLREFWJ4.js → chunk-LZ5QXE5N.js} +6 -6
  222. package/dist/commands/{chunk-5WIZR5SC.js → chunk-M4UV3BEV.js} +11 -11
  223. package/dist/commands/{chunk-LNBUIOK6.js → chunk-M6JDU5EK.js} +4 -4
  224. package/dist/commands/{chunk-VZSJCFRT.js → chunk-MFBNNTBM.js} +4 -4
  225. package/dist/commands/{chunk-KHWTJ4F7.js → chunk-MI2OS6TL.js} +3 -3
  226. package/dist/commands/{chunk-VZCQZFPH.js → chunk-MLW4S35K.js} +19 -8
  227. package/dist/commands/{chunk-RIUPRMLW.js → chunk-MN425CU6.js} +1 -1
  228. package/dist/commands/{chunk-7W3D3WRW.js → chunk-MOIOSCZM.js} +2 -2
  229. package/dist/commands/{chunk-3BNNMJOT.js → chunk-MRORPFSO.js} +20 -320
  230. package/dist/commands/{chunk-LA5WTOAM.js → chunk-MUGTOJUL.js} +12 -12
  231. package/dist/commands/{chunk-L6LU2633.js → chunk-MVHPRYHE.js} +1 -1
  232. package/dist/commands/{chunk-EKCKCX5S.js → chunk-MWO6FOSZ.js} +123 -21
  233. package/dist/commands/{chunk-AVUGMOHZ.js → chunk-N7QTMTST.js} +2 -2
  234. package/dist/commands/{chunk-LMSS4ARB.js → chunk-NDBX7LSS.js} +1 -1
  235. package/dist/commands/{chunk-BEE7OAQ5.js → chunk-NDWZTWXV.js} +21 -2
  236. package/dist/commands/{chunk-6TESOL3L.js → chunk-NEGJ77RV.js} +7 -7
  237. package/dist/commands/{chunk-LCEJXF7A.js → chunk-NEGRE5VW.js} +4 -4
  238. package/dist/commands/{chunk-IXX4SXIP.js → chunk-NFPD2P3V.js} +1 -1
  239. package/dist/commands/chunk-NHIW7JE6.js +335 -0
  240. package/dist/commands/{chunk-CJSFC5YI.js → chunk-NILSN7A4.js} +7 -7
  241. package/dist/commands/{chunk-W4J6YTFE.js → chunk-NOLFSPOB.js} +2 -2
  242. package/dist/commands/chunk-NT67QTZO.js +65 -0
  243. package/dist/commands/{chunk-NJT5L6IC.js → chunk-NU7W6QGT.js} +33 -4
  244. package/dist/commands/chunk-NUR4FQHM.js +21 -0
  245. package/dist/commands/{chunk-OKKQI4ZG.js → chunk-OAAVY2JK.js} +1 -1
  246. package/dist/commands/chunk-OF4BY4N7.js +32 -0
  247. package/dist/commands/{chunk-W47I2KDY.js → chunk-OGS2DK7I.js} +3 -3
  248. package/dist/commands/{chunk-MS6Q3Z7V.js → chunk-OIPV3PWW.js} +6 -6
  249. package/dist/commands/{chunk-T33QDAWD.js → chunk-OIX2363L.js} +1 -1
  250. package/dist/commands/{chunk-GPMSYXYO.js → chunk-OJ65BZBV.js} +283 -15
  251. package/dist/commands/{chunk-34LAULSC.js → chunk-OKZWEVR4.js} +3 -3
  252. package/dist/commands/{chunk-2CXAVVST.js → chunk-OL6IF4JC.js} +1 -1
  253. package/dist/commands/{chunk-6JVNRY5A.js → chunk-OMPRILFH.js} +1 -1
  254. package/dist/commands/{chunk-VGHSZLYQ.js → chunk-OOWGH2RG.js} +1 -1
  255. package/dist/commands/{chunk-ERGZPWKP.js → chunk-OP2RFVLS.js} +1 -1
  256. package/dist/commands/{chunk-UU6GCJGM.js → chunk-ORKVN2LO.js} +2 -2
  257. package/dist/commands/{chunk-RHII5XI6.js → chunk-OSBWXZJ4.js} +24 -24
  258. package/dist/commands/{chunk-D3SHCUBC.js → chunk-OVWPZDWP.js} +2 -2
  259. package/dist/commands/{chunk-Z4HYBFZD.js → chunk-OWYK2BEJ.js} +108 -46
  260. package/dist/commands/{chunk-P4O67FP5.js → chunk-OX3VQLV2.js} +6 -6
  261. package/dist/commands/{chunk-L6TU7FC2.js → chunk-OZJP77UM.js} +4 -4
  262. package/dist/commands/{chunk-SNO7CY2B.js → chunk-P3H3DKTE.js} +2 -2
  263. package/dist/commands/{chunk-2OIX4JLA.js → chunk-P5SOYWH2.js} +3 -3
  264. package/dist/commands/{chunk-M4PEC7YW.js → chunk-PHLOTUB7.js} +54 -37
  265. package/dist/commands/{chunk-73KBUQKI.js → chunk-PTNQCCIB.js} +2 -2
  266. package/dist/commands/{chunk-4P2LCVGO.js → chunk-PTZEFQUX.js} +8 -8
  267. package/dist/commands/{chunk-DJVMC3U2.js → chunk-Q426ZSZ4.js} +1 -1
  268. package/dist/commands/{chunk-US6X7JXC.js → chunk-Q7EEIOAD.js} +4 -4
  269. package/dist/commands/{chunk-LE7TFPMU.js → chunk-QABRNGQV.js} +2 -2
  270. package/dist/commands/{chunk-NGKB632X.js → chunk-QDFVVRQP.js} +3 -3
  271. package/dist/commands/{chunk-36M2UV6C.js → chunk-QGATHT4S.js} +38 -4
  272. package/dist/commands/{chunk-DIB2Z2OS.js → chunk-QJRVDE7T.js} +1 -1
  273. package/dist/commands/{chunk-KUJQWO6M.js → chunk-QKTTKAXM.js} +2 -2
  274. package/dist/commands/{chunk-DXZW4V7J.js → chunk-QMDKDQKW.js} +3 -3
  275. package/dist/commands/{chunk-VW5SGE7A.js → chunk-QOSC5RKD.js} +1 -1
  276. package/dist/commands/{chunk-ENLWXAHD.js → chunk-QV5FKMOU.js} +1 -1
  277. package/dist/commands/{chunk-32SNWQJP.js → chunk-R2THGPI3.js} +2 -2
  278. package/dist/commands/{chunk-RVHBWSIG.js → chunk-R54Z2Z3X.js} +2 -2
  279. package/dist/commands/{chunk-CJAA5GAF.js → chunk-RG53UFNW.js} +15 -15
  280. package/dist/commands/{chunk-HJKZDDDI.js → chunk-RHKCWJQX.js} +1 -1
  281. package/dist/commands/{chunk-RPDWFUQO.js → chunk-RKIAX4DZ.js} +36 -84
  282. package/dist/commands/{chunk-LE2T3FGJ.js → chunk-RLBFEHHC.js} +2 -4
  283. package/dist/commands/{chunk-5GBZ43UA.js → chunk-RMDLFLPE.js} +1 -1
  284. package/dist/commands/{chunk-U2UH4VM4.js → chunk-RN2YDNLF.js} +2 -2
  285. package/dist/commands/{chunk-GQHUFNXN.js → chunk-RRAIRS2T.js} +1 -1
  286. package/dist/commands/{chunk-DRCTDVI2.js → chunk-RUQY5TS3.js} +3 -3
  287. package/dist/commands/{chunk-WGULS5DA.js → chunk-RW64VHEB.js} +1 -0
  288. package/dist/commands/{chunk-4G7NKNAZ.js → chunk-RXYMJPJB.js} +3 -3
  289. package/dist/commands/{chunk-B33BTNB4.js → chunk-S4M6UWR2.js} +21 -5
  290. package/dist/commands/{chunk-4Q4FXBUQ.js → chunk-SASX3W2M.js} +2 -2
  291. package/dist/commands/{chunk-TIXJY22D.js → chunk-SJ2ZN575.js} +5 -5
  292. package/dist/commands/{chunk-NSZTSCBW.js → chunk-SP7DKYGU.js} +13 -13
  293. package/dist/commands/{chunk-T3FD3Q73.js → chunk-SRG6PKVS.js} +1 -1
  294. package/dist/commands/{chunk-QA22PBCJ.js → chunk-SSL6A3Y4.js} +3 -3
  295. package/dist/commands/{chunk-4BEIYKI2.js → chunk-SV4FZR24.js} +2 -0
  296. package/dist/commands/{chunk-HZSQI6TD.js → chunk-SVTS7ACS.js} +2 -2
  297. package/dist/commands/{chunk-F7XLEK55.js → chunk-SVV4U5AR.js} +1 -1
  298. package/dist/commands/{chunk-RRQFITJE.js → chunk-SXJM4DZ5.js} +1 -1
  299. package/dist/commands/{chunk-OIDMJASD.js → chunk-SYB3M632.js} +1 -1
  300. package/dist/commands/{chunk-UJOZ2MGX.js → chunk-SYOXIKB7.js} +6 -6
  301. package/dist/commands/{chunk-5SB37YDW.js → chunk-SZG5HDNP.js} +3 -3
  302. package/dist/commands/{chunk-R2CF6VZE.js → chunk-T4F33UKZ.js} +4 -4
  303. package/dist/commands/{chunk-ESQEEL4O.js → chunk-TAEGXID2.js} +2 -2
  304. package/dist/commands/chunk-TEPYEUYG.js +585 -0
  305. package/dist/commands/{chunk-LUMCYDGE.js → chunk-TFLHYC2F.js} +2 -2
  306. package/dist/commands/{chunk-V5OIPYA6.js → chunk-TJKM56WJ.js} +4 -4
  307. package/dist/commands/{chunk-CYQ3ZF7R.js → chunk-TLAB552K.js} +86 -13
  308. package/dist/commands/{chunk-ST32OGPY.js → chunk-TP6L4W3W.js} +5 -5
  309. package/dist/commands/{chunk-C26LKDBE.js → chunk-TR7WWYD5.js} +1 -1
  310. package/dist/commands/{chunk-PWYXY46Y.js → chunk-TYNH2R66.js} +15 -15
  311. package/dist/commands/{chunk-AZUE65NT.js → chunk-U5P6G3UV.js} +2 -2
  312. package/dist/commands/{chunk-REPANBLS.js → chunk-U7Y6RKLK.js} +1 -1
  313. package/dist/commands/{chunk-55I7OYHI.js → chunk-UIMMWH7U.js} +1 -1
  314. package/dist/commands/{chunk-72J2G2E7.js → chunk-UKBBWMLE.js} +20 -20
  315. package/dist/commands/{chunk-VTLL6CKO.js → chunk-UNMSZGSG.js} +14 -14
  316. package/dist/commands/chunk-UOVUUVDK.js +18 -0
  317. package/dist/commands/{chunk-JNWHX25C.js → chunk-URDT2O2K.js} +1 -1
  318. package/dist/commands/{chunk-FGZQSSGH.js → chunk-UREXZJDB.js} +1 -1
  319. package/dist/commands/{chunk-O4WBADCX.js → chunk-UTHUX7VU.js} +3 -3
  320. package/dist/commands/{chunk-PDDKRHHS.js → chunk-V5OUZFWK.js} +3 -3
  321. package/dist/commands/{chunk-N4O5I55P.js → chunk-VCPGFBMN.js} +8 -8
  322. package/dist/commands/{chunk-WN7NK3NY.js → chunk-VGPIQNDB.js} +1 -1
  323. package/dist/commands/{chunk-HOGFJHBT.js → chunk-VJS2MCLA.js} +1 -1
  324. package/dist/commands/{chunk-4YI4SLRJ.js → chunk-VK6D5CWA.js} +8 -8
  325. package/dist/commands/{chunk-4LWRCPS5.js → chunk-VOF3N4WO.js} +3 -3
  326. package/dist/commands/{chunk-AM44D7NF.js → chunk-VQRT32JB.js} +1 -1
  327. package/dist/commands/{chunk-AS3GWVAN.js → chunk-VQVPAVQ3.js} +1 -1
  328. package/dist/commands/{chunk-6VTJO5L2.js → chunk-VV4TQYGD.js} +3 -3
  329. package/dist/commands/{chunk-WIE7VUBE.js → chunk-W7DRUOF7.js} +5 -5
  330. package/dist/commands/{chunk-HH2KDLTP.js → chunk-WAEN2RTT.js} +2 -2
  331. package/dist/commands/{chunk-NKKH3PBE.js → chunk-WB4T3VY2.js} +18 -1
  332. package/dist/commands/{chunk-DNJC7X73.js → chunk-WCEUMOKK.js} +2 -2
  333. package/dist/commands/{chunk-BK6Q4VCA.js → chunk-WTH6NTXU.js} +4 -4
  334. package/dist/commands/{chunk-WG6GYBRJ.js → chunk-WWVYEHQT.js} +2 -1
  335. package/dist/commands/{chunk-P4CWLRT2.js → chunk-X3TNPALI.js} +1 -1
  336. package/dist/commands/{chunk-LZNYHWRO.js → chunk-XC6GG5JR.js} +3 -3
  337. package/dist/commands/{chunk-RI7EQYKL.js → chunk-XFWI6WHH.js} +2 -2
  338. package/dist/commands/{chunk-BY3POLIQ.js → chunk-XHGWMD3L.js} +7 -7
  339. package/dist/commands/{chunk-BPSJSHYD.js → chunk-XI2ABCRX.js} +2 -2
  340. package/dist/commands/{chunk-TS4ZK46L.js → chunk-XKSUBUIH.js} +5 -5
  341. package/dist/commands/{chunk-K7GL3BGI.js → chunk-XPBF5DG3.js} +4 -4
  342. package/dist/commands/{chunk-6SKMZGER.js → chunk-XUMYPESL.js} +20 -8
  343. package/dist/commands/{chunk-QS5USD4T.js → chunk-XXC32PVL.js} +5 -4
  344. package/dist/commands/{chunk-ORSI7Y55.js → chunk-XXN2EZBY.js} +1 -1
  345. package/dist/commands/{chunk-IZVM2TTH.js → chunk-XZQWEVR3.js} +2 -2
  346. package/dist/commands/{chunk-E3CXOVPQ.js → chunk-Y27PTXXI.js} +1 -1
  347. package/dist/commands/{chunk-337QQM4C.js → chunk-Y4EBUI6M.js} +106 -5
  348. package/dist/commands/{chunk-WRX3MINT.js → chunk-YAU3LYNF.js} +1 -1
  349. package/dist/commands/{chunk-JB7R3A4A.js → chunk-YDURQICF.js} +4 -4
  350. package/dist/commands/{chunk-RX5JSPPH.js → chunk-YGFOGA7C.js} +11 -11
  351. package/dist/commands/{chunk-S6SXMBF2.js → chunk-YHJ2AJMA.js} +2 -2
  352. package/dist/commands/{chunk-MVPUQLN5.js → chunk-YM77CF4D.js} +4 -4
  353. package/dist/commands/{chunk-ZYIMQHCB.js → chunk-YNPRJCEO.js} +6 -6
  354. package/dist/commands/{chunk-3UKJFWKS.js → chunk-YTBQAD5W.js} +3 -3
  355. package/dist/commands/{chunk-WW3TX742.js → chunk-Z3WGHIVB.js} +3 -3
  356. package/dist/commands/{chunk-KIVOZY2J.js → chunk-ZBZ5DDCH.js} +66 -64
  357. package/dist/commands/{chunk-TAPDXK34.js → chunk-ZLRUHSOP.js} +1 -1
  358. package/dist/commands/{chunk-XYAK53TK.js → chunk-ZNR75OXP.js} +2 -1
  359. package/dist/commands/{chunk-CADFBQJJ.js → chunk-ZSOR4ISJ.js} +4 -4
  360. package/dist/commands/{chunk-6NRTLH6I.js → chunk-ZYFHYQA7.js} +1 -1
  361. package/dist/commands/{chunk-Q7TV3OV6.js → chunk-ZZFFSQF4.js} +4 -4
  362. package/dist/commands/{chunk-PDAY76AN.js → chunk-ZZULXNC2.js} +1 -1
  363. package/dist/commands/{chunk-5Y7QQYTU.js → chunk-ZZXO6TFH.js} +1 -1
  364. package/dist/commands/code-symbol-cli.js +4 -4
  365. package/dist/commands/codex-hook-adapter.js +99 -100
  366. package/dist/commands/command-derive.js +10 -10
  367. package/dist/commands/cost-audit-main.js +94 -92
  368. package/dist/commands/cspell-cached.js +24 -23
  369. package/dist/commands/defect-origin-main.js +19 -18
  370. package/dist/commands/defect-report-main.js +15 -14
  371. package/dist/commands/disposition-cli.js +67 -64
  372. package/dist/commands/doctor.js +3 -3
  373. package/dist/commands/document-read-cli.js +89 -9
  374. package/dist/commands/document-section-main.js +89 -9
  375. package/dist/commands/edit-files-cli.js +1 -1
  376. package/dist/commands/effect-audit-cli.js +20 -19
  377. package/dist/commands/epic-audit-main.js +55 -53
  378. package/dist/commands/epic-bundle-main.js +87 -85
  379. package/dist/commands/epic-check.js +16 -15
  380. package/dist/commands/epic-main.js +93 -91
  381. package/dist/commands/epic-next-main.js +51 -49
  382. package/dist/commands/format-edited-cli.js +30 -32
  383. package/dist/commands/format.js +11 -10
  384. package/dist/commands/fresh-machine-cli.js +6 -6
  385. package/dist/commands/git-followup-workflow.js +137 -122
  386. package/dist/commands/git-workflow.js +28 -27
  387. package/dist/commands/github-release-cli.js +26 -3
  388. package/dist/commands/hook-ledger-cli.js +74 -126
  389. package/dist/commands/init-main.js +20 -19
  390. package/dist/commands/inputs.json +1907 -1876
  391. package/dist/commands/issue-ack-cli.js +5 -5
  392. package/dist/commands/issue-already-done-cli.js +63 -58
  393. package/dist/commands/issue-body-cli.js +44 -42
  394. package/dist/commands/issue-cite-main.js +11 -10
  395. package/dist/commands/issue-comment-main.js +15 -11
  396. package/dist/commands/issue-consolidate-cli.js +31 -30
  397. package/dist/commands/issue-file-main.js +114 -110
  398. package/dist/commands/issue-fold-existing-cli.js +88 -86
  399. package/dist/commands/issue-fold-main.js +26 -25
  400. package/dist/commands/issue-lint-main.js +38 -37
  401. package/dist/commands/issue-measured-cli.js +66 -61
  402. package/dist/commands/issue-plan-cli.js +103 -101
  403. package/dist/commands/issue-premise-unmet-cli.js +66 -61
  404. package/dist/commands/issue-priority-cli.js +13 -12
  405. package/dist/commands/issue-read-main.js +18 -17
  406. package/dist/commands/issue-release-class-cli.js +12 -11
  407. package/dist/commands/issue-release-main.js +13 -12
  408. package/dist/commands/issue-scout-main.js +89 -87
  409. package/dist/commands/issue-spill-main.js +114 -110
  410. package/dist/commands/issue-state-main.js +16 -15
  411. package/dist/commands/issue-tick-cli.js +14 -13
  412. package/dist/commands/josh-completion.js +10 -10
  413. package/dist/commands/lane-adopt-cli.js +19 -19
  414. package/dist/commands/lane-breakdown-cli.js +154 -126
  415. package/dist/commands/lane-cli.js +131 -125
  416. package/dist/commands/lane-launch-main.js +17 -17
  417. package/dist/commands/lane-limit-cli.js +81 -79
  418. package/dist/commands/lane-measure-cli.js +246 -130
  419. package/dist/commands/lane-pause-cli.js +15 -15
  420. package/dist/commands/lane-plan-cli.js +108 -101
  421. package/dist/commands/lane-resolve-cli.js +20 -19
  422. package/dist/commands/lane-restart-cli.js +124 -118
  423. package/dist/commands/lane-why-cli.js +85 -82
  424. package/dist/commands/lane-withdraw-cli.js +49 -48
  425. package/dist/commands/latest-corepack.js +3 -3
  426. package/dist/commands/latest-if-required-cli.js +9 -9
  427. package/dist/commands/latest-scope-main.js +5 -5
  428. package/dist/commands/latest-update.js +3 -3
  429. package/dist/commands/lines-command.js +3 -3
  430. package/dist/commands/lint-parallel-main.js +32 -31
  431. package/dist/commands/lint-related.js +79 -60
  432. package/dist/commands/lint-rule.js +32 -31
  433. package/dist/commands/lockfile-policy.js +11 -11
  434. package/dist/commands/main-merge-main.js +5 -5
  435. package/dist/commands/main-sync-main.js +5 -5
  436. package/dist/commands/managed-config-scope-cli.js +3 -3
  437. package/dist/commands/measure-rerun-cli.js +10 -10
  438. package/dist/commands/metrics-command.js +91 -58
  439. package/dist/commands/observation-record-cli.js +3 -3
  440. package/dist/commands/observations-flush-cli.js +27 -25
  441. package/dist/commands/oracle-list-cli.js +2 -2
  442. package/dist/commands/overrides-check.js +4 -4
  443. package/dist/commands/package-scout-cli.js +67 -26
  444. package/dist/commands/plan-consumers-main.js +4 -4
  445. package/dist/commands/plan-scaffold-cli.js +132 -91
  446. package/dist/commands/pr-classification-main.js +3 -3
  447. package/dist/commands/pre-commit-lint.js +11 -12
  448. package/dist/commands/pre-commit-type-check.js +25 -24
  449. package/dist/commands/pre-push-unit.js +33 -33
  450. package/dist/commands/pretool-guard-cli.js +90 -91
  451. package/dist/commands/project-profile-cli.js +5 -4
  452. package/dist/commands/propagate.js +15 -15
  453. package/dist/commands/prose-stale-cli.js +20 -19
  454. package/dist/commands/publishable-range-check.js +4 -4
  455. package/dist/commands/read-files-cli.js +2 -2
  456. package/dist/commands/read-set-cli.js +61 -24
  457. package/dist/commands/refactor-scan-cli.js +6 -6
  458. package/dist/commands/release-cli.js +64 -36
  459. package/dist/commands/release-scope-main.js +19 -18
  460. package/dist/commands/rename-cli.js +27 -29
  461. package/dist/commands/reserved-run.js +3 -3
  462. package/dist/commands/retrospective-cli.js +104 -102
  463. package/dist/commands/review-attest-cli.js +6 -6
  464. package/dist/commands/review-brief-main.js +127 -109
  465. package/dist/commands/review-findings-cli.js +2 -2
  466. package/dist/commands/review-pair-cli.js +110 -84
  467. package/dist/commands/review-record-main.js +108 -83
  468. package/dist/commands/review-round2-cli.js +46 -45
  469. package/dist/commands/review-stops-cli.js +16 -16
  470. package/dist/commands/review-submit-cli.js +127 -109
  471. package/dist/commands/rule-list.js +58 -60
  472. package/dist/commands/rule-value-cli.js +226 -74
  473. package/dist/commands/run-add-cli.js +28 -27
  474. package/dist/commands/run-board-main.js +136 -132
  475. package/dist/commands/run-carry-cli.js +127 -124
  476. package/dist/commands/run-chain-cli.js +116 -93
  477. package/dist/commands/run-cut-cli.js +124 -119
  478. package/dist/commands/run-ending-cli.js +19 -22
  479. package/dist/commands/run-entry-cli.js +183 -180
  480. package/dist/commands/run-event-cli.js +5 -5
  481. package/dist/commands/run-handoff-cli.js +52 -28
  482. package/dist/commands/run-handoff-lanes-cli.js +15 -15
  483. package/dist/commands/run-hold-main.js +64 -62
  484. package/dist/commands/run-liveness-cli.js +11 -11
  485. package/dist/commands/run-merge-main.js +119 -116
  486. package/dist/commands/run-next-cli.js +87 -86
  487. package/dist/commands/run-park-cli.js +111 -92
  488. package/dist/commands/run-pause-cli.js +147 -133
  489. package/dist/commands/run-pickup-cli.js +13 -13
  490. package/dist/commands/run-prep-main.js +83 -82
  491. package/dist/commands/run-prime-cli.js +107 -87
  492. package/dist/commands/run-progress-main.js +123 -107
  493. package/dist/commands/run-report-cli.js +25 -24
  494. package/dist/commands/run-review-cli.js +168 -149
  495. package/dist/commands/run-ship-cli.js +208 -203
  496. package/dist/commands/run-ship-evidence-cli.js +38 -37
  497. package/dist/commands/run-ship-wait-main.js +40 -37
  498. package/dist/commands/run-split-cli.js +127 -125
  499. package/dist/commands/run-stale-main.js +36 -35
  500. package/dist/commands/run-status-cli.js +16 -15
  501. package/dist/commands/run-step-cli.js +173 -164
  502. package/dist/commands/run-tail-cli.js +1 -1
  503. package/dist/commands/run-tidy-main.js +30 -29
  504. package/dist/commands/run-wake-main.js +137 -119
  505. package/dist/commands/run-watcher-guard-cli.js +30 -29
  506. package/dist/commands/secretlint-scan.js +2 -2
  507. package/dist/commands/selfcheck-cli.js +27 -26
  508. package/dist/commands/session-language-main.js +48 -28
  509. package/dist/commands/sonar-hotspots-cli.js +3 -3
  510. package/dist/commands/split-assess-cli.js +24 -23
  511. package/dist/commands/split-child-recover-cli.js +13 -12
  512. package/dist/commands/start.js +37 -35
  513. package/dist/commands/stash-pop-main.js +3 -3
  514. package/dist/commands/stash-push-main.js +3 -3
  515. package/dist/commands/stop-guard.js +144 -143
  516. package/dist/commands/sync-main.js +11 -10
  517. package/dist/commands/telegram-test-main.js +5 -5
  518. package/dist/commands/test-declared.js +9 -8
  519. package/dist/commands/test-e2e-guard.js +23 -22
  520. package/dist/commands/test-pinned-main.js +26 -25
  521. package/dist/commands/test-reach-cli.js +15 -14
  522. package/dist/commands/test-red-main.js +5 -5
  523. package/dist/commands/{test-related-ZT2AO62I.js → test-related-ZCNC46MS.js} +31 -31
  524. package/dist/commands/test-related-main.js +51 -50
  525. package/dist/commands/test-unit-guard-main.js +9 -8
  526. package/dist/commands/time-cli.js +24 -27
  527. package/dist/commands/time-density-cli.js +8 -9
  528. package/dist/commands/tree-status-cli.js +4 -4
  529. package/dist/commands/type-check-command.js +8 -7
  530. package/dist/commands/ui-shot-cli.js +4 -4
  531. package/dist/commands/uninstall.js +20 -19
  532. package/dist/commands/unused-members-cli.js +9 -8
  533. package/dist/commands/upstream-interrupt-main.js +115 -111
  534. package/dist/commands/verification-gate.js +46 -46
  535. package/dist/commands/version-check.js +5 -5
  536. package/dist/hooks/{chunk-LWD43Z3C.js → chunk-5CUXGQT6.js} +1667 -107
  537. package/dist/hooks/{chunk-4YXV2REH.js → chunk-5R5YFQR5.js} +8 -8
  538. package/dist/hooks/{chunk-LKQBEKBI.js → chunk-6RLY27FT.js} +8 -8
  539. package/dist/hooks/{chunk-CICKRHTB.js → chunk-AO4TOV4V.js} +119 -2679
  540. package/dist/hooks/{chunk-NUPVO7RI.js → chunk-G5WSPYJ6.js} +4296 -1687
  541. package/dist/hooks/{chunk-UU4PTPEZ.js → chunk-HHIVWGHX.js} +250 -125
  542. package/dist/hooks/{chunk-P7BPAU26.js → chunk-IURJANNZ.js} +2 -2
  543. package/dist/hooks/{chunk-6RR6JZSB.js → chunk-OV22V63P.js} +357 -1744
  544. package/dist/hooks/{chunk-RQXECHAS.js → chunk-SXABK6UV.js} +57 -45
  545. package/dist/hooks/codex-hook-adapter.js +11 -11
  546. package/dist/hooks/daemon.js +1053 -690
  547. package/dist/hooks/format-edited.js +5 -5
  548. package/dist/hooks/inputs.json +551 -536
  549. package/dist/hooks/pretool-guard.js +7 -7
  550. package/dist/hooks/session-lang.js +292 -15
  551. package/dist/hooks/stop-guard.js +225 -48
  552. package/dist/inputs.json +65 -65
  553. package/dist/josh.js +73 -19
  554. package/dist/self-sync-guard/index.js +18 -1
  555. package/dist/version/index.js +18 -1
  556. package/package.json +3 -3
  557. package/pnpm-workspace.yaml +5 -13
  558. package/prompts/collaboration-workflow/issue-template.en.md +56 -52
  559. package/scripts/agent/agent-argv.ts +20 -6
  560. package/scripts/agent/agent-phase-profile.ts +89 -0
  561. package/scripts/agent/agent-role-profile.ts +3 -71
  562. package/scripts/agent/agent-ship-cap.ts +44 -0
  563. package/scripts/agent/agent-worker-profile.ts +154 -0
  564. package/scripts/agent/claude-agent-argv.ts +1 -1
  565. package/scripts/agent/lane-instructions.ts +29 -3
  566. package/scripts/auto-ok/auto-ok-judge-cli.ts +3 -0
  567. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -1
  568. package/scripts/auto-ok/auto-ok-judge.ts +4 -2
  569. package/scripts/backlog/backlog-drive-escalate.ts +115 -0
  570. package/scripts/backlog/backlog-drive-stalled-retry.ts +48 -10
  571. package/scripts/document/document-scan.ts +35 -1
  572. package/scripts/gh/git-pr-checks-failed.ts +24 -0
  573. package/scripts/hooks/implementation-shell-deny-expansion.ts +20 -0
  574. package/scripts/hooks/implementation-shell-deny-git.ts +128 -0
  575. package/scripts/hooks/implementation-shell-deny.ts +14 -138
  576. package/scripts/hooks/implementation-shell.ts +28 -5
  577. package/scripts/hooks/step-zero-notice.ts +9 -6
  578. package/scripts/hooks/stop-actions.ts +4 -2
  579. package/scripts/init/init-logic-workspace.ts +1 -1
  580. package/scripts/issue/issue-auto-ok.ts +43 -4
  581. package/scripts/issue/issue-body-keys.ts +4 -0
  582. package/scripts/issue/issue-comment-cli.ts +15 -2
  583. package/scripts/issue/issue-evidence-exit.ts +6 -2
  584. package/scripts/issue/issue-file-cli.ts +5 -1
  585. package/scripts/issue/issue-file-pass.ts +14 -7
  586. package/scripts/issue/issue-file-worker.ts +95 -0
  587. package/scripts/issue/issue-file.ts +1 -1
  588. package/scripts/issue/issue-outcome.ts +107 -0
  589. package/scripts/issue/issue-read.ts +12 -7
  590. package/scripts/issue/issue-watch-diff.ts +2 -1
  591. package/scripts/josh/josh-commands-ai.ts +2 -2
  592. package/scripts/josh/josh-commands-development.ts +21 -5
  593. package/scripts/josh/josh-commands-issue-write.ts +3 -2
  594. package/scripts/josh/josh-commands-lint.ts +1 -1
  595. package/scripts/josh/josh-commands-project.ts +7 -2
  596. package/scripts/josh/josh-commands-run.ts +10 -2
  597. package/scripts/josh/josh-commands-workflow.ts +5 -0
  598. package/scripts/lane/lane-breakdown-cli.ts +14 -4
  599. package/scripts/lane/lane-breakdown-text.ts +7 -0
  600. package/scripts/lane/lane-breakdown.ts +21 -1
  601. package/scripts/lane/lane-dispatch-prepare.ts +83 -0
  602. package/scripts/lane/lane-dispatch.ts +3 -53
  603. package/scripts/lane/lane-elapsed-time.ts +118 -0
  604. package/scripts/lane/lane-ledger-schema-ship.ts +4 -1
  605. package/scripts/lane/lane-net-time.ts +35 -7
  606. package/scripts/lane/lane-overrun.ts +1 -1
  607. package/scripts/lane/lane-plan-cli.ts +7 -3
  608. package/scripts/lane/lane-plan-estimate.ts +57 -0
  609. package/scripts/lane/lane-plan-size.ts +11 -20
  610. package/scripts/lane/lane-plan.ts +1 -0
  611. package/scripts/lane/lane-relaunch.ts +9 -4
  612. package/scripts/lane/lane-stage-budget.ts +6 -1
  613. package/scripts/lane/lane-stage-events.ts +103 -0
  614. package/scripts/lane/lane-stats-tables.ts +3 -0
  615. package/scripts/lane/lane-stop-check-stats.ts +117 -0
  616. package/scripts/lane/lane-stop-stats.ts +30 -6
  617. package/scripts/lane/lane-why-causes.ts +3 -11
  618. package/scripts/lane/openai-lane-supervisor-owner.ts +12 -0
  619. package/scripts/lane/openai-lane-supervisor.ts +36 -1
  620. package/scripts/lib/home-tilde.ts +24 -0
  621. package/scripts/lib/package-manifest.ts +27 -1
  622. package/scripts/observations/observation-ledger-archive.ts +180 -0
  623. package/scripts/observations/observation-ledger-home.ts +1 -0
  624. package/scripts/observations/observation-ledger.ts +5 -0
  625. package/scripts/observations/observations-flush-transaction.ts +358 -0
  626. package/scripts/observations/observations-flush.ts +72 -172
  627. package/scripts/plan/plan-scaffold-cli.ts +17 -6
  628. package/scripts/plan/plan-scaffold.ts +11 -0
  629. package/scripts/release/github-release-notes.ts +24 -0
  630. package/scripts/release/github-release-runs.ts +32 -6
  631. package/scripts/release/github-release.ts +10 -2
  632. package/scripts/release/release-progress.ts +22 -10
  633. package/scripts/release/release-publish-run.ts +39 -6
  634. package/scripts/repo/repository-labels.ts +23 -11
  635. package/scripts/review/review-comment-round.ts +10 -5
  636. package/scripts/rules/broad-investigation-shell.ts +2 -2
  637. package/scripts/rules/codex-prompt.ts +63 -0
  638. package/scripts/rules/direct-issue-comment.ts +62 -2
  639. package/scripts/rules/direct-issue-read.ts +55 -2
  640. package/scripts/rules/guard-remedy.ts +10 -4
  641. package/scripts/rules/issue-citation.ts +20 -9
  642. package/scripts/rules/last-prompt.ts +8 -4
  643. package/scripts/rules/rule-value-cli.ts +85 -4
  644. package/scripts/rules/rule-value-trend.ts +108 -0
  645. package/scripts/rules/shell-redirects.ts +19 -7
  646. package/scripts/rules/shell-segments.ts +145 -20
  647. package/scripts/rules/shell-tokens.ts +66 -0
  648. package/scripts/rules/standalone-gh-call.ts +63 -0
  649. package/scripts/rules/unasked-filing.ts +12 -4
  650. package/scripts/run/board/run-board-closed.ts +10 -1
  651. package/scripts/run/board/run-board-decision-read.ts +52 -12
  652. package/scripts/run/board/run-board-decision.ts +5 -0
  653. package/scripts/run/board/run-board-ending-reason.ts +21 -7
  654. package/scripts/run/board/run-board-github.ts +8 -1
  655. package/scripts/run/board/run-board-layout.ts +5 -3
  656. package/scripts/run/board/run-board-link.ts +2 -0
  657. package/scripts/run/board/run-board-operation.ts +6 -2
  658. package/scripts/run/board/run-board-pause-fixture.json +12 -0
  659. package/scripts/run/board/run-board-pause.ts +87 -0
  660. package/scripts/run/board/run-board-plan-shared.ts +2 -0
  661. package/scripts/run/board/run-board-render-condition.ts +10 -1
  662. package/scripts/run/board/run-board-render-title.ts +7 -0
  663. package/scripts/run/board/run-board-settle.ts +16 -2
  664. package/scripts/run/board/run-board-snapshot.ts +4 -0
  665. package/scripts/run/board/run-board-status.ts +11 -1
  666. package/scripts/run/cut/run-cut-cli.ts +2 -1
  667. package/scripts/run/park/run-park-cli.ts +13 -1
  668. package/scripts/run/park/run-park-escalate.ts +102 -0
  669. package/scripts/run/park/run-stalled.ts +29 -7
  670. package/scripts/run/review/run-review-early-push.ts +6 -6
  671. package/scripts/run/ship/run-ship-stop-cause.ts +12 -1
  672. package/scripts/split/split-assess.ts +14 -5
  673. package/scripts/test/test-related-touched.ts +21 -3
  674. package/scripts/test/test-related.ts +1 -1
  675. package/dist/commands/chunk-6WEVLIZE.js +0 -29
  676. package/dist/commands/chunk-E2ZCUKHT.js +0 -274
  677. package/dist/commands/chunk-NMLCPYBN.js +0 -134
  678. package/dist/commands/chunk-QEIO2ZNQ.js +0 -324
  679. package/dist/commands/chunk-QWX7EBC6.js +0 -112
  680. package/dist/commands/chunk-RQRLW4XK.js +0 -20
  681. package/dist/commands/chunk-UCQJDYE3.js +0 -21
  682. package/dist/commands/chunk-W4YH2DF3.js +0 -58
  683. package/dist/commands/{chunk-LRA3PXHS.js → chunk-ENKFCOVY.js} +3 -3
  684. package/dist/commands/{chunk-RUWV4INF.js → chunk-HQGNXR6I.js} +3 -3
@@ -1,23 +1,22 @@
1
1
  import {
2
2
  run_board_quota_read
3
- } from "./chunk-7IT23HIR.js";
3
+ } from "./chunk-GY4DMCKS.js";
4
4
  import {
5
5
  lane_held_stats
6
- } from "./chunk-KQWSENCT.js";
6
+ } from "./chunk-F6IQHZYY.js";
7
7
  import {
8
8
  run_event_step
9
- } from "./chunk-IG22Y5MA.js";
9
+ } from "./chunk-7KKUFLH5.js";
10
10
  import {
11
11
  lane_investigation_switch,
12
12
  run_event_overrun
13
- } from "./chunk-ORSI7Y55.js";
13
+ } from "./chunk-XXN2EZBY.js";
14
14
  import {
15
- git_gh_issue_alias_graphql,
16
15
  run_board_closed
17
- } from "./chunk-RPDWFUQO.js";
16
+ } from "./chunk-RKIAX4DZ.js";
18
17
  import {
19
18
  lane_withdraw
20
- } from "./chunk-GDUK5YPO.js";
19
+ } from "./chunk-4NRSFLG7.js";
21
20
  import {
22
21
  process_directories
23
22
  } from "./chunk-MXC4IBZ7.js";
@@ -27,31 +26,37 @@ import {
27
26
  issue_human_stops,
28
27
  run_board_labels,
29
28
  run_board_machine
30
- } from "./chunk-H4LYG37R.js";
29
+ } from "./chunk-4DN4XVPL.js";
31
30
  import {
32
31
  gh_core_rate_limit,
33
32
  run_merge_usage_limit
34
- } from "./chunk-PZ6VWHOO.js";
33
+ } from "./chunk-FHFWNNUC.js";
35
34
  import {
36
35
  run_park_body
37
- } from "./chunk-FGZQSSGH.js";
36
+ } from "./chunk-UREXZJDB.js";
38
37
  import {
39
38
  backlog_plan,
40
39
  backlog_plan_read,
41
40
  backlog_waves
42
- } from "./chunk-QDFDB4CF.js";
43
- import {
44
- run_stalled
45
- } from "./chunk-B33BTNB4.js";
41
+ } from "./chunk-4Q64PG46.js";
46
42
  import {
47
43
  run_event_filed
48
44
  } from "./chunk-PYOK73QE.js";
45
+ import {
46
+ issue_outcome
47
+ } from "./chunk-5CG3XU3O.js";
49
48
  import {
50
49
  ts_entry_loader
51
50
  } from "./chunk-VHRNXWVP.js";
51
+ import {
52
+ git_gh_issue_alias_graphql
53
+ } from "./chunk-HWEZRNPL.js";
54
+ import {
55
+ home_tilde
56
+ } from "./chunk-D5OHVIPM.js";
52
57
  import {
53
58
  run_stranded_detect
54
- } from "./chunk-VJLZ3IQQ.js";
59
+ } from "./chunk-G5KSL2Q2.js";
55
60
  import {
56
61
  run_wake
57
62
  } from "./chunk-6Q3XUCLM.js";
@@ -61,35 +66,35 @@ import {
61
66
  import {
62
67
  backlog_hold_text,
63
68
  backlog_ready
64
- } from "./chunk-5WIZR5SC.js";
69
+ } from "./chunk-M4UV3BEV.js";
65
70
  import {
66
71
  backlog_next_shared
67
- } from "./chunk-ILQZFUDC.js";
72
+ } from "./chunk-ELY76WAR.js";
68
73
  import {
69
74
  epic_classify,
70
75
  epic_solo
71
- } from "./chunk-PWYXY46Y.js";
76
+ } from "./chunk-TYNH2R66.js";
72
77
  import {
73
78
  epic_triage
74
- } from "./chunk-AM44D7NF.js";
79
+ } from "./chunk-VQRT32JB.js";
75
80
  import {
76
81
  auto_ok_cli
77
- } from "./chunk-F2J6DGDM.js";
82
+ } from "./chunk-FMZWRDKH.js";
78
83
  import {
79
84
  issue_not_before
80
- } from "./chunk-M42SLJCD.js";
85
+ } from "./chunk-FKZ5E4JD.js";
81
86
  import {
82
87
  issue_sample_gate
83
- } from "./chunk-YGDNUTTI.js";
88
+ } from "./chunk-CQUZ6TNQ.js";
84
89
  import {
85
90
  epic_issue
86
- } from "./chunk-LC7SBONO.js";
91
+ } from "./chunk-IAD4WLLI.js";
87
92
  import {
88
93
  git_closes_keyword
89
94
  } from "./chunk-J3TKZLHA.js";
90
95
  import {
91
96
  lane_stage_budget
92
- } from "./chunk-RQRLW4XK.js";
97
+ } from "./chunk-AXXEMVRJ.js";
93
98
  import {
94
99
  telegram_notify
95
100
  } from "./chunk-WJ4NEDNI.js";
@@ -101,19 +106,19 @@ import {
101
106
  } from "./chunk-3RIQ36LH.js";
102
107
  import {
103
108
  run_event_retry
104
- } from "./chunk-LUMCYDGE.js";
109
+ } from "./chunk-TFLHYC2F.js";
105
110
  import {
106
111
  lane_yield
107
- } from "./chunk-EH3LVYOX.js";
112
+ } from "./chunk-EGIHAEMT.js";
108
113
  import {
109
114
  lane_stage_stats
110
- } from "./chunk-HOSZITJM.js";
115
+ } from "./chunk-IBAYXCMU.js";
111
116
  import {
112
117
  usage_state_path
113
118
  } from "./chunk-K2WVYHCP.js";
114
119
  import {
115
120
  run_progress_read
116
- } from "./chunk-HPVLI26Z.js";
121
+ } from "./chunk-4WR2LEZL.js";
117
122
  import {
118
123
  issue_run_hold
119
124
  } from "./chunk-QX2R6UJG.js";
@@ -122,40 +127,43 @@ import {
122
127
  } from "./chunk-23GH6B3D.js";
123
128
  import {
124
129
  backlog_overlap
125
- } from "./chunk-4Z5723GA.js";
130
+ } from "./chunk-B7ZNIEDV.js";
126
131
  import {
127
132
  issue_read
128
- } from "./chunk-HBNB3TLG.js";
133
+ } from "./chunk-2BB5ZR2F.js";
129
134
  import {
130
135
  run_progress
131
136
  } from "./chunk-RGDFWJPZ.js";
132
- import {
133
- run_event_checks
134
- } from "./chunk-E2ZCUKHT.js";
135
137
  import {
136
138
  markdown_section
137
- } from "./chunk-CRNPPKP2.js";
139
+ } from "./chunk-JZK33TA5.js";
140
+ import {
141
+ backlogrun_launch
142
+ } from "./chunk-2EZTYLO4.js";
138
143
  import {
139
144
  lane_stats
140
- } from "./chunk-QS5USD4T.js";
145
+ } from "./chunk-XXC32PVL.js";
141
146
  import {
142
147
  lane_await
143
- } from "./chunk-WWC5L3AO.js";
148
+ } from "./chunk-IB5TT73I.js";
144
149
  import {
145
150
  lane_ledger
146
- } from "./chunk-XYAK53TK.js";
147
- import {
148
- backlogrun_launch
149
- } from "./chunk-TVJE67O2.js";
151
+ } from "./chunk-ZNR75OXP.js";
150
152
  import {
151
153
  run_event_setup
152
- } from "./chunk-BNXE3NVB.js";
154
+ } from "./chunk-I2KCGKJI.js";
153
155
  import {
154
156
  run_board_usage_rusage
155
157
  } from "./chunk-FCINBCKB.js";
158
+ import {
159
+ run_stalled
160
+ } from "./chunk-S4M6UWR2.js";
161
+ import {
162
+ run_event_checks
163
+ } from "./chunk-OJ65BZBV.js";
156
164
  import {
157
165
  transcript_tail
158
- } from "./chunk-UCQJDYE3.js";
166
+ } from "./chunk-EMTZAGT5.js";
159
167
  import {
160
168
  core_budget
161
169
  } from "./chunk-TCBUX52E.js";
@@ -165,13 +173,10 @@ import {
165
173
  import {
166
174
  lane_process_table,
167
175
  lane_registry
168
- } from "./chunk-LRS2OS5J.js";
176
+ } from "./chunk-452HWOJ7.js";
169
177
  import {
170
178
  run_liveness
171
- } from "./chunk-7S6VRZOH.js";
172
- import {
173
- run_hold
174
- } from "./chunk-P4CWLRT2.js";
179
+ } from "./chunk-3AEDZZNL.js";
175
180
  import {
176
181
  COMMENTS,
177
182
  ISSUE_FIELDS,
@@ -180,10 +185,13 @@ import {
180
185
  git_gh_issue_read,
181
186
  git_gh_issue_rest,
182
187
  issue_fields_schema
183
- } from "./chunk-LRA3PXHS.js";
188
+ } from "./chunk-ENKFCOVY.js";
184
189
  import {
185
190
  git_gh_transport
186
191
  } from "./chunk-TVZXG4Y4.js";
192
+ import {
193
+ run_hold
194
+ } from "./chunk-X3TNPALI.js";
187
195
  import {
188
196
  git_gh_etag_read
189
197
  } from "./chunk-EWVR5AEX.js";
@@ -196,14 +204,14 @@ import {
196
204
  import {
197
205
  run_board_lane_time,
198
206
  run_event_scope
199
- } from "./chunk-34LAULSC.js";
200
- import {
201
- figure_format,
202
- lane_state
203
- } from "./chunk-5Y7QQYTU.js";
207
+ } from "./chunk-OKZWEVR4.js";
204
208
  import {
205
209
  run_event_stream
206
210
  } from "./chunk-NSAVEXVR.js";
211
+ import {
212
+ figure_format,
213
+ lane_state
214
+ } from "./chunk-ZZXO6TFH.js";
207
215
  import {
208
216
  ALREADY_DONE_LABEL,
209
217
  BREAKING_CHANGE_LABEL,
@@ -323,6 +331,7 @@ var SNAPSHOT_PREFIX = "josh-run-board-snapshot-";
323
331
  var NO_KNOWN = { titles: /* @__PURE__ */ new Map(), labels: /* @__PURE__ */ new Map() };
324
332
  var label_names_schema = z.array(z.string());
325
333
  var closed_issue_schema = z.object({
334
+ outcome: z.object({ summary: issue_outcome.summary_schema, url: issue_outcome.url_schema }).optional(),
326
335
  title: z.string(),
327
336
  labels: label_names_schema,
328
337
  closed_ms: z.number().optional(),
@@ -439,6 +448,55 @@ function newest_of(events) {
439
448
  }
440
449
  var run_board_checks = { newest_of };
441
450
 
451
+ // scripts/run/board/run-board-pause.ts
452
+ import { z as z2 } from "zod";
453
+ var record_schema = z2.object({
454
+ summary: issue_outcome.summary_schema,
455
+ url: z2.string().regex(/^https:\/\/github\.com\/[^/]+\/[^/]+\/issues\/\d+(?:#issuecomment-\d+)?$(?![\s\S])/u).optional(),
456
+ at_ms: z2.number()
457
+ });
458
+ var FALLBACK = "Reason unavailable: inspect issue";
459
+ function is_stop(comment) {
460
+ return comment.is_trusted === true && run_park_body.summary_of(comment.body) !== void 0;
461
+ }
462
+ function outcome_for(comments, latest) {
463
+ if (latest === void 0) return void 0;
464
+ const candidates = comments.filter((comment) => {
465
+ const outcome = issue_outcome.from_comments(comments, [comment]);
466
+ return comment === latest || outcome?.url === latest.html_url;
467
+ });
468
+ return issue_outcome.from_comments(comments, candidates);
469
+ }
470
+ function at_of(comment) {
471
+ const at_ms = Date.parse(comment?.created_at ?? "");
472
+ return Number.isFinite(at_ms) ? at_ms : 0;
473
+ }
474
+ function from_comments(comments, issue_url2) {
475
+ const latest = comments.findLast((comment) => is_stop(comment));
476
+ const url = issue_outcome.url_schema.safeParse(latest?.html_url).data;
477
+ const outcome = outcome_for(comments, latest);
478
+ return { summary: FALLBACK, url: url ?? issue_url2, ...outcome, at_ms: at_of(latest) };
479
+ }
480
+ function launch_of(status) {
481
+ return status?.launched_ms ?? status?.started_ms ?? 0;
482
+ }
483
+ function is_unread(record) {
484
+ return record?.at_ms === 0 && record.url === void 0;
485
+ }
486
+ function record_of(number, read5, status) {
487
+ const record = read5.pause_reasons?.get(number);
488
+ return status === void 0 && is_unread(record) ? void 0 : record;
489
+ }
490
+ function reason_of(number, read5, status) {
491
+ const record = record_of(number, read5, status);
492
+ if (record === void 0) return void 0;
493
+ if (record.at_ms < launch_of(status)) {
494
+ return { tail: FALLBACK, evidence_url: record.url?.split("#", 1)[0] };
495
+ }
496
+ return { tail: record.summary, evidence_url: record.url };
497
+ }
498
+ var run_board_pause = { FALLBACK, from_comments, reason_of, record_schema };
499
+
442
500
  // scripts/run/board/run-board-fit.ts
443
501
  import { stripVTControlCharacters } from "node:util";
444
502
  import string_width from "string-width";
@@ -546,11 +604,11 @@ function compose(parts, cut2) {
546
604
  ...cut2.footer ? [] : parts.footer
547
605
  ];
548
606
  }
549
- function at_of(entry) {
607
+ function at_of2(entry) {
550
608
  return entry.line.row?.at_ms ?? -Infinity;
551
609
  }
552
610
  function oldest_first(left, right2) {
553
- const [left_at, right_at] = [at_of(left), at_of(right2)];
611
+ const [left_at, right_at] = [at_of2(left), at_of2(right2)];
554
612
  if (left_at === right_at) return right2.index - left.index;
555
613
  return left_at < right_at ? -1 : 1;
556
614
  }
@@ -627,7 +685,11 @@ var TITLE_FLOOR = 8;
627
685
  var ELLIPSIS = "\u2026";
628
686
  var WHOLE = { title_limit: TITLE_LIMIT, reason_cut: 0 };
629
687
  var WHOLE_TAIL_STATES = /* @__PURE__ */ new Set(["stopped", "parked", "human"]);
688
+ function has_short_reason(reason) {
689
+ return reason?.evidence_url !== void 0 || reason?.tail === run_board_pause.FALLBACK;
690
+ }
630
691
  function keeps_tail(row) {
692
+ if (has_short_reason(row.reason)) return false;
631
693
  return WHOLE_TAIL_STATES.has(row.state) || row.reason?.icon === run_board_labels.STATE_ICONS.human;
632
694
  }
633
695
  function title_of(title = "", limit = TITLE_LIMIT) {
@@ -724,12 +786,12 @@ function park_row_reason(issue, reason, is_backlog_live2, waits = []) {
724
786
  is_backlog_live2
725
787
  );
726
788
  }
727
- function reason_of(event) {
789
+ function reason_of2(event) {
728
790
  if (event.kind === KIND.PARK) return park_reason(event) || void 0;
729
791
  return event.kind === KIND.WITHDRAW ? withdraw_reason(event) || void 0 : void 0;
730
792
  }
731
793
  function recorded_of(event) {
732
- const reason = reason_of(event);
794
+ const reason = reason_of2(event);
733
795
  const { elapsed_ms: elapsed_ms2 } = event;
734
796
  return {
735
797
  ...reason !== void 0 && { reason },
@@ -745,14 +807,14 @@ function is_stalled(status, labels = []) {
745
807
  return STALLED_STATES.has(status.state) && has_label_name(labels, RUN_STALLED_LABEL);
746
808
  }
747
809
  var FINISHED_ENDINGS = {
748
- done: { word: "done", fallback: "closed without a PR to merge" },
749
- withdrawn: { word: "withdrawn", fallback: "run withdrawn" },
750
- already_done: { word: "already done", fallback: "closed with verified evidence" }
810
+ done: "Closed without a merged PR",
811
+ withdrawn: "Run withdrawn",
812
+ already_done: "Closed with verified evidence"
751
813
  };
752
814
  function tail_of(status) {
753
815
  const ending = FINISHED_ENDINGS[status.state];
754
816
  if (ending === void 0) return status.reason;
755
- return `nothing to do \xB7 ${ending.word}: ${status.reason ?? ending.fallback}`;
817
+ return status.outcome?.summary ?? ending;
756
818
  }
757
819
  function stop_reason_of(status) {
758
820
  if (status.stop_reason === void 0) return void 0;
@@ -763,19 +825,25 @@ function stop_row_reason(status) {
763
825
  const reason = stop_reason_of(status);
764
826
  return reason === void 0 ? {} : { reason };
765
827
  }
766
- function row_reason(number, status, read5) {
828
+ function ending_row_reason(number, status, read5) {
767
829
  const reason = tail_of(status);
768
830
  const waits = read5.waits?.get(number);
769
831
  if (reason !== void 0) {
770
832
  const tail = park_row_reason(number, reason, read5.is_backlog_live === true, waits);
771
- return { reason: { tail } };
833
+ return {
834
+ reason: { tail, ...status.outcome !== void 0 && { evidence_url: status.outcome.url } }
835
+ };
772
836
  }
773
837
  return is_stalled(status, read5.labels.get(number)) ? { reason: stalled_reason(number, read5, waits) } : stop_row_reason(status);
774
838
  }
839
+ function row_reason(number, status, read5) {
840
+ const pause = status.state === "parked" ? run_board_pause.reason_of(number, read5, status) : void 0;
841
+ return pause === void 0 ? ending_row_reason(number, status, read5) : { reason: pause };
842
+ }
775
843
  var run_board_ending_reason = {
776
844
  park_reason,
777
845
  park_row_reason,
778
- reason_of,
846
+ reason_of: reason_of2,
779
847
  recorded_of,
780
848
  row_reason,
781
849
  stalled_reason
@@ -965,9 +1033,18 @@ function kept_of(previous) {
965
1033
  };
966
1034
  }
967
1035
  function settled_as(previous, state) {
968
- return { state, started_ms: previous?.started_ms, ...kept_of(previous) };
1036
+ return {
1037
+ state,
1038
+ started_ms: previous?.started_ms,
1039
+ ...kept_of(previous),
1040
+ ...previous?.outcome !== void 0 && { outcome: previous.outcome }
1041
+ };
1042
+ }
1043
+ var OUTCOME_STATES = /* @__PURE__ */ new Set(["done", "already_done", "withdrawn"]);
1044
+ function with_outcome(status, outcome) {
1045
+ return outcome === void 0 || !OUTCOME_STATES.has(status.state) ? status : { ...status, outcome };
969
1046
  }
970
- var run_board_settle = { relaunch_of, settled_as };
1047
+ var run_board_settle = { relaunch_of, settled_as, with_outcome };
971
1048
 
972
1049
  // scripts/run/board/run-board-lane-stop.ts
973
1050
  var RELEASE_REASON = "run:release";
@@ -1208,7 +1285,13 @@ function settled(issue, status, read5) {
1208
1285
  return UNSETTLED_STATES.has(status.state) ? unsettled(issue, status, read5) : status;
1209
1286
  }
1210
1287
  function settle_closed(statuses, read5) {
1211
- return new Map([...statuses].map(([issue, status]) => [issue, settled(issue, status, read5)]));
1288
+ return new Map(
1289
+ [...statuses].map(([issue, status]) => {
1290
+ const closed = read5.closed.get(issue);
1291
+ const outcome = closed === void 0 || is_closed_before_launch(status, closed) ? void 0 : closed.outcome;
1292
+ return [issue, run_board_settle.with_outcome(settled(issue, status, read5), outcome)];
1293
+ })
1294
+ );
1212
1295
  }
1213
1296
  function is_run_stop(event) {
1214
1297
  return event?.kind === KIND6.STOP && run_event_scope.issue_named(event) === void 0;
@@ -1314,10 +1397,14 @@ function is_unlisted(issue, read5) {
1314
1397
  const open = read5.open_numbers;
1315
1398
  return open !== void 0 && !open.has(issue);
1316
1399
  }
1400
+ function is_closed_cached(issue, read5) {
1401
+ const closed = read5.closed.get(issue);
1402
+ return closed?.is_merged === true || closed?.outcome !== void 0;
1403
+ }
1317
1404
  function is_closed_candidate(issue, status, read5, is_plan_failed) {
1318
1405
  if (ALWAYS_ASKED_STATES.has(status.state)) return true;
1319
1406
  if (status.state === RUNNING_STATE) return is_plan_failed || is_unlisted(issue, read5);
1320
- return is_unlisted(issue, read5) && !read5.closed.has(issue);
1407
+ return is_unlisted(issue, read5) && !is_closed_cached(issue, read5);
1321
1408
  }
1322
1409
  function has_asked_since_end(state, local) {
1323
1410
  const { closed_answered_ms } = state;
@@ -1526,21 +1613,23 @@ function comment_question(bodies) {
1526
1613
  function read_question(number, read5) {
1527
1614
  return read5.decision_questions?.get(number) ?? read5.titles.get(number) ?? "";
1528
1615
  }
1529
- function reason_of2(number, reason, read5) {
1616
+ function reason_of3(number, reason, read5, status) {
1617
+ const pause = run_board_pause.reason_of(number, read5, status);
1618
+ if (pause !== void 0) return pause;
1530
1619
  const parts = parts_of(reason);
1531
1620
  const question = question_of(parts.question) ?? read_question(number, read5);
1532
1621
  if (question === "") return void 0;
1533
1622
  return { tail: `\u2192 decide: ${question}${note_of(parts.note)}` };
1534
1623
  }
1535
1624
  function plan_reason(number, plan) {
1536
- return reason_of2(number, void 0, { ...plan, titles: plan.context.titles });
1625
+ return reason_of3(number, void 0, { ...plan, titles: plan.context.titles });
1537
1626
  }
1538
1627
  function waiting_tail(reference, title, body = "") {
1539
1628
  const detail = HUMAN_DETAIL.exec(body)?.[1];
1540
1629
  const suffix = detail === void 0 ? "" : ` (${detail})`;
1541
1630
  return `\u2192 decide ${reference}: ${title}${suffix}`;
1542
1631
  }
1543
- var run_board_decision = { comment_question, plan_reason, reason_of: reason_of2, waiting_tail };
1632
+ var run_board_decision = { comment_question, plan_reason, reason_of: reason_of3, waiting_tail };
1544
1633
 
1545
1634
  // scripts/run/board/run-board-kind.ts
1546
1635
  var RELEASE_KINDS = [
@@ -1663,7 +1752,7 @@ function pr_reason(issue, prs) {
1663
1752
  pr
1664
1753
  };
1665
1754
  }
1666
- function reason_of3(child, plan) {
1755
+ function reason_of4(child, plan) {
1667
1756
  if (child.state !== "OPEN" || !is_waiting(plan, child.number)) return void 0;
1668
1757
  return pr_reason(child.number, plan.human_merge_prs);
1669
1758
  }
@@ -1696,7 +1785,7 @@ function overlay_of(plan, statuses) {
1696
1785
  statuses: new Map([...statuses].filter(([issue]) => !numbers.has(issue)))
1697
1786
  };
1698
1787
  }
1699
- var run_board_human_merge = { overlay_of, read_prs, reason_of: reason_of3, with_prs };
1788
+ var run_board_human_merge = { overlay_of, read_prs, reason_of: reason_of4, with_prs };
1700
1789
 
1701
1790
  // scripts/run/board/run-board-standing-waits.ts
1702
1791
  function is_waiting_on(edge, source) {
@@ -1781,7 +1870,7 @@ function touched_row(number, status, read5) {
1781
1870
  const is_asked = status.state === "parked" && run_board_human.is_decision(status.reason);
1782
1871
  const labels = read5.labels.get(number);
1783
1872
  return {
1784
- ...is_asked ? { reason: run_board_decision.reason_of(number, status.reason, read5) } : run_board_ending_reason.row_reason(number, status, read5),
1873
+ ...is_asked ? { reason: run_board_decision.reason_of(number, status.reason, read5, status) } : run_board_ending_reason.row_reason(number, status, read5),
1785
1874
  ...solo_flag(labels),
1786
1875
  number,
1787
1876
  title: read5.titles.get(number),
@@ -1836,10 +1925,10 @@ function waiting_children2(overlay) {
1836
1925
  (child) => is_untouched(child, overlay) && plan_state(child) === "waiting"
1837
1926
  );
1838
1927
  }
1839
- function layout_of(input_plan, input_statuses, reason_of6, earlier = run_board_earlier.NO_EARLIER) {
1928
+ function layout_of(input_plan, input_statuses, reason_of7, earlier = run_board_earlier.NO_EARLIER) {
1840
1929
  const current2 = run_board_human_merge.overlay_of(input_plan, input_statuses);
1841
1930
  const { plan, statuses } = current2;
1842
- const overlay = { plan, statuses, reason_of: reason_of6 };
1931
+ const overlay = { plan, statuses, reason_of: reason_of7 };
1843
1932
  const queue = plan.waves.waves.flat().filter((child) => is_untouched(child, overlay));
1844
1933
  const read5 = {
1845
1934
  ...plan,
@@ -2000,7 +2089,7 @@ function padded(text, width, emphasized) {
2000
2089
  var run_board_fresh = { aged, padded, paint, since, stage_of };
2001
2090
 
2002
2091
  // scripts/run/board/run-board-issue-count.ts
2003
- import { z as z2 } from "zod";
2092
+ import { z as z3 } from "zod";
2004
2093
  var ICON2 = "\u{1F4EE}";
2005
2094
  var LOCALE = "en-US";
2006
2095
  var COUNT_QUERY = `query($owner: String!, $name: String!) {
@@ -2009,10 +2098,10 @@ var COUNT_QUERY = `query($owner: String!, $name: String!) {
2009
2098
  closed: issues(states: CLOSED) { totalCount }
2010
2099
  }
2011
2100
  }`;
2012
- var total_schema = z2.object({ totalCount: z2.number() });
2013
- var search_schema = z2.object({ total_count: z2.number() });
2014
- var answer_schema = z2.object({
2015
- data: z2.object({ repository: z2.object({ open: total_schema, closed: total_schema }) })
2101
+ var total_schema = z3.object({ totalCount: z3.number() });
2102
+ var search_schema = z3.object({ total_count: z3.number() });
2103
+ var answer_schema = z3.object({
2104
+ data: z3.object({ repository: z3.object({ open: total_schema, closed: total_schema }) })
2016
2105
  }).transform(({ data }) => ({
2017
2106
  open: data.repository.open.totalCount,
2018
2107
  closed: data.repository.closed.totalCount
@@ -2055,24 +2144,24 @@ var run_board_issue_count = { count_of, part_of: part_of2, read_issue_count };
2055
2144
 
2056
2145
  // scripts/run/board/run-board-operation.ts
2057
2146
  import path from "node:path";
2058
- import { z as z4 } from "zod";
2147
+ import { z as z5 } from "zod";
2059
2148
 
2060
2149
  // scripts/run/board/run-board-operation-codex.ts
2061
- import { z as z3 } from "zod";
2062
- var CHANGES_SCHEMA = z3.array(z3.object({ path: z3.string() }));
2063
- var ITEM_SCHEMA = z3.object({
2064
- type: z3.enum(["item.started", "item.updated", "item.completed"]),
2065
- timestamp: z3.string(),
2066
- item: z3.object({
2067
- type: z3.enum(["command_execution", "file_change"]),
2068
- command: z3.string().optional(),
2150
+ import { z as z4 } from "zod";
2151
+ var CHANGES_SCHEMA = z4.array(z4.object({ path: z4.string() }));
2152
+ var ITEM_SCHEMA = z4.object({
2153
+ type: z4.enum(["item.started", "item.updated", "item.completed"]),
2154
+ timestamp: z4.string(),
2155
+ item: z4.object({
2156
+ type: z4.enum(["command_execution", "file_change"]),
2157
+ command: z4.string().optional(),
2069
2158
  changes: CHANGES_SCHEMA.optional()
2070
2159
  })
2071
2160
  });
2072
2161
  function input_of(item) {
2073
2162
  return item.type === "command_execution" ? { command: item.command } : { file_path: item.changes?.at(-1)?.path };
2074
2163
  }
2075
- function record_of(value) {
2164
+ function record_of2(value) {
2076
2165
  const record = ITEM_SCHEMA.safeParse(value).data;
2077
2166
  if (record === void 0) return void 0;
2078
2167
  const { item, timestamp } = record;
@@ -2083,7 +2172,7 @@ function record_of(value) {
2083
2172
  message: { content: [{ type: "tool_use", name: is_command ? "Bash" : "Edit", input }] }
2084
2173
  };
2085
2174
  }
2086
- var run_board_operation_codex = { record_of };
2175
+ var run_board_operation_codex = { record_of: record_of2 };
2087
2176
 
2088
2177
  // scripts/run/board/run-board-operation.ts
2089
2178
  var TARGET_LIMIT = 40;
@@ -2098,7 +2187,7 @@ var ASSIGNMENT = new RegExp(String.raw`^\w+=${VALUE}(?:\s*(?:&&|;)\s*|\s+|$)`, "
2098
2187
  var UNREAD_ASSIGNMENT = /^\w+=/u;
2099
2188
  var SPACES = /\s+/gu;
2100
2189
  var ASCII_HEAD = /^[ -~]*/u;
2101
- var INPUT_SCHEMA = z4.looseObject({ command: z4.string().optional(), file_path: z4.string().optional() }).catch({});
2190
+ var INPUT_SCHEMA = z5.looseObject({ command: z5.string().optional(), file_path: z5.string().optional() }).catch({});
2102
2191
  function ascii_head(text) {
2103
2192
  return (ASCII_HEAD.exec(text)?.[0] ?? "").trim();
2104
2193
  }
@@ -2112,7 +2201,8 @@ function without_assignments(command) {
2112
2201
  function command_target(command) {
2113
2202
  const [first = ""] = without_assignments(command.trim()).split(NEWLINE);
2114
2203
  if (UNREAD_ASSIGNMENT.test(first)) return "";
2115
- return cut(ascii_head(token_shape.redact(first).replaceAll(SPACES, " ")));
2204
+ const masked = home_tilde.mask(token_shape.redact(first));
2205
+ return cut(ascii_head(masked.replaceAll(SPACES, " ")));
2116
2206
  }
2117
2207
  function path_target(file_path, root) {
2118
2208
  const relative = root === void 0 ? void 0 : path.relative(root, path.resolve(root, file_path));
@@ -2167,12 +2257,12 @@ function pool_reason(waiting, people) {
2167
2257
  function running_of(running) {
2168
2258
  return `${String(running)} ${WORDS3.in_progress}`;
2169
2259
  }
2170
- function reason_of4(read5) {
2260
+ function reason_of5(read5) {
2171
2261
  if (read5.running > 0) return running_of(read5.running);
2172
2262
  return read5.waiting === void 0 ? void 0 : pool_reason(read5.waiting, read5.people);
2173
2263
  }
2174
2264
  function with_reason(line, read5) {
2175
- const reason = reason_of4(read5);
2265
+ const reason = reason_of5(read5);
2176
2266
  return reason === void 0 ? line : `${line}${REASON_SEPARATOR}${reason}`;
2177
2267
  }
2178
2268
  function latest_line(read5) {
@@ -2541,6 +2631,7 @@ function repo_linker(repo, link) {
2541
2631
  }
2542
2632
  function links_of(repo, link) {
2543
2633
  return {
2634
+ comment_link: link,
2544
2635
  link: linker(repo, link),
2545
2636
  pull_link: pull_linker(repo, link),
2546
2637
  repo_link: repo_linker(repo, link)
@@ -2771,7 +2862,7 @@ function wait_of(child, waits, read5, pool) {
2771
2862
  function reader(read5) {
2772
2863
  const current2 = { ...read5, ...run_board_human_merge.overlay_of(read5.plan, read5.statuses) };
2773
2864
  const pool = pool_of(current2);
2774
- return function reason_of6(child, waits) {
2865
+ return function reason_of7(child, waits) {
2775
2866
  return run_board_human_merge.reason_of(child, current2.plan) ?? stage_of2(child, current2) ?? planned_of(child, pool) ?? wait_of(child, waits, current2, pool);
2776
2867
  };
2777
2868
  }
@@ -3001,8 +3092,13 @@ function value_of(reason, header) {
3001
3092
  if (since_ms !== void 0) return run_board_labels.span_of(header.now_ms - since_ms);
3002
3093
  return pr_linked(reason.value ?? "", reason.pr, header);
3003
3094
  }
3095
+ function evidence_linked(text, url, header) {
3096
+ return header.comment_link?.(text, url) ?? text;
3097
+ }
3004
3098
  function tail_of2(row, cut2, header) {
3005
- return pr_linked(run_board_render_title.reason_text(row, cut2) ?? "", row.reason?.pr, header);
3099
+ const text = run_board_render_title.reason_text(row, cut2) ?? "";
3100
+ const url = row.reason?.evidence_url;
3101
+ return url === void 0 ? pr_linked(text, row.reason?.pr, header) : evidence_linked(text, url, header);
3006
3102
  }
3007
3103
  function ended_of(row, header) {
3008
3104
  const ended_ms = row.status?.ended_ms;
@@ -4823,7 +4919,7 @@ async function spin_to_second(spots, ports) {
4823
4919
  var run_board_spin = { REDRAW_MS, SPOT, spin_bytes, spin_to_second, spun };
4824
4920
 
4825
4921
  // scripts/run/board/run-board-thanks-read.ts
4826
- import { z as z5 } from "zod";
4922
+ import { z as z6 } from "zod";
4827
4923
 
4828
4924
  // scripts/run/board/run-board-thanks-csv.ts
4829
4925
  import { parse } from "csv-parse/sync";
@@ -4868,11 +4964,11 @@ var ROSTER_URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vR8Ia38Wiw6Kfy
4868
4964
  var RECORD_PREFIX = "josh-run-board-thanks-";
4869
4965
  var TTL_MINUTES = 5;
4870
4966
  var TTL_MS = TTL_MINUTES * MS_PER_MINUTE;
4871
- var thanker_schema = z5.object({ name: z5.string(), url: z5.string().optional() });
4872
- var record_schema = z5.object({ checked_ms: z5.number(), thanks: z5.array(thanker_schema) });
4967
+ var thanker_schema = z6.object({ name: z6.string(), url: z6.string().optional() });
4968
+ var record_schema2 = z6.object({ checked_ms: z6.number(), thanks: z6.array(thanker_schema) });
4873
4969
  function read_record(record_path) {
4874
4970
  const raw = stamp_file.read_stamp_text(record_path);
4875
- const parsed2 = raw === void 0 ? void 0 : json_value.parse_with(raw, record_schema);
4971
+ const parsed2 = raw === void 0 ? void 0 : json_value.parse_with(raw, record_schema2);
4876
4972
  if (parsed2 === void 0) return void 0;
4877
4973
  return {
4878
4974
  checked_ms: parsed2.checked_ms,
@@ -5021,7 +5117,7 @@ function earlier_here(local) {
5021
5117
  function planned_layout(state, input_plan, local, now_ms) {
5022
5118
  const plan = plan_here(input_plan, state, local);
5023
5119
  const statuses = planned_statuses(state, plan, local);
5024
- const reason_of6 = run_board_reason.reader({
5120
+ const reason_of7 = run_board_reason.reader({
5025
5121
  plan,
5026
5122
  statuses,
5027
5123
  events: local.events,
@@ -5030,7 +5126,7 @@ function planned_layout(state, input_plan, local, now_ms) {
5030
5126
  is_stopped: activity_here(local).is_stopped,
5031
5127
  now_ms
5032
5128
  });
5033
- return run_board_layout.layout_of(plan, statuses, reason_of6, earlier_here(local));
5129
+ return run_board_layout.layout_of(plan, statuses, reason_of7, earlier_here(local));
5034
5130
  }
5035
5131
  function layout_for(state, local, now_ms) {
5036
5132
  if (state.plan !== void 0) return planned_layout(state, state.plan, local, now_ms);
@@ -5515,11 +5611,11 @@ function held_reader(ports) {
5515
5611
  var run_board_held = { held_reader };
5516
5612
 
5517
5613
  // scripts/run/board/run-board-quota-spent.ts
5518
- import { z as z6 } from "zod";
5614
+ import { z as z7 } from "zod";
5519
5615
  var MS_PER_MINUTE3 = 6e4;
5520
5616
  var HALF = 2;
5521
- var CLAUDE_END = z6.looseObject({ type: z6.literal("result") });
5522
- var CODEX_END = z6.looseObject({ payload: z6.looseObject({ type: z6.literal("task_complete") }) });
5617
+ var CLAUDE_END = z7.looseObject({ type: z7.literal("result") });
5618
+ var CODEX_END = z7.looseObject({ payload: z7.looseObject({ type: z7.literal("task_complete") }) });
5523
5619
  function last_line(text) {
5524
5620
  const trimmed = text.trimEnd();
5525
5621
  return trimmed.slice(trimmed.lastIndexOf("\n") + 1);
@@ -5592,17 +5688,17 @@ var run_board_quota_spent = { claude_done, codex_done, per_lane_of, per_task_of,
5592
5688
 
5593
5689
  // scripts/run/board/run-board-quota-status.ts
5594
5690
  import { readFile } from "node:fs/promises";
5595
- import { z as z7 } from "zod";
5691
+ import { z as z8 } from "zod";
5596
5692
  var MS_PER_SECOND2 = 1e3;
5597
5693
  var MAX_PERCENTAGE = 100;
5598
- var WINDOW = z7.object({
5599
- used_percentage: z7.number().min(0).max(MAX_PERCENTAGE),
5600
- resets_at: z7.number().nonnegative()
5694
+ var WINDOW = z8.object({
5695
+ used_percentage: z8.number().min(0).max(MAX_PERCENTAGE),
5696
+ resets_at: z8.number().nonnegative()
5601
5697
  });
5602
- var RECORD = z7.object({
5698
+ var RECORD = z8.object({
5603
5699
  five_hour: WINDOW.nullable(),
5604
5700
  seven_day: WINDOW.nullable(),
5605
- at: z7.string()
5701
+ at: z8.string()
5606
5702
  });
5607
5703
  function window_of(minutes, window) {
5608
5704
  if (window === null) return [];
@@ -6734,12 +6830,12 @@ function post_of(before, after) {
6734
6830
  function is_post(value) {
6735
6831
  return typeof value === "object" && value !== null && "read" in value;
6736
6832
  }
6737
- function reason_of5(error) {
6833
+ function reason_of6(error) {
6738
6834
  const message = error instanceof Error ? error.message : String(error);
6739
6835
  return message.split("\n", 1)[0] ?? "";
6740
6836
  }
6741
6837
  function failed_of(error) {
6742
- return { failed: reason_of5(error) };
6838
+ return { failed: reason_of6(error) };
6743
6839
  }
6744
6840
  async function gather_round(state, ports, post) {
6745
6841
  try {
@@ -6782,7 +6878,7 @@ function listen(thread, worker, now) {
6782
6878
  else if (is_failed(value)) said_failed(thread, value.failed, now);
6783
6879
  });
6784
6880
  worker.on("error", (error) => {
6785
- fail(thread, worker, reason_of5(error), now);
6881
+ fail(thread, worker, reason_of6(error), now);
6786
6882
  });
6787
6883
  worker.on("exit", (code) => {
6788
6884
  fail(thread, worker, `exit ${String(code)}`, now);
@@ -6855,7 +6951,7 @@ function read_keys(input) {
6855
6951
  var run_board_keys = { CTRL_C, read_keys };
6856
6952
 
6857
6953
  // scripts/run/board/run-board-plan-shared.ts
6858
- import { z as z8 } from "zod";
6954
+ import { z as z9 } from "zod";
6859
6955
 
6860
6956
  // scripts/run/board/run-board-decision-graphql.ts
6861
6957
  var NODE_FIELDS = "number,title,body,state,labels,blockedBy";
@@ -6983,25 +7079,42 @@ async function blocker_of(reference, read5, seen) {
6983
7079
  );
6984
7080
  return blockers.find((blocker) => blocker !== void 0) ?? terminal_of(node);
6985
7081
  }
6986
- async function question_of2(number, repo, answered) {
7082
+ async function read_comments2(number, repo, answered) {
6987
7083
  const json = answered.get(number) ?? await git_gh_issue_read.issue_list_comments(
6988
7084
  String(number),
6989
7085
  void 0,
6990
7086
  repo,
6991
7087
  git_gh_issue_read.read_comments_conditionally
6992
7088
  );
6993
- const comments = await issue_read.parse_comments(json, repo);
6994
- const question = run_board_decision.comment_question(issue_read.trusted_bodies(comments ?? []));
6995
- return question === void 0 ? void 0 : [number, question];
7089
+ return await issue_read.parse_comments(json, repo) ?? [];
7090
+ }
7091
+ async function comments_of(number, repo, answered) {
7092
+ try {
7093
+ return await read_comments2(number, repo, answered);
7094
+ } catch {
7095
+ return [];
7096
+ }
7097
+ }
7098
+ async function question_of2(number, repo, answered) {
7099
+ const comments = await comments_of(number, repo, answered);
7100
+ const question = run_board_decision.comment_question(issue_read.trusted_bodies(comments));
7101
+ const issue_url2 = `https://github.com/${repo}/issues/${String(number)}`;
7102
+ return [number, { question, pause: run_board_pause.from_comments(comments, issue_url2) }];
7103
+ }
7104
+ function question_pair([number, value]) {
7105
+ return value.question === void 0 ? [] : [[number, value.question]];
6996
7106
  }
6997
7107
  async function questions_of(plan) {
6998
7108
  const { repo } = plan.context;
6999
- const numbers = [...plan.labels].filter(([, labels]) => has_label_name(labels, NEEDS_DECISION_LABEL)).map(([number]) => number);
7109
+ const numbers = [...plan.labels].filter(([, labels]) => has_parked_label(labels)).map(([number]) => number);
7000
7110
  const answered = await run_board_decision_graphql.read_comments(numbers, repo);
7001
7111
  const pairs = await Promise.all(
7002
7112
  numbers.map(async (number) => await question_of2(number, repo, answered))
7003
7113
  );
7004
- return new Map(pairs.filter((pair) => pair !== void 0));
7114
+ return {
7115
+ decision_questions: new Map(pairs.flatMap((pair) => question_pair(pair))),
7116
+ pause_reasons: new Map(pairs.map(([number, value]) => [number, value.pause]))
7117
+ };
7005
7118
  }
7006
7119
  async function wait_of2(child, read5) {
7007
7120
  if (read5.plan.withheld?.has(child.number) !== true) return void 0;
@@ -7030,13 +7143,13 @@ async function with_decisions(plan) {
7030
7143
  ...plan.waves.running ?? []
7031
7144
  ];
7032
7145
  const read5 = read_of3(plan, children2);
7033
- const [decision_questions, waits] = await Promise.all([
7146
+ const [questions, waits] = await Promise.all([
7034
7147
  questions_of(plan),
7035
7148
  Promise.all(children2.map(async (child) => await wait_of2(child, read5)))
7036
7149
  ]);
7037
7150
  return {
7038
7151
  ...plan,
7039
- decision_questions,
7152
+ ...questions,
7040
7153
  decision_waits: new Map(waits.filter((pair) => pair !== void 0))
7041
7154
  };
7042
7155
  }
@@ -7138,57 +7251,58 @@ var PLAN_CACHE = {
7138
7251
  ttl_ms: backlog_next_shared.NEXT_CACHE.ttl_ms
7139
7252
  };
7140
7253
  function map_of(value) {
7141
- const entries = z8.array(z8.tuple([z8.number(), value]));
7142
- const map = z8.map(z8.number(), z8.custom()).readonly();
7143
- return z8.codec(entries, map, {
7254
+ const entries = z9.array(z9.tuple([z9.number(), value]));
7255
+ const map = z9.map(z9.number(), z9.custom()).readonly();
7256
+ return z9.codec(entries, map, {
7144
7257
  decode: (pairs) => new Map(pairs),
7145
7258
  encode: (pairs) => [...pairs]
7146
7259
  });
7147
7260
  }
7148
- var number_set = z8.codec(z8.array(z8.number()), z8.set(z8.number()).readonly(), {
7261
+ var number_set = z9.codec(z9.array(z9.number()), z9.set(z9.number()).readonly(), {
7149
7262
  decode: (numbers) => new Set(numbers),
7150
7263
  encode: (numbers) => [...numbers]
7151
7264
  });
7152
- var optional_numbers = z8.array(z8.number()).optional();
7153
- var unknown_or_set = z8.codec(
7154
- z8.object({ numbers: optional_numbers }),
7155
- z8.custom(),
7265
+ var optional_numbers = z9.array(z9.number()).optional();
7266
+ var unknown_or_set = z9.codec(
7267
+ z9.object({ numbers: optional_numbers }),
7268
+ z9.custom(),
7156
7269
  {
7157
7270
  decode: ({ numbers }) => numbers === void 0 ? void 0 : new Set(numbers),
7158
7271
  encode: (numbers) => numbers === void 0 ? {} : { numbers: [...numbers] }
7159
7272
  }
7160
7273
  );
7161
- var string_set = z8.codec(z8.array(z8.string()), z8.set(z8.string()).readonly(), {
7274
+ var string_set = z9.codec(z9.array(z9.string()), z9.set(z9.string()).readonly(), {
7162
7275
  decode: (values) => new Set(values),
7163
7276
  encode: (values) => [...values]
7164
7277
  });
7165
- var names2 = z8.array(z8.string()).readonly();
7166
- var reference_schema = z8.object({ repo: z8.string(), number: z8.number() });
7167
- var child_schema = z8.object({
7168
- number: z8.number(),
7169
- repo: z8.string(),
7170
- state: z8.enum(["OPEN", "CLOSED"]),
7278
+ var names2 = z9.array(z9.string()).readonly();
7279
+ var reference_schema = z9.object({ repo: z9.string(), number: z9.number() });
7280
+ var child_schema = z9.object({
7281
+ number: z9.number(),
7282
+ repo: z9.string(),
7283
+ state: z9.enum(["OPEN", "CLOSED"]),
7171
7284
  labels: names2,
7172
- blocked_by: z8.array(reference_schema).readonly(),
7173
- body: z8.string().optional()
7285
+ blocked_by: z9.array(reference_schema).readonly(),
7286
+ body: z9.string().optional()
7174
7287
  });
7175
- var children = z8.array(child_schema).readonly();
7176
- var waves_schema = z8.object({
7177
- waves: z8.array(children).readonly(),
7288
+ var children = z9.array(child_schema).readonly();
7289
+ var waves_schema = z9.object({
7290
+ waves: z9.array(children).readonly(),
7178
7291
  unreached: children,
7179
7292
  running: children.exactOptional()
7180
7293
  });
7181
- var context_schema = z8.object({
7182
- repo: z8.string(),
7183
- titles: map_of(z8.string()),
7294
+ var context_schema = z9.object({
7295
+ repo: z9.string(),
7296
+ titles: map_of(z9.string()),
7184
7297
  open_numbers: unknown_or_set
7185
7298
  });
7186
- var board_plan_schema = z8.object({
7187
- decision_questions: map_of(z8.string()).optional(),
7188
- decision_waits: map_of(z8.string()).optional(),
7189
- human_merge_prs: map_of(z8.number()).optional(),
7299
+ var board_plan_schema = z9.object({
7300
+ pause_reasons: map_of(run_board_pause.record_schema).optional(),
7301
+ decision_questions: map_of(z9.string()).optional(),
7302
+ decision_waits: map_of(z9.string()).optional(),
7303
+ human_merge_prs: map_of(z9.number()).optional(),
7190
7304
  waves: waves_schema,
7191
- tracked: map_of(z8.number()),
7305
+ tracked: map_of(z9.number()),
7192
7306
  context: context_schema,
7193
7307
  labels: map_of(names2),
7194
7308
  declared: map_of(string_set).optional(),