@joshuafolkken/kit 1.3000.0 → 1.3044.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 (691) 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/.claude/skills/workflow-commands/progress-watcher.md +10 -8
  4. package/dist/.inputs-verified.json +1 -1
  5. package/dist/commands/adopt.js +12 -12
  6. package/dist/commands/auto-ok-judge-cli.js +18 -14
  7. package/dist/commands/auto-ok-main.js +42 -40
  8. package/dist/commands/backlog-budget-main.js +3 -3
  9. package/dist/commands/backlog-drive-cli.js +276 -188
  10. package/dist/commands/backlog-next-main.js +77 -75
  11. package/dist/commands/backlog-offer-main.js +80 -78
  12. package/dist/commands/backlog-plan-cli.js +96 -97
  13. package/dist/commands/backlog-triage-cli.js +94 -92
  14. package/dist/commands/backlogrun-cli.js +212 -206
  15. package/dist/commands/behavior-cli.js +12 -13
  16. package/dist/commands/bump-version-main.js +2 -2
  17. package/dist/commands/bytes-command.js +61 -22
  18. package/dist/commands/check-related.js +61 -60
  19. package/dist/commands/{chunk-X7PN54LZ.js → chunk-22DVQCP6.js} +16 -6
  20. package/dist/commands/{chunk-UTBVTCQN.js → chunk-24OATKOF.js} +301 -168
  21. package/dist/commands/{chunk-7GHOFHUS.js → chunk-24ZDAWML.js} +3 -3
  22. package/dist/commands/{chunk-HBNB3TLG.js → chunk-2BB5ZR2F.js} +13 -7
  23. package/dist/commands/{chunk-F22G3VDB.js → chunk-2BC33QPY.js} +1 -1
  24. package/dist/commands/{chunk-72EW7AVI.js → chunk-2BJJUTZA.js} +2 -2
  25. package/dist/commands/{chunk-XDQOWUVT.js → chunk-2CXT6MBR.js} +4 -4
  26. package/dist/commands/{chunk-TVJE67O2.js → chunk-2EZTYLO4.js} +6 -6
  27. package/dist/commands/{chunk-JLYW7CP6.js → chunk-2PHOLX62.js} +1 -1
  28. package/dist/commands/{chunk-6EU5ZCDP.js → chunk-2QM72JCJ.js} +23 -87
  29. package/dist/commands/{chunk-EFHSCUFN.js → chunk-2VFPUPSG.js} +2 -2
  30. package/dist/commands/{chunk-ATRMETHT.js → chunk-2XAH3MHV.js} +1 -1
  31. package/dist/commands/{chunk-T2E724HN.js → chunk-34JJYCIY.js} +2 -2
  32. package/dist/commands/{chunk-REMKUFAC.js → chunk-34KZDKQJ.js} +1 -1
  33. package/dist/commands/{chunk-GK2KY4MO.js → chunk-352KLSFX.js} +3 -3
  34. package/dist/commands/{chunk-7S6VRZOH.js → chunk-3AEDZZNL.js} +5 -5
  35. package/dist/commands/{chunk-KVJDDECB.js → chunk-3B2HEFNO.js} +2 -2
  36. package/dist/commands/{chunk-HZBTXKT2.js → chunk-3Z425MM3.js} +2 -2
  37. package/dist/commands/{chunk-J3G2R64I.js → chunk-3ZOX4G4U.js} +3 -3
  38. package/dist/commands/{chunk-LRS2OS5J.js → chunk-452HWOJ7.js} +2 -2
  39. package/dist/commands/{chunk-HRT4KWP4.js → chunk-475EFIJV.js} +1 -1
  40. package/dist/commands/{chunk-4HBVHYNL.js → chunk-47UZB54M.js} +3 -3
  41. package/dist/commands/{chunk-H4LYG37R.js → chunk-4DN4XVPL.js} +6 -6
  42. package/dist/commands/{chunk-TMLNI3YW.js → chunk-4HERA2GY.js} +1 -1
  43. package/dist/commands/{chunk-W6V4DWC5.js → chunk-4JI35CVO.js} +1 -1
  44. package/dist/commands/{chunk-YT342DRV.js → chunk-4L4LNWZ7.js} +2 -2
  45. package/dist/commands/{chunk-ZZAH3YQP.js → chunk-4N32QKJZ.js} +6 -6
  46. package/dist/commands/{chunk-GDUK5YPO.js → chunk-4NRSFLG7.js} +12 -12
  47. package/dist/commands/{chunk-O5QZ2S6X.js → chunk-4OKRPAUT.js} +4 -4
  48. package/dist/commands/{chunk-QDFDB4CF.js → chunk-4Q64PG46.js} +13 -13
  49. package/dist/commands/{chunk-HO52D6JY.js → chunk-4UDTQVDD.js} +14 -14
  50. package/dist/commands/{chunk-HPVLI26Z.js → chunk-4WR2LEZL.js} +6 -6
  51. package/dist/commands/{chunk-DP7WIGQ4.js → chunk-4ZJOC6OK.js} +4 -4
  52. package/dist/commands/{chunk-WTRDWEUQ.js → chunk-4ZQM4I7R.js} +12 -12
  53. package/dist/commands/{chunk-OTZJXU2R.js → chunk-54X37JEJ.js} +8 -8
  54. package/dist/commands/{chunk-A5V7EWIX.js → chunk-56KW5EOK.js} +2 -2
  55. package/dist/commands/chunk-5CG3XU3O.js +74 -0
  56. package/dist/commands/{chunk-FC33R5UN.js → chunk-5ESZLHDZ.js} +13 -15
  57. package/dist/commands/{chunk-OVA7STGP.js → chunk-5FBRMARM.js} +9 -9
  58. package/dist/commands/{chunk-SK2LJBFS.js → chunk-5PCK53WP.js} +3 -3
  59. package/dist/commands/{chunk-6NV2F7QH.js → chunk-5RG4S66L.js} +1 -1
  60. package/dist/commands/{chunk-JOARHU3M.js → chunk-5UJGACVN.js} +1 -1
  61. package/dist/commands/{chunk-NKOET4FB.js → chunk-5Y7B7FDL.js} +2 -2
  62. package/dist/commands/{chunk-XMBRXCIE.js → chunk-5Z6E5ZUV.js} +4 -4
  63. package/dist/commands/{chunk-RZ4OKKPM.js → chunk-5ZNUH4LV.js} +2 -2
  64. package/dist/commands/{chunk-7CHCZBNF.js → chunk-6CFHLMKM.js} +4 -4
  65. package/dist/commands/{chunk-TXXYC7EV.js → chunk-6DDK5XWK.js} +1 -1
  66. package/dist/commands/{chunk-2TQXCH2K.js → chunk-6GQX752S.js} +3 -3
  67. package/dist/commands/{chunk-RY6ZDHKB.js → chunk-6MAZ55GF.js} +107 -84
  68. package/dist/commands/{chunk-SNFLV7VV.js → chunk-6RUWU2SB.js} +2 -2
  69. package/dist/commands/{chunk-D4SZK7H2.js → chunk-6TIVDEKG.js} +2 -2
  70. package/dist/commands/{chunk-RIQ75QWR.js → chunk-6UCWAFQY.js} +55 -43
  71. package/dist/commands/{chunk-4D5KWMFL.js → chunk-6YURRFRU.js} +19 -19
  72. package/dist/commands/{chunk-7MOZEEFJ.js → chunk-6YVURZAJ.js} +1 -1
  73. package/dist/commands/{chunk-73JOEKIC.js → chunk-6Z4YZG7P.js} +5 -5
  74. package/dist/commands/{chunk-NJ53AWJU.js → chunk-77BIN247.js} +9 -9
  75. package/dist/commands/{chunk-MZHOPRI6.js → chunk-7ABHNNY3.js} +7 -7
  76. package/dist/commands/{chunk-6WTVAL4D.js → chunk-7C7FOKJK.js} +1 -1
  77. package/dist/commands/{chunk-KVSSLDA3.js → chunk-7HAGC6SW.js} +5 -5
  78. package/dist/commands/{chunk-IG22Y5MA.js → chunk-7KKUFLH5.js} +1 -1
  79. package/dist/commands/{chunk-ZQ3CKRMP.js → chunk-7MJYLUF4.js} +2 -2
  80. package/dist/commands/{chunk-6UGFS3EU.js → chunk-7NHZCI5Y.js} +11 -11
  81. package/dist/commands/{chunk-FB3D7CX5.js → chunk-7OQ56DVW.js} +5 -7
  82. package/dist/commands/{chunk-EK327QOS.js → chunk-7VWPGTZO.js} +10 -10
  83. package/dist/commands/{chunk-WSOF74K4.js → chunk-7YZXS3AK.js} +3 -3
  84. package/dist/commands/{chunk-N6TYL3B2.js → chunk-AAUDI7WJ.js} +2 -2
  85. package/dist/commands/{chunk-3GF52L5F.js → chunk-AC26ZUG5.js} +12 -24
  86. package/dist/commands/{chunk-EK2Y6B4X.js → chunk-ACZ52JPI.js} +7 -7
  87. package/dist/commands/{chunk-VD72V5VX.js → chunk-AJ65WNJB.js} +4 -4
  88. package/dist/commands/{chunk-MYWRGF5A.js → chunk-AK7SEO4Y.js} +2 -2
  89. package/dist/commands/{chunk-IBEKFLWG.js → chunk-ALDAS2WG.js} +9 -9
  90. package/dist/commands/{chunk-W32DIQEP.js → chunk-ARFBIJFS.js} +1 -1
  91. package/dist/commands/{chunk-F3WBEEYC.js → chunk-AVVMDVGO.js} +5 -5
  92. package/dist/commands/chunk-AXXEMVRJ.js +23 -0
  93. package/dist/commands/{chunk-GIGKMIPQ.js → chunk-B3M5WSGN.js} +1 -1
  94. package/dist/commands/{chunk-4Z5723GA.js → chunk-B7ZNIEDV.js} +5 -4
  95. package/dist/commands/{chunk-B3XFOHDX.js → chunk-BCUDQWYK.js} +10 -4
  96. package/dist/commands/{chunk-PR3JCPP7.js → chunk-BMKWSWWE.js} +1 -1
  97. package/dist/commands/{chunk-RZJAUVMI.js → chunk-BMM4RHCG.js} +2 -2
  98. package/dist/commands/{chunk-LAKVPOJQ.js → chunk-BMTYUJNT.js} +2 -2
  99. package/dist/commands/{chunk-DAJCUSPG.js → chunk-BRHPRDDV.js} +3 -3
  100. package/dist/commands/{chunk-UZAU6UI6.js → chunk-BRUBX64M.js} +2 -2
  101. package/dist/commands/{chunk-BFLFPKQQ.js → chunk-BTZJDHQT.js} +4 -4
  102. package/dist/commands/{chunk-AI5K4QJO.js → chunk-BYFC6MD2.js} +1 -1
  103. package/dist/commands/{chunk-JGTLNFFE.js → chunk-BYGJ3BCJ.js} +10 -10
  104. package/dist/commands/{chunk-5HWZFL4D.js → chunk-C54QXJD6.js} +51 -18
  105. package/dist/commands/{chunk-LMS6N6GE.js → chunk-CBAKBWSZ.js} +7 -7
  106. package/dist/commands/{chunk-7EAMUVIO.js → chunk-CFHRNTE5.js} +1 -1
  107. package/dist/commands/{chunk-UIWAMLQH.js → chunk-CGYDIYHD.js} +2 -2
  108. package/dist/commands/{chunk-4QYW2IL7.js → chunk-CHKYPF5O.js} +1 -1
  109. package/dist/commands/{chunk-5HCPSV45.js → chunk-CJBW6BWG.js} +8 -8
  110. package/dist/commands/chunk-CKUKK7JG.js +252 -0
  111. package/dist/commands/{chunk-4PES3BAA.js → chunk-CMHGDCGN.js} +3 -3
  112. package/dist/commands/{chunk-F6OWP2AY.js → chunk-CNGTHSUS.js} +22 -22
  113. package/dist/commands/{chunk-B2EA2HCY.js → chunk-COGKULQH.js} +4 -4
  114. package/dist/commands/{chunk-S7XWXG4M.js → chunk-CP2J4RV2.js} +175 -81
  115. package/dist/commands/{chunk-YGDNUTTI.js → chunk-CQUZ6TNQ.js} +2 -2
  116. package/dist/commands/chunk-CQZI7RIK.js +72 -0
  117. package/dist/commands/chunk-CVJHQOI3.js +153 -0
  118. package/dist/commands/{chunk-2MJ4OCDL.js → chunk-CWCKCZS6.js} +1 -1
  119. package/dist/commands/chunk-D5OHVIPM.js +17 -0
  120. package/dist/commands/{chunk-TPKFVVJQ.js → chunk-D6D6WQR6.js} +2 -2
  121. package/dist/commands/{chunk-5PAEXYIY.js → chunk-D7JRJI44.js} +69 -6
  122. package/dist/commands/{chunk-LOSOLCCW.js → chunk-D7OAU32Z.js} +1 -1
  123. package/dist/commands/{chunk-VZHC2I3T.js → chunk-DAAX7XDS.js} +8 -8
  124. package/dist/commands/{chunk-OHVAEJSM.js → chunk-DEZF7QZZ.js} +5 -5
  125. package/dist/commands/{chunk-CA6F5OXK.js → chunk-DYZOOWVW.js} +124 -21
  126. package/dist/commands/{chunk-TKGBF75Y.js → chunk-EDKOSZ3K.js} +5 -5
  127. package/dist/commands/{chunk-YPNTORQD.js → chunk-EFDVE5P5.js} +1 -1
  128. package/dist/commands/{chunk-EH3LVYOX.js → chunk-EGIHAEMT.js} +1 -1
  129. package/dist/commands/{chunk-7P4X4TQL.js → chunk-EKLU6QR7.js} +4 -4
  130. package/dist/commands/{chunk-ILQZFUDC.js → chunk-ELY76WAR.js} +2 -2
  131. package/dist/commands/{chunk-2VLHFILE.js → chunk-EM3HAZF6.js} +2 -2
  132. package/dist/commands/{chunk-F2HFWLQR.js → chunk-EMTZAGT5.js} +20 -1
  133. package/dist/commands/{chunk-GA4VIFHD.js → chunk-ERG4QRNG.js} +2 -2
  134. package/dist/commands/{chunk-ICEMFE2V.js → chunk-EUGNQCYK.js} +1 -1
  135. package/dist/commands/{chunk-3HU3LPIF.js → chunk-EXDFKKMH.js} +2 -2
  136. package/dist/commands/{chunk-ISPBJVXM.js → chunk-EXWB34R2.js} +7 -7
  137. package/dist/commands/{chunk-FNOSSXLG.js → chunk-EYMPBHDN.js} +2 -2
  138. package/dist/commands/{chunk-7V5UVKFG.js → chunk-EZ7IPKIH.js} +2 -2
  139. package/dist/commands/{chunk-KQWSENCT.js → chunk-F6IQHZYY.js} +3 -3
  140. package/dist/commands/{chunk-7ZECP3J6.js → chunk-FDS65XOJ.js} +5 -5
  141. package/dist/commands/{chunk-KXRFGPZD.js → chunk-FGG7V473.js} +21 -5
  142. package/dist/commands/{chunk-PZ6VWHOO.js → chunk-FHFWNNUC.js} +1 -1
  143. package/dist/commands/{chunk-XBRD2BDL.js → chunk-FJX7AENO.js} +2 -2
  144. package/dist/commands/{chunk-M42SLJCD.js → chunk-FKZ5E4JD.js} +4 -4
  145. package/dist/commands/{chunk-F2J6DGDM.js → chunk-FMZWRDKH.js} +8 -8
  146. package/dist/commands/{chunk-DSBK66US.js → chunk-FOKCRIAN.js} +10 -10
  147. package/dist/commands/{chunk-OI7KM4K3.js → chunk-FQGWO2ZH.js} +2 -2
  148. package/dist/commands/{chunk-2IESYBZH.js → chunk-FURNDIT3.js} +3 -3
  149. package/dist/commands/chunk-FVDQNMP6.js +93 -0
  150. package/dist/commands/{chunk-PZU6FZO6.js → chunk-FWU3H4TX.js} +1 -1
  151. package/dist/commands/{chunk-RYZ3RQRH.js → chunk-G3HBYHFA.js} +1 -1
  152. package/dist/commands/{chunk-HCA5QG2U.js → chunk-G4E4M2P4.js} +2 -2
  153. package/dist/commands/{chunk-VJLZ3IQQ.js → chunk-G5KSL2Q2.js} +1 -1
  154. package/dist/commands/{chunk-Y5ZW3KN5.js → chunk-G6XC7V6Y.js} +2 -2
  155. package/dist/commands/{chunk-73EBNBUW.js → chunk-GCPP5XIG.js} +1 -1
  156. package/dist/commands/{chunk-Q3463XNL.js → chunk-GITT5A5A.js} +3 -3
  157. package/dist/commands/{chunk-T2IO4LEB.js → chunk-GLC47H7I.js} +10 -10
  158. package/dist/commands/{chunk-GA6E4VGO.js → chunk-GUR54ELE.js} +1 -1
  159. package/dist/commands/{chunk-7IT23HIR.js → chunk-GY4DMCKS.js} +2 -2
  160. package/dist/commands/{chunk-PZ4ITSLG.js → chunk-H6JQRHDC.js} +3 -3
  161. package/dist/commands/{chunk-ZHZSZNE2.js → chunk-HATKF6VX.js} +2 -2
  162. package/dist/commands/{chunk-ELWNRE6E.js → chunk-HH3CVIFU.js} +5 -5
  163. package/dist/commands/{chunk-7GMTJDO2.js → chunk-HHMMGDMP.js} +6 -6
  164. package/dist/commands/{chunk-VD5674LW.js → chunk-HI5WPM6C.js} +2 -2
  165. package/dist/commands/{chunk-JUUBDYFZ.js → chunk-HQSWPRUF.js} +4 -4
  166. package/dist/commands/{chunk-ZAJD6T6E.js → chunk-HVCQYZVD.js} +2 -2
  167. package/dist/commands/chunk-HWEZRNPL.js +66 -0
  168. package/dist/commands/{chunk-J6GIVMXI.js → chunk-HX3FFIO5.js} +18 -3
  169. package/dist/commands/{chunk-GU5ML3Y3.js → chunk-HXDTA5VU.js} +13 -68
  170. package/dist/commands/{chunk-BNXE3NVB.js → chunk-I2KCGKJI.js} +1 -1
  171. package/dist/commands/{chunk-LC7SBONO.js → chunk-IAD4WLLI.js} +1 -1
  172. package/dist/commands/{chunk-WWC5L3AO.js → chunk-IB5TT73I.js} +2 -2
  173. package/dist/commands/{chunk-HOSZITJM.js → chunk-IBAYXCMU.js} +2 -2
  174. package/dist/commands/chunk-IGDJNXX2.js +49 -0
  175. package/dist/commands/{chunk-OJ4LGBVD.js → chunk-ILIITIMQ.js} +3 -3
  176. package/dist/commands/{chunk-CUR2WNYB.js → chunk-IRGDMSTI.js} +3 -3
  177. package/dist/commands/{chunk-PZTWQYRI.js → chunk-IYJEBWW5.js} +3 -3
  178. package/dist/commands/{chunk-A3D2XHOJ.js → chunk-J22PSIXR.js} +40 -9
  179. package/dist/commands/{chunk-O27H6NN6.js → chunk-J66YBAAM.js} +3 -5
  180. package/dist/commands/{chunk-P6RGQXHI.js → chunk-J6WKZRV2.js} +2 -2
  181. package/dist/commands/{chunk-NFEBQED3.js → chunk-J7IO3AYH.js} +2 -2
  182. package/dist/commands/{chunk-T57W3UWK.js → chunk-JAKC2BHX.js} +1 -1
  183. package/dist/commands/{chunk-3EO2XN3A.js → chunk-JCAQ7B6J.js} +4 -4
  184. package/dist/commands/{chunk-QQZOQ7AM.js → chunk-JFLFGLE4.js} +1 -1
  185. package/dist/commands/{chunk-ZDSDPKCD.js → chunk-JIGBNCDR.js} +1 -1
  186. package/dist/commands/{chunk-Q5N2J2UF.js → chunk-JJHWTFWQ.js} +5 -7
  187. package/dist/commands/{chunk-EI6JG5DF.js → chunk-JKOGWGQM.js} +1 -1
  188. package/dist/commands/{chunk-RK4HE5NW.js → chunk-JM6EVOFN.js} +4 -4
  189. package/dist/commands/{chunk-EBNIX2TC.js → chunk-JV24VP2O.js} +1 -1
  190. package/dist/commands/{chunk-BCK5LW4F.js → chunk-JVKXJ763.js} +3 -3
  191. package/dist/commands/{chunk-D5TAR6TV.js → chunk-JZHY7D6D.js} +1 -1
  192. package/dist/commands/{chunk-CRNPPKP2.js → chunk-JZK33TA5.js} +1 -1
  193. package/dist/commands/{chunk-UOAG2XQT.js → chunk-K275REYP.js} +3 -3
  194. package/dist/commands/{chunk-HESMKHEB.js → chunk-K4G3HOKS.js} +2 -2
  195. package/dist/commands/{chunk-L6XN3EXI.js → chunk-K64EIHD2.js} +1 -1
  196. package/dist/commands/{chunk-RINVPTA2.js → chunk-KCFOP5RI.js} +28 -28
  197. package/dist/commands/{chunk-O26Y2FOJ.js → chunk-KGE4AS2Y.js} +1 -1
  198. package/dist/commands/{chunk-EWA72KO7.js → chunk-KK2SL42W.js} +2 -2
  199. package/dist/commands/{chunk-MMXZKLDU.js → chunk-KK7TEL5G.js} +10 -4
  200. package/dist/commands/{chunk-UEURNXE5.js → chunk-KKIMVXAP.js} +2 -2
  201. package/dist/commands/{chunk-MAGJFH5T.js → chunk-KODXWMBX.js} +6 -6
  202. package/dist/commands/{chunk-D4HNS43Q.js → chunk-KPSKWTOS.js} +17 -17
  203. package/dist/commands/{chunk-VFJYOAOQ.js → chunk-KTV2HNWB.js} +2 -2
  204. package/dist/commands/{chunk-OWR2TCOY.js → chunk-KWYQR5MK.js} +5 -5
  205. package/dist/commands/{chunk-FNQW6NY7.js → chunk-KXK2A2HB.js} +6 -2
  206. package/dist/commands/{chunk-O5FVBIRI.js → chunk-KZ5BBBMO.js} +5 -5
  207. package/dist/commands/{chunk-JUJFIATR.js → chunk-KZ7HD37E.js} +6 -6
  208. package/dist/commands/{chunk-2YCKPX3A.js → chunk-KZZWPUJW.js} +1 -1
  209. package/dist/commands/{chunk-MYNM3YMR.js → chunk-L7DAL54N.js} +3 -3
  210. package/dist/commands/{chunk-NOXLKIPR.js → chunk-LAR76BFA.js} +1 -1
  211. package/dist/commands/{chunk-ZA3W73PF.js → chunk-LB557AHJ.js} +3 -3
  212. package/dist/commands/{chunk-LYEKT3IN.js → chunk-LEB2VP7F.js} +1 -1
  213. package/dist/commands/{chunk-WQJ7O3C3.js → chunk-LJXKVLYI.js} +1 -1
  214. package/dist/commands/{chunk-CHX4QTP4.js → chunk-LJZERYLG.js} +1 -1
  215. package/dist/commands/{chunk-PF22VUWB.js → chunk-LOOFYHUM.js} +76 -26
  216. package/dist/commands/{chunk-HIPO6HUG.js → chunk-LPSULLNK.js} +1 -1
  217. package/dist/commands/{chunk-G47ZNQVG.js → chunk-LR22UK5W.js} +1 -1
  218. package/dist/commands/{chunk-SV4FHQE7.js → chunk-LT7QSHR4.js} +14 -14
  219. package/dist/commands/{chunk-HIB5G2X6.js → chunk-LUXWDMKI.js} +7 -7
  220. package/dist/commands/{chunk-XH6BGVVP.js → chunk-LX7TIEMI.js} +9 -36
  221. package/dist/commands/{chunk-OGNTJ5JB.js → chunk-LYO6TX5L.js} +1 -1
  222. package/dist/commands/{chunk-JLREFWJ4.js → chunk-LZ5QXE5N.js} +6 -6
  223. package/dist/commands/{chunk-WW3TX742.js → chunk-LZPPSOTP.js} +4 -4
  224. package/dist/commands/{chunk-5WIZR5SC.js → chunk-M4UV3BEV.js} +11 -11
  225. package/dist/commands/{chunk-LNBUIOK6.js → chunk-M6JDU5EK.js} +4 -4
  226. package/dist/commands/{chunk-VZSJCFRT.js → chunk-MFBNNTBM.js} +4 -4
  227. package/dist/commands/{chunk-KHWTJ4F7.js → chunk-MI2OS6TL.js} +3 -3
  228. package/dist/commands/{chunk-VZCQZFPH.js → chunk-MLW4S35K.js} +19 -8
  229. package/dist/commands/{chunk-RIUPRMLW.js → chunk-MN425CU6.js} +1 -1
  230. package/dist/commands/{chunk-7W3D3WRW.js → chunk-MOIOSCZM.js} +2 -2
  231. package/dist/commands/{chunk-3BNNMJOT.js → chunk-MRORPFSO.js} +20 -320
  232. package/dist/commands/{chunk-LA5WTOAM.js → chunk-MUGTOJUL.js} +12 -12
  233. package/dist/commands/{chunk-L6LU2633.js → chunk-MVHPRYHE.js} +1 -1
  234. package/dist/commands/{chunk-EKCKCX5S.js → chunk-MWO6FOSZ.js} +123 -21
  235. package/dist/commands/{chunk-AVUGMOHZ.js → chunk-N7QTMTST.js} +2 -2
  236. package/dist/commands/{chunk-LMSS4ARB.js → chunk-NDBX7LSS.js} +1 -1
  237. package/dist/commands/{chunk-BEE7OAQ5.js → chunk-NDWZTWXV.js} +21 -2
  238. package/dist/commands/{chunk-6TESOL3L.js → chunk-NEGJ77RV.js} +7 -7
  239. package/dist/commands/{chunk-LCEJXF7A.js → chunk-NEGRE5VW.js} +4 -4
  240. package/dist/commands/{chunk-IXX4SXIP.js → chunk-NFPD2P3V.js} +1 -1
  241. package/dist/commands/chunk-NHIW7JE6.js +335 -0
  242. package/dist/commands/{chunk-CJSFC5YI.js → chunk-NILSN7A4.js} +7 -7
  243. package/dist/commands/{chunk-W4J6YTFE.js → chunk-NOLFSPOB.js} +2 -2
  244. package/dist/commands/chunk-NT67QTZO.js +65 -0
  245. package/dist/commands/{chunk-NJT5L6IC.js → chunk-NU7W6QGT.js} +33 -4
  246. package/dist/commands/chunk-NUR4FQHM.js +21 -0
  247. package/dist/commands/{chunk-OKKQI4ZG.js → chunk-OAAVY2JK.js} +1 -1
  248. package/dist/commands/chunk-OF4BY4N7.js +32 -0
  249. package/dist/commands/{chunk-W47I2KDY.js → chunk-OGS2DK7I.js} +3 -3
  250. package/dist/commands/{chunk-MS6Q3Z7V.js → chunk-OIPV3PWW.js} +6 -6
  251. package/dist/commands/{chunk-T33QDAWD.js → chunk-OIX2363L.js} +1 -1
  252. package/dist/commands/{chunk-GPMSYXYO.js → chunk-OJ65BZBV.js} +283 -15
  253. package/dist/commands/{chunk-34LAULSC.js → chunk-OKZWEVR4.js} +3 -3
  254. package/dist/commands/{chunk-2CXAVVST.js → chunk-OL6IF4JC.js} +1 -1
  255. package/dist/commands/{chunk-6JVNRY5A.js → chunk-OMPRILFH.js} +1 -1
  256. package/dist/commands/{chunk-VGHSZLYQ.js → chunk-OOWGH2RG.js} +1 -1
  257. package/dist/commands/{chunk-ERGZPWKP.js → chunk-OP2RFVLS.js} +1 -1
  258. package/dist/commands/{chunk-UU6GCJGM.js → chunk-ORKVN2LO.js} +2 -2
  259. package/dist/commands/{chunk-RHII5XI6.js → chunk-OSBWXZJ4.js} +24 -24
  260. package/dist/commands/{chunk-D3SHCUBC.js → chunk-OVWPZDWP.js} +2 -2
  261. package/dist/commands/{chunk-Z4HYBFZD.js → chunk-OWYK2BEJ.js} +108 -46
  262. package/dist/commands/{chunk-P4O67FP5.js → chunk-OX3VQLV2.js} +6 -6
  263. package/dist/commands/{chunk-L6TU7FC2.js → chunk-OZJP77UM.js} +4 -4
  264. package/dist/commands/{chunk-SNO7CY2B.js → chunk-P3H3DKTE.js} +2 -2
  265. package/dist/commands/{chunk-2OIX4JLA.js → chunk-P5SOYWH2.js} +3 -3
  266. package/dist/commands/{chunk-M4PEC7YW.js → chunk-PHLOTUB7.js} +54 -37
  267. package/dist/commands/{chunk-73KBUQKI.js → chunk-PTNQCCIB.js} +2 -2
  268. package/dist/commands/{chunk-4P2LCVGO.js → chunk-PTZEFQUX.js} +8 -8
  269. package/dist/commands/{chunk-DJVMC3U2.js → chunk-Q426ZSZ4.js} +1 -1
  270. package/dist/commands/{chunk-US6X7JXC.js → chunk-Q7EEIOAD.js} +4 -4
  271. package/dist/commands/{chunk-LE7TFPMU.js → chunk-QABRNGQV.js} +2 -2
  272. package/dist/commands/{chunk-NGKB632X.js → chunk-QDFVVRQP.js} +3 -3
  273. package/dist/commands/{chunk-36M2UV6C.js → chunk-QGATHT4S.js} +38 -4
  274. package/dist/commands/{chunk-DIB2Z2OS.js → chunk-QJRVDE7T.js} +1 -1
  275. package/dist/commands/{chunk-KUJQWO6M.js → chunk-QKTTKAXM.js} +2 -2
  276. package/dist/commands/{chunk-DXZW4V7J.js → chunk-QMDKDQKW.js} +3 -3
  277. package/dist/commands/{chunk-VW5SGE7A.js → chunk-QOSC5RKD.js} +1 -1
  278. package/dist/commands/{chunk-ENLWXAHD.js → chunk-QV5FKMOU.js} +1 -1
  279. package/dist/commands/{chunk-32SNWQJP.js → chunk-R2THGPI3.js} +2 -2
  280. package/dist/commands/{chunk-RVHBWSIG.js → chunk-R54Z2Z3X.js} +2 -2
  281. package/dist/commands/{chunk-CJAA5GAF.js → chunk-RG53UFNW.js} +15 -15
  282. package/dist/commands/{chunk-HJKZDDDI.js → chunk-RHKCWJQX.js} +1 -1
  283. package/dist/commands/{chunk-RPDWFUQO.js → chunk-RKIAX4DZ.js} +36 -84
  284. package/dist/commands/{chunk-LE2T3FGJ.js → chunk-RLBFEHHC.js} +2 -4
  285. package/dist/commands/{chunk-5GBZ43UA.js → chunk-RMDLFLPE.js} +1 -1
  286. package/dist/commands/{chunk-U2UH4VM4.js → chunk-RN2YDNLF.js} +2 -2
  287. package/dist/commands/{chunk-GQHUFNXN.js → chunk-RRAIRS2T.js} +1 -1
  288. package/dist/commands/{chunk-DRCTDVI2.js → chunk-RUQY5TS3.js} +3 -3
  289. package/dist/commands/{chunk-WGULS5DA.js → chunk-RW64VHEB.js} +1 -0
  290. package/dist/commands/{chunk-4G7NKNAZ.js → chunk-RXYMJPJB.js} +3 -3
  291. package/dist/commands/{chunk-B33BTNB4.js → chunk-S4M6UWR2.js} +21 -5
  292. package/dist/commands/{chunk-4Q4FXBUQ.js → chunk-SASX3W2M.js} +2 -2
  293. package/dist/commands/{chunk-TIXJY22D.js → chunk-SJ2ZN575.js} +5 -5
  294. package/dist/commands/{chunk-NSZTSCBW.js → chunk-SP7DKYGU.js} +13 -13
  295. package/dist/commands/{chunk-T3FD3Q73.js → chunk-SRG6PKVS.js} +1 -1
  296. package/dist/commands/{chunk-QA22PBCJ.js → chunk-SSL6A3Y4.js} +3 -3
  297. package/dist/commands/{chunk-4BEIYKI2.js → chunk-SV4FZR24.js} +2 -0
  298. package/dist/commands/{chunk-HZSQI6TD.js → chunk-SVTS7ACS.js} +2 -2
  299. package/dist/commands/{chunk-F7XLEK55.js → chunk-SVV4U5AR.js} +1 -1
  300. package/dist/commands/{chunk-RRQFITJE.js → chunk-SXJM4DZ5.js} +1 -1
  301. package/dist/commands/{chunk-OIDMJASD.js → chunk-SYB3M632.js} +1 -1
  302. package/dist/commands/{chunk-UJOZ2MGX.js → chunk-SYOXIKB7.js} +6 -6
  303. package/dist/commands/{chunk-5SB37YDW.js → chunk-SZG5HDNP.js} +3 -3
  304. package/dist/commands/{chunk-R2CF6VZE.js → chunk-T4F33UKZ.js} +4 -4
  305. package/dist/commands/{chunk-ESQEEL4O.js → chunk-TAEGXID2.js} +2 -2
  306. package/dist/commands/chunk-TEPYEUYG.js +585 -0
  307. package/dist/commands/{chunk-LUMCYDGE.js → chunk-TFLHYC2F.js} +2 -2
  308. package/dist/commands/{chunk-V5OIPYA6.js → chunk-TJKM56WJ.js} +4 -4
  309. package/dist/commands/{chunk-CYQ3ZF7R.js → chunk-TLAB552K.js} +86 -13
  310. package/dist/commands/{chunk-ST32OGPY.js → chunk-TP6L4W3W.js} +5 -5
  311. package/dist/commands/{chunk-C26LKDBE.js → chunk-TR7WWYD5.js} +1 -1
  312. package/dist/commands/{chunk-PWYXY46Y.js → chunk-TYNH2R66.js} +15 -15
  313. package/dist/commands/{chunk-AZUE65NT.js → chunk-U5P6G3UV.js} +2 -2
  314. package/dist/commands/{chunk-REPANBLS.js → chunk-U7Y6RKLK.js} +1 -1
  315. package/dist/commands/{chunk-55I7OYHI.js → chunk-UIMMWH7U.js} +1 -1
  316. package/dist/commands/{chunk-72J2G2E7.js → chunk-UKBBWMLE.js} +20 -20
  317. package/dist/commands/{chunk-VTLL6CKO.js → chunk-UNMSZGSG.js} +14 -14
  318. package/dist/commands/chunk-UOVUUVDK.js +18 -0
  319. package/dist/commands/{chunk-JNWHX25C.js → chunk-URDT2O2K.js} +1 -1
  320. package/dist/commands/{chunk-FGZQSSGH.js → chunk-UREXZJDB.js} +1 -1
  321. package/dist/commands/{chunk-O4WBADCX.js → chunk-UTHUX7VU.js} +3 -3
  322. package/dist/commands/{chunk-PDDKRHHS.js → chunk-V5OUZFWK.js} +3 -3
  323. package/dist/commands/{chunk-N4O5I55P.js → chunk-VCPGFBMN.js} +8 -8
  324. package/dist/commands/{chunk-WN7NK3NY.js → chunk-VGPIQNDB.js} +1 -1
  325. package/dist/commands/{chunk-HOGFJHBT.js → chunk-VJS2MCLA.js} +1 -1
  326. package/dist/commands/{chunk-4YI4SLRJ.js → chunk-VK6D5CWA.js} +8 -8
  327. package/dist/commands/{chunk-4LWRCPS5.js → chunk-VOF3N4WO.js} +3 -3
  328. package/dist/commands/{chunk-AM44D7NF.js → chunk-VQRT32JB.js} +1 -1
  329. package/dist/commands/{chunk-AS3GWVAN.js → chunk-VQVPAVQ3.js} +1 -1
  330. package/dist/commands/{chunk-6VTJO5L2.js → chunk-VV4TQYGD.js} +3 -3
  331. package/dist/commands/{chunk-WIE7VUBE.js → chunk-W7DRUOF7.js} +5 -5
  332. package/dist/commands/{chunk-HH2KDLTP.js → chunk-WAEN2RTT.js} +2 -2
  333. package/dist/commands/{chunk-NKKH3PBE.js → chunk-WB4T3VY2.js} +18 -1
  334. package/dist/commands/{chunk-DNJC7X73.js → chunk-WCEUMOKK.js} +2 -2
  335. package/dist/commands/{chunk-BK6Q4VCA.js → chunk-WTH6NTXU.js} +4 -4
  336. package/dist/commands/{chunk-WG6GYBRJ.js → chunk-WWVYEHQT.js} +2 -1
  337. package/dist/commands/{chunk-P4CWLRT2.js → chunk-X3TNPALI.js} +1 -1
  338. package/dist/commands/{chunk-LZNYHWRO.js → chunk-XC6GG5JR.js} +3 -3
  339. package/dist/commands/{chunk-RI7EQYKL.js → chunk-XFWI6WHH.js} +2 -2
  340. package/dist/commands/{chunk-BY3POLIQ.js → chunk-XHGWMD3L.js} +7 -7
  341. package/dist/commands/{chunk-BPSJSHYD.js → chunk-XI2ABCRX.js} +2 -2
  342. package/dist/commands/{chunk-TS4ZK46L.js → chunk-XKSUBUIH.js} +5 -5
  343. package/dist/commands/{chunk-K7GL3BGI.js → chunk-XPBF5DG3.js} +4 -4
  344. package/dist/commands/{chunk-6SKMZGER.js → chunk-XUMYPESL.js} +20 -8
  345. package/dist/commands/{chunk-QS5USD4T.js → chunk-XXC32PVL.js} +5 -4
  346. package/dist/commands/{chunk-ORSI7Y55.js → chunk-XXN2EZBY.js} +1 -1
  347. package/dist/commands/{chunk-IZVM2TTH.js → chunk-XZQWEVR3.js} +2 -2
  348. package/dist/commands/{chunk-E3CXOVPQ.js → chunk-Y27PTXXI.js} +1 -1
  349. package/dist/commands/{chunk-337QQM4C.js → chunk-Y4EBUI6M.js} +106 -5
  350. package/dist/commands/{chunk-WRX3MINT.js → chunk-YAU3LYNF.js} +1 -1
  351. package/dist/commands/{chunk-JB7R3A4A.js → chunk-YDURQICF.js} +4 -4
  352. package/dist/commands/{chunk-RX5JSPPH.js → chunk-YGFOGA7C.js} +11 -11
  353. package/dist/commands/{chunk-S6SXMBF2.js → chunk-YHJ2AJMA.js} +2 -2
  354. package/dist/commands/{chunk-MVPUQLN5.js → chunk-YM77CF4D.js} +4 -4
  355. package/dist/commands/{chunk-ZYIMQHCB.js → chunk-YNPRJCEO.js} +6 -6
  356. package/dist/commands/{chunk-3UKJFWKS.js → chunk-YTBQAD5W.js} +3 -3
  357. package/dist/commands/{chunk-KIVOZY2J.js → chunk-ZBZ5DDCH.js} +66 -64
  358. package/dist/commands/{chunk-TAPDXK34.js → chunk-ZLRUHSOP.js} +1 -1
  359. package/dist/commands/{chunk-XYAK53TK.js → chunk-ZNR75OXP.js} +2 -1
  360. package/dist/commands/{chunk-CADFBQJJ.js → chunk-ZSOR4ISJ.js} +4 -4
  361. package/dist/commands/{chunk-6NRTLH6I.js → chunk-ZYFHYQA7.js} +1 -1
  362. package/dist/commands/{chunk-Q7TV3OV6.js → chunk-ZZFFSQF4.js} +4 -4
  363. package/dist/commands/{chunk-PDAY76AN.js → chunk-ZZULXNC2.js} +1 -1
  364. package/dist/commands/{chunk-5Y7QQYTU.js → chunk-ZZXO6TFH.js} +1 -1
  365. package/dist/commands/code-symbol-cli.js +4 -4
  366. package/dist/commands/codex-hook-adapter.js +99 -100
  367. package/dist/commands/command-derive.js +10 -10
  368. package/dist/commands/cost-audit-main.js +94 -92
  369. package/dist/commands/cspell-cached.js +24 -23
  370. package/dist/commands/defect-origin-main.js +19 -18
  371. package/dist/commands/defect-report-main.js +15 -14
  372. package/dist/commands/disposition-cli.js +67 -64
  373. package/dist/commands/doctor.js +3 -3
  374. package/dist/commands/document-read-cli.js +89 -9
  375. package/dist/commands/document-section-main.js +89 -9
  376. package/dist/commands/edit-files-cli.js +1 -1
  377. package/dist/commands/effect-audit-cli.js +20 -19
  378. package/dist/commands/epic-audit-main.js +55 -53
  379. package/dist/commands/epic-bundle-main.js +87 -85
  380. package/dist/commands/epic-check.js +16 -15
  381. package/dist/commands/epic-main.js +93 -91
  382. package/dist/commands/epic-next-main.js +51 -49
  383. package/dist/commands/format-edited-cli.js +30 -32
  384. package/dist/commands/format.js +11 -10
  385. package/dist/commands/fresh-machine-cli.js +6 -6
  386. package/dist/commands/git-followup-workflow.js +137 -122
  387. package/dist/commands/git-workflow.js +28 -27
  388. package/dist/commands/github-release-cli.js +26 -3
  389. package/dist/commands/hook-ledger-cli.js +74 -126
  390. package/dist/commands/init-main.js +20 -19
  391. package/dist/commands/inputs.json +1909 -1878
  392. package/dist/commands/issue-ack-cli.js +5 -5
  393. package/dist/commands/issue-already-done-cli.js +63 -58
  394. package/dist/commands/issue-body-cli.js +44 -42
  395. package/dist/commands/issue-cite-main.js +11 -10
  396. package/dist/commands/issue-comment-main.js +15 -11
  397. package/dist/commands/issue-consolidate-cli.js +31 -30
  398. package/dist/commands/issue-file-main.js +114 -110
  399. package/dist/commands/issue-fold-existing-cli.js +88 -86
  400. package/dist/commands/issue-fold-main.js +26 -25
  401. package/dist/commands/issue-lint-main.js +38 -37
  402. package/dist/commands/issue-measured-cli.js +66 -61
  403. package/dist/commands/issue-plan-cli.js +103 -101
  404. package/dist/commands/issue-premise-unmet-cli.js +66 -61
  405. package/dist/commands/issue-priority-cli.js +13 -12
  406. package/dist/commands/issue-read-main.js +18 -17
  407. package/dist/commands/issue-release-class-cli.js +12 -11
  408. package/dist/commands/issue-release-main.js +13 -12
  409. package/dist/commands/issue-scout-main.js +89 -87
  410. package/dist/commands/issue-spill-main.js +114 -110
  411. package/dist/commands/issue-state-main.js +16 -15
  412. package/dist/commands/issue-tick-cli.js +14 -13
  413. package/dist/commands/josh-completion.js +10 -10
  414. package/dist/commands/lane-adopt-cli.js +19 -19
  415. package/dist/commands/lane-breakdown-cli.js +154 -126
  416. package/dist/commands/lane-cli.js +131 -125
  417. package/dist/commands/lane-launch-main.js +17 -17
  418. package/dist/commands/lane-limit-cli.js +81 -79
  419. package/dist/commands/lane-measure-cli.js +246 -130
  420. package/dist/commands/lane-pause-cli.js +15 -15
  421. package/dist/commands/lane-plan-cli.js +108 -101
  422. package/dist/commands/lane-resolve-cli.js +20 -19
  423. package/dist/commands/lane-restart-cli.js +124 -118
  424. package/dist/commands/lane-why-cli.js +85 -82
  425. package/dist/commands/lane-withdraw-cli.js +49 -48
  426. package/dist/commands/latest-corepack.js +3 -3
  427. package/dist/commands/latest-if-required-cli.js +9 -9
  428. package/dist/commands/latest-scope-main.js +5 -5
  429. package/dist/commands/latest-update.js +3 -3
  430. package/dist/commands/lines-command.js +3 -3
  431. package/dist/commands/lint-parallel-main.js +32 -31
  432. package/dist/commands/lint-related.js +79 -60
  433. package/dist/commands/lint-rule.js +32 -31
  434. package/dist/commands/lockfile-policy.js +11 -11
  435. package/dist/commands/main-merge-main.js +5 -5
  436. package/dist/commands/main-sync-main.js +5 -5
  437. package/dist/commands/managed-config-scope-cli.js +3 -3
  438. package/dist/commands/measure-rerun-cli.js +10 -10
  439. package/dist/commands/metrics-command.js +91 -58
  440. package/dist/commands/observation-record-cli.js +3 -3
  441. package/dist/commands/observations-flush-cli.js +27 -25
  442. package/dist/commands/oracle-list-cli.js +2 -2
  443. package/dist/commands/overrides-check.js +4 -4
  444. package/dist/commands/package-scout-cli.js +67 -26
  445. package/dist/commands/plan-consumers-main.js +4 -4
  446. package/dist/commands/plan-scaffold-cli.js +132 -91
  447. package/dist/commands/pr-classification-main.js +3 -3
  448. package/dist/commands/pre-commit-lint.js +11 -12
  449. package/dist/commands/pre-commit-type-check.js +25 -24
  450. package/dist/commands/pre-push-unit.js +33 -33
  451. package/dist/commands/pretool-guard-cli.js +90 -91
  452. package/dist/commands/project-profile-cli.js +5 -4
  453. package/dist/commands/propagate.js +15 -15
  454. package/dist/commands/prose-stale-cli.js +20 -19
  455. package/dist/commands/publishable-range-check.js +4 -4
  456. package/dist/commands/read-files-cli.js +2 -2
  457. package/dist/commands/read-set-cli.js +61 -24
  458. package/dist/commands/refactor-scan-cli.js +6 -6
  459. package/dist/commands/release-cli.js +64 -36
  460. package/dist/commands/release-scope-main.js +19 -18
  461. package/dist/commands/rename-cli.js +27 -29
  462. package/dist/commands/reserved-run.js +3 -3
  463. package/dist/commands/retrospective-cli.js +104 -102
  464. package/dist/commands/review-attest-cli.js +6 -6
  465. package/dist/commands/review-brief-main.js +127 -109
  466. package/dist/commands/review-findings-cli.js +2 -2
  467. package/dist/commands/review-pair-cli.js +110 -84
  468. package/dist/commands/review-record-main.js +108 -83
  469. package/dist/commands/review-round2-cli.js +46 -45
  470. package/dist/commands/review-stops-cli.js +16 -16
  471. package/dist/commands/review-submit-cli.js +127 -109
  472. package/dist/commands/rule-list.js +58 -60
  473. package/dist/commands/rule-value-cli.js +226 -74
  474. package/dist/commands/run-add-cli.js +28 -27
  475. package/dist/commands/run-board-main.js +136 -132
  476. package/dist/commands/run-carry-cli.js +127 -124
  477. package/dist/commands/run-chain-cli.js +116 -93
  478. package/dist/commands/run-cut-cli.js +124 -119
  479. package/dist/commands/run-ending-cli.js +19 -22
  480. package/dist/commands/run-entry-cli.js +183 -180
  481. package/dist/commands/run-event-cli.js +5 -5
  482. package/dist/commands/run-handoff-cli.js +52 -28
  483. package/dist/commands/run-handoff-lanes-cli.js +15 -15
  484. package/dist/commands/run-hold-main.js +64 -62
  485. package/dist/commands/run-liveness-cli.js +11 -11
  486. package/dist/commands/run-merge-main.js +119 -116
  487. package/dist/commands/run-next-cli.js +87 -86
  488. package/dist/commands/run-park-cli.js +111 -92
  489. package/dist/commands/run-pause-cli.js +147 -133
  490. package/dist/commands/run-pickup-cli.js +13 -13
  491. package/dist/commands/run-prep-main.js +83 -82
  492. package/dist/commands/run-prime-cli.js +107 -87
  493. package/dist/commands/run-progress-main.js +123 -107
  494. package/dist/commands/run-report-cli.js +25 -24
  495. package/dist/commands/run-review-cli.js +168 -149
  496. package/dist/commands/run-ship-cli.js +208 -203
  497. package/dist/commands/run-ship-evidence-cli.js +38 -37
  498. package/dist/commands/run-ship-wait-main.js +40 -37
  499. package/dist/commands/run-split-cli.js +127 -125
  500. package/dist/commands/run-stale-main.js +36 -35
  501. package/dist/commands/run-status-cli.js +16 -15
  502. package/dist/commands/run-step-cli.js +173 -164
  503. package/dist/commands/run-tail-cli.js +1 -1
  504. package/dist/commands/run-tidy-main.js +30 -29
  505. package/dist/commands/run-wake-main.js +137 -119
  506. package/dist/commands/run-watcher-guard-cli.js +30 -29
  507. package/dist/commands/secretlint-scan.js +2 -2
  508. package/dist/commands/selfcheck-cli.js +27 -26
  509. package/dist/commands/session-language-main.js +48 -28
  510. package/dist/commands/sonar-hotspots-cli.js +3 -3
  511. package/dist/commands/split-assess-cli.js +24 -23
  512. package/dist/commands/split-child-recover-cli.js +13 -12
  513. package/dist/commands/start.js +37 -35
  514. package/dist/commands/stash-pop-main.js +3 -3
  515. package/dist/commands/stash-push-main.js +3 -3
  516. package/dist/commands/stop-guard.js +144 -143
  517. package/dist/commands/sync-main.js +11 -10
  518. package/dist/commands/telegram-test-main.js +5 -5
  519. package/dist/commands/test-declared.js +9 -8
  520. package/dist/commands/test-e2e-guard.js +23 -22
  521. package/dist/commands/test-pinned-main.js +26 -25
  522. package/dist/commands/test-reach-cli.js +15 -14
  523. package/dist/commands/test-red-main.js +5 -5
  524. package/dist/commands/{test-related-ZT2AO62I.js → test-related-ZCNC46MS.js} +31 -31
  525. package/dist/commands/test-related-main.js +51 -50
  526. package/dist/commands/test-unit-guard-main.js +9 -8
  527. package/dist/commands/time-cli.js +24 -27
  528. package/dist/commands/time-density-cli.js +8 -9
  529. package/dist/commands/tree-status-cli.js +4 -4
  530. package/dist/commands/type-check-command.js +8 -7
  531. package/dist/commands/ui-shot-cli.js +4 -4
  532. package/dist/commands/uninstall.js +20 -19
  533. package/dist/commands/unused-members-cli.js +9 -8
  534. package/dist/commands/upstream-interrupt-main.js +115 -111
  535. package/dist/commands/verification-gate.js +46 -46
  536. package/dist/commands/version-check.js +5 -5
  537. package/dist/hooks/{chunk-LWD43Z3C.js → chunk-5CUXGQT6.js} +1667 -107
  538. package/dist/hooks/{chunk-4YXV2REH.js → chunk-5R5YFQR5.js} +8 -8
  539. package/dist/hooks/{chunk-LKQBEKBI.js → chunk-6RLY27FT.js} +8 -8
  540. package/dist/hooks/{chunk-CICKRHTB.js → chunk-AO4TOV4V.js} +119 -2679
  541. package/dist/hooks/{chunk-NUPVO7RI.js → chunk-G5WSPYJ6.js} +4296 -1687
  542. package/dist/hooks/{chunk-UU4PTPEZ.js → chunk-HHIVWGHX.js} +250 -125
  543. package/dist/hooks/{chunk-P7BPAU26.js → chunk-IURJANNZ.js} +2 -2
  544. package/dist/hooks/{chunk-6RR6JZSB.js → chunk-OV22V63P.js} +357 -1744
  545. package/dist/hooks/{chunk-RQXECHAS.js → chunk-SXABK6UV.js} +57 -45
  546. package/dist/hooks/codex-hook-adapter.js +11 -11
  547. package/dist/hooks/daemon.js +1053 -690
  548. package/dist/hooks/format-edited.js +5 -5
  549. package/dist/hooks/inputs.json +542 -527
  550. package/dist/hooks/pretool-guard.js +7 -7
  551. package/dist/hooks/session-lang.js +293 -16
  552. package/dist/hooks/stop-guard.js +225 -48
  553. package/dist/inputs.json +65 -65
  554. package/dist/josh.js +73 -19
  555. package/dist/self-sync-guard/index.js +18 -1
  556. package/dist/version/index.js +18 -1
  557. package/package.json +3 -3
  558. package/pnpm-workspace.yaml +5 -13
  559. package/prompts/collaboration-workflow/issue-template.en.md +56 -52
  560. package/scripts/agent/agent-argv.ts +20 -6
  561. package/scripts/agent/agent-phase-profile.ts +89 -0
  562. package/scripts/agent/agent-role-profile.ts +3 -71
  563. package/scripts/agent/agent-ship-cap.ts +44 -0
  564. package/scripts/agent/agent-worker-profile.ts +154 -0
  565. package/scripts/agent/claude-agent-argv.ts +1 -1
  566. package/scripts/agent/lane-instructions.ts +29 -3
  567. package/scripts/auto-ok/auto-ok-judge-cli.ts +3 -0
  568. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -1
  569. package/scripts/auto-ok/auto-ok-judge.ts +4 -2
  570. package/scripts/backlog/backlog-drive-escalate.ts +115 -0
  571. package/scripts/backlog/backlog-drive-stalled-retry.ts +48 -10
  572. package/scripts/document/document-scan.ts +35 -1
  573. package/scripts/gh/git-pr-checks-failed.ts +24 -0
  574. package/scripts/hooks/implementation-shell-deny-expansion.ts +20 -0
  575. package/scripts/hooks/implementation-shell-deny-git.ts +128 -0
  576. package/scripts/hooks/implementation-shell-deny.ts +14 -138
  577. package/scripts/hooks/implementation-shell.ts +28 -5
  578. package/scripts/hooks/step-zero-notice.ts +9 -6
  579. package/scripts/hooks/stop-actions.ts +4 -2
  580. package/scripts/init/init-logic-workspace.ts +1 -1
  581. package/scripts/issue/issue-auto-ok.ts +43 -4
  582. package/scripts/issue/issue-body-keys.ts +4 -0
  583. package/scripts/issue/issue-comment-cli.ts +15 -2
  584. package/scripts/issue/issue-evidence-exit.ts +6 -2
  585. package/scripts/issue/issue-file-cli.ts +5 -1
  586. package/scripts/issue/issue-file-pass.ts +14 -7
  587. package/scripts/issue/issue-file-worker.ts +95 -0
  588. package/scripts/issue/issue-file.ts +1 -1
  589. package/scripts/issue/issue-outcome.ts +107 -0
  590. package/scripts/issue/issue-read.ts +12 -7
  591. package/scripts/issue/issue-watch-diff.ts +2 -1
  592. package/scripts/josh/josh-commands-ai.ts +2 -2
  593. package/scripts/josh/josh-commands-development.ts +21 -5
  594. package/scripts/josh/josh-commands-issue-write.ts +3 -2
  595. package/scripts/josh/josh-commands-lint.ts +1 -1
  596. package/scripts/josh/josh-commands-project.ts +7 -2
  597. package/scripts/josh/josh-commands-run.ts +10 -2
  598. package/scripts/josh/josh-commands-workflow.ts +5 -0
  599. package/scripts/josh/session-language-cli.ts +1 -1
  600. package/scripts/lane/lane-breakdown-cli.ts +14 -4
  601. package/scripts/lane/lane-breakdown-text.ts +7 -0
  602. package/scripts/lane/lane-breakdown.ts +21 -1
  603. package/scripts/lane/lane-dispatch-prepare.ts +83 -0
  604. package/scripts/lane/lane-dispatch.ts +3 -53
  605. package/scripts/lane/lane-elapsed-time.ts +118 -0
  606. package/scripts/lane/lane-ledger-schema-ship.ts +4 -1
  607. package/scripts/lane/lane-net-time.ts +35 -7
  608. package/scripts/lane/lane-overrun.ts +1 -1
  609. package/scripts/lane/lane-plan-cli.ts +7 -3
  610. package/scripts/lane/lane-plan-estimate.ts +57 -0
  611. package/scripts/lane/lane-plan-size.ts +11 -20
  612. package/scripts/lane/lane-plan.ts +1 -0
  613. package/scripts/lane/lane-relaunch.ts +9 -4
  614. package/scripts/lane/lane-stage-budget.ts +6 -1
  615. package/scripts/lane/lane-stage-events.ts +103 -0
  616. package/scripts/lane/lane-stats-tables.ts +3 -0
  617. package/scripts/lane/lane-stop-check-stats.ts +117 -0
  618. package/scripts/lane/lane-stop-stats.ts +30 -6
  619. package/scripts/lane/lane-why-causes.ts +3 -11
  620. package/scripts/lane/openai-lane-supervisor-owner.ts +12 -0
  621. package/scripts/lane/openai-lane-supervisor.ts +36 -1
  622. package/scripts/lib/home-tilde.ts +24 -0
  623. package/scripts/lib/package-manifest.ts +27 -1
  624. package/scripts/observations/observation-ledger-archive.ts +180 -0
  625. package/scripts/observations/observation-ledger-home.ts +1 -0
  626. package/scripts/observations/observation-ledger.ts +5 -0
  627. package/scripts/observations/observations-flush-transaction.ts +358 -0
  628. package/scripts/observations/observations-flush.ts +72 -172
  629. package/scripts/plan/plan-scaffold-cli.ts +17 -6
  630. package/scripts/plan/plan-scaffold.ts +11 -0
  631. package/scripts/release/github-release-notes.ts +24 -0
  632. package/scripts/release/github-release-runs.ts +32 -6
  633. package/scripts/release/github-release.ts +10 -2
  634. package/scripts/release/release-progress.ts +22 -10
  635. package/scripts/release/release-publish-run.ts +39 -6
  636. package/scripts/repo/repository-labels.ts +23 -11
  637. package/scripts/review/review-comment-round.ts +10 -5
  638. package/scripts/rules/broad-investigation-shell.ts +2 -2
  639. package/scripts/rules/codex-prompt.ts +63 -0
  640. package/scripts/rules/direct-issue-comment.ts +62 -2
  641. package/scripts/rules/direct-issue-read.ts +55 -2
  642. package/scripts/rules/guard-remedy.ts +10 -4
  643. package/scripts/rules/issue-citation.ts +20 -9
  644. package/scripts/rules/last-prompt.ts +8 -4
  645. package/scripts/rules/rule-value-cli.ts +85 -4
  646. package/scripts/rules/rule-value-trend.ts +108 -0
  647. package/scripts/rules/shell-redirects.ts +19 -7
  648. package/scripts/rules/shell-segments.ts +145 -20
  649. package/scripts/rules/shell-tokens.ts +66 -0
  650. package/scripts/rules/standalone-gh-call.ts +63 -0
  651. package/scripts/rules/unasked-filing.ts +12 -4
  652. package/scripts/run/board/run-board-closed.ts +10 -1
  653. package/scripts/run/board/run-board-decision-read.ts +52 -12
  654. package/scripts/run/board/run-board-decision.ts +5 -0
  655. package/scripts/run/board/run-board-ending-reason.ts +21 -7
  656. package/scripts/run/board/run-board-github.ts +8 -1
  657. package/scripts/run/board/run-board-header.ts +4 -5
  658. package/scripts/run/board/run-board-layout.ts +5 -3
  659. package/scripts/run/board/run-board-link.ts +2 -0
  660. package/scripts/run/board/run-board-operation.ts +6 -2
  661. package/scripts/run/board/run-board-pause-fixture.json +12 -0
  662. package/scripts/run/board/run-board-pause.ts +87 -0
  663. package/scripts/run/board/run-board-plan-shared.ts +2 -0
  664. package/scripts/run/board/run-board-read.ts +7 -1
  665. package/scripts/run/board/run-board-render-condition.ts +10 -1
  666. package/scripts/run/board/run-board-render-title.ts +7 -0
  667. package/scripts/run/board/run-board-roots.ts +25 -2
  668. package/scripts/run/board/run-board-settle.ts +16 -2
  669. package/scripts/run/board/run-board-setup.ts +13 -7
  670. package/scripts/run/board/run-board-snapshot.ts +4 -0
  671. package/scripts/run/board/run-board-status.ts +13 -1
  672. package/scripts/run/board/run-board-tick.ts +7 -1
  673. package/scripts/run/cut/run-cut-cli.ts +2 -1
  674. package/scripts/run/park/run-park-cli.ts +13 -1
  675. package/scripts/run/park/run-park-escalate.ts +102 -0
  676. package/scripts/run/park/run-stalled.ts +29 -7
  677. package/scripts/run/review/run-review-early-push.ts +6 -6
  678. package/scripts/run/ship/run-ship-stop-cause.ts +12 -1
  679. package/scripts/split/split-assess.ts +14 -5
  680. package/scripts/test/test-related-touched.ts +21 -3
  681. package/scripts/test/test-related.ts +1 -1
  682. package/dist/commands/chunk-6WEVLIZE.js +0 -29
  683. package/dist/commands/chunk-E2ZCUKHT.js +0 -274
  684. package/dist/commands/chunk-NMLCPYBN.js +0 -134
  685. package/dist/commands/chunk-QEIO2ZNQ.js +0 -324
  686. package/dist/commands/chunk-QWX7EBC6.js +0 -112
  687. package/dist/commands/chunk-RQRLW4XK.js +0 -20
  688. package/dist/commands/chunk-UCQJDYE3.js +0 -21
  689. package/dist/commands/chunk-W4YH2DF3.js +0 -58
  690. package/dist/commands/{chunk-LRA3PXHS.js → chunk-ENKFCOVY.js} +3 -3
  691. 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";
@@ -1016,14 +1093,15 @@ var run_board_lane_stop = { RELEASE_REASON, label_settled, label_stop, lane_stat
1016
1093
  var KIND5 = run_event_stream.EVENT_KIND;
1017
1094
  var { STAGE: STAGE2 } = run_event_setup;
1018
1095
  var NO_SETUP = { setup: void 0, setup_ms: void 0 };
1019
- var SESSION_STAGES = /* @__PURE__ */ new Set([
1020
- STAGE2.JUDGING,
1021
- STAGE2.SESSION,
1022
- STAGE2.RETROSPECTIVE
1023
- ]);
1096
+ var SESSION_STAGES = /* @__PURE__ */ new Set([STAGE2.JUDGING, STAGE2.SESSION]);
1097
+ var RETAINED_STAGES = /* @__PURE__ */ new Set([...SESSION_STAGES, STAGE2.RETROSPECTIVE]);
1024
1098
  function is_setup(event) {
1025
1099
  return event.kind === KIND5.SETUP;
1026
1100
  }
1101
+ function is_working2(setup, is_session_active) {
1102
+ if (setup === void 0) return false;
1103
+ return !SESSION_STAGES.has(setup) || is_session_active !== false;
1104
+ }
1027
1105
  function is_refusal(event) {
1028
1106
  return is_setup(event) && event.text.startsWith(STAGE2.NO_CHILD);
1029
1107
  }
@@ -1039,7 +1117,7 @@ function is_opening(events, stage) {
1039
1117
  return position === void 0 || position.pos < stage.pos;
1040
1118
  }
1041
1119
  function is_standing(events, stage) {
1042
- if (!has_started(events) || SESSION_STAGES.has(stage.text)) return true;
1120
+ if (!has_started(events) || RETAINED_STAGES.has(stage.text)) return true;
1043
1121
  return is_opening(events, stage);
1044
1122
  }
1045
1123
  function read(events) {
@@ -1065,7 +1143,7 @@ function lane_stage(events, issue) {
1065
1143
  if (step === void 0 || !is_lane_stage(step, issue)) return void 0;
1066
1144
  return { text: step.text, at_ms: Date.parse(step.at) };
1067
1145
  }
1068
- var run_board_setup = { is_refusal, lane_stage, read };
1146
+ var run_board_setup = { is_refusal, is_working: is_working2, lane_stage, read };
1069
1147
 
1070
1148
  // scripts/run/board/run-board-status.ts
1071
1149
  var KIND6 = run_event_stream.EVENT_KIND;
@@ -1208,7 +1286,13 @@ function settled(issue, status, read5) {
1208
1286
  return UNSETTLED_STATES.has(status.state) ? unsettled(issue, status, read5) : status;
1209
1287
  }
1210
1288
  function settle_closed(statuses, read5) {
1211
- return new Map([...statuses].map(([issue, status]) => [issue, settled(issue, status, read5)]));
1289
+ return new Map(
1290
+ [...statuses].map(([issue, status]) => {
1291
+ const closed = read5.closed.get(issue);
1292
+ const outcome = closed === void 0 || is_closed_before_launch(status, closed) ? void 0 : closed.outcome;
1293
+ return [issue, run_board_settle.with_outcome(settled(issue, status, read5), outcome)];
1294
+ })
1295
+ );
1212
1296
  }
1213
1297
  function is_run_stop(event) {
1214
1298
  return event?.kind === KIND6.STOP && run_event_scope.issue_named(event) === void 0;
@@ -1314,10 +1398,14 @@ function is_unlisted(issue, read5) {
1314
1398
  const open = read5.open_numbers;
1315
1399
  return open !== void 0 && !open.has(issue);
1316
1400
  }
1401
+ function is_closed_cached(issue, read5) {
1402
+ const closed = read5.closed.get(issue);
1403
+ return closed?.is_merged === true || closed?.outcome !== void 0;
1404
+ }
1317
1405
  function is_closed_candidate(issue, status, read5, is_plan_failed) {
1318
1406
  if (ALWAYS_ASKED_STATES.has(status.state)) return true;
1319
1407
  if (status.state === RUNNING_STATE) return is_plan_failed || is_unlisted(issue, read5);
1320
- return is_unlisted(issue, read5) && !read5.closed.has(issue);
1408
+ return is_unlisted(issue, read5) && !is_closed_cached(issue, read5);
1321
1409
  }
1322
1410
  function has_asked_since_end(state, local) {
1323
1411
  const { closed_answered_ms } = state;
@@ -1526,21 +1614,23 @@ function comment_question(bodies) {
1526
1614
  function read_question(number, read5) {
1527
1615
  return read5.decision_questions?.get(number) ?? read5.titles.get(number) ?? "";
1528
1616
  }
1529
- function reason_of2(number, reason, read5) {
1617
+ function reason_of3(number, reason, read5, status) {
1618
+ const pause = run_board_pause.reason_of(number, read5, status);
1619
+ if (pause !== void 0) return pause;
1530
1620
  const parts = parts_of(reason);
1531
1621
  const question = question_of(parts.question) ?? read_question(number, read5);
1532
1622
  if (question === "") return void 0;
1533
1623
  return { tail: `\u2192 decide: ${question}${note_of(parts.note)}` };
1534
1624
  }
1535
1625
  function plan_reason(number, plan) {
1536
- return reason_of2(number, void 0, { ...plan, titles: plan.context.titles });
1626
+ return reason_of3(number, void 0, { ...plan, titles: plan.context.titles });
1537
1627
  }
1538
1628
  function waiting_tail(reference, title, body = "") {
1539
1629
  const detail = HUMAN_DETAIL.exec(body)?.[1];
1540
1630
  const suffix = detail === void 0 ? "" : ` (${detail})`;
1541
1631
  return `\u2192 decide ${reference}: ${title}${suffix}`;
1542
1632
  }
1543
- var run_board_decision = { comment_question, plan_reason, reason_of: reason_of2, waiting_tail };
1633
+ var run_board_decision = { comment_question, plan_reason, reason_of: reason_of3, waiting_tail };
1544
1634
 
1545
1635
  // scripts/run/board/run-board-kind.ts
1546
1636
  var RELEASE_KINDS = [
@@ -1663,7 +1753,7 @@ function pr_reason(issue, prs) {
1663
1753
  pr
1664
1754
  };
1665
1755
  }
1666
- function reason_of3(child, plan) {
1756
+ function reason_of4(child, plan) {
1667
1757
  if (child.state !== "OPEN" || !is_waiting(plan, child.number)) return void 0;
1668
1758
  return pr_reason(child.number, plan.human_merge_prs);
1669
1759
  }
@@ -1696,7 +1786,7 @@ function overlay_of(plan, statuses) {
1696
1786
  statuses: new Map([...statuses].filter(([issue]) => !numbers.has(issue)))
1697
1787
  };
1698
1788
  }
1699
- var run_board_human_merge = { overlay_of, read_prs, reason_of: reason_of3, with_prs };
1789
+ var run_board_human_merge = { overlay_of, read_prs, reason_of: reason_of4, with_prs };
1700
1790
 
1701
1791
  // scripts/run/board/run-board-standing-waits.ts
1702
1792
  function is_waiting_on(edge, source) {
@@ -1781,7 +1871,7 @@ function touched_row(number, status, read5) {
1781
1871
  const is_asked = status.state === "parked" && run_board_human.is_decision(status.reason);
1782
1872
  const labels = read5.labels.get(number);
1783
1873
  return {
1784
- ...is_asked ? { reason: run_board_decision.reason_of(number, status.reason, read5) } : run_board_ending_reason.row_reason(number, status, read5),
1874
+ ...is_asked ? { reason: run_board_decision.reason_of(number, status.reason, read5, status) } : run_board_ending_reason.row_reason(number, status, read5),
1785
1875
  ...solo_flag(labels),
1786
1876
  number,
1787
1877
  title: read5.titles.get(number),
@@ -1836,10 +1926,10 @@ function waiting_children2(overlay) {
1836
1926
  (child) => is_untouched(child, overlay) && plan_state(child) === "waiting"
1837
1927
  );
1838
1928
  }
1839
- function layout_of(input_plan, input_statuses, reason_of6, earlier = run_board_earlier.NO_EARLIER) {
1929
+ function layout_of(input_plan, input_statuses, reason_of7, earlier = run_board_earlier.NO_EARLIER) {
1840
1930
  const current2 = run_board_human_merge.overlay_of(input_plan, input_statuses);
1841
1931
  const { plan, statuses } = current2;
1842
- const overlay = { plan, statuses, reason_of: reason_of6 };
1932
+ const overlay = { plan, statuses, reason_of: reason_of7 };
1843
1933
  const queue = plan.waves.waves.flat().filter((child) => is_untouched(child, overlay));
1844
1934
  const read5 = {
1845
1935
  ...plan,
@@ -2000,7 +2090,7 @@ function padded(text, width, emphasized) {
2000
2090
  var run_board_fresh = { aged, padded, paint, since, stage_of };
2001
2091
 
2002
2092
  // scripts/run/board/run-board-issue-count.ts
2003
- import { z as z2 } from "zod";
2093
+ import { z as z3 } from "zod";
2004
2094
  var ICON2 = "\u{1F4EE}";
2005
2095
  var LOCALE = "en-US";
2006
2096
  var COUNT_QUERY = `query($owner: String!, $name: String!) {
@@ -2009,10 +2099,10 @@ var COUNT_QUERY = `query($owner: String!, $name: String!) {
2009
2099
  closed: issues(states: CLOSED) { totalCount }
2010
2100
  }
2011
2101
  }`;
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 }) })
2102
+ var total_schema = z3.object({ totalCount: z3.number() });
2103
+ var search_schema = z3.object({ total_count: z3.number() });
2104
+ var answer_schema = z3.object({
2105
+ data: z3.object({ repository: z3.object({ open: total_schema, closed: total_schema }) })
2016
2106
  }).transform(({ data }) => ({
2017
2107
  open: data.repository.open.totalCount,
2018
2108
  closed: data.repository.closed.totalCount
@@ -2055,24 +2145,24 @@ var run_board_issue_count = { count_of, part_of: part_of2, read_issue_count };
2055
2145
 
2056
2146
  // scripts/run/board/run-board-operation.ts
2057
2147
  import path from "node:path";
2058
- import { z as z4 } from "zod";
2148
+ import { z as z5 } from "zod";
2059
2149
 
2060
2150
  // 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(),
2151
+ import { z as z4 } from "zod";
2152
+ var CHANGES_SCHEMA = z4.array(z4.object({ path: z4.string() }));
2153
+ var ITEM_SCHEMA = z4.object({
2154
+ type: z4.enum(["item.started", "item.updated", "item.completed"]),
2155
+ timestamp: z4.string(),
2156
+ item: z4.object({
2157
+ type: z4.enum(["command_execution", "file_change"]),
2158
+ command: z4.string().optional(),
2069
2159
  changes: CHANGES_SCHEMA.optional()
2070
2160
  })
2071
2161
  });
2072
2162
  function input_of(item) {
2073
2163
  return item.type === "command_execution" ? { command: item.command } : { file_path: item.changes?.at(-1)?.path };
2074
2164
  }
2075
- function record_of(value) {
2165
+ function record_of2(value) {
2076
2166
  const record = ITEM_SCHEMA.safeParse(value).data;
2077
2167
  if (record === void 0) return void 0;
2078
2168
  const { item, timestamp } = record;
@@ -2083,7 +2173,7 @@ function record_of(value) {
2083
2173
  message: { content: [{ type: "tool_use", name: is_command ? "Bash" : "Edit", input }] }
2084
2174
  };
2085
2175
  }
2086
- var run_board_operation_codex = { record_of };
2176
+ var run_board_operation_codex = { record_of: record_of2 };
2087
2177
 
2088
2178
  // scripts/run/board/run-board-operation.ts
2089
2179
  var TARGET_LIMIT = 40;
@@ -2098,7 +2188,7 @@ var ASSIGNMENT = new RegExp(String.raw`^\w+=${VALUE}(?:\s*(?:&&|;)\s*|\s+|$)`, "
2098
2188
  var UNREAD_ASSIGNMENT = /^\w+=/u;
2099
2189
  var SPACES = /\s+/gu;
2100
2190
  var ASCII_HEAD = /^[ -~]*/u;
2101
- var INPUT_SCHEMA = z4.looseObject({ command: z4.string().optional(), file_path: z4.string().optional() }).catch({});
2191
+ var INPUT_SCHEMA = z5.looseObject({ command: z5.string().optional(), file_path: z5.string().optional() }).catch({});
2102
2192
  function ascii_head(text) {
2103
2193
  return (ASCII_HEAD.exec(text)?.[0] ?? "").trim();
2104
2194
  }
@@ -2112,7 +2202,8 @@ function without_assignments(command) {
2112
2202
  function command_target(command) {
2113
2203
  const [first = ""] = without_assignments(command.trim()).split(NEWLINE);
2114
2204
  if (UNREAD_ASSIGNMENT.test(first)) return "";
2115
- return cut(ascii_head(token_shape.redact(first).replaceAll(SPACES, " ")));
2205
+ const masked = home_tilde.mask(token_shape.redact(first));
2206
+ return cut(ascii_head(masked.replaceAll(SPACES, " ")));
2116
2207
  }
2117
2208
  function path_target(file_path, root) {
2118
2209
  const relative = root === void 0 ? void 0 : path.relative(root, path.resolve(root, file_path));
@@ -2167,12 +2258,12 @@ function pool_reason(waiting, people) {
2167
2258
  function running_of(running) {
2168
2259
  return `${String(running)} ${WORDS3.in_progress}`;
2169
2260
  }
2170
- function reason_of4(read5) {
2261
+ function reason_of5(read5) {
2171
2262
  if (read5.running > 0) return running_of(read5.running);
2172
2263
  return read5.waiting === void 0 ? void 0 : pool_reason(read5.waiting, read5.people);
2173
2264
  }
2174
2265
  function with_reason(line, read5) {
2175
- const reason = reason_of4(read5);
2266
+ const reason = reason_of5(read5);
2176
2267
  return reason === void 0 ? line : `${line}${REASON_SEPARATOR}${reason}`;
2177
2268
  }
2178
2269
  function latest_line(read5) {
@@ -2300,7 +2391,6 @@ var { padded: padded2 } = run_board_fresh;
2300
2391
  var aged_fresh = run_board_fresh.aged;
2301
2392
  var UNKNOWN = "-";
2302
2393
  var BLANK2 = " ";
2303
- var REPO_SEPARATOR = "/";
2304
2394
  var { GAP, PERCENT_WIDTH } = run_board_machine;
2305
2395
  var STALE_MINUTES = 15;
2306
2396
  var STALE_MS = STALE_MINUTES * MS_PER_MINUTE;
@@ -2326,8 +2416,8 @@ function counts_of(layout) {
2326
2416
  }
2327
2417
  var WORKING_MARKS = /* @__PURE__ */ new Set(["running", "setup"]);
2328
2418
  function quiet_mark(header) {
2329
- const { layout } = header;
2330
- if (header.activity.setup !== void 0) return "setup";
2419
+ const { activity, layout } = header;
2420
+ if (run_board_setup.is_working(activity.setup, activity.is_setup_working)) return "setup";
2331
2421
  return layout?.queued.length === 0 && run_board_layout.people_of(layout).length > 0 ? "human" : "idle";
2332
2422
  }
2333
2423
  function mark_of(header, running) {
@@ -2339,7 +2429,7 @@ function run_part(mark, name = RUN_NAME) {
2339
2429
  return styleText2(color, `${glyph} ${name}`);
2340
2430
  }
2341
2431
  function repo_part(header, mark) {
2342
- const name = header.repo?.split(REPO_SEPARATOR).at(-1) ?? "";
2432
+ const name = header.repo?.split("/").at(-1) ?? "";
2343
2433
  const indent = run_board_fit.width_of(RUN_MARKS[mark].glyph) + BLANK2.length;
2344
2434
  return `${BLANK2.repeat(indent)}${header.repo_link(name, "home")}`;
2345
2435
  }
@@ -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,
@@ -4972,10 +5068,14 @@ function titles_of2(state) {
4972
5068
  return closed_under(known_of2(state), state.closed).titles;
4973
5069
  }
4974
5070
  function activity_here(local) {
4975
- return run_board_status.activity_of(
5071
+ const activity = run_board_status.activity_of(
4976
5072
  local.events,
4977
5073
  local.ended_ms !== void 0 || local.is_stranded
4978
5074
  );
5075
+ return {
5076
+ ...activity,
5077
+ is_setup_working: run_board_setup.is_working(activity.setup, local.is_session_active)
5078
+ };
4979
5079
  }
4980
5080
  function is_backlog_live(local) {
4981
5081
  const roots = local.roots ?? {};
@@ -5021,7 +5121,7 @@ function earlier_here(local) {
5021
5121
  function planned_layout(state, input_plan, local, now_ms) {
5022
5122
  const plan = plan_here(input_plan, state, local);
5023
5123
  const statuses = planned_statuses(state, plan, local);
5024
- const reason_of6 = run_board_reason.reader({
5124
+ const reason_of7 = run_board_reason.reader({
5025
5125
  plan,
5026
5126
  statuses,
5027
5127
  events: local.events,
@@ -5030,7 +5130,7 @@ function planned_layout(state, input_plan, local, now_ms) {
5030
5130
  is_stopped: activity_here(local).is_stopped,
5031
5131
  now_ms
5032
5132
  });
5033
- return run_board_layout.layout_of(plan, statuses, reason_of6, earlier_here(local));
5133
+ return run_board_layout.layout_of(plan, statuses, reason_of7, earlier_here(local));
5034
5134
  }
5035
5135
  function layout_for(state, local, now_ms) {
5036
5136
  if (state.plan !== void 0) return planned_layout(state, state.plan, local, now_ms);
@@ -5515,11 +5615,11 @@ function held_reader(ports) {
5515
5615
  var run_board_held = { held_reader };
5516
5616
 
5517
5617
  // scripts/run/board/run-board-quota-spent.ts
5518
- import { z as z6 } from "zod";
5618
+ import { z as z7 } from "zod";
5519
5619
  var MS_PER_MINUTE3 = 6e4;
5520
5620
  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") }) });
5621
+ var CLAUDE_END = z7.looseObject({ type: z7.literal("result") });
5622
+ var CODEX_END = z7.looseObject({ payload: z7.looseObject({ type: z7.literal("task_complete") }) });
5523
5623
  function last_line(text) {
5524
5624
  const trimmed = text.trimEnd();
5525
5625
  return trimmed.slice(trimmed.lastIndexOf("\n") + 1);
@@ -5592,17 +5692,17 @@ var run_board_quota_spent = { claude_done, codex_done, per_lane_of, per_task_of,
5592
5692
 
5593
5693
  // scripts/run/board/run-board-quota-status.ts
5594
5694
  import { readFile } from "node:fs/promises";
5595
- import { z as z7 } from "zod";
5695
+ import { z as z8 } from "zod";
5596
5696
  var MS_PER_SECOND2 = 1e3;
5597
5697
  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()
5698
+ var WINDOW = z8.object({
5699
+ used_percentage: z8.number().min(0).max(MAX_PERCENTAGE),
5700
+ resets_at: z8.number().nonnegative()
5601
5701
  });
5602
- var RECORD = z7.object({
5702
+ var RECORD = z8.object({
5603
5703
  five_hour: WINDOW.nullable(),
5604
5704
  seven_day: WINDOW.nullable(),
5605
- at: z7.string()
5705
+ at: z8.string()
5606
5706
  });
5607
5707
  function window_of(minutes, window) {
5608
5708
  if (window === null) return [];
@@ -6057,12 +6157,24 @@ function parent_of(read5, is_same) {
6057
6157
  function roots_of(repository, read5, is_same = process_identity.is_same_process) {
6058
6158
  return { supervisor: supervisor_of(repository, is_same), parent: parent_of(read5, is_same) };
6059
6159
  }
6160
+ function is_session_owner(read5) {
6161
+ return read5.kind === "carried" && read5.carry.is_handed_off !== true;
6162
+ }
6163
+ function live_session_pid(pid, start2, wake, is_same) {
6164
+ return pid !== void 0 && pid !== wake?.pid && is_same(pid, start2) !== false;
6165
+ }
6166
+ function session_is_active(repository, read5, is_same) {
6167
+ if (read5.kind !== "carried" || !is_session_owner(read5)) return false;
6168
+ const wake = run_wake.read_wake(run_wake.wake_path(repository));
6169
+ const pid = read5.carry.owner_pid ?? wake?.woke_pid;
6170
+ return live_session_pid(pid, read5.carry.owner_start, wake, is_same);
6171
+ }
6060
6172
  async function same_in(table) {
6061
6173
  const rows = table === void 0 ? void 0 : await table();
6062
6174
  const read5 = lane_process_table.start_reader(rows ?? []);
6063
6175
  return (pid, start2) => process_identity.is_same_process(pid, start2, read5);
6064
6176
  }
6065
- var run_board_roots = { roots_of, same_in };
6177
+ var run_board_roots = { roots_of, same_in, session_is_active };
6066
6178
 
6067
6179
  // scripts/run/board/run-board-single.ts
6068
6180
  var FULLRUN = "fullrun";
@@ -6333,7 +6445,8 @@ var NO_SPAN = {
6333
6445
  transcript: void 0,
6334
6446
  roots: {},
6335
6447
  carry: void 0,
6336
- is_stranded: false
6448
+ is_stranded: false,
6449
+ is_session_active: false
6337
6450
  };
6338
6451
  var main_roots = stamped_memo.create();
6339
6452
  async function main_root() {
@@ -6360,6 +6473,7 @@ async function recorded_span_here(repository, table, read5) {
6360
6473
  resume: run_board_span.resume_of(read5, ended2, launch2),
6361
6474
  transcript: read5.kind === "carried" ? read5.carry.owner_transcript : void 0,
6362
6475
  roots: run_board_roots.roots_of(repository, read5, same_process),
6476
+ is_session_active: run_board_roots.session_is_active(repository, read5, same_process),
6363
6477
  carry: read5.kind === "carried" ? read5.carry : void 0,
6364
6478
  is_stranded: run_stranded_detect.is_stranded_at(repository, stranded_ports)
6365
6479
  };
@@ -6456,7 +6570,7 @@ function span_fields(span) {
6456
6570
  }
6457
6571
  async function read_local(table) {
6458
6572
  const repository = await run_carry.repository_directory();
6459
- const { span, resume, transcript, roots, carry, is_stranded } = repository === void 0 ? NO_SPAN : await span_here2(repository, table);
6573
+ const { span, resume, transcript, roots, carry, is_stranded, is_session_active } = repository === void 0 ? NO_SPAN : await span_here2(repository, table);
6460
6574
  if (repository === void 0 || span === void 0) return void 0;
6461
6575
  const events = run_event_tail.read_events(run_event_stream.target_of(repository));
6462
6576
  const lanes = await lane_registry.list_lanes(await main_root());
@@ -6472,6 +6586,7 @@ async function read_local(table) {
6472
6586
  roots,
6473
6587
  carry,
6474
6588
  is_stranded,
6589
+ is_session_active,
6475
6590
  operations: run_board_operation_read.read(sources_of2(repository, lanes, transcript)),
6476
6591
  ...await lane_room_of(lanes, lane_read.lane_states, table),
6477
6592
  ...ledger_here(repository)
@@ -6734,12 +6849,12 @@ function post_of(before, after) {
6734
6849
  function is_post(value) {
6735
6850
  return typeof value === "object" && value !== null && "read" in value;
6736
6851
  }
6737
- function reason_of5(error) {
6852
+ function reason_of6(error) {
6738
6853
  const message = error instanceof Error ? error.message : String(error);
6739
6854
  return message.split("\n", 1)[0] ?? "";
6740
6855
  }
6741
6856
  function failed_of(error) {
6742
- return { failed: reason_of5(error) };
6857
+ return { failed: reason_of6(error) };
6743
6858
  }
6744
6859
  async function gather_round(state, ports, post) {
6745
6860
  try {
@@ -6782,7 +6897,7 @@ function listen(thread, worker, now) {
6782
6897
  else if (is_failed(value)) said_failed(thread, value.failed, now);
6783
6898
  });
6784
6899
  worker.on("error", (error) => {
6785
- fail(thread, worker, reason_of5(error), now);
6900
+ fail(thread, worker, reason_of6(error), now);
6786
6901
  });
6787
6902
  worker.on("exit", (code) => {
6788
6903
  fail(thread, worker, `exit ${String(code)}`, now);
@@ -6855,7 +6970,7 @@ function read_keys(input) {
6855
6970
  var run_board_keys = { CTRL_C, read_keys };
6856
6971
 
6857
6972
  // scripts/run/board/run-board-plan-shared.ts
6858
- import { z as z8 } from "zod";
6973
+ import { z as z9 } from "zod";
6859
6974
 
6860
6975
  // scripts/run/board/run-board-decision-graphql.ts
6861
6976
  var NODE_FIELDS = "number,title,body,state,labels,blockedBy";
@@ -6983,25 +7098,42 @@ async function blocker_of(reference, read5, seen) {
6983
7098
  );
6984
7099
  return blockers.find((blocker) => blocker !== void 0) ?? terminal_of(node);
6985
7100
  }
6986
- async function question_of2(number, repo, answered) {
7101
+ async function read_comments2(number, repo, answered) {
6987
7102
  const json = answered.get(number) ?? await git_gh_issue_read.issue_list_comments(
6988
7103
  String(number),
6989
7104
  void 0,
6990
7105
  repo,
6991
7106
  git_gh_issue_read.read_comments_conditionally
6992
7107
  );
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];
7108
+ return await issue_read.parse_comments(json, repo) ?? [];
7109
+ }
7110
+ async function comments_of(number, repo, answered) {
7111
+ try {
7112
+ return await read_comments2(number, repo, answered);
7113
+ } catch {
7114
+ return [];
7115
+ }
7116
+ }
7117
+ async function question_of2(number, repo, answered) {
7118
+ const comments = await comments_of(number, repo, answered);
7119
+ const question = run_board_decision.comment_question(issue_read.trusted_bodies(comments));
7120
+ const issue_url2 = `https://github.com/${repo}/issues/${String(number)}`;
7121
+ return [number, { question, pause: run_board_pause.from_comments(comments, issue_url2) }];
7122
+ }
7123
+ function question_pair([number, value]) {
7124
+ return value.question === void 0 ? [] : [[number, value.question]];
6996
7125
  }
6997
7126
  async function questions_of(plan) {
6998
7127
  const { repo } = plan.context;
6999
- const numbers = [...plan.labels].filter(([, labels]) => has_label_name(labels, NEEDS_DECISION_LABEL)).map(([number]) => number);
7128
+ const numbers = [...plan.labels].filter(([, labels]) => has_parked_label(labels)).map(([number]) => number);
7000
7129
  const answered = await run_board_decision_graphql.read_comments(numbers, repo);
7001
7130
  const pairs = await Promise.all(
7002
7131
  numbers.map(async (number) => await question_of2(number, repo, answered))
7003
7132
  );
7004
- return new Map(pairs.filter((pair) => pair !== void 0));
7133
+ return {
7134
+ decision_questions: new Map(pairs.flatMap((pair) => question_pair(pair))),
7135
+ pause_reasons: new Map(pairs.map(([number, value]) => [number, value.pause]))
7136
+ };
7005
7137
  }
7006
7138
  async function wait_of2(child, read5) {
7007
7139
  if (read5.plan.withheld?.has(child.number) !== true) return void 0;
@@ -7030,13 +7162,13 @@ async function with_decisions(plan) {
7030
7162
  ...plan.waves.running ?? []
7031
7163
  ];
7032
7164
  const read5 = read_of3(plan, children2);
7033
- const [decision_questions, waits] = await Promise.all([
7165
+ const [questions, waits] = await Promise.all([
7034
7166
  questions_of(plan),
7035
7167
  Promise.all(children2.map(async (child) => await wait_of2(child, read5)))
7036
7168
  ]);
7037
7169
  return {
7038
7170
  ...plan,
7039
- decision_questions,
7171
+ ...questions,
7040
7172
  decision_waits: new Map(waits.filter((pair) => pair !== void 0))
7041
7173
  };
7042
7174
  }
@@ -7138,57 +7270,58 @@ var PLAN_CACHE = {
7138
7270
  ttl_ms: backlog_next_shared.NEXT_CACHE.ttl_ms
7139
7271
  };
7140
7272
  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, {
7273
+ const entries = z9.array(z9.tuple([z9.number(), value]));
7274
+ const map = z9.map(z9.number(), z9.custom()).readonly();
7275
+ return z9.codec(entries, map, {
7144
7276
  decode: (pairs) => new Map(pairs),
7145
7277
  encode: (pairs) => [...pairs]
7146
7278
  });
7147
7279
  }
7148
- var number_set = z8.codec(z8.array(z8.number()), z8.set(z8.number()).readonly(), {
7280
+ var number_set = z9.codec(z9.array(z9.number()), z9.set(z9.number()).readonly(), {
7149
7281
  decode: (numbers) => new Set(numbers),
7150
7282
  encode: (numbers) => [...numbers]
7151
7283
  });
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(),
7284
+ var optional_numbers = z9.array(z9.number()).optional();
7285
+ var unknown_or_set = z9.codec(
7286
+ z9.object({ numbers: optional_numbers }),
7287
+ z9.custom(),
7156
7288
  {
7157
7289
  decode: ({ numbers }) => numbers === void 0 ? void 0 : new Set(numbers),
7158
7290
  encode: (numbers) => numbers === void 0 ? {} : { numbers: [...numbers] }
7159
7291
  }
7160
7292
  );
7161
- var string_set = z8.codec(z8.array(z8.string()), z8.set(z8.string()).readonly(), {
7293
+ var string_set = z9.codec(z9.array(z9.string()), z9.set(z9.string()).readonly(), {
7162
7294
  decode: (values) => new Set(values),
7163
7295
  encode: (values) => [...values]
7164
7296
  });
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"]),
7297
+ var names2 = z9.array(z9.string()).readonly();
7298
+ var reference_schema = z9.object({ repo: z9.string(), number: z9.number() });
7299
+ var child_schema = z9.object({
7300
+ number: z9.number(),
7301
+ repo: z9.string(),
7302
+ state: z9.enum(["OPEN", "CLOSED"]),
7171
7303
  labels: names2,
7172
- blocked_by: z8.array(reference_schema).readonly(),
7173
- body: z8.string().optional()
7304
+ blocked_by: z9.array(reference_schema).readonly(),
7305
+ body: z9.string().optional()
7174
7306
  });
7175
- var children = z8.array(child_schema).readonly();
7176
- var waves_schema = z8.object({
7177
- waves: z8.array(children).readonly(),
7307
+ var children = z9.array(child_schema).readonly();
7308
+ var waves_schema = z9.object({
7309
+ waves: z9.array(children).readonly(),
7178
7310
  unreached: children,
7179
7311
  running: children.exactOptional()
7180
7312
  });
7181
- var context_schema = z8.object({
7182
- repo: z8.string(),
7183
- titles: map_of(z8.string()),
7313
+ var context_schema = z9.object({
7314
+ repo: z9.string(),
7315
+ titles: map_of(z9.string()),
7184
7316
  open_numbers: unknown_or_set
7185
7317
  });
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(),
7318
+ var board_plan_schema = z9.object({
7319
+ pause_reasons: map_of(run_board_pause.record_schema).optional(),
7320
+ decision_questions: map_of(z9.string()).optional(),
7321
+ decision_waits: map_of(z9.string()).optional(),
7322
+ human_merge_prs: map_of(z9.number()).optional(),
7190
7323
  waves: waves_schema,
7191
- tracked: map_of(z8.number()),
7324
+ tracked: map_of(z9.number()),
7192
7325
  context: context_schema,
7193
7326
  labels: map_of(names2),
7194
7327
  declared: map_of(string_set).optional(),