@joshuafolkken/kit 1.2116.0 → 1.3000.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 (2163) hide show
  1. package/.claude/agents/design-consultant.md +19 -0
  2. package/.claude/agents/investigator.md +12 -2
  3. package/.claude/agents/reviewer-verification.md +13 -2
  4. package/.claude/agents/reviewer.md +13 -2
  5. package/.claude/settings.json +32 -9
  6. package/.claude/skills/dependency-update/SKILL.md +11 -14
  7. package/.claude/skills/epic-commands/SKILL.md +8 -6
  8. package/.claude/skills/epic-commands/epic-bundle.md +6 -7
  9. package/.claude/skills/verify-ui/SKILL.md +13 -23
  10. package/.claude/skills/workflow-commands/SKILL.md +19 -18
  11. package/.claude/skills/workflow-commands/background-commands.md +7 -4
  12. package/.claude/skills/workflow-commands/backlogrun-child.md +31 -64
  13. package/.claude/skills/workflow-commands/backlogrun-lanes.md +54 -62
  14. package/.claude/skills/workflow-commands/backlogrun-park.md +65 -64
  15. package/.claude/skills/workflow-commands/backlogrun-progress.md +30 -44
  16. package/.claude/skills/workflow-commands/backlogrun-recovery.md +18 -33
  17. package/.claude/skills/workflow-commands/backlogrun-steps.md +62 -50
  18. package/.claude/skills/workflow-commands/backlogrun.md +13 -18
  19. package/.claude/skills/workflow-commands/chain-rule.md +54 -53
  20. package/.claude/skills/workflow-commands/delegation.md +11 -11
  21. package/.claude/skills/workflow-commands/entry-sequence.md +23 -34
  22. package/.claude/skills/workflow-commands/followup.md +19 -17
  23. package/.claude/skills/workflow-commands/fullrun-lane.md +11 -0
  24. package/.claude/skills/workflow-commands/fullrun-steps.md +27 -34
  25. package/.claude/skills/workflow-commands/fullrun.md +5 -6
  26. package/.claude/skills/workflow-commands/halfrun.md +4 -7
  27. package/.claude/skills/workflow-commands/issue-comments.md +29 -15
  28. package/.claude/skills/workflow-commands/issue-fold-existing.md +9 -14
  29. package/.claude/skills/workflow-commands/issue-scout.md +5 -8
  30. package/.claude/skills/workflow-commands/kickoff.md +25 -34
  31. package/.claude/skills/workflow-commands/latest-gate.md +6 -14
  32. package/.claude/skills/workflow-commands/needs-human-review.md +3 -3
  33. package/.claude/skills/workflow-commands/observation-filing.md +9 -7
  34. package/.claude/skills/workflow-commands/observation-ledger.md +4 -1
  35. package/.claude/skills/workflow-commands/pre-gate-cut.md +21 -26
  36. package/.claude/skills/workflow-commands/prerequisite.md +21 -6
  37. package/.claude/skills/workflow-commands/progress-watcher.md +8 -18
  38. package/.claude/skills/workflow-commands/prrun.md +1 -1
  39. package/.claude/skills/workflow-commands/retrospective.md +16 -15
  40. package/.claude/skills/workflow-commands/split-assessment.md +32 -22
  41. package/.claude/skills/workflow-commands/target-repository.md +2 -2
  42. package/.claude/skills/workflow-commands/working-tree-hold.md +3 -2
  43. package/.codex/hooks.json +18 -8
  44. package/.cursorrules +1 -2
  45. package/.github/actions/change-scope/action.yml +19 -0
  46. package/.github/actions/setup-pnpm/action.yml +87 -14
  47. package/.github/dependabot.yml +1 -0
  48. package/.github/workflows/ci.yml +74 -30
  49. package/.github/workflows/publish.yml +56 -14
  50. package/.github/workflows/sonar-qube.yml +28 -1
  51. package/.prettierignore +2 -0
  52. package/AGENTS.md +1 -2
  53. package/CLAUDE.md +8 -8
  54. package/GEMINI.md +1 -2
  55. package/README.md +1 -1
  56. package/SECURITY.md +11 -1
  57. package/cspell/index.yaml +11 -0
  58. package/dist/.inputs-verified.json +1 -0
  59. package/dist/CLAUDE.md +8 -8
  60. package/dist/commands/adopt.js +222 -0
  61. package/dist/commands/auth-setup-cli.js +127 -0
  62. package/dist/commands/auto-ok-judge-cli.js +223 -0
  63. package/dist/commands/auto-ok-main.js +136 -0
  64. package/dist/commands/backlog-budget-main.js +146 -0
  65. package/dist/commands/backlog-drive-cli.js +1935 -0
  66. package/dist/commands/backlog-next-main.js +186 -0
  67. package/dist/commands/backlog-offer-main.js +190 -0
  68. package/dist/commands/backlog-plan-cli.js +329 -0
  69. package/dist/commands/backlog-triage-cli.js +642 -0
  70. package/dist/commands/backlogrun-cli.js +829 -0
  71. package/dist/commands/behavior-cli.js +216 -0
  72. package/dist/commands/bump-version-main.js +22 -0
  73. package/dist/commands/bytes-command.js +208 -0
  74. package/dist/commands/cases-cli.js +57 -0
  75. package/dist/commands/check-commit-message-main.js +22 -0
  76. package/dist/commands/check-related.js +551 -0
  77. package/dist/commands/chunk-23GH6B3D.js +333 -0
  78. package/dist/commands/chunk-2ADQ5XRD.js +36 -0
  79. package/dist/commands/chunk-2CXAVVST.js +20 -0
  80. package/dist/commands/chunk-2DJLAUYB.js +109 -0
  81. package/dist/commands/chunk-2FE3C4PH.js +112 -0
  82. package/dist/commands/chunk-2FJJYCBD.js +149 -0
  83. package/dist/commands/chunk-2IESYBZH.js +34 -0
  84. package/dist/commands/chunk-2MJ4OCDL.js +188 -0
  85. package/dist/commands/chunk-2NSB5ZYQ.js +26 -0
  86. package/dist/commands/chunk-2OIX4JLA.js +37 -0
  87. package/dist/commands/chunk-2TQXCH2K.js +145 -0
  88. package/dist/commands/chunk-2VLHFILE.js +52 -0
  89. package/dist/commands/chunk-2VRITY55.js +41 -0
  90. package/dist/commands/chunk-2YCKPX3A.js +25 -0
  91. package/dist/commands/chunk-32SNWQJP.js +99 -0
  92. package/dist/commands/chunk-337QQM4C.js +136 -0
  93. package/dist/commands/chunk-34DND4BA.js +104 -0
  94. package/dist/commands/chunk-34LAULSC.js +352 -0
  95. package/dist/commands/chunk-36LOGVJ7.js +38 -0
  96. package/dist/commands/chunk-36M2UV6C.js +80 -0
  97. package/dist/commands/chunk-3BNNMJOT.js +702 -0
  98. package/dist/commands/chunk-3CCGKX7Y.js +20 -0
  99. package/dist/commands/chunk-3EO2XN3A.js +124 -0
  100. package/dist/commands/chunk-3GF52L5F.js +271 -0
  101. package/dist/commands/chunk-3HU3LPIF.js +113 -0
  102. package/dist/commands/chunk-3LZXX5GL.js +50 -0
  103. package/dist/commands/chunk-3NWAGIA6.js +39 -0
  104. package/dist/commands/chunk-3PEXBHRN.js +33 -0
  105. package/dist/commands/chunk-3RIQ36LH.js +110 -0
  106. package/dist/commands/chunk-3UKJFWKS.js +170 -0
  107. package/dist/commands/chunk-3WRQP3QE.js +47 -0
  108. package/dist/commands/chunk-3WWQFCGX.js +18 -0
  109. package/dist/commands/chunk-3ZEO3KOM.js +35 -0
  110. package/dist/commands/chunk-4BEIYKI2.js +76 -0
  111. package/dist/commands/chunk-4D5KWMFL.js +461 -0
  112. package/dist/commands/chunk-4DVM57T7.js +86 -0
  113. package/dist/commands/chunk-4EADHJVC.js +247 -0
  114. package/dist/commands/chunk-4G7NKNAZ.js +114 -0
  115. package/dist/commands/chunk-4HBVHYNL.js +73 -0
  116. package/dist/commands/chunk-4LWRCPS5.js +114 -0
  117. package/dist/commands/chunk-4P2LCVGO.js +211 -0
  118. package/dist/commands/chunk-4PES3BAA.js +263 -0
  119. package/dist/commands/chunk-4PUKDAXL.js +42 -0
  120. package/dist/commands/chunk-4Q4FXBUQ.js +99 -0
  121. package/dist/commands/chunk-4QYW2IL7.js +82 -0
  122. package/dist/commands/chunk-4YI4SLRJ.js +161 -0
  123. package/dist/commands/chunk-4Z5723GA.js +350 -0
  124. package/dist/commands/chunk-4ZHWTTQW.js +99 -0
  125. package/dist/commands/chunk-55I7OYHI.js +98 -0
  126. package/dist/commands/chunk-5GBZ43UA.js +58 -0
  127. package/dist/commands/chunk-5HCPSV45.js +800 -0
  128. package/dist/{hooks/chunk-OPSRGWFU.js → commands/chunk-5HVYOIIK.js} +1 -1
  129. package/dist/commands/chunk-5HWZFL4D.js +4175 -0
  130. package/dist/commands/chunk-5PAEXYIY.js +234 -0
  131. package/dist/commands/chunk-5SB37YDW.js +321 -0
  132. package/dist/commands/chunk-5TMAPYQD.js +19 -0
  133. package/dist/commands/chunk-5WIZR5SC.js +313 -0
  134. package/dist/commands/chunk-5Y7QQYTU.js +232 -0
  135. package/dist/commands/chunk-5ZTQX7OS.js +125 -0
  136. package/dist/commands/chunk-65E4OZJ7.js +9 -0
  137. package/dist/commands/chunk-66NX6EXR.js +29 -0
  138. package/dist/commands/chunk-66TGK5XL.js +84 -0
  139. package/dist/commands/chunk-6CJXLPRI.js +72 -0
  140. package/dist/commands/chunk-6EU5ZCDP.js +402 -0
  141. package/dist/commands/chunk-6FWV56B3.js +40 -0
  142. package/dist/commands/chunk-6HRRZANN.js +55 -0
  143. package/dist/commands/chunk-6I2JM5UX.js +134 -0
  144. package/dist/commands/chunk-6JVNRY5A.js +29 -0
  145. package/dist/commands/chunk-6NGNMIMT.js +20 -0
  146. package/dist/commands/chunk-6NRTLH6I.js +51 -0
  147. package/dist/commands/chunk-6NV2F7QH.js +47 -0
  148. package/dist/commands/chunk-6OP63TBT.js +78 -0
  149. package/dist/commands/chunk-6Q3XUCLM.js +204 -0
  150. package/dist/commands/chunk-6SKMZGER.js +148 -0
  151. package/dist/commands/chunk-6TESOL3L.js +173 -0
  152. package/dist/commands/chunk-6UGFS3EU.js +704 -0
  153. package/dist/commands/chunk-6VTJO5L2.js +38 -0
  154. package/dist/commands/chunk-6WEVLIZE.js +29 -0
  155. package/dist/commands/chunk-6WKJ3GDA.js +408 -0
  156. package/dist/commands/chunk-6WTVAL4D.js +115 -0
  157. package/dist/commands/chunk-72EW7AVI.js +59 -0
  158. package/dist/commands/chunk-72J2G2E7.js +1189 -0
  159. package/dist/commands/chunk-73EBNBUW.js +90 -0
  160. package/dist/commands/chunk-73JOEKIC.js +169 -0
  161. package/dist/commands/chunk-73KBUQKI.js +41 -0
  162. package/dist/commands/chunk-7CHCZBNF.js +555 -0
  163. package/dist/commands/chunk-7EAMUVIO.js +326 -0
  164. package/dist/commands/chunk-7GHOFHUS.js +48 -0
  165. package/dist/commands/chunk-7GMTJDO2.js +469 -0
  166. package/dist/commands/chunk-7HCPRVMB.js +76 -0
  167. package/dist/commands/chunk-7IT23HIR.js +306 -0
  168. package/dist/commands/chunk-7IZJ5MG2.js +72 -0
  169. package/dist/commands/chunk-7LJQMM2K.js +102 -0
  170. package/dist/commands/chunk-7MOZEEFJ.js +350 -0
  171. package/dist/commands/chunk-7P4X4TQL.js +507 -0
  172. package/dist/commands/chunk-7S6VRZOH.js +223 -0
  173. package/dist/commands/chunk-7V5UVKFG.js +20 -0
  174. package/dist/commands/chunk-7W3D3WRW.js +171 -0
  175. package/dist/commands/chunk-7ZECP3J6.js +212 -0
  176. package/dist/commands/chunk-A3D2XHOJ.js +387 -0
  177. package/dist/commands/chunk-A4HOQKOG.js +85 -0
  178. package/dist/commands/chunk-A5V7EWIX.js +85 -0
  179. package/dist/commands/chunk-A6T2N7VC.js +159 -0
  180. package/dist/commands/chunk-AI5K4QJO.js +72 -0
  181. package/dist/commands/chunk-AJWR7D3H.js +15 -0
  182. package/dist/commands/chunk-AKK56GNX.js +205 -0
  183. package/dist/commands/chunk-AKQYYHP2.js +461 -0
  184. package/dist/commands/chunk-AM44D7NF.js +52 -0
  185. package/dist/commands/chunk-ANUTT56I.js +85 -0
  186. package/dist/commands/chunk-AQ3PMSXK.js +76 -0
  187. package/dist/commands/chunk-AS3GWVAN.js +45 -0
  188. package/dist/commands/chunk-ATRMETHT.js +23 -0
  189. package/dist/commands/chunk-AVUGMOHZ.js +210 -0
  190. package/dist/commands/chunk-AWLYN2SP.js +64 -0
  191. package/dist/commands/chunk-AZUE65NT.js +77 -0
  192. package/dist/commands/chunk-B2EA2HCY.js +119 -0
  193. package/dist/commands/chunk-B33BTNB4.js +87 -0
  194. package/dist/commands/chunk-B3XFOHDX.js +71 -0
  195. package/dist/commands/chunk-B5GXZK3E.js +34 -0
  196. package/dist/commands/chunk-B77ZMVHS.js +80 -0
  197. package/dist/commands/chunk-BCK5LW4F.js +45 -0
  198. package/dist/commands/chunk-BEE7OAQ5.js +210 -0
  199. package/dist/commands/chunk-BF6YX4HE.js +70 -0
  200. package/dist/commands/chunk-BFLFPKQQ.js +46 -0
  201. package/dist/commands/chunk-BHRS7HAM.js +272 -0
  202. package/dist/commands/chunk-BIKGPT52.js +29 -0
  203. package/dist/commands/chunk-BJA5U4Q7.js +75 -0
  204. package/dist/commands/chunk-BJKEXXY6.js +15 -0
  205. package/dist/commands/chunk-BK6Q4VCA.js +128 -0
  206. package/dist/commands/chunk-BNXE3NVB.js +107 -0
  207. package/dist/commands/chunk-BPSJSHYD.js +209 -0
  208. package/dist/commands/chunk-BRFQBJ5Y.js +132 -0
  209. package/dist/commands/chunk-BY3POLIQ.js +104 -0
  210. package/dist/commands/chunk-BYSPYVLD.js +130 -0
  211. package/dist/commands/chunk-C26LKDBE.js +60 -0
  212. package/dist/commands/chunk-C2SEDMZ3.js +238 -0
  213. package/dist/commands/chunk-C6QSVO5K.js +56 -0
  214. package/dist/commands/chunk-CA6F5OXK.js +809 -0
  215. package/dist/commands/chunk-CADFBQJJ.js +75 -0
  216. package/dist/commands/chunk-CDY4NFQG.js +15 -0
  217. package/dist/commands/chunk-CGLLAEKZ.js +110 -0
  218. package/dist/commands/chunk-CHX4QTP4.js +133 -0
  219. package/dist/commands/chunk-CJAA5GAF.js +418 -0
  220. package/dist/commands/chunk-CJKPF5DJ.js +156 -0
  221. package/dist/commands/chunk-CJSFC5YI.js +158 -0
  222. package/dist/commands/chunk-CRNPPKP2.js +99 -0
  223. package/dist/commands/chunk-CUR2WNYB.js +42 -0
  224. package/dist/commands/chunk-CYQ3ZF7R.js +372 -0
  225. package/dist/commands/chunk-D3SHCUBC.js +64 -0
  226. package/dist/commands/chunk-D4HNS43Q.js +208 -0
  227. package/dist/commands/chunk-D4SZK7H2.js +34 -0
  228. package/dist/commands/chunk-D5HIP4HT.js +289 -0
  229. package/dist/commands/chunk-D5TAR6TV.js +71 -0
  230. package/dist/commands/chunk-DAJCUSPG.js +127 -0
  231. package/dist/commands/chunk-DBKTFB5V.js +18 -0
  232. package/dist/commands/chunk-DIB2Z2OS.js +307 -0
  233. package/dist/commands/chunk-DJVMC3U2.js +131 -0
  234. package/dist/commands/chunk-DKM4UJQU.js +10 -0
  235. package/dist/commands/chunk-DMD74E3F.js +39 -0
  236. package/dist/commands/chunk-DNJC7X73.js +84 -0
  237. package/dist/commands/chunk-DP7WIGQ4.js +298 -0
  238. package/dist/commands/chunk-DPJVKTO4.js +41 -0
  239. package/dist/commands/chunk-DRCTDVI2.js +83 -0
  240. package/dist/commands/chunk-DSBK66US.js +67 -0
  241. package/dist/commands/chunk-DXJQHJQ4.js +73 -0
  242. package/dist/commands/chunk-DXZW4V7J.js +114 -0
  243. package/dist/commands/chunk-E2ZCUKHT.js +274 -0
  244. package/dist/commands/chunk-E33LSO2W.js +20 -0
  245. package/dist/commands/chunk-E3CXOVPQ.js +258 -0
  246. package/dist/commands/chunk-EBI2BAKQ.js +47 -0
  247. package/dist/commands/chunk-EBNIX2TC.js +81 -0
  248. package/dist/commands/chunk-EBVS2LKX.js +60 -0
  249. package/dist/commands/chunk-EFHSCUFN.js +170 -0
  250. package/dist/commands/chunk-EH3LVYOX.js +72 -0
  251. package/dist/commands/chunk-EI6JG5DF.js +92 -0
  252. package/dist/commands/chunk-EK2Y6B4X.js +140 -0
  253. package/dist/commands/chunk-EK327QOS.js +260 -0
  254. package/dist/commands/chunk-EKCKCX5S.js +291 -0
  255. package/dist/commands/chunk-ELWNRE6E.js +93 -0
  256. package/dist/commands/chunk-ENFPR7J2.js +53 -0
  257. package/dist/commands/chunk-ENLWXAHD.js +80 -0
  258. package/dist/commands/chunk-ERGZPWKP.js +102 -0
  259. package/dist/commands/chunk-ESQEEL4O.js +58 -0
  260. package/dist/commands/chunk-EW4NPUMQ.js +363 -0
  261. package/dist/commands/chunk-EWA72KO7.js +241 -0
  262. package/dist/commands/chunk-EWVR5AEX.js +140 -0
  263. package/dist/commands/chunk-EZSO25UZ.js +80 -0
  264. package/dist/commands/chunk-F22G3VDB.js +183 -0
  265. package/dist/commands/chunk-F2HFWLQR.js +32 -0
  266. package/dist/commands/chunk-F2J6DGDM.js +302 -0
  267. package/dist/commands/chunk-F3WBEEYC.js +68 -0
  268. package/dist/commands/chunk-F6OWP2AY.js +750 -0
  269. package/dist/commands/chunk-F7XLEK55.js +62 -0
  270. package/dist/commands/chunk-FB3D7CX5.js +241 -0
  271. package/dist/commands/chunk-FC33R5UN.js +516 -0
  272. package/dist/commands/chunk-FCINBCKB.js +77 -0
  273. package/dist/commands/chunk-FFHEGWPK.js +91 -0
  274. package/dist/commands/chunk-FGL6DBZU.js +71 -0
  275. package/dist/commands/chunk-FGZQSSGH.js +210 -0
  276. package/dist/{hooks/chunk-VVNYJWEI.js → commands/chunk-FIUCHMCF.js} +4 -2
  277. package/dist/commands/chunk-FNOSSXLG.js +61 -0
  278. package/dist/commands/chunk-FNQW6NY7.js +154 -0
  279. package/dist/commands/chunk-FROACLVU.js +525 -0
  280. package/dist/commands/chunk-FVVZIJUC.js +425 -0
  281. package/dist/commands/chunk-G47ZNQVG.js +17 -0
  282. package/dist/commands/chunk-G6BXCWPH.js +141 -0
  283. package/dist/commands/chunk-GA4VIFHD.js +224 -0
  284. package/dist/commands/chunk-GA6E4VGO.js +328 -0
  285. package/dist/commands/chunk-GDUK5YPO.js +185 -0
  286. package/dist/commands/chunk-GIGKMIPQ.js +72 -0
  287. package/dist/commands/chunk-GJYMI2CM.js +48 -0
  288. package/dist/commands/chunk-GK2KY4MO.js +67 -0
  289. package/dist/commands/chunk-GM3XLC4W.js +63 -0
  290. package/dist/commands/chunk-GO3GH7FG.js +75 -0
  291. package/dist/commands/chunk-GPMSYXYO.js +378 -0
  292. package/dist/commands/chunk-GPTO6IZG.js +29 -0
  293. package/dist/commands/chunk-GQHUFNXN.js +54 -0
  294. package/dist/commands/chunk-GU5ML3Y3.js +263 -0
  295. package/dist/commands/chunk-GW4UWR3O.js +126 -0
  296. package/dist/commands/chunk-H4LYG37R.js +716 -0
  297. package/dist/commands/chunk-HBNB3TLG.js +122 -0
  298. package/dist/commands/chunk-HCA5QG2U.js +299 -0
  299. package/dist/commands/chunk-HE5S4XRE.js +21 -0
  300. package/dist/commands/chunk-HESMKHEB.js +105 -0
  301. package/dist/commands/chunk-HG2NZQD5.js +135 -0
  302. package/dist/commands/chunk-HH2KDLTP.js +161 -0
  303. package/dist/commands/chunk-HHBC6QZE.js +95 -0
  304. package/dist/commands/chunk-HIB5G2X6.js +426 -0
  305. package/dist/commands/chunk-HIPO6HUG.js +45 -0
  306. package/dist/commands/chunk-HIU2WXB6.js +26 -0
  307. package/dist/commands/chunk-HJKZDDDI.js +62 -0
  308. package/dist/commands/chunk-HLKAFSN4.js +76 -0
  309. package/dist/commands/chunk-HLUS2M3D.js +7 -0
  310. package/dist/commands/chunk-HO52D6JY.js +278 -0
  311. package/dist/commands/chunk-HOGFJHBT.js +412 -0
  312. package/dist/commands/chunk-HOSZITJM.js +156 -0
  313. package/dist/commands/chunk-HPVLI26Z.js +123 -0
  314. package/dist/commands/chunk-HQ2HSZBN.js +69 -0
  315. package/dist/commands/chunk-HRLGFRAV.js +21 -0
  316. package/dist/commands/chunk-HRT4KWP4.js +178 -0
  317. package/dist/commands/chunk-HTIDHEEN.js +108 -0
  318. package/dist/commands/chunk-HXCZ3KWS.js +41 -0
  319. package/dist/commands/chunk-HZBTXKT2.js +61 -0
  320. package/dist/commands/chunk-HZSQI6TD.js +18 -0
  321. package/dist/commands/chunk-I63RNFFR.js +213 -0
  322. package/dist/commands/chunk-IBEKFLWG.js +137 -0
  323. package/dist/commands/chunk-ICEMFE2V.js +139 -0
  324. package/dist/commands/chunk-IG22Y5MA.js +56 -0
  325. package/dist/commands/chunk-IGD6QJPH.js +91 -0
  326. package/dist/commands/chunk-ILGPZ47M.js +33 -0
  327. package/dist/commands/chunk-ILQZFUDC.js +65 -0
  328. package/dist/commands/chunk-ISPBJVXM.js +238 -0
  329. package/dist/commands/chunk-IW6NWCSN.js +10 -0
  330. package/dist/commands/chunk-IXX4SXIP.js +53 -0
  331. package/dist/commands/chunk-IZVM2TTH.js +84 -0
  332. package/dist/commands/chunk-J3G2R64I.js +88 -0
  333. package/dist/commands/chunk-J3TKZLHA.js +11 -0
  334. package/dist/commands/chunk-J6GIVMXI.js +59 -0
  335. package/dist/commands/chunk-JB7R3A4A.js +204 -0
  336. package/dist/commands/chunk-JGTLNFFE.js +803 -0
  337. package/dist/commands/chunk-JHN6RCE6.js +123 -0
  338. package/dist/commands/chunk-JJRKTWLK.js +64 -0
  339. package/dist/commands/chunk-JLREFWJ4.js +244 -0
  340. package/dist/commands/chunk-JLYW7CP6.js +43 -0
  341. package/dist/commands/chunk-JNWHX25C.js +36 -0
  342. package/dist/commands/chunk-JOARHU3M.js +137 -0
  343. package/dist/commands/chunk-JQXPLMCO.js +81 -0
  344. package/dist/commands/chunk-JTU5A4JI.js +55 -0
  345. package/dist/commands/chunk-JUJFIATR.js +121 -0
  346. package/dist/commands/chunk-JUUBDYFZ.js +61 -0
  347. package/dist/commands/chunk-JZOTCPX2.js +115 -0
  348. package/dist/commands/chunk-K2WVYHCP.js +18 -0
  349. package/dist/commands/chunk-K7GL3BGI.js +419 -0
  350. package/dist/commands/chunk-KB3OQWDT.js +71 -0
  351. package/dist/commands/chunk-KHWTJ4F7.js +132 -0
  352. package/dist/commands/chunk-KIILCKQR.js +220 -0
  353. package/dist/commands/chunk-KIVOZY2J.js +1864 -0
  354. package/dist/commands/chunk-KQWSENCT.js +94 -0
  355. package/dist/commands/chunk-KSR23NYN.js +33 -0
  356. package/dist/commands/chunk-KTLR4Y32.js +21 -0
  357. package/dist/commands/chunk-KUJQWO6M.js +119 -0
  358. package/dist/commands/chunk-KVHNQHX3.js +100 -0
  359. package/dist/commands/chunk-KVJDDECB.js +51 -0
  360. package/dist/commands/chunk-KVSSLDA3.js +1062 -0
  361. package/dist/commands/chunk-KVURNO74.js +187 -0
  362. package/dist/commands/chunk-KXHXMERX.js +214 -0
  363. package/dist/commands/chunk-KXRFGPZD.js +69 -0
  364. package/dist/commands/chunk-KZSM5M5P.js +89 -0
  365. package/dist/commands/chunk-L6LU2633.js +91 -0
  366. package/dist/commands/chunk-L6TU7FC2.js +103 -0
  367. package/dist/commands/chunk-L6XN3EXI.js +138 -0
  368. package/dist/commands/chunk-LA5WTOAM.js +319 -0
  369. package/dist/commands/chunk-LAKVPOJQ.js +59 -0
  370. package/dist/commands/chunk-LAYSCY4L.js +6 -0
  371. package/dist/commands/chunk-LBLII7BS.js +14 -0
  372. package/dist/commands/chunk-LC7SBONO.js +98 -0
  373. package/dist/commands/chunk-LCEJXF7A.js +101 -0
  374. package/dist/commands/chunk-LE2T3FGJ.js +302 -0
  375. package/dist/commands/chunk-LE7TFPMU.js +88 -0
  376. package/dist/commands/chunk-LHKXJD6L.js +303 -0
  377. package/dist/commands/chunk-LMS6N6GE.js +332 -0
  378. package/dist/commands/chunk-LMSS4ARB.js +32 -0
  379. package/dist/commands/chunk-LNBUIOK6.js +133 -0
  380. package/dist/commands/chunk-LOSOLCCW.js +119 -0
  381. package/dist/commands/chunk-LQXFVZTS.js +13 -0
  382. package/dist/commands/chunk-LRA3PXHS.js +472 -0
  383. package/dist/commands/chunk-LRS2OS5J.js +395 -0
  384. package/dist/commands/chunk-LULJUD6P.js +131 -0
  385. package/dist/commands/chunk-LUMCYDGE.js +141 -0
  386. package/dist/commands/chunk-LWAXXZPS.js +118 -0
  387. package/dist/commands/chunk-LYEKT3IN.js +77 -0
  388. package/dist/commands/chunk-LZNYHWRO.js +78 -0
  389. package/dist/commands/chunk-M3ZDYCUF.js +117 -0
  390. package/dist/commands/chunk-M42SLJCD.js +97 -0
  391. package/dist/commands/chunk-M4PEC7YW.js +349 -0
  392. package/dist/commands/chunk-MAGJFH5T.js +77 -0
  393. package/dist/commands/chunk-MDKDJF2K.js +160 -0
  394. package/dist/commands/chunk-MDLOETXL.js +211 -0
  395. package/dist/commands/chunk-MGF64OHV.js +32 -0
  396. package/dist/commands/chunk-MMTVQOCP.js +211 -0
  397. package/dist/commands/chunk-MMXZKLDU.js +115 -0
  398. package/dist/commands/chunk-MPGJ4ONJ.js +634 -0
  399. package/dist/commands/chunk-MS6Q3Z7V.js +870 -0
  400. package/dist/commands/chunk-MSPIR3OA.js +32 -0
  401. package/dist/commands/chunk-MVPUQLN5.js +183 -0
  402. package/dist/commands/chunk-MXC4IBZ7.js +104 -0
  403. package/dist/commands/chunk-MY3RSOS5.js +52 -0
  404. package/dist/commands/chunk-MYNM3YMR.js +347 -0
  405. package/dist/commands/chunk-MYWRGF5A.js +177 -0
  406. package/dist/commands/chunk-MZHOPRI6.js +529 -0
  407. package/dist/commands/chunk-N4O5I55P.js +655 -0
  408. package/dist/commands/chunk-N6TYL3B2.js +250 -0
  409. package/dist/commands/chunk-NFEBQED3.js +179 -0
  410. package/dist/commands/chunk-NFKULY26.js +48 -0
  411. package/dist/commands/chunk-NGKB632X.js +92 -0
  412. package/dist/commands/chunk-NJ53AWJU.js +122 -0
  413. package/dist/commands/chunk-NJT5L6IC.js +126 -0
  414. package/dist/commands/chunk-NKKH3PBE.js +87 -0
  415. package/dist/commands/chunk-NKOET4FB.js +44 -0
  416. package/dist/commands/chunk-NMLCPYBN.js +134 -0
  417. package/dist/commands/chunk-NOXLKIPR.js +114 -0
  418. package/dist/commands/chunk-NSAVEXVR.js +353 -0
  419. package/dist/commands/chunk-NSZTSCBW.js +1263 -0
  420. package/dist/commands/chunk-NYWGJLBU.js +19 -0
  421. package/dist/commands/chunk-O26Y2FOJ.js +134 -0
  422. package/dist/commands/chunk-O27H6NN6.js +163 -0
  423. package/dist/commands/chunk-O3NDWYNT.js +68 -0
  424. package/dist/commands/chunk-O4WBADCX.js +88 -0
  425. package/dist/commands/chunk-O5FVBIRI.js +271 -0
  426. package/dist/commands/chunk-O5QZ2S6X.js +98 -0
  427. package/dist/commands/chunk-OGNTJ5JB.js +47 -0
  428. package/dist/commands/chunk-OHNP3QL2.js +186 -0
  429. package/dist/commands/chunk-OHVAEJSM.js +184 -0
  430. package/dist/commands/chunk-OI7KM4K3.js +43 -0
  431. package/dist/commands/chunk-OIDMJASD.js +62 -0
  432. package/dist/commands/chunk-OJ4LGBVD.js +126 -0
  433. package/dist/commands/chunk-OKKQI4ZG.js +49 -0
  434. package/dist/commands/chunk-OKYFQJW3.js +22 -0
  435. package/dist/commands/chunk-ORSI7Y55.js +133 -0
  436. package/dist/commands/chunk-OT3UMEWK.js +47 -0
  437. package/dist/commands/chunk-OTZJXU2R.js +170 -0
  438. package/dist/commands/chunk-OVA7STGP.js +578 -0
  439. package/dist/commands/chunk-OWR2TCOY.js +269 -0
  440. package/dist/commands/chunk-OZZWRJQI.js +246 -0
  441. package/dist/commands/chunk-P4CWLRT2.js +213 -0
  442. package/dist/commands/chunk-P4D5RESF.js +88 -0
  443. package/dist/commands/chunk-P4KIQRSL.js +119 -0
  444. package/dist/commands/chunk-P4O67FP5.js +488 -0
  445. package/dist/commands/chunk-P6RGQXHI.js +391 -0
  446. package/dist/commands/chunk-P7FPXAHP.js +29 -0
  447. package/dist/commands/chunk-PBOS7MTW.js +6 -0
  448. package/dist/commands/chunk-PDAY76AN.js +47 -0
  449. package/dist/commands/chunk-PDDKRHHS.js +128 -0
  450. package/dist/commands/chunk-PE7B7242.js +84 -0
  451. package/dist/commands/chunk-PF22VUWB.js +723 -0
  452. package/dist/commands/chunk-PFO7EYAP.js +45 -0
  453. package/dist/commands/chunk-PR3JCPP7.js +126 -0
  454. package/dist/commands/chunk-PWYXY46Y.js +1150 -0
  455. package/dist/commands/chunk-PYOK73QE.js +44 -0
  456. package/dist/commands/chunk-PZ4ITSLG.js +80 -0
  457. package/dist/commands/chunk-PZ6VWHOO.js +144 -0
  458. package/dist/commands/chunk-PZTWQYRI.js +44 -0
  459. package/dist/commands/chunk-PZU6FZO6.js +17 -0
  460. package/dist/commands/chunk-Q3463XNL.js +198 -0
  461. package/dist/commands/chunk-Q5N2J2UF.js +78 -0
  462. package/dist/commands/chunk-Q5Q2QYVU.js +112 -0
  463. package/dist/commands/chunk-Q6SKKQVJ.js +34 -0
  464. package/dist/commands/chunk-Q7TV3OV6.js +218 -0
  465. package/dist/commands/chunk-QA22PBCJ.js +165 -0
  466. package/dist/commands/chunk-QAHFPCFR.js +50 -0
  467. package/dist/commands/chunk-QDFDB4CF.js +478 -0
  468. package/dist/commands/chunk-QEIO2ZNQ.js +324 -0
  469. package/dist/commands/chunk-QF4WC2AE.js +10 -0
  470. package/dist/commands/chunk-QGAERR7D.js +99 -0
  471. package/dist/commands/chunk-QHWJJ6X5.js +53 -0
  472. package/dist/commands/chunk-QQ4CIYMF.js +132 -0
  473. package/dist/commands/chunk-QQBMVC5W.js +227 -0
  474. package/dist/commands/chunk-QQZOQ7AM.js +32 -0
  475. package/dist/commands/chunk-QS5USD4T.js +540 -0
  476. package/dist/commands/chunk-QVOFWFWC.js +134 -0
  477. package/dist/commands/chunk-QWWTC3XR.js +109 -0
  478. package/dist/commands/chunk-QWX7EBC6.js +112 -0
  479. package/dist/commands/chunk-QX2R6UJG.js +15 -0
  480. package/dist/commands/chunk-QXQ56E56.js +27 -0
  481. package/dist/commands/chunk-R2CF6VZE.js +114 -0
  482. package/dist/commands/chunk-R6QE5VJG.js +46 -0
  483. package/dist/commands/chunk-R7IT5VOL.js +27 -0
  484. package/dist/commands/chunk-RBU2NKHF.js +44 -0
  485. package/dist/commands/chunk-RDRN56E4.js +92 -0
  486. package/dist/commands/chunk-REMKUFAC.js +304 -0
  487. package/dist/commands/chunk-REPANBLS.js +168 -0
  488. package/dist/commands/chunk-RGDFWJPZ.js +135 -0
  489. package/dist/commands/chunk-RGGEQM6G.js +140 -0
  490. package/dist/commands/chunk-RH6ZWJOA.js +77 -0
  491. package/dist/commands/chunk-RHII5XI6.js +492 -0
  492. package/dist/commands/chunk-RI7EQYKL.js +60 -0
  493. package/dist/commands/chunk-RINVPTA2.js +1310 -0
  494. package/dist/commands/chunk-RIQ75QWR.js +233 -0
  495. package/dist/commands/chunk-RIUPRMLW.js +63 -0
  496. package/dist/commands/chunk-RK4HE5NW.js +172 -0
  497. package/dist/commands/chunk-ROJXMBXP.js +85 -0
  498. package/dist/commands/chunk-RPDWFUQO.js +239 -0
  499. package/dist/commands/chunk-RQRLW4XK.js +20 -0
  500. package/dist/commands/chunk-RRQFITJE.js +40 -0
  501. package/dist/commands/chunk-RS764ZMU.js +46 -0
  502. package/dist/commands/chunk-RSSJWMQS.js +30 -0
  503. package/dist/commands/chunk-RUIBQMOV.js +38 -0
  504. package/dist/commands/chunk-RUWV4INF.js +245 -0
  505. package/dist/commands/chunk-RVHBWSIG.js +114 -0
  506. package/dist/commands/chunk-RVUJ6F5L.js +181 -0
  507. package/dist/commands/chunk-RX5JSPPH.js +1153 -0
  508. package/dist/commands/chunk-RXAZJMSZ.js +18 -0
  509. package/dist/commands/chunk-RY6ZDHKB.js +1218 -0
  510. package/dist/commands/chunk-RYZ3RQRH.js +16 -0
  511. package/dist/commands/chunk-RZ4OKKPM.js +1722 -0
  512. package/dist/commands/chunk-RZJAUVMI.js +69 -0
  513. package/dist/commands/chunk-S4X5PJV7.js +40 -0
  514. package/dist/commands/chunk-S6SXMBF2.js +66 -0
  515. package/dist/commands/chunk-S7XWXG4M.js +3893 -0
  516. package/dist/commands/chunk-SADJPNDB.js +67 -0
  517. package/dist/commands/chunk-SBGTCT2C.js +89 -0
  518. package/dist/commands/chunk-SFNBUB6D.js +110 -0
  519. package/dist/commands/chunk-SK2LJBFS.js +168 -0
  520. package/dist/commands/chunk-SNFLV7VV.js +45 -0
  521. package/dist/commands/chunk-SNO7CY2B.js +69 -0
  522. package/dist/commands/chunk-ST32OGPY.js +82 -0
  523. package/dist/commands/chunk-SV4FHQE7.js +995 -0
  524. package/dist/commands/chunk-SVAKCXZ7.js +44 -0
  525. package/dist/commands/chunk-SXULS6DX.js +112 -0
  526. package/dist/commands/chunk-T25S4QHL.js +52 -0
  527. package/dist/commands/chunk-T2E724HN.js +117 -0
  528. package/dist/commands/chunk-T2IO4LEB.js +285 -0
  529. package/dist/commands/chunk-T33QDAWD.js +16 -0
  530. package/dist/commands/chunk-T3FD3Q73.js +49 -0
  531. package/dist/commands/chunk-T4UYEHWG.js +50 -0
  532. package/dist/commands/chunk-T57W3UWK.js +88 -0
  533. package/dist/commands/chunk-TAPDXK34.js +48 -0
  534. package/dist/commands/chunk-TBIX5FRN.js +106 -0
  535. package/dist/commands/chunk-TBNQIFWL.js +101 -0
  536. package/dist/commands/chunk-TCBUX52E.js +701 -0
  537. package/dist/commands/chunk-TIXJY22D.js +90 -0
  538. package/dist/commands/chunk-TKGBF75Y.js +88 -0
  539. package/dist/commands/chunk-TMLNI3YW.js +95 -0
  540. package/dist/commands/chunk-TPKFVVJQ.js +125 -0
  541. package/dist/commands/chunk-TS4ZK46L.js +116 -0
  542. package/dist/commands/chunk-TUIFS5E7.js +72 -0
  543. package/dist/commands/chunk-TVJE67O2.js +179 -0
  544. package/dist/commands/chunk-TVZXG4Y4.js +197 -0
  545. package/dist/commands/chunk-TXXYC7EV.js +74 -0
  546. package/dist/commands/chunk-U2UH4VM4.js +229 -0
  547. package/dist/commands/chunk-U3IVVR4W.js +33 -0
  548. package/dist/commands/chunk-U5HQQWRE.js +20 -0
  549. package/dist/commands/chunk-U7XU5RG3.js +86 -0
  550. package/dist/commands/chunk-UCI4AL3Q.js +35 -0
  551. package/dist/commands/chunk-UCQJDYE3.js +21 -0
  552. package/dist/commands/chunk-UCUSCLEK.js +90 -0
  553. package/dist/commands/chunk-UEURNXE5.js +280 -0
  554. package/dist/commands/chunk-UGCUSRZF.js +17 -0
  555. package/dist/commands/chunk-UIWAMLQH.js +49 -0
  556. package/dist/commands/chunk-UJOZ2MGX.js +705 -0
  557. package/dist/commands/chunk-ULVVGGTY.js +64 -0
  558. package/dist/commands/chunk-UOAG2XQT.js +37 -0
  559. package/dist/commands/chunk-US6X7JXC.js +120 -0
  560. package/dist/commands/chunk-UTBVTCQN.js +7401 -0
  561. package/dist/commands/chunk-UU6GCJGM.js +56 -0
  562. package/dist/commands/chunk-UWLLZQJB.js +110 -0
  563. package/dist/commands/chunk-UZAU6UI6.js +33 -0
  564. package/dist/commands/chunk-V4Z7G4UH.js +73 -0
  565. package/dist/commands/chunk-V5FD7DVV.js +48 -0
  566. package/dist/commands/chunk-V5OIPYA6.js +109 -0
  567. package/dist/commands/chunk-VCR77BHO.js +8 -0
  568. package/dist/commands/chunk-VD5674LW.js +127 -0
  569. package/dist/commands/chunk-VD72V5VX.js +230 -0
  570. package/dist/commands/chunk-VDGNXSP3.js +174 -0
  571. package/dist/commands/chunk-VFJYOAOQ.js +339 -0
  572. package/dist/commands/chunk-VGHSZLYQ.js +85 -0
  573. package/dist/commands/chunk-VHRNXWVP.js +28 -0
  574. package/dist/commands/chunk-VJE3RJAX.js +23 -0
  575. package/dist/commands/chunk-VJLZ3IQQ.js +151 -0
  576. package/dist/commands/chunk-VTLL6CKO.js +269 -0
  577. package/dist/commands/chunk-VW5SGE7A.js +18 -0
  578. package/dist/commands/chunk-VZCQZFPH.js +378 -0
  579. package/dist/commands/chunk-VZHC2I3T.js +1208 -0
  580. package/dist/commands/chunk-VZSJCFRT.js +44 -0
  581. package/dist/commands/chunk-W2IA2LV3.js +15 -0
  582. package/dist/commands/chunk-W32DIQEP.js +43 -0
  583. package/dist/commands/chunk-W3FX7FYN.js +84 -0
  584. package/dist/commands/chunk-W47I2KDY.js +47 -0
  585. package/dist/commands/chunk-W4J6YTFE.js +74 -0
  586. package/dist/commands/chunk-W4YH2DF3.js +58 -0
  587. package/dist/commands/chunk-W6MVQEMO.js +109 -0
  588. package/dist/commands/chunk-W6V4DWC5.js +70 -0
  589. package/dist/commands/chunk-WG6GYBRJ.js +271 -0
  590. package/dist/commands/chunk-WGULS5DA.js +129 -0
  591. package/dist/commands/chunk-WIE7VUBE.js +122 -0
  592. package/dist/commands/chunk-WJ4NEDNI.js +288 -0
  593. package/dist/commands/chunk-WL5JHB3I.js +12 -0
  594. package/dist/commands/chunk-WMMGXJXP.js +92 -0
  595. package/dist/commands/chunk-WN7NK3NY.js +24 -0
  596. package/dist/commands/chunk-WOFLW2LX.js +26 -0
  597. package/dist/commands/chunk-WPAQUMHC.js +28 -0
  598. package/dist/commands/chunk-WQ6FS544.js +35 -0
  599. package/dist/commands/chunk-WQJ7O3C3.js +229 -0
  600. package/dist/commands/chunk-WRX3MINT.js +60 -0
  601. package/dist/commands/chunk-WSOF74K4.js +30 -0
  602. package/dist/commands/chunk-WTRDWEUQ.js +533 -0
  603. package/dist/commands/chunk-WVR4RUFP.js +327 -0
  604. package/dist/commands/chunk-WW3TX742.js +122 -0
  605. package/dist/commands/chunk-WWC5L3AO.js +177 -0
  606. package/dist/commands/chunk-X5XYKDOD.js +7 -0
  607. package/dist/commands/chunk-X7PN54LZ.js +143 -0
  608. package/dist/commands/chunk-XBRD2BDL.js +74 -0
  609. package/dist/commands/chunk-XDF25GSU.js +536 -0
  610. package/dist/commands/chunk-XDQOWUVT.js +51 -0
  611. package/dist/commands/chunk-XFPEUYDV.js +67 -0
  612. package/dist/commands/chunk-XGMRAKSL.js +85 -0
  613. package/dist/commands/chunk-XH6BGVVP.js +1639 -0
  614. package/dist/commands/chunk-XMBRXCIE.js +89 -0
  615. package/dist/commands/chunk-XSKB6ZUA.js +123 -0
  616. package/dist/commands/chunk-XXNEY4B3.js +110 -0
  617. package/dist/commands/chunk-XYAK53TK.js +443 -0
  618. package/dist/commands/chunk-Y2RNUX4W.js +8 -0
  619. package/dist/commands/chunk-Y5ZW3KN5.js +58 -0
  620. package/dist/commands/chunk-YGDNUTTI.js +120 -0
  621. package/dist/commands/chunk-YIA6FC3K.js +78 -0
  622. package/dist/commands/chunk-YPNTORQD.js +121 -0
  623. package/dist/commands/chunk-YT342DRV.js +143 -0
  624. package/dist/commands/chunk-YVH2OLDS.js +104 -0
  625. package/dist/commands/chunk-Z4HYBFZD.js +1160 -0
  626. package/dist/commands/chunk-ZA3W73PF.js +192 -0
  627. package/dist/commands/chunk-ZAAHZY2A.js +19 -0
  628. package/dist/commands/chunk-ZAJD6T6E.js +38 -0
  629. package/dist/commands/chunk-ZBFNQUY7.js +12 -0
  630. package/dist/commands/chunk-ZDSDPKCD.js +88 -0
  631. package/dist/commands/chunk-ZECFKW7D.js +60 -0
  632. package/dist/commands/chunk-ZHZSZNE2.js +173 -0
  633. package/dist/commands/chunk-ZNX2LJCQ.js +29 -0
  634. package/dist/commands/chunk-ZQ3CKRMP.js +99 -0
  635. package/dist/commands/chunk-ZVAIIHBE.js +63 -0
  636. package/dist/commands/chunk-ZYGOZT4J.js +39 -0
  637. package/dist/commands/chunk-ZYIMQHCB.js +81 -0
  638. package/dist/commands/chunk-ZZAH3YQP.js +170 -0
  639. package/dist/commands/ci-timing-cli.js +76 -0
  640. package/dist/commands/clone-scan-cli.js +189 -0
  641. package/dist/commands/code-symbol-cli.js +185 -0
  642. package/dist/commands/codex-hook-adapter.js +357 -0
  643. package/dist/commands/command-derive.js +802 -0
  644. package/dist/commands/cost-audit-main.js +207 -0
  645. package/dist/commands/cost-main.js +28 -0
  646. package/dist/commands/cspell-cached.js +158 -0
  647. package/dist/commands/defect-origin-main.js +221 -0
  648. package/dist/commands/defect-report-main.js +288 -0
  649. package/dist/commands/delegation-cli.js +65 -0
  650. package/dist/commands/diff-summary-cli.js +147 -0
  651. package/dist/commands/disposition-cli.js +408 -0
  652. package/dist/commands/doctor.js +267 -0
  653. package/dist/commands/document-read-cli.js +39 -844
  654. package/dist/commands/document-section-main.js +26 -835
  655. package/dist/commands/dogfood-commit-cli.js +102 -0
  656. package/dist/commands/e2e-retry-check.js +79 -0
  657. package/dist/commands/edit-files-cli.js +147 -0
  658. package/dist/commands/effect-audit-cli.js +319 -0
  659. package/dist/commands/epic-audit-main.js +158 -0
  660. package/dist/commands/epic-bundle-main.js +199 -0
  661. package/dist/commands/epic-check.js +90 -0
  662. package/dist/commands/epic-main.js +222 -0
  663. package/dist/commands/epic-next-main.js +157 -0
  664. package/dist/commands/eval-run.js +838 -0
  665. package/dist/commands/fanout-cli.js +86 -0
  666. package/dist/commands/format-edited-cli.js +120 -0
  667. package/dist/commands/format.js +139 -0
  668. package/dist/commands/fresh-machine-cli.js +691 -0
  669. package/dist/commands/gh-usage-cli.js +224 -0
  670. package/dist/commands/git-followup-workflow.js +2012 -0
  671. package/dist/commands/git-gh-checks-failed-main.js +156 -0
  672. package/dist/commands/git-workflow.js +602 -0
  673. package/dist/commands/github-release-cli.js +253 -0
  674. package/dist/commands/hook-ledger-cli.js +416 -0
  675. package/dist/commands/init-main.js +98 -0
  676. package/dist/commands/inputs.json +2764 -0
  677. package/dist/commands/issue-ack-cli.js +106 -0
  678. package/dist/commands/issue-already-done-cli.js +305 -0
  679. package/dist/commands/issue-body-cli.js +184 -0
  680. package/dist/commands/issue-cite-main.js +162 -0
  681. package/dist/commands/issue-comment-main.js +72 -0
  682. package/dist/commands/issue-consolidate-cli.js +329 -0
  683. package/dist/commands/issue-file-main.js +419 -0
  684. package/dist/commands/issue-fold-existing-cli.js +506 -0
  685. package/dist/commands/issue-fold-main.js +113 -0
  686. package/dist/commands/issue-lint-main.js +126 -0
  687. package/dist/commands/issue-measured-cli.js +205 -0
  688. package/dist/commands/issue-plan-cli.js +352 -0
  689. package/dist/commands/issue-premise-unmet-cli.js +268 -0
  690. package/dist/commands/issue-priority-cli.js +184 -0
  691. package/dist/commands/issue-read-main.js +79 -0
  692. package/dist/commands/issue-release-class-cli.js +119 -0
  693. package/dist/commands/issue-release-main.js +71 -0
  694. package/dist/commands/issue-scout-main.js +203 -0
  695. package/dist/commands/issue-spill-main.js +564 -0
  696. package/dist/commands/issue-state-main.js +76 -0
  697. package/dist/commands/issue-tick-cli.js +112 -0
  698. package/dist/commands/josh-completion.js +153 -0
  699. package/dist/commands/lane-adopt-cli.js +275 -0
  700. package/dist/commands/lane-breakdown-cli.js +703 -0
  701. package/dist/commands/lane-cli.js +863 -0
  702. package/dist/commands/lane-launch-main.js +103 -0
  703. package/dist/commands/lane-limit-cli.js +286 -0
  704. package/dist/commands/lane-measure-cli.js +1797 -0
  705. package/dist/commands/lane-pause-cli.js +255 -0
  706. package/dist/commands/lane-plan-cli.js +322 -0
  707. package/dist/commands/lane-resolve-cli.js +300 -0
  708. package/dist/commands/lane-restart-cli.js +387 -0
  709. package/dist/commands/lane-why-cli.js +307 -0
  710. package/dist/commands/lane-withdraw-cli.js +191 -0
  711. package/dist/commands/latest-corepack.js +278 -0
  712. package/dist/commands/latest-if-required-cli.js +124 -0
  713. package/dist/commands/latest-lane-guard-main.js +16 -0
  714. package/dist/commands/latest-scope-main.js +38 -0
  715. package/dist/commands/latest-update.js +449 -0
  716. package/dist/commands/lines-command.js +121 -0
  717. package/dist/commands/lint-parallel-main.js +134 -0
  718. package/dist/commands/lint-related.js +565 -0
  719. package/dist/commands/lint-rule.js +305 -0
  720. package/dist/commands/lockfile-policy.js +107 -0
  721. package/dist/commands/main-merge-main.js +61 -0
  722. package/dist/commands/main-sync-main.js +60 -0
  723. package/dist/commands/managed-config-scope-cli.js +66 -0
  724. package/dist/commands/measure-rerun-cli.js +124 -0
  725. package/dist/commands/metrics-command.js +859 -0
  726. package/dist/commands/observation-depth-cli.js +109 -0
  727. package/dist/commands/observation-record-cli.js +87 -0
  728. package/dist/commands/observations-flush-cli.js +115 -0
  729. package/dist/commands/oracle-list-cli.js +73 -0
  730. package/dist/commands/overrides-check.js +112 -0
  731. package/dist/commands/package-scout-cli.js +496 -0
  732. package/dist/commands/pin-verify-cli.js +88 -0
  733. package/dist/commands/plan-consumers-main.js +49 -0
  734. package/dist/commands/plan-scaffold-cli.js +367 -0
  735. package/dist/commands/port-command.js +64 -0
  736. package/dist/commands/pr-classification-main.js +37 -0
  737. package/dist/commands/pre-commit-lint.js +163 -0
  738. package/dist/commands/pre-commit-type-check.js +210 -0
  739. package/dist/commands/pre-push-unit.js +271 -0
  740. package/dist/commands/pretool-guard-cli.js +205 -0
  741. package/dist/commands/prevent-main-commit.js +42 -0
  742. package/dist/commands/project-profile-cli.js +58 -0
  743. package/dist/commands/propagate.js +368 -0
  744. package/dist/commands/prose-stale-cli.js +128 -0
  745. package/dist/commands/publish-tag-cli.js +30 -0
  746. package/dist/commands/publishable-range-check.js +191 -0
  747. package/dist/commands/read-files-cli.js +81 -0
  748. package/dist/commands/read-set-cli.js +121 -1745
  749. package/dist/commands/reconcile-templates.js +135 -0
  750. package/dist/commands/refactor-scan-cli.js +175 -0
  751. package/dist/commands/release-cli.js +724 -0
  752. package/dist/commands/release-scope-main.js +81 -0
  753. package/dist/commands/rename-cli.js +432 -0
  754. package/dist/commands/repo-party-cli.js +58 -0
  755. package/dist/commands/report-lint-cli.js +124 -0
  756. package/dist/commands/report-template-cli.js +69 -0
  757. package/dist/commands/reserved-run.js +127 -0
  758. package/dist/commands/retrospective-cli.js +555 -0
  759. package/dist/commands/review-attest-cli.js +118 -0
  760. package/dist/commands/review-brief-main.js +247 -0
  761. package/dist/commands/review-findings-cli.js +114 -0
  762. package/dist/commands/review-pair-cli.js +366 -0
  763. package/dist/commands/review-record-main.js +222 -0
  764. package/dist/commands/review-round2-cli.js +349 -0
  765. package/dist/commands/review-stops-cli.js +149 -0
  766. package/dist/commands/review-submit-cli.js +610 -0
  767. package/dist/commands/rule-list.js +184 -0
  768. package/dist/commands/rule-value-cli.js +908 -0
  769. package/dist/commands/ruleset-check-cli.js +67 -0
  770. package/dist/commands/run-add-cli.js +273 -0
  771. package/dist/commands/run-board-main.js +272 -0
  772. package/dist/commands/run-carry-cli.js +641 -0
  773. package/dist/commands/run-chain-cli.js +537 -0
  774. package/dist/commands/run-cut-cli.js +709 -0
  775. package/dist/commands/run-ending-cli.js +169 -0
  776. package/dist/commands/run-entry-cli.js +1060 -0
  777. package/dist/commands/run-event-cli.js +298 -0
  778. package/dist/commands/run-handoff-cli.js +344 -0
  779. package/dist/commands/run-handoff-lanes-cli.js +233 -0
  780. package/dist/commands/run-hold-main.js +203 -0
  781. package/dist/commands/run-liveness-cli.js +190 -0
  782. package/dist/commands/run-merge-main.js +246 -0
  783. package/dist/commands/run-next-cli.js +240 -0
  784. package/dist/commands/run-park-cli.js +393 -0
  785. package/dist/commands/run-pause-cli.js +334 -0
  786. package/dist/commands/run-pickup-cli.js +196 -0
  787. package/dist/commands/run-prep-main.js +209 -21168
  788. package/dist/commands/run-prime-cli.js +281 -0
  789. package/dist/commands/run-progress-main.js +655 -0
  790. package/dist/commands/run-report-cli.js +376 -0
  791. package/dist/commands/run-review-cli.js +777 -0
  792. package/dist/commands/run-ship-cli.js +2615 -0
  793. package/dist/commands/run-ship-evidence-cli.js +288 -0
  794. package/dist/commands/run-ship-lap-W5T2VHFC.js +30 -0
  795. package/dist/commands/run-ship-wait-main.js +145 -0
  796. package/dist/commands/run-split-cli.js +525 -0
  797. package/dist/commands/run-stale-main.js +254 -0
  798. package/dist/commands/run-status-cli.js +216 -0
  799. package/dist/commands/run-step-cli.js +419 -27653
  800. package/dist/commands/run-tail-cli.js +119 -0
  801. package/dist/commands/run-tidy-main.js +402 -0
  802. package/dist/commands/run-wake-main.js +272 -0
  803. package/dist/commands/run-watcher-guard-cli.js +128 -0
  804. package/dist/commands/secretlint-scan.js +84 -0
  805. package/dist/commands/security-audit-main.js +151 -0
  806. package/dist/commands/security-audit-provision-main.js +52 -0
  807. package/dist/commands/selfcheck-cli.js +409 -0
  808. package/dist/commands/session-language-main.js +120 -0
  809. package/dist/commands/sonar-hotspots-cli.js +133 -0
  810. package/dist/commands/sonar-new-code-cli.js +143 -0
  811. package/dist/commands/split-assess-cli.js +138 -0
  812. package/dist/commands/split-child-recover-cli.js +168 -0
  813. package/dist/commands/start.js +707 -0
  814. package/dist/commands/stash-pop-main.js +26 -0
  815. package/dist/commands/stash-push-main.js +30 -0
  816. package/dist/commands/stop-guard.js +567 -0
  817. package/dist/commands/sync-main.js +57 -0
  818. package/dist/commands/telegram-test-main.js +64 -0
  819. package/dist/commands/test-declared.js +255 -0
  820. package/dist/commands/test-e2e-guard.js +200 -0
  821. package/dist/commands/test-pinned-main.js +189 -0
  822. package/dist/commands/test-reach-cli.js +111 -0
  823. package/dist/commands/test-red-main.js +46 -0
  824. package/dist/commands/test-related-ZT2AO62I.js +113 -0
  825. package/dist/commands/test-related-main.js +223 -0
  826. package/dist/commands/test-unit-guard-main.js +87 -0
  827. package/dist/commands/time-cli.js +356 -0
  828. package/dist/commands/time-density-cli.js +183 -0
  829. package/dist/commands/tree-status-cli.js +172 -0
  830. package/dist/commands/type-check-command.js +74 -0
  831. package/dist/commands/ui-routes-cli.js +135 -0
  832. package/dist/commands/ui-shot-cli.js +131 -0
  833. package/dist/commands/uninstall.js +424 -0
  834. package/dist/commands/unused-members-STULPRBU.js +331 -0
  835. package/dist/commands/unused-members-cli.js +54 -0
  836. package/dist/commands/upstream-interrupt-main.js +449 -0
  837. package/dist/commands/usage-tee-cli.js +60 -0
  838. package/dist/commands/verification-gate.js +808 -0
  839. package/dist/commands/version-check.js +497 -0
  840. package/dist/hooks/audit-provision.js +20 -9
  841. package/dist/hooks/{chunk-UJ3FPMMM.js → chunk-4YXV2REH.js} +444 -141
  842. package/dist/hooks/chunk-6RR6JZSB.js +12367 -0
  843. package/dist/hooks/chunk-6YGMIODI.js +86 -0
  844. package/dist/hooks/chunk-CICKRHTB.js +7586 -0
  845. package/dist/hooks/chunk-CY3ADSDR.js +28580 -0
  846. package/dist/hooks/chunk-FOW4B7OQ.js +1795 -0
  847. package/dist/hooks/chunk-LKQBEKBI.js +232 -0
  848. package/dist/hooks/chunk-LRD2ERRI.js +299 -0
  849. package/dist/hooks/chunk-LWD43Z3C.js +6793 -0
  850. package/dist/hooks/chunk-NUPVO7RI.js +3054 -0
  851. package/dist/hooks/chunk-P7BPAU26.js +1082 -0
  852. package/dist/hooks/chunk-RQXECHAS.js +309 -0
  853. package/dist/hooks/chunk-SAAPRHTK.js +43 -0
  854. package/dist/hooks/chunk-U3ON2GBN.js +12 -0
  855. package/dist/hooks/{chunk-CQD4LJE6.js → chunk-UU4PTPEZ.js} +3143 -1257
  856. package/dist/hooks/chunk-YEURBB4L.js +32 -0
  857. package/dist/hooks/codex-hook-adapter.js +61 -25
  858. package/dist/hooks/daemon.js +67304 -0
  859. package/dist/hooks/format-edited.js +15 -5
  860. package/dist/hooks/inputs.json +584 -401
  861. package/dist/hooks/pretool-guard.js +11 -7
  862. package/dist/hooks/ready.js +300 -0
  863. package/dist/hooks/run-ship-lap-VCEOUHQI.js +8 -0
  864. package/dist/hooks/session-lang.js +226 -121
  865. package/dist/hooks/stop-guard.js +9188 -4508
  866. package/dist/inputs.json +169 -0
  867. package/dist/josh.js +9617 -6711
  868. package/dist/self-sync-guard/index.js +68 -14
  869. package/dist/version/index.js +642 -85
  870. package/eslint/base.js +36 -11
  871. package/eslint/config-fingerprint.js +164 -21
  872. package/eslint/rules/code-quality.js +6 -0
  873. package/eslint/rules/comment-why-only.js +40 -16
  874. package/eslint/rules/english-only-prose.js +10 -3
  875. package/eslint/rules/import.js +3 -17
  876. package/eslint/rules/test-helper-bans.js +34 -0
  877. package/eslint/untyped-environment.js +21 -0
  878. package/eslint/untyped.js +60 -0
  879. package/lefthook/base.yml +4 -5
  880. package/package.json +15 -13
  881. package/pnpm-workspace.yaml +15 -0
  882. package/ports/index.js +8 -15
  883. package/prompts/coding-standards.md +4 -43
  884. package/prompts/collaboration-workflow/file-edits.md +10 -10
  885. package/prompts/collaboration-workflow/gh-rest.md +14 -7
  886. package/prompts/collaboration-workflow/issue-template.en.md +125 -0
  887. package/prompts/collaboration-workflow/issue-template.md +49 -56
  888. package/prompts/collaboration-workflow/lane-instructions.md +1 -0
  889. package/prompts/collaboration-workflow/measurement.md +13 -17
  890. package/prompts/collaboration-workflow/operating-rules.md +10 -7
  891. package/prompts/collaboration-workflow/output-bounds.md +3 -3
  892. package/prompts/collaboration-workflow/overview.md +8 -17
  893. package/prompts/collaboration-workflow/plan-comment.md +1 -1
  894. package/prompts/collaboration-workflow/principles.md +17 -19
  895. package/prompts/collaboration-workflow/report-format.md +6 -5
  896. package/prompts/collaboration-workflow/residency.md +1 -0
  897. package/prompts/collaboration-workflow/rule-delivery.md +4 -12
  898. package/prompts/collaboration-workflow/shell-body.md +7 -7
  899. package/prompts/collaboration-workflow/turn-batching.md +2 -2
  900. package/prompts/collaboration-workflow/upstream-interrupt.md +8 -8
  901. package/prompts/collaboration-workflow/wip-cap.md +3 -3
  902. package/prompts/refactoring.md +4 -3
  903. package/prompts/review-rubric.md +8 -21
  904. package/prompts/review.md +52 -80
  905. package/prompts/sonar-hotspot-handling.md +1 -1
  906. package/prompts/testing-guide.md +15 -2
  907. package/scripts/agent/agent-argv.ts +11 -4
  908. package/scripts/agent/agent-consultation-model.ts +47 -0
  909. package/scripts/agent/agent-event.ts +11 -2
  910. package/scripts/agent/agent-launch-environment.ts +6 -57
  911. package/scripts/agent/agent-model-alias.ts +19 -0
  912. package/scripts/agent/agent-profile-schema.ts +98 -0
  913. package/scripts/agent/agent-role-profile.ts +105 -82
  914. package/scripts/agent/agent-safe-text.ts +2 -2
  915. package/scripts/agent/agent-session-role.ts +25 -3
  916. package/scripts/agent/answer-judge.ts +174 -0
  917. package/scripts/agent/answer-verdict.ts +122 -0
  918. package/scripts/agent/claude-agent-argv.ts +12 -6
  919. package/scripts/agent/codex-agent-argv.ts +17 -143
  920. package/scripts/agent/codex-home-source.ts +1 -1
  921. package/scripts/agent/codex-hooks.ts +29 -6
  922. package/scripts/agent/judgment-agent-argv.ts +49 -0
  923. package/scripts/agent/lane-instructions.ts +4 -1
  924. package/scripts/auto-ok/auto-ok-author.ts +14 -3
  925. package/scripts/auto-ok/auto-ok-cli.ts +20 -12
  926. package/scripts/auto-ok/auto-ok-judge-cli.ts +7 -14
  927. package/scripts/auto-ok/auto-ok-judge-read.ts +3 -3
  928. package/scripts/auto-ok/auto-ok-judge-write.ts +18 -16
  929. package/scripts/backlog/backlog-arrival-added.ts +47 -11
  930. package/scripts/backlog/backlog-arrival.ts +90 -23
  931. package/scripts/backlog/backlog-auto-triage.ts +130 -0
  932. package/scripts/backlog/backlog-budget-cli.ts +2 -1
  933. package/scripts/backlog/backlog-budget.ts +31 -5
  934. package/scripts/backlog/backlog-defect-priority.ts +32 -19
  935. package/scripts/backlog/backlog-drain-flush.ts +22 -0
  936. package/scripts/backlog/backlog-drive-adopt.ts +2 -2
  937. package/scripts/backlog/backlog-drive-after-merge.ts +123 -0
  938. package/scripts/backlog/backlog-drive-args.ts +60 -7
  939. package/scripts/backlog/backlog-drive-cli.ts +69 -64
  940. package/scripts/backlog/backlog-drive-collect.ts +46 -0
  941. package/scripts/backlog/backlog-drive-epic.ts +1 -1
  942. package/scripts/backlog/backlog-drive-hold.ts +32 -8
  943. package/scripts/backlog/backlog-drive-idle.ts +21 -10
  944. package/scripts/backlog/backlog-drive-launch-pass.ts +79 -23
  945. package/scripts/backlog/backlog-drive-launch.ts +73 -7
  946. package/scripts/backlog/backlog-drive-listing.ts +59 -0
  947. package/scripts/backlog/backlog-drive-memory.ts +4 -5
  948. package/scripts/backlog/backlog-drive-named-offer.ts +112 -22
  949. package/scripts/backlog/backlog-drive-named.ts +11 -4
  950. package/scripts/backlog/backlog-drive-offer-argv.ts +10 -2
  951. package/scripts/backlog/backlog-drive-park-triage.ts +57 -0
  952. package/scripts/backlog/backlog-drive-paused.ts +2 -1
  953. package/scripts/backlog/backlog-drive-rate-limit.ts +29 -0
  954. package/scripts/backlog/backlog-drive-rate.ts +73 -0
  955. package/scripts/backlog/backlog-drive-record.ts +58 -0
  956. package/scripts/backlog/backlog-drive-restore.ts +38 -8
  957. package/scripts/backlog/backlog-drive-retrospective-unit.ts +80 -0
  958. package/scripts/backlog/backlog-drive-retrospective.ts +35 -1
  959. package/scripts/backlog/backlog-drive-retry.ts +85 -0
  960. package/scripts/backlog/backlog-drive-seats.ts +4 -7
  961. package/scripts/backlog/backlog-drive-split-unit.ts +108 -0
  962. package/scripts/backlog/backlog-drive-stalled-retry.ts +194 -0
  963. package/scripts/backlog/backlog-drive-state.ts +28 -0
  964. package/scripts/backlog/backlog-drive-tick.ts +77 -0
  965. package/scripts/backlog/backlog-drive-token-handling.ts +2 -2
  966. package/scripts/backlog/backlog-drive-trace.ts +45 -0
  967. package/scripts/backlog/backlog-drive-unit.ts +54 -0
  968. package/scripts/backlog/backlog-drive-unread.ts +1 -1
  969. package/scripts/backlog/backlog-drive.ts +142 -99
  970. package/scripts/backlog/backlog-gate-scope.ts +15 -3
  971. package/scripts/backlog/backlog-hold-codes.ts +23 -0
  972. package/scripts/backlog/backlog-hold-text.ts +107 -0
  973. package/scripts/backlog/backlog-measure-close.ts +61 -31
  974. package/scripts/backlog/backlog-named.ts +1 -1
  975. package/scripts/backlog/backlog-next-offer.ts +138 -0
  976. package/scripts/backlog/backlog-next-report.ts +221 -0
  977. package/scripts/backlog/backlog-next-shared.ts +22 -4
  978. package/scripts/backlog/backlog-next-size.ts +108 -0
  979. package/scripts/backlog/backlog-next.ts +52 -187
  980. package/scripts/backlog/backlog-occupied.ts +7 -7
  981. package/scripts/backlog/backlog-offer-cli.ts +13 -2
  982. package/scripts/backlog/backlog-offer-timing.ts +141 -0
  983. package/scripts/backlog/backlog-offer.ts +26 -6
  984. package/scripts/backlog/backlog-overlap.ts +7 -1
  985. package/scripts/backlog/backlog-plan-cli.ts +27 -3
  986. package/scripts/backlog/backlog-plan-comment.ts +36 -14
  987. package/scripts/backlog/backlog-plan-words.ts +69 -0
  988. package/scripts/backlog/backlog-plan.ts +63 -46
  989. package/scripts/backlog/backlog-pool.ts +42 -13
  990. package/scripts/backlog/backlog-preflight.ts +67 -0
  991. package/scripts/backlog/backlog-ready.ts +7 -69
  992. package/scripts/backlog/backlog-resumable.ts +65 -0
  993. package/scripts/backlog/backlog-resume-reads.ts +119 -0
  994. package/scripts/backlog/backlog-stalled-detect.ts +4 -3
  995. package/scripts/backlog/backlog-stalled.ts +3 -2
  996. package/scripts/backlog/backlog-triage-adopt.ts +239 -0
  997. package/scripts/backlog/backlog-triage-approval.ts +94 -0
  998. package/scripts/backlog/backlog-triage-cli.ts +270 -0
  999. package/scripts/backlog/backlog-triage-decision.ts +49 -0
  1000. package/scripts/backlog/backlog-triage-park.ts +53 -0
  1001. package/scripts/backlog/backlog-triage-pass.ts +113 -0
  1002. package/scripts/backlog/backlog-triage-unblock.ts +68 -0
  1003. package/scripts/backlog/backlog-wait-cause.ts +76 -16
  1004. package/scripts/backlog/backlog-yield-cap.ts +108 -0
  1005. package/scripts/backlog/backlogrun-args.ts +45 -16
  1006. package/scripts/backlog/backlogrun-cli.ts +82 -18
  1007. package/scripts/backlog/backlogrun-launch.ts +12 -4
  1008. package/scripts/backlog/backlogrun-replace.ts +44 -4
  1009. package/scripts/build/build-bin.ts +25 -2
  1010. package/scripts/build/build-codex-hooks.ts +2 -2
  1011. package/scripts/build/build-commands.ts +27 -19
  1012. package/scripts/build/build-hooks.ts +117 -22
  1013. package/scripts/build/hook-bundle-stamp.ts +15 -5
  1014. package/scripts/build/local-bin.ts +27 -1
  1015. package/scripts/build/source-location.ts +82 -0
  1016. package/scripts/ci/ci-timing-cli.ts +73 -0
  1017. package/scripts/ci/ci-timing-table.ts +84 -0
  1018. package/scripts/ci/ci-timing.ts +104 -0
  1019. package/scripts/ci/composite-actions.ts +1 -1
  1020. package/scripts/ci/pr-classification.ts +89 -11
  1021. package/scripts/code/code-symbol-cli.ts +121 -0
  1022. package/scripts/code/code-symbol.ts +127 -0
  1023. package/scripts/config-merge/patch-json-key.ts +4 -7
  1024. package/scripts/cost-runtime/cost-blocks.ts +3 -4
  1025. package/scripts/cost-runtime/cost-cli.ts +4 -7
  1026. package/scripts/cost-runtime/cost-pricing.ts +2 -2
  1027. package/scripts/cost-runtime/cost-tokens.ts +7 -6
  1028. package/scripts/delegation/delegation-policy.ts +2 -2
  1029. package/scripts/delegation/duplicate-read-guard.ts +41 -28
  1030. package/scripts/delegation/investigation-guard.ts +13 -5
  1031. package/scripts/delegation/investigation-reads.ts +52 -34
  1032. package/scripts/delegation/large-read-guard.ts +150 -0
  1033. package/scripts/discovery/git-directory.ts +61 -0
  1034. package/scripts/discovery/pin-verify-cli.ts +115 -0
  1035. package/scripts/discovery/repo-discovery.ts +10 -58
  1036. package/scripts/discovery/repo-party.ts +1 -0
  1037. package/scripts/document/backlogrun-parent-read-set.ts +37 -6
  1038. package/scripts/document/capped-print.ts +3 -3
  1039. package/scripts/document/command-reference-line-budget.ts +4 -1
  1040. package/scripts/document/document-byte-budget.ts +34 -16
  1041. package/scripts/document/document-byte-check.ts +1 -1
  1042. package/scripts/document/document-reachability.ts +4 -3
  1043. package/scripts/document/document-scan.ts +2 -5
  1044. package/scripts/document/document-section-cli.ts +13 -1
  1045. package/scripts/document/edit-files-cli.ts +3 -7
  1046. package/scripts/document/entry-read-budget.ts +12 -4
  1047. package/scripts/document/entry-read-set.ts +9 -2
  1048. package/scripts/document/issue-citation-budget.ts +3 -3
  1049. package/scripts/document/lane-child-read-set.ts +21 -29
  1050. package/scripts/document/read-set-cli.ts +17 -10
  1051. package/scripts/document/read-set-point-of-use.ts +13 -9
  1052. package/scripts/document/read-set-trim.ts +42 -2
  1053. package/scripts/epic/epic-audit-checks.ts +1 -1
  1054. package/scripts/epic/epic-audit-cli.ts +19 -21
  1055. package/scripts/epic/epic-audit-main.ts +17 -0
  1056. package/scripts/epic/epic-audit-orphans.ts +1 -1
  1057. package/scripts/epic/epic-audit.ts +6 -3
  1058. package/scripts/epic/epic-blocked-by.ts +198 -0
  1059. package/scripts/epic/epic-body.ts +6 -6
  1060. package/scripts/epic/epic-bundle-apply.ts +41 -10
  1061. package/scripts/epic/epic-bundle-cli.ts +40 -99
  1062. package/scripts/epic/epic-bundle-evidence.ts +2 -2
  1063. package/scripts/epic/epic-bundle-format.ts +21 -7
  1064. package/scripts/epic/epic-bundle-recommend.ts +56 -0
  1065. package/scripts/epic/epic-bundle-referenced.ts +42 -17
  1066. package/scripts/epic/epic-bundle.ts +31 -4
  1067. package/scripts/epic/epic-busy.ts +11 -9
  1068. package/scripts/epic/epic-chains.ts +59 -23
  1069. package/scripts/epic/epic-child-source.ts +111 -0
  1070. package/scripts/epic/epic-cli-untrack.ts +38 -0
  1071. package/scripts/epic/epic-cli.ts +26 -7
  1072. package/scripts/epic/epic-close-comment.ts +4 -2
  1073. package/scripts/epic/epic-close.ts +25 -11
  1074. package/scripts/epic/epic-decide.ts +39 -3
  1075. package/scripts/epic/epic-fetch.ts +116 -24
  1076. package/scripts/epic/epic-graph.ts +1 -0
  1077. package/scripts/epic/epic-label-age.ts +55 -13
  1078. package/scripts/epic/epic-lane-occupancy.ts +75 -0
  1079. package/scripts/epic/epic-lane-offer.ts +49 -13
  1080. package/scripts/epic/epic-main.ts +23 -0
  1081. package/scripts/epic/epic-next-main.ts +2 -4
  1082. package/scripts/epic/epic-next-read.ts +12 -3
  1083. package/scripts/epic/epic-next-views.ts +1 -1
  1084. package/scripts/epic/epic-notify.ts +72 -0
  1085. package/scripts/epic/epic-parse.ts +1 -1
  1086. package/scripts/epic/epic-rank.ts +6 -2
  1087. package/scripts/epic/epic-reference.ts +1 -1
  1088. package/scripts/epic/epic-run.ts +14 -1
  1089. package/scripts/epic/epic-shape.ts +2 -2
  1090. package/scripts/epic/epic-solo-stale.ts +1 -1
  1091. package/scripts/epic/epic-solo.ts +11 -5
  1092. package/scripts/epic/epic-split-reach.ts +107 -0
  1093. package/scripts/epic/epic-triage.ts +29 -5
  1094. package/scripts/epic/epic-untrack-plan.ts +75 -0
  1095. package/scripts/epic/epic-untrack.ts +42 -0
  1096. package/scripts/epic/epic.ts +65 -31
  1097. package/scripts/followup/followup-check-report.ts +70 -0
  1098. package/scripts/followup/followup-ci-path.ts +27 -7
  1099. package/scripts/followup/followup-coderabbit-retrigger.ts +61 -23
  1100. package/scripts/followup/followup-failed-tests.ts +4 -0
  1101. package/scripts/followup/followup-human-merge.ts +109 -0
  1102. package/scripts/followup/followup-job-needs.ts +92 -14
  1103. package/scripts/followup/followup-job-rerun.ts +162 -43
  1104. package/scripts/followup/followup-run-rerun.ts +183 -0
  1105. package/scripts/followup/followup-section.ts +30 -0
  1106. package/scripts/followup/followup-ship-environment.ts +17 -0
  1107. package/scripts/followup/git-followup-finish.ts +52 -1
  1108. package/scripts/followup/git-followup-flush.ts +6 -8
  1109. package/scripts/followup/git-followup-stages.ts +3 -0
  1110. package/scripts/followup/git-followup-workflow.ts +29 -9
  1111. package/scripts/followup/git-pr-followup-checks.ts +65 -8
  1112. package/scripts/followup/git-pr-followup-wrapup.ts +11 -9
  1113. package/scripts/followup/git-pr-followup.ts +18 -12
  1114. package/scripts/fresh-machine/fresh-machine-cli.ts +2 -1
  1115. package/scripts/fresh-machine/fresh-machine-image.ts +3 -1
  1116. package/scripts/fresh-machine/fresh-machine-patterns.ts +25 -4
  1117. package/scripts/fresh-machine/fresh-machine-registry.ts +85 -0
  1118. package/scripts/fresh-machine/fresh-machine-script.ts +3 -1
  1119. package/scripts/fresh-machine/fresh-machine-spec.ts +2 -2
  1120. package/scripts/fresh-machine/specs/kit-test-backlogrun-python.json +0 -1
  1121. package/scripts/fresh-machine/specs/kit-test-backlogrun.json +0 -1
  1122. package/scripts/gate/busy-average.ts +26 -3
  1123. package/scripts/gate/change-scope-action.ts +101 -0
  1124. package/scripts/gate/check-inputs.ts +1 -1
  1125. package/scripts/gate/check-related-order.ts +65 -0
  1126. package/scripts/gate/check-related-pinned.ts +3 -2
  1127. package/scripts/gate/check-related-reuse.ts +34 -6
  1128. package/scripts/gate/check-related-section.ts +8 -1
  1129. package/scripts/gate/check-related-unplanned.ts +11 -1
  1130. package/scripts/gate/check-related.ts +122 -34
  1131. package/scripts/gate/check-reuse.ts +63 -31
  1132. package/scripts/gate/command-memory.ts +10 -4
  1133. package/scripts/gate/core-admission.ts +34 -8
  1134. package/scripts/gate/core-budget.ts +55 -65
  1135. package/scripts/gate/core-priority.ts +28 -0
  1136. package/scripts/gate/core-reservation.ts +85 -0
  1137. package/scripts/gate/core-wait.ts +90 -19
  1138. package/scripts/gate/core-weights.ts +25 -16
  1139. package/scripts/gate/gate-checks.ts +196 -0
  1140. package/scripts/gate/gate-labels.ts +4 -0
  1141. package/scripts/gate/gate-plan.ts +34 -164
  1142. package/scripts/gate/gate-report.ts +14 -10
  1143. package/scripts/gate/gate-run-steps.ts +38 -6
  1144. package/scripts/gate/gate-skip.ts +1 -1
  1145. package/scripts/gate/gate-static-group.ts +35 -6
  1146. package/scripts/gate/machine-capacity.ts +20 -25
  1147. package/scripts/gate/metrics-totals.ts +30 -4
  1148. package/scripts/gate/path-glob.ts +15 -0
  1149. package/scripts/gate/pre-commit-type-check.ts +2 -6
  1150. package/scripts/gate/project-checks.ts +33 -2
  1151. package/scripts/gate/project-gate-steps.ts +206 -0
  1152. package/scripts/gate/project-step-reuse.ts +69 -0
  1153. package/scripts/gate/scoped-green.ts +10 -4
  1154. package/scripts/gate/since-green.ts +76 -20
  1155. package/scripts/gate/tree-verdict.ts +111 -0
  1156. package/scripts/gate/tsc-arguments.ts +9 -0
  1157. package/scripts/gate/type-check-command.ts +4 -7
  1158. package/scripts/gate/type-check-step.ts +4 -1
  1159. package/scripts/gate/type-program-serial.ts +52 -0
  1160. package/scripts/gate/verification-gate.ts +47 -17
  1161. package/scripts/gate/verification-inputs.ts +46 -11
  1162. package/scripts/gate/whole-tree-reuse.ts +24 -0
  1163. package/scripts/gh/gh-author-association.ts +40 -14
  1164. package/scripts/gh/gh-call-kind.ts +97 -0
  1165. package/scripts/gh/gh-comment-input.ts +26 -0
  1166. package/scripts/gh/gh-core-rate-limit.ts +151 -0
  1167. package/scripts/gh/gh-permission-cache.ts +44 -0
  1168. package/scripts/gh/gh-request-tally.ts +143 -0
  1169. package/scripts/gh/gh-spawn.ts +2 -2
  1170. package/scripts/gh/gh-usage-cli.ts +71 -0
  1171. package/scripts/gh/gh-usage-event.ts +82 -0
  1172. package/scripts/gh/gh-usage-log.ts +48 -0
  1173. package/scripts/gh/gh-usage-tally.ts +209 -0
  1174. package/scripts/gh/git-gh-api-path.ts +17 -2
  1175. package/scripts/gh/git-gh-blocked-by-graphql.ts +107 -0
  1176. package/scripts/gh/git-gh-checks-failed-main.ts +24 -0
  1177. package/scripts/gh/git-gh-checks-failed.ts +141 -0
  1178. package/scripts/gh/git-gh-code-scanning.ts +81 -0
  1179. package/scripts/gh/git-gh-conditional.ts +36 -4
  1180. package/scripts/gh/git-gh-etag-read.ts +107 -0
  1181. package/scripts/gh/git-gh-exec.ts +74 -25
  1182. package/scripts/gh/git-gh-failure.ts +16 -2
  1183. package/scripts/gh/git-gh-helpers.ts +2 -6
  1184. package/scripts/gh/git-gh-issue-alias-graphql.ts +113 -0
  1185. package/scripts/gh/git-gh-issue-batch-graphql.ts +155 -0
  1186. package/scripts/gh/git-gh-issue-batch-read.ts +66 -0
  1187. package/scripts/gh/git-gh-issue-graphql.ts +229 -0
  1188. package/scripts/gh/git-gh-issue-list-graphql.ts +103 -0
  1189. package/scripts/gh/git-gh-issue-list.ts +126 -34
  1190. package/scripts/gh/git-gh-issue-memo.ts +53 -0
  1191. package/scripts/gh/git-gh-issue-read.ts +87 -14
  1192. package/scripts/gh/git-gh-issue-rest.ts +5 -8
  1193. package/scripts/gh/git-gh-issue-write.ts +31 -10
  1194. package/scripts/gh/git-gh-issue.ts +25 -4
  1195. package/scripts/gh/git-gh-poll-read.ts +43 -18
  1196. package/scripts/gh/git-gh-pr-auto-merge.ts +1 -4
  1197. package/scripts/gh/git-gh-pr-graphql-snapshot.ts +369 -0
  1198. package/scripts/gh/git-gh-pr-graphql-state.ts +21 -26
  1199. package/scripts/gh/git-gh-pr-read.ts +4 -1
  1200. package/scripts/gh/git-gh-pr-rollup.ts +10 -3
  1201. package/scripts/gh/git-gh-pr-snapshot.ts +78 -22
  1202. package/scripts/gh/git-gh-pr.ts +51 -17
  1203. package/scripts/gh/git-gh-rate-limit.ts +91 -0
  1204. package/scripts/gh/git-gh-repo.ts +37 -20
  1205. package/scripts/gh/git-gh-retry.ts +60 -24
  1206. package/scripts/gh/git-gh-spawn-width.ts +6 -0
  1207. package/scripts/gh/git-gh-transport.ts +213 -0
  1208. package/scripts/gh/git-pr-ai-review.ts +8 -5
  1209. package/scripts/gh/git-pr-checks-eval.ts +16 -17
  1210. package/scripts/gh/git-pr-checks-gate.ts +129 -0
  1211. package/scripts/gh/git-pr-checks-missing.ts +165 -0
  1212. package/scripts/gh/git-pr-checks-parse.ts +4 -0
  1213. package/scripts/gh/git-pr-checks-watch.ts +22 -6
  1214. package/scripts/gh/git-pr-checks.ts +105 -76
  1215. package/scripts/gh/git-pr-merge-checked.ts +26 -12
  1216. package/scripts/gh/git-pr.ts +9 -23
  1217. package/scripts/git/base-tree.ts +18 -10
  1218. package/scripts/git/changed-paths-sync.ts +4 -12
  1219. package/scripts/git/changed-paths.ts +31 -6
  1220. package/scripts/git/git-command.ts +9 -1
  1221. package/scripts/git/git-common-directory.ts +17 -3
  1222. package/scripts/git/git-issue.ts +3 -3
  1223. package/scripts/git/git-merge-conflicts.ts +8 -3
  1224. package/scripts/git/git-path-quoting.ts +54 -0
  1225. package/scripts/git/git-push-transport.ts +8 -10
  1226. package/scripts/git/git-schemas.ts +1 -0
  1227. package/scripts/git/git-spawn-sync.ts +11 -7
  1228. package/scripts/git/git-spawn.ts +1 -1
  1229. package/scripts/git/git-ssh-keepalive.ts +3 -3
  1230. package/scripts/git/git-workflow.ts +32 -9
  1231. package/scripts/git/git-worktree.ts +12 -4
  1232. package/scripts/git/main-merge.ts +3 -36
  1233. package/scripts/git/main-sync.ts +2 -13
  1234. package/scripts/git/repository-lock.ts +8 -7
  1235. package/scripts/git/stash/git-stash.ts +38 -5
  1236. package/scripts/git/stash/stash-pop-cli.ts +43 -6
  1237. package/scripts/hooks/bash-revert.ts +253 -0
  1238. package/scripts/hooks/batch-guard.ts +28 -16
  1239. package/scripts/hooks/check-commit-message.ts +5 -7
  1240. package/scripts/hooks/codex-hook-adapter.ts +58 -13
  1241. package/scripts/hooks/direct-gh-usage.ts +130 -0
  1242. package/scripts/hooks/edited-cspell.ts +8 -11
  1243. package/scripts/hooks/fixtures/claude-Agent.json +16 -0
  1244. package/scripts/hooks/fixtures/claude-Bash.json +12 -0
  1245. package/scripts/hooks/fixtures/claude-Edit.json +17 -0
  1246. package/scripts/hooks/fixtures/claude-Read.json +12 -0
  1247. package/scripts/hooks/fixtures/claude-Write.json +12 -0
  1248. package/scripts/hooks/fixtures/codex-Bash-cat.json +12 -0
  1249. package/scripts/hooks/fixtures/codex-Bash.json +12 -0
  1250. package/scripts/hooks/fixtures/codex-apply_patch.json +14 -0
  1251. package/scripts/hooks/format-edited-cli.ts +8 -1
  1252. package/scripts/hooks/format-edited-file.ts +33 -27
  1253. package/scripts/hooks/hook-context.ts +22 -0
  1254. package/scripts/hooks/hook-demoted.ts +84 -0
  1255. package/scripts/hooks/hook-lap.ts +61 -0
  1256. package/scripts/hooks/hook-ledger-cli.ts +246 -0
  1257. package/scripts/hooks/hook-ledger-demote.ts +58 -0
  1258. package/scripts/hooks/hook-ledger-issues.ts +61 -0
  1259. package/scripts/hooks/hook-ledger-read.ts +97 -0
  1260. package/scripts/hooks/hook-ledger.ts +163 -0
  1261. package/scripts/hooks/implementation-authority.ts +48 -0
  1262. package/scripts/hooks/implementation-shell-deny.ts +344 -0
  1263. package/scripts/hooks/implementation-shell-nested.ts +148 -0
  1264. package/scripts/hooks/implementation-shell.ts +253 -0
  1265. package/scripts/hooks/lane-plan-guard.ts +1 -1
  1266. package/scripts/hooks/pre-commit-lint.ts +10 -5
  1267. package/scripts/hooks/pre-push-unit.ts +49 -13
  1268. package/scripts/hooks/pretool-guard.ts +184 -70
  1269. package/scripts/hooks/reserved-run.ts +13 -13
  1270. package/scripts/hooks/run-hook.sh +84 -30
  1271. package/scripts/hooks/step-zero-notice.ts +52 -14
  1272. package/scripts/hooks/stop-actions.ts +10 -3
  1273. package/scripts/hooks/stop-guard.ts +29 -8
  1274. package/scripts/init/claude-kit-only-settings.ts +1 -1
  1275. package/scripts/init/hook-command-rewrite.ts +90 -65
  1276. package/scripts/init/hook-launch.ts +27 -22
  1277. package/scripts/init/init-ai-copy.ts +14 -4
  1278. package/scripts/init/init-bootstrap.ts +40 -8
  1279. package/scripts/init/init-copy-content.ts +2 -2
  1280. package/scripts/init/init-install.ts +9 -1
  1281. package/scripts/init/init-logic-deploy-vps.ts +5 -3
  1282. package/scripts/init/init-logic-workspace.ts +16 -1
  1283. package/scripts/init/init-logic.ts +11 -18
  1284. package/scripts/init/npm-publish-files.ts +25 -0
  1285. package/scripts/init/start-setup-pr.ts +1 -1
  1286. package/scripts/init/tsconfig-preset-migration.ts +5 -10
  1287. package/scripts/issue/aggregation-split.ts +4 -2
  1288. package/scripts/issue/already-done-citation.ts +103 -0
  1289. package/scripts/issue/baseline-measure.ts +2 -1
  1290. package/scripts/issue/behavior-change-lint.ts +5 -4
  1291. package/scripts/issue/defect-origin-line.ts +11 -10
  1292. package/scripts/issue/defect-origin.ts +4 -3
  1293. package/scripts/issue/defect-rate.ts +2 -1
  1294. package/scripts/issue/defect-report-format.ts +1 -1
  1295. package/scripts/issue/effect-audit.ts +12 -11
  1296. package/scripts/issue/enforcement-lint.ts +48 -0
  1297. package/scripts/issue/expected-effect-lint.ts +6 -5
  1298. package/scripts/issue/figure-source-lint.ts +59 -0
  1299. package/scripts/issue/git-next-issues.ts +15 -17
  1300. package/scripts/issue/issue-already-done-cli.ts +24 -4
  1301. package/scripts/issue/issue-auto-ok.ts +23 -6
  1302. package/scripts/issue/issue-body-cli.ts +75 -0
  1303. package/scripts/issue/issue-body-keys.ts +223 -0
  1304. package/scripts/issue/issue-body-or-comment.ts +1 -1
  1305. package/scripts/issue/issue-bug-label.ts +5 -2
  1306. package/scripts/issue/issue-cap-files.ts +111 -0
  1307. package/scripts/issue/issue-cite-cli.ts +2 -2
  1308. package/scripts/issue/issue-cite.ts +20 -3
  1309. package/scripts/issue/issue-classification.ts +66 -7
  1310. package/scripts/issue/issue-closing-pr.ts +51 -16
  1311. package/scripts/issue/issue-consolidate-cli.ts +81 -0
  1312. package/scripts/issue/issue-consolidate.ts +246 -0
  1313. package/scripts/issue/issue-declared-size.ts +21 -0
  1314. package/scripts/issue/issue-evidence-exit.ts +6 -3
  1315. package/scripts/issue/issue-file-batch-entries.ts +107 -0
  1316. package/scripts/issue/issue-file-batch.ts +206 -0
  1317. package/scripts/issue/issue-file-cli.ts +147 -208
  1318. package/scripts/issue/issue-file-fold.ts +4 -8
  1319. package/scripts/issue/issue-file-interrupt.ts +68 -9
  1320. package/scripts/issue/issue-file-lane-hint.ts +3 -2
  1321. package/scripts/issue/issue-file-main.ts +17 -0
  1322. package/scripts/issue/issue-file-pass.ts +242 -0
  1323. package/scripts/issue/issue-file.ts +24 -5
  1324. package/scripts/issue/issue-fold-apply.ts +102 -0
  1325. package/scripts/issue/issue-fold-existing-cli.ts +226 -19
  1326. package/scripts/issue/issue-human-stops.ts +102 -0
  1327. package/scripts/issue/issue-labels.ts +14 -3
  1328. package/scripts/issue/issue-lint-cli.ts +20 -6
  1329. package/scripts/issue/issue-lint.ts +4 -6
  1330. package/scripts/issue/issue-merged.ts +75 -9
  1331. package/scripts/issue/issue-not-before.ts +34 -4
  1332. package/scripts/issue/issue-number-shape.ts +8 -0
  1333. package/scripts/issue/issue-plan-cli.ts +33 -5
  1334. package/scripts/issue/issue-plan-notify.ts +100 -0
  1335. package/scripts/issue/issue-premise-unmet-cli.ts +110 -0
  1336. package/scripts/issue/issue-priority-cli.ts +103 -16
  1337. package/scripts/issue/issue-priority-instructed.ts +55 -0
  1338. package/scripts/issue/issue-priority-raise.ts +70 -12
  1339. package/scripts/issue/issue-priority.ts +56 -16
  1340. package/scripts/issue/issue-rank.ts +48 -15
  1341. package/scripts/issue/issue-read-cli.ts +66 -33
  1342. package/scripts/issue/issue-read.ts +20 -5
  1343. package/scripts/issue/issue-release-class-cli.ts +79 -0
  1344. package/scripts/issue/issue-report-failures.ts +14 -5
  1345. package/scripts/issue/issue-run-hold.ts +13 -0
  1346. package/scripts/issue/issue-run-verdict.ts +68 -0
  1347. package/scripts/issue/issue-sample-gate.ts +18 -7
  1348. package/scripts/issue/issue-sample-required.ts +20 -3
  1349. package/scripts/issue/issue-sample-source.ts +2 -1
  1350. package/scripts/issue/issue-scout-cli.ts +34 -18
  1351. package/scripts/issue/issue-scout.ts +25 -4
  1352. package/scripts/issue/issue-search.ts +3 -0
  1353. package/scripts/issue/issue-sources.ts +98 -0
  1354. package/scripts/issue/issue-spill-cli.ts +292 -0
  1355. package/scripts/issue/issue-spill-main.ts +11 -0
  1356. package/scripts/issue/issue-spill.ts +193 -0
  1357. package/scripts/issue/issue-state-cli.ts +9 -17
  1358. package/scripts/issue/issue-template-section.ts +8 -3
  1359. package/scripts/issue/issue-tick-cli.ts +59 -0
  1360. package/scripts/issue/issue-watch-diff.ts +22 -7
  1361. package/scripts/issue/issue-watch-hook.ts +11 -9
  1362. package/scripts/issue/issue-watch.ts +25 -5
  1363. package/scripts/issue/issue-wip.ts +44 -9
  1364. package/scripts/issue/markdown-section.ts +66 -10
  1365. package/scripts/issue/measure-declaration.ts +70 -13
  1366. package/scripts/issue/measure-rerun-cli.ts +9 -8
  1367. package/scripts/issue/measure-twin.ts +37 -0
  1368. package/scripts/issue/reproduction-measure.ts +2 -1
  1369. package/scripts/issue/session-cite.ts +1 -1
  1370. package/scripts/issue/size-estimate.ts +317 -22
  1371. package/scripts/issue/trusted-measure-source.ts +43 -0
  1372. package/scripts/issue/trusted-measure.ts +79 -35
  1373. package/scripts/issue/upstream-interrupt-cli.ts +280 -0
  1374. package/scripts/issue/upstream-interrupt-main.ts +11 -0
  1375. package/scripts/josh/agent-session-environment.ts +19 -1
  1376. package/scripts/josh/cli-body.ts +46 -9
  1377. package/scripts/josh/command-usage.ts +3 -0
  1378. package/scripts/josh/durable-state-migrate.ts +11 -4
  1379. package/scripts/josh/durable-state-root.ts +60 -0
  1380. package/scripts/josh/durable-state.ts +9 -44
  1381. package/scripts/josh/hook-decision.ts +55 -113
  1382. package/scripts/josh/hook-envelope.ts +62 -0
  1383. package/scripts/josh/hook-payload-capture.ts +78 -0
  1384. package/scripts/josh/hook-tool-payload.ts +15 -0
  1385. package/scripts/josh/josh-aliases.ts +7 -0
  1386. package/scripts/josh/josh-command-map.ts +15 -0
  1387. package/scripts/josh/josh-command-types.ts +28 -4
  1388. package/scripts/josh/josh-commands-agent-hooks.ts +39 -7
  1389. package/scripts/josh/josh-commands-ai.ts +420 -9
  1390. package/scripts/josh/josh-commands-backlog.ts +79 -11
  1391. package/scripts/josh/josh-commands-clone.ts +2 -5
  1392. package/scripts/josh/josh-commands-development.ts +25 -8
  1393. package/scripts/josh/josh-commands-document.ts +22 -10
  1394. package/scripts/josh/josh-commands-epic.ts +30 -11
  1395. package/scripts/josh/josh-commands-hooks.ts +0 -1
  1396. package/scripts/josh/josh-commands-issue-write.ts +190 -18
  1397. package/scripts/josh/josh-commands-issue.ts +57 -17
  1398. package/scripts/josh/josh-commands-lint.ts +52 -19
  1399. package/scripts/josh/josh-commands-maintenance.ts +37 -4
  1400. package/scripts/josh/josh-commands-pause.ts +53 -5
  1401. package/scripts/josh/josh-commands-prime.ts +28 -0
  1402. package/scripts/josh/josh-commands-progress.ts +59 -7
  1403. package/scripts/josh/josh-commands-project.ts +8 -5
  1404. package/scripts/josh/josh-commands-review.ts +83 -5
  1405. package/scripts/josh/josh-commands-run.ts +20 -31
  1406. package/scripts/josh/josh-commands-ship.ts +95 -13
  1407. package/scripts/josh/josh-commands-test-check.ts +0 -2
  1408. package/scripts/josh/josh-commands-versioning.ts +11 -2
  1409. package/scripts/josh/josh-commands-workflow.ts +41 -11
  1410. package/scripts/josh/josh-completion-scripts.ts +81 -0
  1411. package/scripts/josh/josh-completion.ts +29 -0
  1412. package/scripts/josh/josh-environment-file.ts +8 -10
  1413. package/scripts/josh/josh-gh-usage.ts +53 -0
  1414. package/scripts/josh/josh-in-process.ts +21 -21
  1415. package/scripts/josh/josh-logic.ts +22 -46
  1416. package/scripts/josh/josh-read-only.ts +51 -0
  1417. package/scripts/josh/josh-run.ts +30 -6
  1418. package/scripts/josh/josh.ts +9 -11
  1419. package/scripts/josh/path-decision.ts +2 -2
  1420. package/scripts/josh/process-identity.ts +5 -0
  1421. package/scripts/josh/session-handoff-line.ts +88 -0
  1422. package/scripts/josh/session-language-cli.ts +18 -4
  1423. package/scripts/josh/session-model-record.ts +62 -0
  1424. package/scripts/lane/historical-evidence.ts +136 -0
  1425. package/scripts/lane/historical-log-evidence.ts +47 -0
  1426. package/scripts/lane/lane-adopt-cli.ts +1 -1
  1427. package/scripts/lane/lane-await.ts +8 -3
  1428. package/scripts/lane/lane-breakdown-calls.ts +165 -0
  1429. package/scripts/lane/lane-breakdown-cli.ts +77 -9
  1430. package/scripts/lane/lane-breakdown-estimate.ts +136 -0
  1431. package/scripts/lane/lane-breakdown-implement.ts +166 -29
  1432. package/scripts/lane/lane-breakdown-laps.ts +116 -24
  1433. package/scripts/lane/lane-breakdown-pause.ts +127 -0
  1434. package/scripts/lane/lane-breakdown-pinned.ts +19 -3
  1435. package/scripts/lane/lane-breakdown-related.ts +40 -0
  1436. package/scripts/lane/lane-breakdown-text.ts +129 -15
  1437. package/scripts/lane/lane-breakdown.ts +194 -30
  1438. package/scripts/lane/lane-broker-server.ts +1 -1
  1439. package/scripts/lane/lane-capacity.ts +27 -16
  1440. package/scripts/lane/lane-chain-stop-stats.ts +110 -0
  1441. package/scripts/lane/lane-check-stats.ts +25 -5
  1442. package/scripts/lane/lane-child-invocation.ts +9 -9
  1443. package/scripts/lane/lane-ci-path-stats.ts +15 -4
  1444. package/scripts/lane/lane-cli.ts +2 -2
  1445. package/scripts/lane/lane-concurrency-stats.ts +110 -0
  1446. package/scripts/lane/lane-cut-stats.ts +101 -0
  1447. package/scripts/lane/lane-dispatch.ts +25 -20
  1448. package/scripts/lane/lane-early-push-stats.ts +25 -0
  1449. package/scripts/lane/lane-environment.ts +2 -2
  1450. package/scripts/lane/lane-gap-stats.ts +69 -8
  1451. package/scripts/lane/lane-guard-policy.ts +1 -1
  1452. package/scripts/lane/lane-hand-back-held.ts +51 -0
  1453. package/scripts/lane/lane-hand-back-hold.ts +103 -0
  1454. package/scripts/lane/lane-held-stats.ts +13 -1
  1455. package/scripts/lane/lane-implement-rate-read.ts +50 -0
  1456. package/scripts/lane/lane-implement-rate.ts +74 -0
  1457. package/scripts/lane/lane-implement-read.ts +129 -0
  1458. package/scripts/lane/lane-implement-signals-record.ts +56 -0
  1459. package/scripts/lane/lane-implement-signals.ts +161 -0
  1460. package/scripts/lane/lane-implement-stats.ts +93 -18
  1461. package/scripts/lane/lane-launch-admission.ts +61 -0
  1462. package/scripts/lane/lane-launch-cli.ts +63 -27
  1463. package/scripts/lane/lane-launch-pending.ts +44 -0
  1464. package/scripts/lane/lane-ledger-archive.ts +200 -0
  1465. package/scripts/lane/lane-ledger-kind.ts +5 -0
  1466. package/scripts/lane/lane-ledger-pinned-origin.ts +10 -0
  1467. package/scripts/lane/lane-ledger-schema-load.ts +45 -0
  1468. package/scripts/lane/lane-ledger-schema-offer.ts +30 -0
  1469. package/scripts/lane/lane-ledger-schema-ship.ts +70 -4
  1470. package/scripts/lane/lane-ledger-schema.ts +53 -30
  1471. package/scripts/lane/lane-ledger-tail.ts +124 -0
  1472. package/scripts/lane/lane-ledger-write.ts +60 -27
  1473. package/scripts/lane/lane-ledger.ts +6 -31
  1474. package/scripts/lane/lane-limit-cli.ts +11 -1
  1475. package/scripts/lane/lane-limit-history.ts +77 -0
  1476. package/scripts/lane/lane-limit-override.ts +49 -8
  1477. package/scripts/lane/lane-listening-ports.ts +77 -0
  1478. package/scripts/lane/lane-load.ts +62 -2
  1479. package/scripts/lane/lane-measure-cli.ts +134 -55
  1480. package/scripts/lane/lane-net-read.ts +22 -10
  1481. package/scripts/lane/lane-net-time.ts +103 -18
  1482. package/scripts/lane/lane-open.ts +19 -113
  1483. package/scripts/lane/lane-over-causes.ts +130 -0
  1484. package/scripts/lane/lane-over.ts +177 -0
  1485. package/scripts/lane/lane-overrun-prompt.ts +4 -3
  1486. package/scripts/lane/lane-overrun.ts +22 -9
  1487. package/scripts/lane/lane-pairs.ts +128 -0
  1488. package/scripts/lane/lane-paths.ts +26 -0
  1489. package/scripts/lane/lane-pause-cli.ts +4 -2
  1490. package/scripts/lane/lane-paused-spans.ts +11 -4
  1491. package/scripts/lane/lane-phase.ts +36 -7
  1492. package/scripts/lane/lane-plan-approval.ts +113 -0
  1493. package/scripts/lane/lane-plan-auto.ts +53 -0
  1494. package/scripts/lane/lane-plan-check.ts +196 -54
  1495. package/scripts/lane/lane-plan-cli.ts +37 -10
  1496. package/scripts/lane/lane-plan-imports.ts +53 -0
  1497. package/scripts/lane/lane-plan-premise.ts +83 -0
  1498. package/scripts/lane/lane-plan-probe.ts +115 -0
  1499. package/scripts/lane/lane-plan-signals.ts +119 -0
  1500. package/scripts/lane/lane-plan-size.ts +389 -0
  1501. package/scripts/lane/lane-plan-wait-event.ts +124 -0
  1502. package/scripts/lane/lane-plan-wait-until.ts +22 -0
  1503. package/scripts/lane/lane-plan-wait.ts +125 -0
  1504. package/scripts/lane/lane-plan.ts +113 -14
  1505. package/scripts/lane/lane-preserve.ts +58 -13
  1506. package/scripts/lane/lane-process-load.ts +130 -19
  1507. package/scripts/lane/lane-process-stats.ts +51 -10
  1508. package/scripts/lane/lane-reap.ts +4 -2
  1509. package/scripts/lane/lane-registry.ts +19 -14
  1510. package/scripts/lane/lane-relaunch.ts +32 -14
  1511. package/scripts/lane/lane-report.ts +2 -0
  1512. package/scripts/lane/lane-resolve-cli.ts +88 -0
  1513. package/scripts/lane/lane-resolve-hunks.ts +63 -0
  1514. package/scripts/lane/lane-resolve-record.ts +59 -0
  1515. package/scripts/lane/lane-resolve.ts +122 -0
  1516. package/scripts/lane/lane-restart.ts +1 -1
  1517. package/scripts/lane/lane-room.ts +58 -0
  1518. package/scripts/lane/lane-round-one-stats.ts +2 -1
  1519. package/scripts/lane/lane-sampler.ts +53 -3
  1520. package/scripts/lane/lane-seat-ownership.ts +57 -0
  1521. package/scripts/lane/lane-seat-start.ts +52 -0
  1522. package/scripts/lane/lane-seat-stop.ts +20 -0
  1523. package/scripts/lane/lane-seat.ts +174 -0
  1524. package/scripts/lane/lane-seed.ts +2 -5
  1525. package/scripts/lane/lane-session-action.ts +26 -10
  1526. package/scripts/lane/lane-session-broker.ts +1 -1
  1527. package/scripts/lane/lane-session-reread.ts +2 -1
  1528. package/scripts/lane/lane-setup.ts +59 -0
  1529. package/scripts/lane/lane-ship-lap-stats.ts +3 -1
  1530. package/scripts/lane/lane-sinks-issues.ts +52 -0
  1531. package/scripts/lane/lane-sinks.ts +165 -0
  1532. package/scripts/lane/lane-size-record.ts +39 -0
  1533. package/scripts/lane/lane-size-stats.ts +111 -0
  1534. package/scripts/lane/lane-split-stats.ts +33 -9
  1535. package/scripts/lane/lane-stage-budget.ts +27 -0
  1536. package/scripts/lane/lane-stage-stats.ts +94 -25
  1537. package/scripts/lane/lane-state-record.ts +74 -0
  1538. package/scripts/lane/lane-state.ts +21 -33
  1539. package/scripts/lane/lane-stats-request.ts +163 -0
  1540. package/scripts/lane/lane-stats-tables.ts +44 -3
  1541. package/scripts/lane/lane-stats.ts +9 -2
  1542. package/scripts/lane/lane-stop-stats.ts +3 -2
  1543. package/scripts/lane/lane-test-related-stats.ts +5 -2
  1544. package/scripts/lane/lane-timeline.ts +251 -0
  1545. package/scripts/lane/lane-transcript-calls.ts +73 -4
  1546. package/scripts/lane/lane-transcript-stats.ts +8 -3
  1547. package/scripts/lane/lane-turn-stats.ts +171 -0
  1548. package/scripts/lane/lane-value-cell.ts +87 -13
  1549. package/scripts/lane/lane-value-missing.ts +21 -0
  1550. package/scripts/lane/lane-why-causes.ts +102 -0
  1551. package/scripts/lane/lane-why-ci.ts +50 -0
  1552. package/scripts/lane/lane-why-cli.ts +83 -0
  1553. package/scripts/lane/lane-why-period.ts +187 -0
  1554. package/scripts/lane/lane-why-ship.ts +67 -0
  1555. package/scripts/lane/lane-why.ts +192 -0
  1556. package/scripts/lane/lane-withdraw.ts +12 -1
  1557. package/scripts/lane/lane-yield-split.ts +218 -0
  1558. package/scripts/lane/lane-yield.ts +38 -4
  1559. package/scripts/lane/openai-lane-ship.ts +2 -2
  1560. package/scripts/lane/openai-lane-supervisor-cli.ts +17 -8
  1561. package/scripts/lane/openai-lane-supervisor-decision.ts +10 -4
  1562. package/scripts/lane/openai-lane-supervisor-entry.ts +6 -0
  1563. package/scripts/lane/openai-lane-supervisor-owner.ts +19 -3
  1564. package/scripts/lane/openai-lane-supervisor.ts +26 -4
  1565. package/scripts/lane/process-directories.ts +3 -1
  1566. package/scripts/lane/process-lane-marks.ts +11 -5
  1567. package/scripts/lane/process-linux.ts +81 -0
  1568. package/scripts/lane/process-tools.ts +2 -5
  1569. package/scripts/lib/bounded-pool.ts +38 -7
  1570. package/scripts/lib/buffered-process.ts +34 -9
  1571. package/scripts/lib/claude-installer.ts +29 -0
  1572. package/scripts/lib/import-closure.ts +72 -0
  1573. package/scripts/lib/josh-temporary-directory.ts +7 -0
  1574. package/scripts/lib/main-guard.ts +29 -0
  1575. package/scripts/lib/package-manifest.ts +54 -3
  1576. package/scripts/lib/pnpm-installer.ts +16 -0
  1577. package/scripts/lib/poll.ts +130 -20
  1578. package/scripts/lib/schemas.ts +1 -1
  1579. package/scripts/lib/stamped-memo.ts +1 -1
  1580. package/scripts/lib/stamped-store.ts +82 -0
  1581. package/scripts/lib/stdin-text.ts +68 -0
  1582. package/scripts/lib/timeouts.ts +4 -4
  1583. package/scripts/lib/transcript-record.ts +4 -0
  1584. package/scripts/lib/verified-download.ts +17 -0
  1585. package/scripts/lines/bytes-command.ts +1 -1
  1586. package/scripts/lint/cspell-cached.ts +1 -1
  1587. package/scripts/lint/eslint-cache-dependencies.ts +38 -8
  1588. package/scripts/lint/eslint-daemon-calls.ts +83 -0
  1589. package/scripts/lint/eslint-daemon.ts +101 -13
  1590. package/scripts/lint/eslint-heap.ts +50 -0
  1591. package/scripts/lint/eslint-memory.js +45 -0
  1592. package/scripts/lint/eslint-trim.ts +44 -0
  1593. package/scripts/lint/eslint-warm.ts +5 -2
  1594. package/scripts/lint/format.ts +30 -5
  1595. package/scripts/lint/import-graph-store.ts +245 -0
  1596. package/scripts/lint/import-graph.ts +54 -65
  1597. package/scripts/lint/import-move.ts +275 -0
  1598. package/scripts/lint/import-test-inputs.ts +97 -0
  1599. package/scripts/lint/lint-gate-scope.ts +1 -0
  1600. package/scripts/lint/lint-parallel.ts +148 -43
  1601. package/scripts/lint/lint-related-scope.ts +6 -1
  1602. package/scripts/lint/lint-related.ts +66 -25
  1603. package/scripts/lint/lint-rule.ts +293 -0
  1604. package/scripts/lint/lint-shard.ts +91 -0
  1605. package/scripts/lint/lint-timing.ts +39 -0
  1606. package/scripts/lint/rename-cli.ts +36 -10
  1607. package/scripts/lint/rename-identifier.ts +2 -2
  1608. package/scripts/lint/type-only-imports.ts +20 -1
  1609. package/scripts/notify/git-notify.ts +3 -1
  1610. package/scripts/notify/telegram-notify.ts +33 -35
  1611. package/scripts/notify/telegram-test.ts +9 -4
  1612. package/scripts/observations/observation-depth-cli.ts +78 -0
  1613. package/scripts/observations/observation-depth.ts +85 -0
  1614. package/scripts/observations/observation-ledger-home.ts +14 -7
  1615. package/scripts/observations/observations-flush-landing.ts +1 -1
  1616. package/scripts/overrides/overrides-check.ts +33 -10
  1617. package/scripts/overrides/overrides-diff-report.ts +91 -0
  1618. package/scripts/overrides/overrides-diff.ts +98 -0
  1619. package/scripts/package/package-scout-cli.ts +37 -11
  1620. package/scripts/package/package-scout-format.ts +20 -6
  1621. package/scripts/package/package-scout-reuse.ts +207 -0
  1622. package/scripts/plan/plan-scaffold-cli.ts +125 -0
  1623. package/scripts/plan/plan-scaffold.ts +112 -0
  1624. package/scripts/ports/port-command.ts +2 -5
  1625. package/scripts/propagate/propagate-git.ts +3 -3
  1626. package/scripts/propagate/propagate-publish.ts +8 -7
  1627. package/scripts/propagate/propagate-steps.ts +2 -3
  1628. package/scripts/refactor/import-graph.ts +2 -4
  1629. package/scripts/refactor/refactor-lint.ts +47 -30
  1630. package/scripts/refactor/refactor-scan.ts +16 -9
  1631. package/scripts/refactor/refactor-targets.ts +2 -3
  1632. package/scripts/release/github-release.ts +10 -10
  1633. package/scripts/release/publish-tag-cli.ts +13 -3
  1634. package/scripts/release/release-cli.ts +2 -0
  1635. package/scripts/release/release-progress.ts +44 -36
  1636. package/scripts/release/release-request.ts +42 -0
  1637. package/scripts/release/release-scope-cli.ts +31 -2
  1638. package/scripts/release/release-workflow-check.ts +59 -0
  1639. package/scripts/report/markdown-shape.ts +2 -1
  1640. package/scripts/report/report-template-cli.ts +2 -2
  1641. package/scripts/report/report-template.ts +17 -4
  1642. package/scripts/review/acceptance-map.ts +87 -8
  1643. package/scripts/review/diff-summary-cli.ts +81 -0
  1644. package/scripts/review/diff-summary.ts +109 -0
  1645. package/scripts/review/disposition-batch-filing.ts +150 -0
  1646. package/scripts/review/disposition-batch.ts +103 -0
  1647. package/scripts/review/disposition-cli.ts +35 -1
  1648. package/scripts/review/import-specifiers.ts +38 -0
  1649. package/scripts/review/prose-stale-cli.ts +7 -37
  1650. package/scripts/review/prose-stale-read.ts +105 -0
  1651. package/scripts/review/prose-stale-scan.ts +121 -17
  1652. package/scripts/review/removed-tests-check.ts +28 -4
  1653. package/scripts/review/review-brief-cli.ts +69 -71
  1654. package/scripts/review/review-brief.ts +38 -42
  1655. package/scripts/review/review-code-tree.ts +80 -16
  1656. package/scripts/review/review-comment-carry.ts +30 -0
  1657. package/scripts/review/review-diff-pack.ts +70 -0
  1658. package/scripts/review/review-diff-write.ts +23 -22
  1659. package/scripts/review/review-final-record.ts +47 -0
  1660. package/scripts/review/review-finding-ledger.ts +72 -10
  1661. package/scripts/review/review-findings-cli.ts +88 -8
  1662. package/scripts/review/review-fix-hunks.ts +115 -0
  1663. package/scripts/review/review-fix-round.ts +144 -0
  1664. package/scripts/review/review-gate-mode.ts +25 -0
  1665. package/scripts/review/review-interaction.ts +69 -11
  1666. package/scripts/review/review-lane-handover.ts +29 -4
  1667. package/scripts/review/review-level.ts +35 -34
  1668. package/scripts/review/review-lint-findings.ts +3 -3
  1669. package/scripts/review/review-lint-sections.ts +2 -2
  1670. package/scripts/review/review-lint.ts +7 -1
  1671. package/scripts/review/review-pair-cli.ts +157 -0
  1672. package/scripts/review/review-pair-log.ts +75 -0
  1673. package/scripts/review/review-pair-session.ts +98 -0
  1674. package/scripts/review/review-pair.ts +112 -0
  1675. package/scripts/review/review-prior-findings.ts +2 -4
  1676. package/scripts/review/review-prompt-level.ts +28 -0
  1677. package/scripts/review/review-readers-scan.ts +25 -3
  1678. package/scripts/review/review-record-cli.ts +46 -68
  1679. package/scripts/review/review-record-interaction.ts +2 -2
  1680. package/scripts/review/review-record-main.ts +7 -2
  1681. package/scripts/review/review-record-pinned.ts +5 -0
  1682. package/scripts/review/review-record-slot.ts +155 -0
  1683. package/scripts/review/review-reviewed-tree.ts +60 -13
  1684. package/scripts/review/review-round-one-blobs.ts +43 -9
  1685. package/scripts/review/review-round-one-skip.ts +72 -0
  1686. package/scripts/review/review-round-reuse.ts +13 -6
  1687. package/scripts/review/review-round.ts +57 -0
  1688. package/scripts/review/review-round2-cli.ts +5 -0
  1689. package/scripts/review/review-round2-skip-comment.ts +3 -1
  1690. package/scripts/review/review-round2.ts +18 -6
  1691. package/scripts/review/review-size.ts +92 -0
  1692. package/scripts/review/review-stamps.ts +8 -0
  1693. package/scripts/review/review-submit-args.ts +91 -0
  1694. package/scripts/review/review-submit-cli.ts +55 -29
  1695. package/scripts/review/selfcheck-cli.ts +193 -0
  1696. package/scripts/review/selfcheck-commands.ts +175 -0
  1697. package/scripts/review/selfcheck-report.ts +98 -0
  1698. package/scripts/rules/bash-triggers.ts +24 -13
  1699. package/scripts/rules/broad-investigation-shell.ts +183 -0
  1700. package/scripts/rules/broad-investigation.ts +116 -0
  1701. package/scripts/rules/consultation-handoff.ts +81 -0
  1702. package/scripts/rules/consultation-investigation.ts +99 -0
  1703. package/scripts/rules/decision-oracle.ts +1 -1
  1704. package/scripts/rules/delivered-rules-guard.ts +94 -0
  1705. package/scripts/rules/delivered-rules.ts +46 -87
  1706. package/scripts/rules/destructive-command.ts +2 -1
  1707. package/scripts/rules/direct-git-status.ts +81 -0
  1708. package/scripts/rules/direct-issue-comment.ts +9 -1
  1709. package/scripts/rules/direct-vitest-run.ts +98 -0
  1710. package/scripts/rules/egress-guard.ts +308 -0
  1711. package/scripts/rules/firing-point.ts +9 -12
  1712. package/scripts/rules/gh-api.ts +19 -4
  1713. package/scripts/rules/gh-repo-selector.ts +1 -1
  1714. package/scripts/rules/git-argv.ts +57 -10
  1715. package/scripts/rules/guard-remedy.ts +9 -0
  1716. package/scripts/rules/guard-rule-rows.ts +13 -0
  1717. package/scripts/rules/implementation-cut-verdict.ts +1 -1
  1718. package/scripts/rules/implementation-cut.ts +94 -31
  1719. package/scripts/rules/interpreter-options.ts +179 -0
  1720. package/scripts/rules/investigator-foreground.ts +13 -7
  1721. package/scripts/rules/josh-git-bare.ts +1 -1
  1722. package/scripts/rules/keychain-read.ts +73 -0
  1723. package/scripts/rules/lane-background.ts +15 -14
  1724. package/scripts/rules/lane-carry-conflict.ts +15 -8
  1725. package/scripts/rules/lane-direct-tool.ts +18 -11
  1726. package/scripts/rules/lane-interactive-ask.ts +3 -5
  1727. package/scripts/rules/lane-park.ts +25 -10
  1728. package/scripts/rules/lane-spilled-read.ts +3 -5
  1729. package/scripts/rules/lane-split-park.ts +7 -6
  1730. package/scripts/rules/lane-switch-main.ts +10 -3
  1731. package/scripts/rules/launched-call.ts +135 -0
  1732. package/scripts/rules/main-model.ts +54 -0
  1733. package/scripts/rules/nested-commands.ts +71 -0
  1734. package/scripts/rules/permission-guards.ts +6 -2
  1735. package/scripts/rules/pr-merge.ts +1 -1
  1736. package/scripts/rules/pre-gate-cut.ts +20 -11
  1737. package/scripts/rules/protected-files.ts +34 -98
  1738. package/scripts/rules/repeat-check-related.ts +66 -0
  1739. package/scripts/rules/reviewer-foreground.ts +11 -7
  1740. package/scripts/rules/round-one-check-related.ts +59 -19
  1741. package/scripts/rules/rule-list.ts +3 -4
  1742. package/scripts/rules/rule-rephrase.ts +43 -0
  1743. package/scripts/rules/rule-rewrite.ts +16 -6
  1744. package/scripts/rules/rule-value-cache.ts +10 -1
  1745. package/scripts/rules/rule-value-cli.ts +62 -54
  1746. package/scripts/rules/rule-value-prose.ts +186 -0
  1747. package/scripts/rules/rule-value-runs.ts +171 -0
  1748. package/scripts/rules/rule-value.ts +38 -13
  1749. package/scripts/rules/run-tail-rule.ts +19 -2
  1750. package/scripts/rules/secret-paths.ts +92 -0
  1751. package/scripts/rules/sed-in-place.ts +1 -1
  1752. package/scripts/rules/shell-permissions.ts +91 -0
  1753. package/scripts/rules/shell-redirects.ts +54 -0
  1754. package/scripts/rules/shell-segments.ts +3 -2
  1755. package/scripts/rules/stop-decision.ts +7 -1
  1756. package/scripts/rules/stop-rules.ts +1 -1
  1757. package/scripts/rules/unasked-filing.ts +158 -0
  1758. package/scripts/run/add/run-add-cli.ts +114 -36
  1759. package/scripts/run/add/run-add-epic.ts +45 -0
  1760. package/scripts/run/add/run-add-issue.ts +17 -0
  1761. package/scripts/run/add/run-add.ts +159 -21
  1762. package/scripts/run/attached-log.ts +38 -0
  1763. package/scripts/run/board/run-board-cli.ts +34 -9
  1764. package/scripts/run/board/run-board-closed-graphql.ts +129 -0
  1765. package/scripts/run/board/run-board-closed.ts +68 -10
  1766. package/scripts/run/board/run-board-decision-graphql.ts +136 -0
  1767. package/scripts/run/board/run-board-decision-read.ts +195 -0
  1768. package/scripts/run/board/run-board-decision.ts +92 -0
  1769. package/scripts/run/board/run-board-earlier.ts +27 -3
  1770. package/scripts/run/board/run-board-ending-reason.ts +98 -9
  1771. package/scripts/run/board/run-board-ending-states.ts +34 -0
  1772. package/scripts/run/board/run-board-every.ts +19 -9
  1773. package/scripts/run/board/run-board-first-lane.ts +26 -0
  1774. package/scripts/run/board/run-board-fit.ts +47 -11
  1775. package/scripts/run/board/run-board-fold-store.ts +62 -0
  1776. package/scripts/run/board/run-board-fold.ts +41 -9
  1777. package/scripts/run/board/run-board-gather-live.ts +2 -0
  1778. package/scripts/run/board/run-board-gather-thread.ts +14 -3
  1779. package/scripts/run/board/run-board-gather-worker.ts +10 -8
  1780. package/scripts/run/board/run-board-gather.ts +10 -3
  1781. package/scripts/run/board/run-board-github.ts +117 -29
  1782. package/scripts/run/board/run-board-header.ts +33 -24
  1783. package/scripts/run/board/run-board-held.ts +53 -0
  1784. package/scripts/run/board/run-board-human-merge.ts +113 -0
  1785. package/scripts/run/board/run-board-human.ts +37 -0
  1786. package/scripts/run/board/run-board-idle.ts +9 -6
  1787. package/scripts/run/board/run-board-issue-count.ts +101 -0
  1788. package/scripts/run/board/run-board-keys.ts +19 -4
  1789. package/scripts/run/board/run-board-labels.ts +20 -4
  1790. package/scripts/run/board/run-board-lane-event.ts +23 -2
  1791. package/scripts/run/board/run-board-lane-result.ts +58 -0
  1792. package/scripts/run/board/run-board-lane-state.ts +52 -7
  1793. package/scripts/run/board/run-board-lane-stop.ts +108 -0
  1794. package/scripts/run/board/run-board-lane-time.ts +1 -0
  1795. package/scripts/run/board/run-board-layout.ts +64 -74
  1796. package/scripts/run/board/run-board-link.ts +42 -2
  1797. package/scripts/run/board/run-board-notes.ts +1 -1
  1798. package/scripts/run/board/run-board-now.ts +1 -1
  1799. package/scripts/run/board/run-board-operation-codex.ts +37 -0
  1800. package/scripts/run/board/run-board-operation-read.ts +2 -2
  1801. package/scripts/run/board/run-board-operation.ts +8 -5
  1802. package/scripts/run/board/run-board-plan-shared.ts +3 -0
  1803. package/scripts/run/board/run-board-plan.ts +6 -1
  1804. package/scripts/run/board/run-board-process-groups.ts +1 -1
  1805. package/scripts/run/board/run-board-quota-held.ts +319 -0
  1806. package/scripts/run/board/run-board-quota-lane.ts +23 -0
  1807. package/scripts/run/board/run-board-quota-read.ts +422 -0
  1808. package/scripts/run/board/run-board-quota-spent.ts +162 -0
  1809. package/scripts/run/board/run-board-quota-status.ts +67 -0
  1810. package/scripts/run/board/run-board-read.ts +112 -36
  1811. package/scripts/run/board/run-board-reason.ts +40 -20
  1812. package/scripts/run/board/run-board-render-condition.ts +18 -2
  1813. package/scripts/run/board/run-board-render-drawn.ts +5 -1
  1814. package/scripts/run/board/run-board-render-foot.ts +5 -1
  1815. package/scripts/run/board/run-board-render-found.ts +21 -2
  1816. package/scripts/run/board/run-board-render-icon.ts +3 -6
  1817. package/scripts/run/board/run-board-render-lanes.ts +49 -9
  1818. package/scripts/run/board/run-board-render-lead.ts +20 -1
  1819. package/scripts/run/board/run-board-render-legend.ts +4 -0
  1820. package/scripts/run/board/run-board-render-none.ts +35 -0
  1821. package/scripts/run/board/run-board-render-notes.ts +5 -3
  1822. package/scripts/run/board/run-board-render-processes.ts +6 -5
  1823. package/scripts/run/board/run-board-render-quota-cell.ts +81 -0
  1824. package/scripts/run/board/run-board-render-quota-github.ts +112 -0
  1825. package/scripts/run/board/run-board-render-quota.ts +285 -0
  1826. package/scripts/run/board/run-board-render-section.ts +50 -6
  1827. package/scripts/run/board/run-board-render-tail.ts +53 -7
  1828. package/scripts/run/board/run-board-render-throughput.ts +140 -0
  1829. package/scripts/run/board/run-board-render-title.ts +26 -4
  1830. package/scripts/run/board/run-board-render.ts +59 -57
  1831. package/scripts/run/board/run-board-row-yield.ts +1 -0
  1832. package/scripts/run/board/run-board-scope.ts +13 -6
  1833. package/scripts/run/board/run-board-seat.ts +107 -0
  1834. package/scripts/run/board/run-board-settle.ts +33 -0
  1835. package/scripts/run/board/run-board-setup.ts +30 -15
  1836. package/scripts/run/board/run-board-single.ts +123 -0
  1837. package/scripts/run/board/run-board-snapshot.ts +7 -1
  1838. package/scripts/run/board/run-board-span.ts +18 -3
  1839. package/scripts/run/board/run-board-spin.ts +12 -6
  1840. package/scripts/run/board/run-board-standing-waits.ts +52 -0
  1841. package/scripts/run/board/run-board-state.ts +23 -0
  1842. package/scripts/run/board/run-board-status.ts +86 -99
  1843. package/scripts/run/board/run-board-throughput.ts +215 -0
  1844. package/scripts/run/board/run-board-tick.ts +76 -30
  1845. package/scripts/run/board/run-board-usage-read.ts +3 -3
  1846. package/scripts/run/board/run-board-usage-top.ts +12 -35
  1847. package/scripts/run/board/run-board-usual.ts +18 -1
  1848. package/scripts/run/carry/run-carry-added.ts +6 -1
  1849. package/scripts/run/carry/run-carry-args.ts +22 -8
  1850. package/scripts/run/carry/run-carry-cli.ts +31 -1
  1851. package/scripts/run/carry/run-carry-conversation.ts +12 -4
  1852. package/scripts/run/carry/run-carry-ended.ts +3 -0
  1853. package/scripts/run/carry/run-carry-reclaim.ts +2 -1
  1854. package/scripts/run/carry/run-carry.ts +40 -20
  1855. package/scripts/run/cut/run-cut-adoption.ts +67 -0
  1856. package/scripts/run/cut/run-cut-cli.ts +88 -34
  1857. package/scripts/run/cut/run-cut-decline.ts +1 -1
  1858. package/scripts/run/cut/run-cut-handoff.ts +2 -1
  1859. package/scripts/run/cut/run-cut-next.ts +20 -0
  1860. package/scripts/run/cut/run-cut-ready.ts +7 -5
  1861. package/scripts/run/cut/run-cut-report.ts +13 -14
  1862. package/scripts/run/cut/run-cut-resume.ts +1 -1
  1863. package/scripts/run/cut/run-cut.ts +36 -23
  1864. package/scripts/run/detached-launch.ts +12 -7
  1865. package/scripts/run/early-push-record.ts +22 -0
  1866. package/scripts/run/entry/run-entry-children.ts +126 -0
  1867. package/scripts/run/entry/run-entry-cli.ts +126 -82
  1868. package/scripts/run/entry/run-entry-dispatch.ts +20 -0
  1869. package/scripts/run/entry/run-entry-lane-plan.ts +39 -0
  1870. package/scripts/run/entry/run-entry-spill.ts +67 -22
  1871. package/scripts/run/entry/run-entry-stop.ts +9 -8
  1872. package/scripts/run/entry/run-entry-sync.ts +149 -0
  1873. package/scripts/run/entry/run-entry-trust.ts +1 -1
  1874. package/scripts/run/entry/run-entry.ts +9 -0
  1875. package/scripts/run/event/run-event-checks.ts +1 -1
  1876. package/scripts/run/event/run-event-filed.ts +1 -1
  1877. package/scripts/run/event/run-event-follow.ts +9 -5
  1878. package/scripts/run/event/run-event-overrun.ts +7 -7
  1879. package/scripts/run/event/run-event-plan.ts +1 -1
  1880. package/scripts/run/event/run-event-render.ts +5 -0
  1881. package/scripts/run/event/run-event-retry.ts +34 -0
  1882. package/scripts/run/event/run-event-scope.ts +4 -1
  1883. package/scripts/run/event/run-event-setup.ts +55 -5
  1884. package/scripts/run/event/run-event-step.ts +81 -0
  1885. package/scripts/run/event/run-event-stream-emit.ts +63 -23
  1886. package/scripts/run/event/run-event-stream.ts +69 -21
  1887. package/scripts/run/event/run-event-tail.ts +122 -0
  1888. package/scripts/run/event/run-event-watch.ts +12 -7
  1889. package/scripts/run/handoff/run-handoff-args.ts +93 -0
  1890. package/scripts/run/handoff/run-handoff-cli.ts +320 -0
  1891. package/scripts/run/handoff/run-handoff-final.ts +38 -0
  1892. package/scripts/run/handoff/run-handoff-launch.ts +113 -0
  1893. package/scripts/run/handoff/run-handoff-retrospective.ts +48 -0
  1894. package/scripts/run/handoff-lanes/run-handoff-lanes-cli.ts +31 -0
  1895. package/scripts/run/handoff-lanes/run-handoff-lanes.ts +183 -0
  1896. package/scripts/run/hold/run-hold-block.ts +35 -0
  1897. package/scripts/run/hold/run-hold-cli.ts +20 -36
  1898. package/scripts/run/hold/run-hold-main.ts +16 -1
  1899. package/scripts/run/hold/run-hold.ts +12 -8
  1900. package/scripts/run/hold/run-stop-notify.ts +1 -1
  1901. package/scripts/run/launch-priority.ts +4 -7
  1902. package/scripts/run/merge/run-merge-auth.ts +38 -13
  1903. package/scripts/run/merge/run-merge-cap.ts +11 -6
  1904. package/scripts/run/merge/run-merge-cli.ts +55 -58
  1905. package/scripts/run/merge/run-merge-dated.ts +64 -0
  1906. package/scripts/run/merge/run-merge-decision.ts +183 -0
  1907. package/scripts/run/merge/run-merge-driver.ts +2 -0
  1908. package/scripts/run/merge/run-merge-github-limit.ts +98 -0
  1909. package/scripts/run/merge/run-merge-health.ts +137 -0
  1910. package/scripts/run/merge/run-merge-human-review.ts +26 -0
  1911. package/scripts/run/merge/run-merge-restart.ts +10 -3
  1912. package/scripts/run/merge/run-merge-signals.ts +34 -9
  1913. package/scripts/run/merge/run-merge-steps.ts +49 -50
  1914. package/scripts/run/merge/run-merge-token.ts +3 -4
  1915. package/scripts/run/merge/run-merge-usage-limit.ts +22 -9
  1916. package/scripts/run/merge/run-merge-withdrawn.ts +4 -3
  1917. package/scripts/run/merge/run-merge.ts +36 -18
  1918. package/scripts/run/park/run-park-answered.ts +84 -0
  1919. package/scripts/run/park/run-park-body.ts +346 -0
  1920. package/scripts/run/park/run-park-cli.ts +37 -12
  1921. package/scripts/run/park/run-park-lane.ts +41 -0
  1922. package/scripts/run/park/run-park-release.ts +61 -0
  1923. package/scripts/run/park/run-park-write.ts +41 -0
  1924. package/scripts/run/park/run-park.ts +2 -4
  1925. package/scripts/run/park/run-stalled-park.ts +32 -0
  1926. package/scripts/run/park/run-stalled.ts +75 -12
  1927. package/scripts/run/pause/run-pause-cli.ts +4 -3
  1928. package/scripts/run/pause/run-pause-comment.ts +30 -0
  1929. package/scripts/run/pause/run-pause.ts +35 -223
  1930. package/scripts/run/pause/run-set-aside-commit.ts +52 -0
  1931. package/scripts/run/pause/run-set-aside.ts +139 -0
  1932. package/scripts/run/prime/run-prime-cli.ts +105 -0
  1933. package/scripts/run/progress/run-progress-cli.ts +44 -27
  1934. package/scripts/run/progress/run-progress-config.ts +7 -18
  1935. package/scripts/run/progress/run-progress.ts +16 -7
  1936. package/scripts/run/review/run-chain-cli.ts +162 -0
  1937. package/scripts/run/review/run-chain-join.ts +108 -0
  1938. package/scripts/run/review/run-chain-review-fix.ts +70 -0
  1939. package/scripts/run/review/run-chain.ts +167 -0
  1940. package/scripts/run/review/run-review-cli.ts +127 -53
  1941. package/scripts/run/review/run-review-early-push.ts +41 -7
  1942. package/scripts/run/review/run-review-join-ready.ts +88 -0
  1943. package/scripts/run/review/run-review-pinned-accepted.ts +15 -1
  1944. package/scripts/run/review/run-review-pinned-join.ts +8 -4
  1945. package/scripts/run/review/run-review-pinned-steps.ts +12 -7
  1946. package/scripts/run/review/run-review-pinned.ts +8 -3
  1947. package/scripts/run/review/run-review-steps.ts +29 -14
  1948. package/scripts/run/review/run-review-unplanned.ts +75 -0
  1949. package/scripts/run/review/run-review.ts +4 -4
  1950. package/scripts/run/run-halfrun-resume.ts +9 -1
  1951. package/scripts/run/run-headless-keys.ts +23 -0
  1952. package/scripts/run/run-headless.ts +77 -13
  1953. package/scripts/run/run-investigation-record.ts +66 -0
  1954. package/scripts/run/run-label-main.ts +55 -0
  1955. package/scripts/run/run-label.ts +20 -4
  1956. package/scripts/run/run-liveness-cli.ts +1 -1
  1957. package/scripts/run/run-liveness.ts +6 -5
  1958. package/scripts/run/run-maintenance.ts +66 -0
  1959. package/scripts/run/run-open-pr.ts +19 -0
  1960. package/scripts/run/run-parent-cut-hook.ts +17 -9
  1961. package/scripts/run/run-pickup-cli.ts +86 -0
  1962. package/scripts/run/run-pickup-launch.ts +85 -0
  1963. package/scripts/run/run-poll-hook.ts +14 -7
  1964. package/scripts/run/run-pr-return.ts +99 -0
  1965. package/scripts/run/run-prep-cli.ts +54 -7
  1966. package/scripts/run/run-prep-locate.ts +8 -3
  1967. package/scripts/run/run-prep-summary.ts +55 -0
  1968. package/scripts/run/run-prep.ts +37 -1
  1969. package/scripts/run/run-report-cli.ts +13 -2
  1970. package/scripts/run/run-report-end.ts +133 -0
  1971. package/scripts/run/run-report-handoff.ts +1 -1
  1972. package/scripts/run/run-report.ts +7 -1
  1973. package/scripts/run/run-stage-read.ts +38 -4
  1974. package/scripts/run/run-stage.ts +18 -6
  1975. package/scripts/run/run-status.ts +2 -1
  1976. package/scripts/run/run-step-cli.ts +38 -10
  1977. package/scripts/run/run-step-lane-plan.ts +26 -12
  1978. package/scripts/run/run-step-progress.ts +61 -0
  1979. package/scripts/run/run-step-section-driver.ts +27 -0
  1980. package/scripts/run/run-step-section-once.ts +83 -0
  1981. package/scripts/run/run-step-section-table.ts +120 -0
  1982. package/scripts/run/run-step-section.ts +39 -53
  1983. package/scripts/run/run-step.ts +4 -3
  1984. package/scripts/run/run-stop-notify.ts +1 -1
  1985. package/scripts/run/run-tail-cli.ts +14 -6
  1986. package/scripts/run/run-tail.ts +22 -0
  1987. package/scripts/run/run-watcher-guard.ts +15 -5
  1988. package/scripts/run/run-watcher-hook.ts +12 -6
  1989. package/scripts/run/ship/run-ship-args.ts +8 -1
  1990. package/scripts/run/ship/run-ship-cli.ts +68 -65
  1991. package/scripts/run/ship/run-ship-conflict-probe.ts +12 -14
  1992. package/scripts/run/ship/run-ship-detach-wait.ts +25 -0
  1993. package/scripts/run/ship/run-ship-detach.ts +29 -35
  1994. package/scripts/run/ship/run-ship-early-push.ts +34 -0
  1995. package/scripts/run/ship/run-ship-evidence-cli.ts +133 -0
  1996. package/scripts/run/ship/run-ship-evidence.ts +71 -0
  1997. package/scripts/run/ship/run-ship-final-review.ts +28 -0
  1998. package/scripts/run/ship/run-ship-gate-runs.ts +58 -0
  1999. package/scripts/run/ship/run-ship-group.ts +38 -0
  2000. package/scripts/run/ship/run-ship-handover.ts +1 -1
  2001. package/scripts/run/ship/run-ship-lap.ts +100 -12
  2002. package/scripts/run/ship/run-ship-narrowed.ts +104 -0
  2003. package/scripts/run/ship/run-ship-next.ts +3 -3
  2004. package/scripts/run/ship/run-ship-pair-runs.ts +127 -0
  2005. package/scripts/run/ship/run-ship-place.ts +9 -8
  2006. package/scripts/run/ship/run-ship-planned.ts +1 -1
  2007. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +7 -1
  2008. package/scripts/run/ship/run-ship-pre-detach.ts +18 -12
  2009. package/scripts/run/ship/run-ship-preflight-reuse.ts +53 -0
  2010. package/scripts/run/ship/run-ship-preflight.ts +21 -2
  2011. package/scripts/run/ship/run-ship-probe.ts +5 -15
  2012. package/scripts/run/ship/run-ship-record-wait.ts +30 -0
  2013. package/scripts/run/ship/run-ship-relaunch-cap.ts +107 -14
  2014. package/scripts/run/ship/run-ship-relaunch.ts +7 -1
  2015. package/scripts/run/ship/run-ship-removed-rows.ts +34 -10
  2016. package/scripts/run/ship/run-ship-reship.ts +125 -0
  2017. package/scripts/run/ship/run-ship-return.ts +68 -22
  2018. package/scripts/run/ship/run-ship-review-checkpoint.ts +112 -0
  2019. package/scripts/run/ship/run-ship-review-reason.ts +3 -1
  2020. package/scripts/run/ship/run-ship-review-steps.ts +80 -31
  2021. package/scripts/run/ship/run-ship-review.ts +13 -9
  2022. package/scripts/run/ship/run-ship-reviewer.ts +59 -7
  2023. package/scripts/run/ship/run-ship-scoped.ts +232 -21
  2024. package/scripts/run/ship/run-ship-stage.ts +3 -5
  2025. package/scripts/run/ship/run-ship-steps.ts +65 -20
  2026. package/scripts/run/ship/run-ship-stop-cause.ts +52 -1
  2027. package/scripts/run/ship/run-ship-stop-context.ts +5 -5
  2028. package/scripts/run/ship/run-ship-stop-text.ts +1 -1
  2029. package/scripts/run/ship/run-ship-supervised.ts +38 -0
  2030. package/scripts/run/ship/run-ship-sync.ts +114 -19
  2031. package/scripts/run/ship/run-ship-synced-scope.ts +162 -58
  2032. package/scripts/run/ship/run-ship-tree-stamp.ts +35 -0
  2033. package/scripts/run/ship/run-ship-wait-cli.ts +23 -25
  2034. package/scripts/run/ship/run-ship-wait-main.ts +12 -0
  2035. package/scripts/run/ship/run-ship-waiter.ts +8 -6
  2036. package/scripts/run/ship/run-ship.ts +12 -0
  2037. package/scripts/run/split/run-split-cli.ts +134 -0
  2038. package/scripts/run/split/run-split-prerequisite.ts +75 -0
  2039. package/scripts/run/split/run-split.ts +213 -0
  2040. package/scripts/run/stale/run-stale-cli.ts +86 -0
  2041. package/scripts/run/stale/run-stale-main.ts +7 -0
  2042. package/scripts/run/stale/run-stale.ts +117 -0
  2043. package/scripts/run/tidy/run-tidy-cli.ts +24 -2
  2044. package/scripts/run/tree-status-cli.ts +131 -0
  2045. package/scripts/run/tree-status.ts +77 -0
  2046. package/scripts/run/ts-entry-loader.ts +34 -0
  2047. package/scripts/run/wake/run-wake-await.ts +22 -2
  2048. package/scripts/run/wake/run-wake-cli.ts +3 -3
  2049. package/scripts/run/wake/run-wake-describe.ts +1 -1
  2050. package/scripts/run/wake/run-wake-driver.ts +158 -61
  2051. package/scripts/run/wake/run-wake-handoff.ts +65 -14
  2052. package/scripts/run/wake/run-wake-loop.ts +63 -23
  2053. package/scripts/run/wake/run-wake-ports.ts +99 -17
  2054. package/scripts/run/wake/run-wake-resume.ts +98 -0
  2055. package/scripts/run/wake/run-wake-session.ts +16 -14
  2056. package/scripts/run/wake/run-wake-window.ts +15 -0
  2057. package/scripts/run/wake/run-wake.ts +7 -6
  2058. package/scripts/safe-chain/preinstall-command.ts +3 -6
  2059. package/scripts/safe-chain/project-config.ts +2 -2
  2060. package/scripts/security/security-audit-cache.ts +157 -0
  2061. package/scripts/security/security-audit-main.ts +4 -2
  2062. package/scripts/security/security-audit-provision-logic.ts +4 -4
  2063. package/scripts/security/security-audit-provision-main.ts +19 -5
  2064. package/scripts/split/declared-growth.ts +22 -0
  2065. package/scripts/split/split-assess.ts +220 -37
  2066. package/scripts/split/split-child-recover-cli.ts +118 -0
  2067. package/scripts/split/split-direction.ts +172 -0
  2068. package/scripts/split/split-measure.ts +28 -14
  2069. package/scripts/split/split-relocations.ts +108 -0
  2070. package/scripts/split/split-resolution.ts +63 -61
  2071. package/scripts/sync/claude-settings-merge.ts +8 -4
  2072. package/scripts/sync/managed-config-scope.ts +13 -1
  2073. package/scripts/sync/sync-ai-files.ts +2 -2
  2074. package/scripts/sync/sync-configs.ts +3 -5
  2075. package/scripts/test/test-e2e-guard.ts +2 -1
  2076. package/scripts/test/test-inputs.ts +119 -0
  2077. package/scripts/test/test-no-base.ts +35 -16
  2078. package/scripts/test/test-pinned-cache-logic.ts +4 -0
  2079. package/scripts/test/test-pinned-cache.ts +8 -15
  2080. package/scripts/test/test-pinned-carry.ts +93 -0
  2081. package/scripts/test/test-pinned-emit.ts +2 -1
  2082. package/scripts/test/test-pinned-ledger.ts +15 -9
  2083. package/scripts/test/test-pinned-logic.ts +66 -4
  2084. package/scripts/test/test-pinned-main.ts +6 -30
  2085. package/scripts/test/test-pinned-moves.ts +43 -0
  2086. package/scripts/test/test-pinned-probe.ts +61 -17
  2087. package/scripts/test/test-pinned-prune-logic.ts +2 -1
  2088. package/scripts/test/test-pinned-reach.ts +11 -3
  2089. package/scripts/test/test-pinned-record.ts +36 -4
  2090. package/scripts/test/test-pinned-snapshot.ts +110 -0
  2091. package/scripts/test/test-pinned-spawn.ts +32 -7
  2092. package/scripts/test/test-pinned-stage.ts +43 -16
  2093. package/scripts/test/test-pinned-type-check.ts +110 -0
  2094. package/scripts/test/test-pinned.ts +92 -35
  2095. package/scripts/test/test-red-logic.ts +40 -2
  2096. package/scripts/test/test-red.ts +131 -19
  2097. package/scripts/test/test-related-cap.ts +182 -0
  2098. package/scripts/test/test-related-main.ts +2 -4
  2099. package/scripts/test/test-related-pins.ts +33 -0
  2100. package/scripts/test/test-related-record.ts +84 -8
  2101. package/scripts/test/test-related-red.ts +218 -0
  2102. package/scripts/test/test-related-reuse.ts +167 -0
  2103. package/scripts/test/test-related-run.ts +144 -0
  2104. package/scripts/test/test-related-synced.ts +31 -8
  2105. package/scripts/test/test-related-touched.ts +10 -5
  2106. package/scripts/test/test-related-verdict.ts +127 -0
  2107. package/scripts/test/test-related-whole.ts +22 -0
  2108. package/scripts/test/test-related.ts +123 -146
  2109. package/scripts/test/test-type-logic.ts +1 -2
  2110. package/scripts/test/test-unit-guard.ts +12 -3
  2111. package/scripts/test/unit-count-file.ts +25 -1
  2112. package/scripts/test/unit-lane-count.ts +63 -0
  2113. package/scripts/test/unit-run-marker.ts +11 -1
  2114. package/scripts/test/unit-update-arguments.ts +73 -0
  2115. package/scripts/test/unit-worker-share.ts +28 -13
  2116. package/scripts/test/whole-suite-files.ts +2 -0
  2117. package/scripts/time-runtime/guard-rephrase.ts +66 -0
  2118. package/scripts/time-runtime/time-agent-bundles.ts +5 -5
  2119. package/scripts/time-runtime/time-bundle-call.ts +2 -2
  2120. package/scripts/time-runtime/time-bundles.ts +2 -2
  2121. package/scripts/time-runtime/time-command-key.ts +2 -5
  2122. package/scripts/time-runtime/time-density-hook.ts +2 -31
  2123. package/scripts/time-runtime/time-format.ts +4 -4
  2124. package/scripts/time-runtime/time-josh-names.ts +51 -0
  2125. package/scripts/time-runtime/time-markers.ts +4 -4
  2126. package/scripts/time-runtime/time-phase-names.ts +2 -2
  2127. package/scripts/time-runtime/time-shell.ts +28 -17
  2128. package/scripts/time-runtime/time-single-check.ts +4 -4
  2129. package/scripts/time-runtime/time-spans.ts +8 -8
  2130. package/scripts/time-runtime/time-tool-call.ts +4 -3
  2131. package/scripts/time-runtime/time-transcript-block.ts +172 -0
  2132. package/scripts/time-runtime/time-transcript-line.ts +26 -158
  2133. package/scripts/time-runtime/transcript-tail.ts +39 -0
  2134. package/scripts/ui/ui-shot-cli.ts +90 -0
  2135. package/scripts/ui/ui-shot.ts +95 -0
  2136. package/scripts/usage/usage-state-path.ts +22 -0
  2137. package/scripts/usage/usage-tee-cli.ts +5 -0
  2138. package/scripts/usage/usage-tee.ts +48 -0
  2139. package/scripts/version/development-engines-verdict.ts +7 -1
  2140. package/scripts/version/fresh-metadata-cache.ts +4 -3
  2141. package/scripts/version/latest-corepack.ts +3 -3
  2142. package/scripts/version/latest-if-required-cli.ts +32 -4
  2143. package/scripts/version/latest-scope-cli.ts +12 -2
  2144. package/scripts/version/latest-stamp.ts +5 -4
  2145. package/scripts/version/npm-registry.ts +19 -0
  2146. package/scripts/version/playwright-browsers.ts +1 -1
  2147. package/scripts/version/release-hold.ts +2 -2
  2148. package/scripts/version/upgrade-command-guard.ts +1 -1
  2149. package/templates/prettierignore.basic +3 -0
  2150. package/templates/sonar-project.properties +2 -1
  2151. package/templates/workflows/ci.yml +5 -4
  2152. package/tsconfig/base.json +1 -0
  2153. package/dist/hooks/chunk-3GKE653K.js +0 -6204
  2154. package/dist/hooks/chunk-45CJJOO7.js +0 -1243
  2155. package/dist/hooks/chunk-5PM2JRGV.js +0 -7780
  2156. package/dist/hooks/chunk-7SIUNQXK.js +0 -3591
  2157. package/dist/hooks/chunk-Z6DQJKH3.js +0 -2806
  2158. package/prompts/collaboration-workflow.md +0 -28
  2159. package/scripts/epic/epic-bundle-poll.ts +0 -41
  2160. package/scripts/josh/josh-commands-lane.ts +0 -310
  2161. package/scripts/josh/josh-commands-split.ts +0 -28
  2162. package/scripts/review/review-lint-cli.ts +0 -57
  2163. package/scripts/split/split-early-notice.ts +0 -116
@@ -0,0 +1,1864 @@
1
+ import {
2
+ lane_breakdown_text
3
+ } from "./chunk-CYQ3ZF7R.js";
4
+ import {
5
+ api_outage,
6
+ run_ending
7
+ } from "./chunk-ZZAH3YQP.js";
8
+ import {
9
+ lane_investigation_switch,
10
+ run_event_overrun
11
+ } from "./chunk-ORSI7Y55.js";
12
+ import {
13
+ lane_withdraw_closed
14
+ } from "./chunk-ST32OGPY.js";
15
+ import {
16
+ lane_preserve
17
+ } from "./chunk-ZYIMQHCB.js";
18
+ import {
19
+ issue_merged
20
+ } from "./chunk-HTIDHEEN.js";
21
+ import {
22
+ lane_reap_settle
23
+ } from "./chunk-Q7TV3OV6.js";
24
+ import {
25
+ lane_residents
26
+ } from "./chunk-QQ4CIYMF.js";
27
+ import {
28
+ run_ship_stop_text
29
+ } from "./chunk-U5HQQWRE.js";
30
+ import {
31
+ run_merge_driver
32
+ } from "./chunk-W6V4DWC5.js";
33
+ import {
34
+ gh_core_rate_limit,
35
+ run_merge_token,
36
+ run_merge_usage_limit
37
+ } from "./chunk-PZ6VWHOO.js";
38
+ import {
39
+ lane_vacant
40
+ } from "./chunk-6VTJO5L2.js";
41
+ import {
42
+ issue_park
43
+ } from "./chunk-T33QDAWD.js";
44
+ import {
45
+ run_stalled
46
+ } from "./chunk-B33BTNB4.js";
47
+ import {
48
+ run_event_filed
49
+ } from "./chunk-PYOK73QE.js";
50
+ import {
51
+ api_auth,
52
+ lane_relaunch
53
+ } from "./chunk-3GF52L5F.js";
54
+ import {
55
+ agent_exit_record
56
+ } from "./chunk-GPTO6IZG.js";
57
+ import {
58
+ issue_state_cli
59
+ } from "./chunk-DAJCUSPG.js";
60
+ import {
61
+ git_followup_issue_close,
62
+ settled_together
63
+ } from "./chunk-72EW7AVI.js";
64
+ import {
65
+ epic_close
66
+ } from "./chunk-DP7WIGQ4.js";
67
+ import {
68
+ lane_breakdown_implement
69
+ } from "./chunk-JGTLNFFE.js";
70
+ import {
71
+ lane_breakdown
72
+ } from "./chunk-VZCQZFPH.js";
73
+ import {
74
+ run_label
75
+ } from "./chunk-R2CF6VZE.js";
76
+ import {
77
+ lane_ledger_archive
78
+ } from "./chunk-JOARHU3M.js";
79
+ import {
80
+ issue_not_before
81
+ } from "./chunk-M42SLJCD.js";
82
+ import {
83
+ issue_sample_prime
84
+ } from "./chunk-NGKB632X.js";
85
+ import {
86
+ issue_closing_pr
87
+ } from "./chunk-KZSM5M5P.js";
88
+ import {
89
+ josh_command
90
+ } from "./chunk-2VRITY55.js";
91
+ import {
92
+ issue_priority
93
+ } from "./chunk-BPSJSHYD.js";
94
+ import {
95
+ telegram_notify
96
+ } from "./chunk-WJ4NEDNI.js";
97
+ import {
98
+ lane_net_time
99
+ } from "./chunk-EKCKCX5S.js";
100
+ import {
101
+ lane_yield
102
+ } from "./chunk-EH3LVYOX.js";
103
+ import {
104
+ lane_stage_stats
105
+ } from "./chunk-HOSZITJM.js";
106
+ import {
107
+ git_gh_command
108
+ } from "./chunk-RX5JSPPH.js";
109
+ import {
110
+ git_gh_issue_write
111
+ } from "./chunk-U2UH4VM4.js";
112
+ import {
113
+ stop_decision
114
+ } from "./chunk-3ZEO3KOM.js";
115
+ import {
116
+ lane_park
117
+ } from "./chunk-XMBRXCIE.js";
118
+ import {
119
+ run_cut,
120
+ run_cut_adoption
121
+ } from "./chunk-CA6F5OXK.js";
122
+ import {
123
+ time_reported_failure
124
+ } from "./chunk-GPMSYXYO.js";
125
+ import {
126
+ lane_tail_stats
127
+ } from "./chunk-QS5USD4T.js";
128
+ import {
129
+ lane_ledger
130
+ } from "./chunk-XYAK53TK.js";
131
+ import {
132
+ agent_argv
133
+ } from "./chunk-NJT5L6IC.js";
134
+ import {
135
+ bash_triggers
136
+ } from "./chunk-F22G3VDB.js";
137
+ import {
138
+ shell_segments
139
+ } from "./chunk-W4YH2DF3.js";
140
+ import {
141
+ cost_blocks,
142
+ time_josh_names,
143
+ time_shell
144
+ } from "./chunk-LHKXJD6L.js";
145
+ import {
146
+ issue_body_keys
147
+ } from "./chunk-FNQW6NY7.js";
148
+ import {
149
+ lane_registry
150
+ } from "./chunk-LRS2OS5J.js";
151
+ import {
152
+ lane_handoff
153
+ } from "./chunk-AI5K4QJO.js";
154
+ import {
155
+ agent_event
156
+ } from "./chunk-LULJUD6P.js";
157
+ import {
158
+ run_ship_detach
159
+ } from "./chunk-HCA5QG2U.js";
160
+ import {
161
+ detached_launch
162
+ } from "./chunk-C2SEDMZ3.js";
163
+ import {
164
+ transcript_record
165
+ } from "./chunk-O3NDWYNT.js";
166
+ import {
167
+ run_event_scope,
168
+ run_event_stream_emit
169
+ } from "./chunk-34LAULSC.js";
170
+ import {
171
+ lane_state
172
+ } from "./chunk-5Y7QQYTU.js";
173
+ import {
174
+ run_event_stream
175
+ } from "./chunk-NSAVEXVR.js";
176
+ import {
177
+ EPIC_LABEL,
178
+ NEEDS_DECISION_LABEL,
179
+ NEEDS_HUMAN_MERGE_LABEL,
180
+ NOT_BEFORE_LABEL,
181
+ PRIORITY_CRITICAL_LABEL,
182
+ RUN_SOLO_LABEL,
183
+ RUN_STALLED_LABEL,
184
+ has_label_name,
185
+ has_parked_label
186
+ } from "./chunk-QQBMVC5W.js";
187
+ import {
188
+ lane_child_marker
189
+ } from "./chunk-QAHFPCFR.js";
190
+ import {
191
+ agent_profile_schema
192
+ } from "./chunk-EZSO25UZ.js";
193
+ import {
194
+ lane_reap
195
+ } from "./chunk-2DJLAUYB.js";
196
+ import {
197
+ run_ship_stage
198
+ } from "./chunk-OHNP3QL2.js";
199
+ import {
200
+ session_cite
201
+ } from "./chunk-X7PN54LZ.js";
202
+ import {
203
+ issue_cite
204
+ } from "./chunk-HQ2HSZBN.js";
205
+ import {
206
+ lane_ledger_write
207
+ } from "./chunk-I63RNFFR.js";
208
+ import {
209
+ run_carry,
210
+ run_carry_conversation
211
+ } from "./chunk-MPGJ4ONJ.js";
212
+ import {
213
+ issue_number_shape
214
+ } from "./chunk-66NX6EXR.js";
215
+ import {
216
+ cli_flags
217
+ } from "./chunk-2FE3C4PH.js";
218
+ import {
219
+ poll
220
+ } from "./chunk-SBGTCT2C.js";
221
+ import {
222
+ process_identity
223
+ } from "./chunk-AKK56GNX.js";
224
+ import {
225
+ git_common_directory
226
+ } from "./chunk-FFHEGWPK.js";
227
+ import {
228
+ stamp_file
229
+ } from "./chunk-QWWTC3XR.js";
230
+ import {
231
+ PROJECT_ROOT
232
+ } from "./chunk-3CCGKX7Y.js";
233
+ import {
234
+ json_value
235
+ } from "./chunk-HIU2WXB6.js";
236
+
237
+ // scripts/run/event/run-event-baseline.ts
238
+ var MERGES_PATTERN = /^baseline @(?<merges>\d+) merges: (?<rest>.*)$/u;
239
+ var STARTED_PREFIX = "started \u2014 ";
240
+ var FAILED_PREFIX = "baseline investigation failed: ";
241
+ function merges_text(merges, rest) {
242
+ return `baseline @${String(merges)} merges: ${rest}`;
243
+ }
244
+ function started_text(merges, outcome) {
245
+ return merges_text(merges, `${STARTED_PREFIX}${outcome}`);
246
+ }
247
+ function ended_text(merges, result) {
248
+ return merges_text(merges, result);
249
+ }
250
+ function failed_text(note) {
251
+ return `${FAILED_PREFIX}${note}`;
252
+ }
253
+ function merges_note(merges, rest) {
254
+ if (rest.startsWith(STARTED_PREFIX)) {
255
+ return { kind: "started", merges, outcome: rest.slice(STARTED_PREFIX.length) };
256
+ }
257
+ return { kind: "ended", merges, result: rest };
258
+ }
259
+ function parse(text) {
260
+ const note = text.slice(FAILED_PREFIX.length);
261
+ if (text.startsWith(FAILED_PREFIX)) return { kind: "failed", note };
262
+ const groups = MERGES_PATTERN.exec(text)?.groups;
263
+ return groups ? merges_note(Number(groups["merges"]), groups["rest"] ?? "") : void 0;
264
+ }
265
+ var run_event_baseline = { ended_text, failed_text, parse, started_text };
266
+
267
+ // scripts/lane/lane-overrun-prompt.ts
268
+ var MAX_FILINGS = 5;
269
+ var MIN_MINUTES = 1;
270
+ var PRIORITY_COMMAND = "pnpm josh issue:priority <N>";
271
+ function duplicate_lines(loss_lines) {
272
+ return [
273
+ "On a duplicate refusal, read each candidate with `pnpm josh issue:read <N>`: one that only fixes",
274
+ "another mechanism, or is only cited, is distinct \u2014 reissue with `--distinct <N,\u2026>`; an open one that",
275
+ "fixes the same mechanism is not filed again but gets a comment recording the recurrence with those four",
276
+ `and ${loss_lines}, and gets those lines added under its background heading too, the cause-loss line`,
277
+ `appended beside the ones already there, since ranking sums every \`${issue_priority.CAUSE_PREFIX}\` line`,
278
+ "and reads only the body (`gh api -X PATCH repos/{owner}/{repo}/issues/<N> -F body=@<file>`). Then",
279
+ `run \`${PRIORITY_COMMAND}\`, which labels it once the sum reaches the high floor. One`,
280
+ "closed before this lane yet recurring here is filed anew as a recurrence, its number in `--distinct`.",
281
+ "A cap refusal is final: stop filing."
282
+ ];
283
+ }
284
+ function file_command(origin) {
285
+ if (origin === void 0) return "pnpm josh issue:file";
286
+ return `pnpm josh issue:file --found-during ${String(origin)}`;
287
+ }
288
+ function grouping(origin, loss_lines) {
289
+ return [
290
+ "Causes whose fixes touch the same file or mechanism are one issue, an acceptance criterion per",
291
+ "cause; causes fixed in different places are separate issues. Before filing one, look for an open",
292
+ 'issue that touches the same files (`pnpm josh issue:scout "<title>" --body-file <draft.md>`, each',
293
+ "candidate read with `pnpm josh issue:read <N>`): when one does, fold its causes into it by",
294
+ "`.claude/skills/workflow-commands/issue-fold-existing.md` instead of filing, the appended part",
295
+ `carrying ${loss_lines}; on a verdict other than \`fold\`, file as below.`,
296
+ "File each other issue with",
297
+ `\`${file_command(origin)}\`, its body carrying those four per cause, and`,
298
+ `${loss_lines} under its background heading, the cause-loss minutes being what that issue's own`,
299
+ "causes would cut \u2014 backlog ranking orders one priority by them, else by the lane's minutes, which every",
300
+ "cause of the lane shares, so a filing without either falls behind every declared one."
301
+ ].join(" ");
302
+ }
303
+ function selection_lines(scope) {
304
+ const limit = `${String(MAX_FILINGS)} causes`;
305
+ return [
306
+ `Estimate each cause's reducible minutes: what its fix would cut from ${scope}. Time the work`,
307
+ "inherently takes (a CI wait the pipeline requires, a review) counts only for the part a fix removes,",
308
+ "and not at all when no fix removes any.",
309
+ `Take at most the ${limit} with the most reducible minutes, largest first, each cutting`,
310
+ `${String(MIN_MINUTES)} minute or more, and drop the rest: file or fold only those.`,
311
+ "File a defect \u2014 a tool did something unneeded or wrong (a rerun on an unchanged tree, a lost scope)",
312
+ `\u2014 as \`${issue_body_keys.line("kind", "bug")}\`, any other cause as \`${issue_body_keys.line("purpose", "time_saving")}\`.`
313
+ ];
314
+ }
315
+ var MEASUREMENT_LINES = [
316
+ "Measure a reach test count \u2014 the test files `pnpm josh test:related` runs for a changed file \u2014 with",
317
+ "`pnpm josh test:reach <file\u2026>`.",
318
+ "Put a measurement criterion (a before / after recorded as an Issue comment) in a prior `--route split`",
319
+ "issue, never in the issue that carries the fix."
320
+ ];
321
+ function result_lines(template) {
322
+ return [
323
+ `Then record the result: \`pnpm josh run:event --append note "${template}"\`,`,
324
+ `the result being \`${run_event_overrun.folded_result(["<A>", "<B>"])}\` naming every issue you folded into`,
325
+ `when you folded any, else \`${run_event_overrun.FILED_RESULT}\` when you filed any, \`${run_event_overrun.recurred_result("<N>")}\``,
326
+ `when you only commented a recurrence on #<N>, else \`${run_event_overrun.none_result("<why, in about 15 characters>")}\`.`
327
+ ];
328
+ }
329
+ function cause_handling(rules) {
330
+ return [
331
+ ...selection_lines(rules.scope),
332
+ grouping(rules.origin, rules.loss_lines),
333
+ ...MEASUREMENT_LINES,
334
+ ...duplicate_lines(rules.loss_lines),
335
+ ...result_lines(rules.template)
336
+ ].join(" ");
337
+ }
338
+ function loss_lines_of(issue, minutes) {
339
+ const cite = issue_cite.plain_for("program", issue);
340
+ return `\`${issue_priority.LANE_PREFIX} ${minutes} \u5206\uFF08${cite}\uFF09\` and \`${issue_priority.CAUSE_PREFIX} <\u5206> \u5206\``;
341
+ }
342
+ var STAGE_ORDER = [
343
+ "Search for causes stage by stage, in the order of the net time by stage above, longest first.",
344
+ `For each stage you judge not reducible, end the result with \`${run_event_overrun.NOT_REDUCIBLE_LEAD}<stage> (<why>)\`.`
345
+ ].join(" ");
346
+ function handling(issue, minutes) {
347
+ const rules = cause_handling({
348
+ origin: issue,
349
+ loss_lines: loss_lines_of(issue, String(minutes)),
350
+ template: run_event_overrun.ended_text(issue, "<result>"),
351
+ scope: "this lane alone, judged from its own record"
352
+ });
353
+ return `${STAGE_ORDER} ${rules}`;
354
+ }
355
+ var lane_overrun_prompt = { cause_handling, handling, loss_lines_of };
356
+
357
+ // scripts/lane/lane-overrun.ts
358
+ var { EVENT_KIND } = run_event_stream;
359
+ var { DISABLED_REASON } = run_event_overrun;
360
+ var LOG_PREFIX = "josh-lane-overrun-";
361
+ var LOG_SUFFIX = ".log";
362
+ var NO_LEDGER = "no ledger";
363
+ var MAX_LAUNCH_FAILURES = 2;
364
+ function overrun_notes(events) {
365
+ return events.flatMap(
366
+ (event) => event.kind === EVENT_KIND.NOTE ? run_event_overrun.parse(event.text) ?? [] : []
367
+ );
368
+ }
369
+ function is_thrown(note) {
370
+ return note.kind === "failed" && note.minutes === void 0;
371
+ }
372
+ function is_launch_failure(note) {
373
+ return note.kind === "failed" && note.minutes !== void 0;
374
+ }
375
+ function is_final(note) {
376
+ return !is_thrown(note) && !is_launch_failure(note);
377
+ }
378
+ function is_noted(events, issue) {
379
+ const notes = overrun_notes(events).filter((note) => note.issue === issue);
380
+ const failures = notes.filter((note) => is_launch_failure(note)).length;
381
+ return failures >= MAX_LAUNCH_FAILURES || notes.some((note) => is_final(note));
382
+ }
383
+ function retried_lanes(events, issue) {
384
+ const latest = new Map(overrun_notes(events).map((note) => [note.issue, note]));
385
+ latest.delete(issue);
386
+ return [...latest.values()].filter((note) => is_launch_failure(note) && !is_noted(events, note.issue)).map((note) => note.issue);
387
+ }
388
+ function is_commented(events, issue) {
389
+ return overrun_notes(events).some((note) => note.issue === issue);
390
+ }
391
+ function net_in(path2, events, issue) {
392
+ const entries = lane_ledger_archive.history_at(path2);
393
+ const minutes = lane_net_time.net_minutes(entries, events, issue);
394
+ const breakdown = lane_breakdown.of(entries, events, issue);
395
+ if (minutes === void 0 || breakdown === void 0) {
396
+ return { kind: "missing", reason: lane_net_time.missing_reason(entries, issue) };
397
+ }
398
+ return {
399
+ kind: "minutes",
400
+ minutes,
401
+ breakdown,
402
+ entries,
403
+ events,
404
+ is_commented: is_commented(events, issue)
405
+ };
406
+ }
407
+ async function net_of(issue) {
408
+ const events = await run_event_stream_emit.all_events();
409
+ if (is_noted(events, issue)) return void 0;
410
+ const path2 = await lane_ledger.target();
411
+ return path2 === void 0 ? { kind: "missing", reason: NO_LEDGER } : net_in(path2, events, issue);
412
+ }
413
+ function reading(issue, cite, minutes) {
414
+ const directories = lane_breakdown_implement.transcript_directories(issue).join(", ") || "none found";
415
+ return [
416
+ `Investigate why lane ${cite} took ${String(minutes)} minutes of net time (dispatch to merge, less`,
417
+ "its waits on a person and on outages). Leave this checkout as it is: write any file, an issue body",
418
+ "included, under the system temp directory, and never stage, commit or push.",
419
+ `Read the lane's transcripts (${directories}), its ship log (\`pnpm josh ship --log ${String(issue)}\`)`,
420
+ "and the run events (`pnpm josh run:event --from 0`), and find the causes that spent time other than",
421
+ "waiting. Trace each cause to what can fix it: the span it spent, the signal that led to the wrong call",
422
+ "or the wait (which command printed what), the `file:line` of the code or document that decided it, and",
423
+ "where to fix it."
424
+ ].join(" ");
425
+ }
426
+ function prompt(issue, minutes, report) {
427
+ const reads = reading(issue, issue_cite.plain_for("program", issue), minutes);
428
+ const stages = lane_breakdown_text.line(report);
429
+ return `${stages} ${reads} ${lane_overrun_prompt.handling(issue, minutes)}`;
430
+ }
431
+ function note_failure(issue) {
432
+ return (note) => {
433
+ void run_event_stream_emit.emit(EVENT_KIND.NOTE, run_event_overrun.failed_text(issue, note));
434
+ };
435
+ }
436
+ function launch(investigation) {
437
+ const cwd = process.cwd();
438
+ const built = agent_argv.resolve_in(investigation.prompt, agent_profile_schema.WORKER, cwd);
439
+ if (built.kind === "rejected") return `not investigated: ${built.note}`;
440
+ const request = {
441
+ argv: built.argv,
442
+ cwd,
443
+ env: investigation.env,
444
+ log_path: stamp_file.stamp_path(investigation.log_prefix, PROJECT_ROOT, LOG_SUFFIX),
445
+ profile: built.profile
446
+ };
447
+ const result = detached_launch.launch(request, investigation.on_failure);
448
+ return result.kind === "launched" ? run_event_overrun.investigating(result.pid, process_identity.read_start(result.pid)) : `not investigated: ${result.note}`;
449
+ }
450
+ function launched(issue, minutes, report) {
451
+ return launch({
452
+ env: lane_child_marker.overrun_env_for(String(issue)),
453
+ prompt: prompt(issue, minutes, report),
454
+ log_prefix: `${LOG_PREFIX}${String(issue)}-`,
455
+ on_failure: note_failure(issue)
456
+ });
457
+ }
458
+ async function overran_text(issue, net) {
459
+ const breakdown = lane_breakdown_implement.breakdown_of(net.entries, net.events, issue) ?? net.breakdown;
460
+ const report = lane_breakdown_text.report_of(issue, breakdown, net.entries);
461
+ const comment = lane_breakdown_text.comment(issue, net.minutes, report);
462
+ if (!net.is_commented) await git_gh_issue_write.issue_try_comment(String(issue), comment);
463
+ const outcome = launched(issue, net.minutes, report);
464
+ const longest = lane_breakdown.longest_of(breakdown);
465
+ return run_event_overrun.started_text(issue, net.minutes, outcome, longest);
466
+ }
467
+ async function note_text(issue, net) {
468
+ if (net.kind === "missing") return run_event_overrun.skipped_text(issue, net.reason);
469
+ const is_over = lane_tail_stats.is_overrun(net.minutes);
470
+ if (!is_over) return run_event_overrun.within_text(issue, net.minutes);
471
+ if (!lane_investigation_switch.is_on()) {
472
+ return run_event_overrun.skipped_text(issue, DISABLED_REASON);
473
+ }
474
+ return await overran_text(issue, net);
475
+ }
476
+ async function investigate_lane(issue) {
477
+ const net = await net_of(issue);
478
+ if (net === void 0) return;
479
+ await run_event_stream_emit.emit(EVENT_KIND.NOTE, await note_text(issue, net));
480
+ }
481
+ async function guarded(issue, pass) {
482
+ try {
483
+ await pass(issue);
484
+ } catch (error) {
485
+ note_failure(issue)(detached_launch.note_of(error));
486
+ }
487
+ }
488
+ async function investigate_with_retries(issue) {
489
+ await investigate_lane(issue);
490
+ const retried = retried_lanes(await run_event_stream_emit.all_events(), issue);
491
+ for (const lane of retried) {
492
+ await guarded(lane, investigate_lane);
493
+ }
494
+ }
495
+ async function investigate(issue) {
496
+ const pass = lane_investigation_switch.is_on() ? investigate_with_retries : investigate_lane;
497
+ await guarded(issue, pass);
498
+ }
499
+ var lane_overrun = { investigate, launch };
500
+
501
+ // scripts/lane/lane-baseline.ts
502
+ var { EVENT_KIND: EVENT_KIND2 } = run_event_stream;
503
+ var BASELINE_MERGES = 30;
504
+ var LOG_PREFIX2 = "josh-lane-baseline-";
505
+ var STATS_PERIOD_DAYS = 3;
506
+ var MEDIAN_PLACEHOLDER = "<median lane minutes>";
507
+ var SCOPE = "the median merge, judged from the per-merge minutes `lane:stats` prints";
508
+ function due_bucket(merges) {
509
+ return Math.floor(merges / BASELINE_MERGES) * BASELINE_MERGES;
510
+ }
511
+ function is_noted2(events, merges) {
512
+ return events.some((event) => {
513
+ const note = event.kind === EVENT_KIND2.NOTE ? run_event_baseline.parse(event.text) : void 0;
514
+ return note !== void 0 && note.kind !== "failed" && note.merges === merges;
515
+ });
516
+ }
517
+ async function due_merges() {
518
+ const path2 = await lane_ledger.target();
519
+ if (path2 === void 0) return void 0;
520
+ const merges = lane_ledger.read_entries(path2).filter((entry) => lane_stage_stats.is_merge(entry));
521
+ const bucket = due_bucket(merges.length);
522
+ return bucket > 0 ? bucket : void 0;
523
+ }
524
+ function reading2(merges) {
525
+ return [
526
+ `Investigate the median lane after ${String(merges)} merges: not an overrun, but the time every lane`,
527
+ "spends. Leave this checkout as it is: write any file, an issue body included, under the system temp",
528
+ "directory, and never stage, commit or push.",
529
+ `Read \`pnpm josh lane:stats --period ${String(STATS_PERIOD_DAYS)}\` \u2014 its stage table and its`,
530
+ "implement sub-stage table \u2014 and take the several stages and sub-stages with the largest per-merge",
531
+ "time, not just the one largest. Read the period lanes' transcripts (the lane directories `lane:stats`",
532
+ "reads) and the run events (`pnpm josh run:event --from 0`) for where each one's time goes, and find",
533
+ "the causes a fix could cut.",
534
+ "Trace each cause to what can fix it: the minutes it spends per merge, the signal that led to the",
535
+ "spend (which command printed what), the `file:line` of the code or document that decided it, and",
536
+ "where to fix it."
537
+ ].join(" ");
538
+ }
539
+ function prompt2(issue, merges) {
540
+ const handling2 = lane_overrun_prompt.cause_handling({
541
+ origin: void 0,
542
+ loss_lines: lane_overrun_prompt.loss_lines_of(issue, MEDIAN_PLACEHOLDER),
543
+ template: run_event_baseline.ended_text(merges, "<result>"),
544
+ scope: SCOPE
545
+ });
546
+ return `${reading2(merges)} ${handling2}`;
547
+ }
548
+ function note_failure2(note) {
549
+ void run_event_stream_emit.emit(EVENT_KIND2.NOTE, run_event_baseline.failed_text(note));
550
+ }
551
+ function launched2(issue, merges) {
552
+ return lane_overrun.launch({
553
+ env: {},
554
+ prompt: prompt2(issue, merges),
555
+ log_prefix: `${LOG_PREFIX2}${String(merges)}-`,
556
+ on_failure: note_failure2
557
+ });
558
+ }
559
+ async function investigate_baseline(issue) {
560
+ const merges = await due_merges();
561
+ if (merges === void 0 || is_noted2(await run_event_stream_emit.all_events(), merges)) return;
562
+ await run_event_stream_emit.emit(
563
+ EVENT_KIND2.NOTE,
564
+ run_event_baseline.started_text(merges, launched2(issue, merges))
565
+ );
566
+ }
567
+ async function investigate2(issue) {
568
+ if (!lane_investigation_switch.is_on()) return;
569
+ try {
570
+ await investigate_baseline(issue);
571
+ } catch (error) {
572
+ note_failure2(detached_launch.note_of(error));
573
+ }
574
+ }
575
+ var lane_baseline = { due_bucket, investigate: investigate2 };
576
+
577
+ // scripts/run/merge/run-merge.ts
578
+ var CLOSED_STATE = "CLOSED";
579
+ var CONSECUTIVE_FAILURE_LIMIT = 3;
580
+ var CONSECUTIVE_OUTAGE_LIMIT = 3;
581
+ var OUTAGE_WAIT_BASE_MS = 3e5;
582
+ var OUTAGE_WAIT_CAP_MS = 36e5;
583
+ var DOUBLING = 2;
584
+ var ONE = 1;
585
+ var NO_SIGNALS = { is_outage: false, is_cut: false };
586
+ function is_closed(state) {
587
+ return state.state.toUpperCase() === CLOSED_STATE;
588
+ }
589
+ function is_parked(state) {
590
+ return has_parked_label(state.labels);
591
+ }
592
+ function environment_outcome(signals) {
593
+ if (signals.is_auth_failure === true) return "unauthenticated";
594
+ if (signals.resume_ms !== void 0) return "usage-limit";
595
+ return signals.is_outage ? "outage" : "failed";
596
+ }
597
+ function unfinished_outcome(signals) {
598
+ if (signals.merged_pr !== void 0) return "merged";
599
+ if (signals.is_cut) return "cut";
600
+ return environment_outcome(signals);
601
+ }
602
+ function open_outcome(state, signals) {
603
+ if (state.is_human_review || has_label_name(state.labels, NEEDS_HUMAN_MERGE_LABEL)) {
604
+ return "human-review";
605
+ }
606
+ if (has_label_name(state.labels, EPIC_LABEL)) return "split";
607
+ if (is_parked(state)) return "parked";
608
+ return unfinished_outcome(signals);
609
+ }
610
+ function state_outcome(state, signals) {
611
+ return is_closed(state) ? "merged" : open_outcome(state, signals);
612
+ }
613
+ function classify_child(state, signals = NO_SIGNALS) {
614
+ if (signals.is_yielded === true) return "yielded";
615
+ if (signals.is_withdrawn === true) return "withdrawn";
616
+ return state === void 0 ? "unresolved" : state_outcome(state, signals);
617
+ }
618
+ function change_of(outcome) {
619
+ if (outcome === "merged") return { merged: ONE };
620
+ if (outcome === "failed") return { failures: ONE };
621
+ if (outcome === "outage") return { outages: ONE };
622
+ return void 0;
623
+ }
624
+ function is_guard_tripped(failures) {
625
+ return failures > 0 && failures % CONSECUTIVE_FAILURE_LIMIT === 0;
626
+ }
627
+ function is_outage_guard_tripped(outages2) {
628
+ return outages2 >= CONSECUTIVE_OUTAGE_LIMIT;
629
+ }
630
+ function outage_wait_ms(outages2) {
631
+ const doublings = Math.max(0, outages2 - CONSECUTIVE_OUTAGE_LIMIT);
632
+ return Math.min(OUTAGE_WAIT_BASE_MS * DOUBLING ** doublings, OUTAGE_WAIT_CAP_MS);
633
+ }
634
+ function counters_comment(carry) {
635
+ return [
636
+ "Run progress (generated from the carry record):",
637
+ `- started: ${carry.started_at}`,
638
+ `- merged: ${String(carry.merged)}`,
639
+ `- filed: ${String(carry.filed)}`,
640
+ `- consecutive failures: ${String(carry.failures)}`,
641
+ `- consecutive outages: ${String(carry.outages)}`,
642
+ `- cuts crossed: ${String(carry.cuts)}`
643
+ ].join("\n");
644
+ }
645
+ function streak_line(carry) {
646
+ if (carry === void 0) return "- Consecutive failures: not recorded (no carry record).";
647
+ return `- Consecutive failures: ${String(carry.failures)} of ${String(CONSECUTIVE_FAILURE_LIMIT)} (every ${String(CONSECUTIVE_FAILURE_LIMIT)} in a row checks \`main\`).`;
648
+ }
649
+ function park_comment(reason) {
650
+ const transcript = reason.output === void 0 ? "" : ` (\`${reason.output}\`)`;
651
+ return [
652
+ `Parked with \`${RUN_STALLED_LABEL}\` by \`pnpm josh run:merge\`, the \`backlogrun\` driver \u2014 a mechanical failure, with no decision to make.`,
653
+ `- Why: ${reason.cause}`,
654
+ "- Read: the issue is OPEN, carries no park label, `needs-human-review` or `epic`, no merged pull request\u2019s `closes #N` names it, and it declares no open blocker, start date still ahead or sample condition not yet met.",
655
+ streak_line(reason.carry),
656
+ `- Next: read the child\u2019s transcript${transcript}, ${run_stalled.next_step(reason.child, reason.cause)}.`
657
+ ].join("\n");
658
+ }
659
+ function waiting_comment(waits) {
660
+ return [
661
+ "Released to wait by `pnpm josh run:merge`, the `backlogrun` driver \u2014 not parked, and not counted as a failure.",
662
+ `- Why: the child\u2019s session ended unfinished while it waits on: ${waits.join(", ")}.`,
663
+ "- Next: when it runs is already recorded \u2014 it becomes runnable again once its blockers merge, its start date arrives and its sample condition is met; a blocker outside the backlog still needs a person to land it."
664
+ ].join("\n");
665
+ }
666
+ var run_merge = {
667
+ CONSECUTIVE_FAILURE_LIMIT,
668
+ CONSECUTIVE_OUTAGE_LIMIT,
669
+ change_of,
670
+ classify_child,
671
+ counters_comment,
672
+ park_comment,
673
+ waiting_comment,
674
+ is_guard_tripped,
675
+ is_outage_guard_tripped,
676
+ outage_wait_ms
677
+ };
678
+
679
+ // scripts/run/merge/run-merge-auth.ts
680
+ var LIMIT = "authentication failure";
681
+ var RECHECK_MS = 6e5;
682
+ var RECHECK_TEXT = "10 minutes";
683
+ var RECOVERY = "If this did not arrive, `pnpm josh run:wake --list` relays the last progress line.";
684
+ async function is_first_hold() {
685
+ const events = await run_event_stream_emit.current_events();
686
+ return run_event_stream.since(events, run_event_stream.EVENT_KIND.MERGE).every(
687
+ (event) => !(event.kind === run_event_stream.EVENT_KIND.USAGE_LIMIT && event.text.includes(LIMIT))
688
+ );
689
+ }
690
+ async function notify(child) {
691
+ const cite = issue_cite.plain_for("telegram", child);
692
+ const text = `${cite} could not authenticate \u2014 run /login; the run resumes by itself`;
693
+ await telegram_notify.confirm({
694
+ issue_title: "backlogrun waiting: Claude authentication failed",
695
+ body: `${text}. Launches are held and re-tried every ${RECHECK_TEXT}; the child was released, neither parked nor counted as a failure.`,
696
+ recovery: RECOVERY,
697
+ recommended: "Run /login",
698
+ alternatives: ["Stop the run with `pnpm josh backlogrun --stop`"]
699
+ });
700
+ }
701
+ async function hold(child, now_ms) {
702
+ const is_first = await is_first_hold();
703
+ await run_merge_usage_limit.record(child, now_ms + RECHECK_MS, LIMIT);
704
+ if (is_first) await notify(child);
705
+ }
706
+ var run_merge_auth = { hold };
707
+
708
+ // scripts/run/merge/run-merge-dated.ts
709
+ var KIND = run_event_stream.EVENT_KIND;
710
+ function is_own(event, cite) {
711
+ return event.text.startsWith(`${cite} `);
712
+ }
713
+ function is_report_done(event) {
714
+ if (event.kind !== KIND.SHIP_STAGE) return false;
715
+ const { stage, phase } = run_ship_stage.words_of(event.text);
716
+ return stage === run_ship_stage.STAGE.REPORT && phase === run_ship_stage.PHASE.DONE;
717
+ }
718
+ function is_bound(event) {
719
+ return event.kind === KIND.CHILD_LAUNCH || is_report_done(event);
720
+ }
721
+ function reported_at(events, child) {
722
+ const cite = issue_cite.plain_for("program", child);
723
+ const bound = events.findLast((event) => is_own(event, cite) && is_bound(event));
724
+ return bound !== void 0 && is_report_done(bound) ? Date.parse(bound.at) : void 0;
725
+ }
726
+ function dated(events, child, confirmed_at) {
727
+ const reported = reported_at(events, child);
728
+ if (reported === void 0 || reported >= confirmed_at.getTime()) return confirmed_at;
729
+ return new Date(reported);
730
+ }
731
+ async function put_on_record(child, confirmed_at) {
732
+ const text = `${issue_cite.plain_for("program", child)} merged`;
733
+ const events = await run_event_stream_emit.invocation_or_all_events();
734
+ if (events.some((event) => event.kind === KIND.MERGE && event.text === text)) return;
735
+ const at = dated(events, child, confirmed_at);
736
+ await run_event_stream_emit.emit(KIND.MERGE, text, at);
737
+ await lane_ledger_write.record_merge(Number(child), at);
738
+ }
739
+ var run_merge_dated = { dated, put_on_record };
740
+
741
+ // scripts/run/merge/run-merge-decision.ts
742
+ import { z } from "zod";
743
+ var HOOK_CONFIRMATION = "\u{1F4F1} stop:guard sent the confirmation notify (";
744
+ var INPUT_SCHEMA = z.object({ command: z.string() });
745
+ var AWAITING_CONFIRMATION = /(?:確認|回答|返答|承認)(?:[をの]?待っています|待ちです|後に(?:続行|再開)します)/u;
746
+ var COMMAND_SCHEMA = z.looseObject({
747
+ type: z.literal("item.completed"),
748
+ item: z.looseObject({
749
+ type: z.literal("command_execution"),
750
+ command: z.string(),
751
+ exit_code: z.literal(0),
752
+ aggregated_output: z.string().optional()
753
+ })
754
+ });
755
+ function confirms(line) {
756
+ if (line.startsWith(HOOK_CONFIRMATION)) return true;
757
+ const command = COMMAND_SCHEMA.safeParse(json_value.parse_or_undefined(line));
758
+ return command.success && lane_park.is_confirmation_notify(command.data.item.command);
759
+ }
760
+ function asks(message) {
761
+ return AWAITING_CONFIRMATION.test(message) || stop_decision.contains_question(message);
762
+ }
763
+ function successful_last(command) {
764
+ const joined = shell_segments.joined_continuations(command);
765
+ const plain = time_shell.blanked(joined);
766
+ if (plain === void 0 || plain.includes("\n")) return void 0;
767
+ const comment = plain.search(/(?:^|[\s;|&])#/u);
768
+ const end = comment === -1 ? joined.length : comment;
769
+ const syntax = plain.slice(0, end);
770
+ if (/[;|&\n]/u.test(syntax.replaceAll("&&", ""))) return void 0;
771
+ return shell_segments.quote_aware_commands_of(joined.slice(0, end)).at(-1);
772
+ }
773
+ function is_entry(command) {
774
+ for (let next = command; next !== ""; ) {
775
+ const last = successful_last(next) ?? "";
776
+ const script = bash_triggers.shell_script_of(last);
777
+ if (script === void 0) {
778
+ return time_josh_names.josh_command_of_segment(time_shell.unquoted(last)) === "josh run:entry";
779
+ }
780
+ next = script;
781
+ }
782
+ return false;
783
+ }
784
+ function entry_ids(latest) {
785
+ const records = latest.split("\n").flatMap((line) => transcript_record.parse(line) ?? []);
786
+ const calls = records.filter((record) => record.type === "assistant").flatMap((record) => transcript_record.tool_calls_of(record));
787
+ const entries = calls.filter(
788
+ (block) => block.name === "Bash" && is_entry(INPUT_SCHEMA.safeParse(block.input).data?.command ?? "")
789
+ );
790
+ return new Set(entries.flatMap((block) => block.id ?? []));
791
+ }
792
+ function is_entry_result(block, ids) {
793
+ return block?.type === transcript_record.TOOL_RESULT_TYPE && block.is_error !== true && ids.has(block.tool_use_id ?? "");
794
+ }
795
+ function claude_output(line, ids) {
796
+ const record = transcript_record.parse(line);
797
+ if (record?.type !== "user") return "";
798
+ const blocks = transcript_record.blocks_of(record);
799
+ return cost_blocks.parse_line(line).filter((_block, index) => is_entry_result(blocks[index], ids)).map((block) => block.text).join("\n");
800
+ }
801
+ function tool_output(line, ids) {
802
+ const command = COMMAND_SCHEMA.safeParse(json_value.parse_or_undefined(line));
803
+ if (!command.success) return claude_output(line, ids);
804
+ return is_entry(command.data.item.command) ? command.data.item.aggregated_output ?? "" : "";
805
+ }
806
+ function unfinished(latest, message) {
807
+ const ids = entry_ids(latest);
808
+ const outputs = latest.split("\n").map((line) => tool_output(line, ids)).join("\n");
809
+ const resumes = [...outputs.matchAll(/^entry [^\n]+ — resume: ([\w-]+)$/gmu)];
810
+ return resumes.at(-1)?.[1] === "handed-off" ? run_stalled.STALE_HANDOFF : run_stalled.session_unfinished(message);
811
+ }
812
+ function judged(transcript) {
813
+ const latest = run_ship_detach.last_launch(transcript);
814
+ const message = agent_event.read(latest).last_message ?? "";
815
+ const is_confirmed = latest.split("\n").some((line) => confirms(line));
816
+ if (!is_confirmed && !asks(message)) return unfinished(latest, message);
817
+ return {
818
+ short: NEEDS_DECISION_LABEL,
819
+ why: message || "The child sent a confirmation notification."
820
+ };
821
+ }
822
+ function cause(output) {
823
+ const transcript = output === void 0 ? void 0 : run_ending.read_transcript(output);
824
+ return transcript === void 0 ? run_stalled.SESSION_UNFINISHED : judged(transcript);
825
+ }
826
+ function is_decision(short) {
827
+ return short === NEEDS_DECISION_LABEL;
828
+ }
829
+ function park_event(child, short) {
830
+ return is_decision(short) ? `${issue_cite.plain_for("program", child)} parked (${NEEDS_DECISION_LABEL})` : run_stalled.park_event(child, short);
831
+ }
832
+ function park_comment2(judgment) {
833
+ return [
834
+ `Parked with \`${NEEDS_DECISION_LABEL}\` by \`pnpm josh run:merge\`: the child waits for your answer.`,
835
+ `- Decision: ${judgment.why}`,
836
+ "- Consecutive failures: unchanged.",
837
+ "- Next: answer the question on this issue, then remove `needs-decision` to resume."
838
+ ].join("\n");
839
+ }
840
+ function park_options(judgment, reason) {
841
+ return is_decision(judgment.short) ? { label: NEEDS_DECISION_LABEL, comment: park_comment2(judgment) } : { label: RUN_STALLED_LABEL, comment: run_merge.park_comment(reason) };
842
+ }
843
+ function is_guard_tripped2(short, carry) {
844
+ if (is_decision(short)) return false;
845
+ return carry !== void 0 && run_merge.is_guard_tripped(carry.failures);
846
+ }
847
+ var run_merge_decision = { cause, is_decision, is_guard_tripped: is_guard_tripped2, park_event, park_options };
848
+
849
+ // scripts/run/merge/run-merge-health.ts
850
+ import { mkdtemp, writeFile } from "node:fs/promises";
851
+ import { tmpdir } from "node:os";
852
+ import path from "node:path";
853
+ import { execa } from "execa";
854
+ var TITLE = "Repair the verification gate failing on main";
855
+ var OUTPUT_TAIL_LINES = 20;
856
+ var STATIC_CHECK = { args: ["josh", "gate", "--no-unit"], env: { CI: "true" } };
857
+ var UNIT_CHECK = { args: ["josh", "test:unit"], env: {} };
858
+ var COMMANDS = "`CI=true pnpm josh gate --no-unit` and `pnpm josh test:unit`";
859
+ function is_filed(events) {
860
+ return run_event_stream.since(events, run_event_stream.EVENT_KIND.MERGE).some(
861
+ (event) => event.kind === run_event_stream.EVENT_KIND.FILED && run_event_filed.parse(event.text)?.title === TITLE
862
+ );
863
+ }
864
+ var DECLARATIONS = [
865
+ issue_body_keys.heading("background"),
866
+ "",
867
+ issue_body_keys.line("kind", "bug"),
868
+ issue_body_keys.line("purpose", "bug_fix"),
869
+ issue_body_keys.line("judgement", "not_needed"),
870
+ `${issue_body_keys.line("origin", "unknown")}\uFF08found by the backlogrun health check, not traced yet\uFF09`,
871
+ `${issue_body_keys.prefix("size")} ${issue_body_keys.size_value("1", "20")}`
872
+ ];
873
+ var SYMPTOM = [
874
+ issue_body_keys.heading("symptom"),
875
+ "",
876
+ `${COMMANDS} fail on \`main\`, twice in a row.`
877
+ ];
878
+ var EXPECTED = [
879
+ issue_body_keys.heading("expected"),
880
+ "",
881
+ `${COMMANDS} pass on \`main\`.`,
882
+ "",
883
+ issue_body_keys.heading("criteria"),
884
+ "",
885
+ `- [ ] ${COMMANDS} pass on \`main\`.`
886
+ ];
887
+ function body_of(child, output) {
888
+ const tail = output.split("\n").slice(-OUTPUT_TAIL_LINES).join("\n");
889
+ const origin = `Filed by \`pnpm josh run:merge\` after ${issue_cite.plain_for("github", child)}: a streak of children failed, and the whole-tree verification on \`main\` failed too, so it is broken for every lane.`;
890
+ const reproduction = [
891
+ issue_body_keys.heading("reproduction"),
892
+ "",
893
+ `${COMMANDS} on \`main\`:`,
894
+ "",
895
+ "```text",
896
+ tail,
897
+ "```"
898
+ ];
899
+ return [...DECLARATIONS, "", origin, "", ...SYMPTOM, "", ...reproduction, "", ...EXPECTED].join(
900
+ "\n"
901
+ );
902
+ }
903
+ async function file_solo(child, output) {
904
+ const directory = await mkdtemp(path.join(tmpdir(), "josh-health-"));
905
+ const body_file = path.join(directory, "body.md");
906
+ const answers = ["--defect", "yes", "--verification", "yes", "--every-run", "yes"];
907
+ const labels = ["--label", RUN_SOLO_LABEL, "--label", PRIORITY_CRITICAL_LABEL];
908
+ await writeFile(body_file, body_of(child, output));
909
+ const filing = await execa(
910
+ "pnpm",
911
+ ["josh", "issue:file", TITLE, "--body-file", body_file, ...labels, ...answers, "--over-cap"],
912
+ { reject: false, all: true, stdin: "ignore" }
913
+ );
914
+ if (filing.exitCode !== 0) {
915
+ console.error(`run:merge: the run:solo Issue was not filed:
916
+ ${filing.all}`);
917
+ }
918
+ }
919
+ async function red_output(health_check) {
920
+ const result = await execa("pnpm", health_check.args, {
921
+ reject: false,
922
+ all: true,
923
+ stdin: "ignore",
924
+ env: health_check.env
925
+ });
926
+ return result.exitCode === 0 ? void 0 : result.all;
927
+ }
928
+ async function verification_red() {
929
+ return await red_output(STATIC_CHECK) ?? await red_output(UNIT_CHECK);
930
+ }
931
+ async function check(child) {
932
+ if (await verification_red() === void 0) return true;
933
+ const output = await verification_red();
934
+ if (output === void 0) return true;
935
+ if (!is_filed(await run_event_stream_emit.current_events())) await file_solo(child, output);
936
+ return false;
937
+ }
938
+ var run_merge_health = { TITLE, check };
939
+
940
+ // scripts/run/merge/run-merge-human-review.ts
941
+ async function retain(issue) {
942
+ const retained = await lane_state.record_change({
943
+ issue,
944
+ state: "human-review",
945
+ command: "run:merge"
946
+ });
947
+ if (retained.kind !== "written") return false;
948
+ await run_event_stream_emit.emit(
949
+ run_event_stream.EVENT_KIND.HUMAN_REVIEW,
950
+ `${issue_cite.plain_for("program", issue)} waiting for human review`
951
+ );
952
+ return true;
953
+ }
954
+ var run_merge_human_review = { retain };
955
+
956
+ // scripts/agent/usage-limit-reset.ts
957
+ var RESET_PATTERN = /resets (?<when>[^(]*)\((?<zone>[^)]*)\)/iu;
958
+ var TIME_PATTERN = /\b(?<hour>\d{1,2})(?::(?<minute>\d{2}))? ?(?<meridiem>am|pm)\b/iu;
959
+ var DATE_PATTERN = /\b(?<month>[a-z]+)\.? (?<day>\d{1,2})\b/iu;
960
+ var MONTH_PREFIX = 3;
961
+ var EPOCH_PATTERN = /\|(?<epoch>\d{10})\b/u;
962
+ var MONTHS = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
963
+ var MS_PER_SECOND = 1e3;
964
+ var MS_PER_MINUTE = 6e4;
965
+ var HALF_YEAR_MS = 157788e5;
966
+ var HOURS_PER_HALF_DAY = 12;
967
+ var PM = "pm";
968
+ var NOT_FOUND = -1;
969
+ function epoch_ms(text) {
970
+ const epoch = EPOCH_PATTERN.exec(text)?.groups?.["epoch"];
971
+ return epoch === void 0 ? void 0 : Number(epoch) * MS_PER_SECOND;
972
+ }
973
+ function dated2(groups) {
974
+ const month = MONTHS.indexOf(String(groups["month"]).slice(0, MONTH_PREFIX).toLowerCase());
975
+ return month === NOT_FOUND ? void 0 : { month, day: Number(groups["day"]) };
976
+ }
977
+ function date_of(when) {
978
+ const groups = DATE_PATTERN.exec(when)?.groups;
979
+ return groups === void 0 ? void 0 : dated2(groups);
980
+ }
981
+ function hour_of(time) {
982
+ const half = time["meridiem"]?.toLowerCase() === PM ? HOURS_PER_HALF_DAY : 0;
983
+ return Number(time["hour"]) % HOURS_PER_HALF_DAY + half;
984
+ }
985
+ function wall_of(when, zone) {
986
+ const time = TIME_PATTERN.exec(when)?.groups;
987
+ if (time === void 0) return void 0;
988
+ return { date: date_of(when), hour: hour_of(time), minute: Number(time["minute"] ?? 0), zone };
989
+ }
990
+ function zone_format(zone) {
991
+ return new Intl.DateTimeFormat("en-US", {
992
+ timeZone: zone,
993
+ hourCycle: "h23",
994
+ year: "numeric",
995
+ month: "numeric",
996
+ day: "numeric",
997
+ hour: "numeric",
998
+ minute: "numeric"
999
+ });
1000
+ }
1001
+ function zone_fields(at_ms, zone) {
1002
+ const parts = zone_format(zone).formatToParts(at_ms);
1003
+ const read = new Map(parts.map((part) => [part.type, Number(part.value)]));
1004
+ function field(type) {
1005
+ return read.get(type) ?? 0;
1006
+ }
1007
+ return {
1008
+ year: field("year"),
1009
+ month: field("month") - 1,
1010
+ day: field("day"),
1011
+ hour: field("hour"),
1012
+ minute: field("minute")
1013
+ };
1014
+ }
1015
+ function utc_of(fields) {
1016
+ return Date.UTC(fields.year, fields.month, fields.day, fields.hour, fields.minute);
1017
+ }
1018
+ function offset_ms(at_ms, zone) {
1019
+ return utc_of(zone_fields(at_ms, zone)) - (at_ms - at_ms % MS_PER_MINUTE);
1020
+ }
1021
+ function instant_of(fields, zone) {
1022
+ const guess = utc_of(fields);
1023
+ return guess - offset_ms(guess - offset_ms(guess, zone), zone);
1024
+ }
1025
+ function year_shift(at_ms, now_ms) {
1026
+ if (now_ms - at_ms > HALF_YEAR_MS) return 1;
1027
+ return at_ms - now_ms > HALF_YEAR_MS ? -1 : 0;
1028
+ }
1029
+ function dated_instant(fields, zone, now_ms) {
1030
+ const at_ms = instant_of(fields, zone);
1031
+ const shift = year_shift(at_ms, now_ms);
1032
+ return shift === 0 ? at_ms : instant_of({ ...fields, year: fields.year + shift }, zone);
1033
+ }
1034
+ function undated_instant(fields, zone, now_ms) {
1035
+ const at_ms = instant_of(fields, zone);
1036
+ return at_ms > now_ms ? at_ms : instant_of({ ...fields, day: fields.day + 1 }, zone);
1037
+ }
1038
+ function next_instant(wall, now_ms) {
1039
+ const today = zone_fields(now_ms, wall.zone);
1040
+ const fields = { ...today, ...wall.date, hour: wall.hour, minute: wall.minute };
1041
+ if (wall.date === void 0) return undated_instant(fields, wall.zone, now_ms);
1042
+ return dated_instant(fields, wall.zone, now_ms);
1043
+ }
1044
+ function wall_in(text) {
1045
+ const groups = RESET_PATTERN.exec(text)?.groups;
1046
+ if (groups === void 0) return void 0;
1047
+ return wall_of(String(groups["when"]), String(groups["zone"]).trim());
1048
+ }
1049
+ function known_instant(wall, now_ms) {
1050
+ try {
1051
+ return next_instant(wall, now_ms);
1052
+ } catch {
1053
+ return void 0;
1054
+ }
1055
+ }
1056
+ function clock_ms(text, now_ms) {
1057
+ const wall = wall_in(text);
1058
+ return wall === void 0 ? void 0 : known_instant(wall, now_ms);
1059
+ }
1060
+ function reset_ms(text, now_ms) {
1061
+ return epoch_ms(text) ?? clock_ms(text, now_ms);
1062
+ }
1063
+ var usage_limit_reset = { reset_ms };
1064
+
1065
+ // scripts/agent/api-usage-limit.ts
1066
+ var LIMIT_PATTERN = /hit your (?:\w+ )?limit|usage limit reached/u;
1067
+ var RECHECK_MS2 = 18e5;
1068
+ function limit_reason(record) {
1069
+ if (record === void 0 || !record.is_error || record.reason === void 0) return void 0;
1070
+ return LIMIT_PATTERN.test(record.reason.toLowerCase()) ? record.reason : void 0;
1071
+ }
1072
+ function is_usage_limit(record) {
1073
+ return limit_reason(record) !== void 0;
1074
+ }
1075
+ function or_recheck(reset_ms3, now_ms) {
1076
+ return reset_ms3 === void 0 || reset_ms3 <= now_ms ? now_ms + RECHECK_MS2 : reset_ms3;
1077
+ }
1078
+ function resume_ms(record, now_ms, stopped_ms = now_ms) {
1079
+ const reason = limit_reason(record);
1080
+ if (reason === void 0) return void 0;
1081
+ return or_recheck(usage_limit_reset.reset_ms(reason, stopped_ms), now_ms);
1082
+ }
1083
+ function transcript_resume_ms(log, now_ms, stopped_ms = now_ms) {
1084
+ if (log === void 0 || !agent_exit_record.ends_on_exit_record(log)) return void 0;
1085
+ return resume_ms(agent_exit_record.read_exit_record(log), now_ms, stopped_ms);
1086
+ }
1087
+ var api_usage_limit = { RECHECK_MS: RECHECK_MS2, is_usage_limit, resume_ms, transcript_resume_ms };
1088
+
1089
+ // scripts/run/merge/run-merge-ship.ts
1090
+ var ENDED_RESULTS = /* @__PURE__ */ new Set(["failed", "abnormal"]);
1091
+ function since_ship_launch(events, child) {
1092
+ const attempt = run_event_scope.since_own_launch(events, child);
1093
+ const own = attempt.filter((event) => run_event_scope.issue_named(event) === child);
1094
+ const launched_at = own.findLastIndex(
1095
+ (event) => event.kind === run_event_stream.EVENT_KIND.SHIP_LAUNCH
1096
+ );
1097
+ return launched_at === -1 ? void 0 : own.slice(launched_at + 1);
1098
+ }
1099
+ function stop_cause(stop2) {
1100
+ const stage = run_ship_stop_text.reason_of(stop2.text);
1101
+ return {
1102
+ short: stage === void 0 ? "ship stopped" : `${stage} failed`,
1103
+ why: `its detached ship stopped and was not fixed: ${stop2.text}.`
1104
+ };
1105
+ }
1106
+ function cause_of(ending, events, child) {
1107
+ if (ending === void 0 || !ENDED_RESULTS.has(ending.result)) return void 0;
1108
+ const attempt = since_ship_launch(events, child);
1109
+ if (attempt === void 0) return void 0;
1110
+ const stop2 = attempt.findLast((event) => event.kind === run_event_stream.EVENT_KIND.SHIP_STOP);
1111
+ if (stop2 !== void 0) return stop_cause(stop2);
1112
+ return {
1113
+ short: `ship ${ending.result}`,
1114
+ why: `its detached ship ended ${ending.result} before recording a stopped stage \u2014 pnpm josh ship --log ${child}.`
1115
+ };
1116
+ }
1117
+ function cause2(child, directory = process.cwd()) {
1118
+ const repository = git_common_directory.repository(directory);
1119
+ if (repository === void 0) return void 0;
1120
+ const events = run_event_stream.read_events(run_event_stream.target_of(repository));
1121
+ return cause_of(run_ship_detach.read_result(repository, child), events, child);
1122
+ }
1123
+ function is_relaunch_failed(event) {
1124
+ return event.kind === run_event_stream.EVENT_KIND.RELAUNCH_FAILED;
1125
+ }
1126
+ function is_stop_unanswered(ending, attempt, written_at) {
1127
+ const index = attempt.findLastIndex(
1128
+ (event) => event.kind === run_event_stream.EVENT_KIND.SHIP_STOP
1129
+ );
1130
+ const stop2 = attempt[index];
1131
+ if (stop2 === void 0) return ending?.result === "abnormal";
1132
+ if (attempt.slice(index + 1).some((event) => is_relaunch_failed(event))) return true;
1133
+ return written_at !== void 0 && written_at < Date.parse(stop2.at);
1134
+ }
1135
+ function interrupted_of(ending, events, child, written_at) {
1136
+ if (ending === void 0 || !ENDED_RESULTS.has(ending.result)) return false;
1137
+ const attempt = since_ship_launch(events, child);
1138
+ return attempt !== void 0 && is_stop_unanswered(ending, attempt, written_at);
1139
+ }
1140
+ function is_interrupted(child, written_at, directory = process.cwd()) {
1141
+ const repository = git_common_directory.repository(directory);
1142
+ if (repository === void 0) return false;
1143
+ const events = run_event_stream.read_events(run_event_stream.target_of(repository));
1144
+ return interrupted_of(run_ship_detach.read_result(repository, child), events, child, written_at);
1145
+ }
1146
+ async function is_unanswered(child, output) {
1147
+ if (output === void 0 || !is_interrupted(child, run_ending.written_at(output))) return false;
1148
+ const lane = await lane_registry.find_open_lane(child);
1149
+ return lane !== void 0 && !lane_relaunch.is_openai_lane(lane);
1150
+ }
1151
+ var run_merge_ship = { cause: cause2, cause_of, interrupted_of, is_unanswered };
1152
+
1153
+ // scripts/run/merge/run-merge-cap.ts
1154
+ var NO_RELAUNCH_FAILURE = "none was recorded";
1155
+ function is_own2(event, kind, child) {
1156
+ return event.kind === kind && run_event_scope.issue_named(event) === child;
1157
+ }
1158
+ function outages(events, child) {
1159
+ return events.filter((event) => is_own2(event, run_event_stream.EVENT_KIND.OUTAGE, child)).length;
1160
+ }
1161
+ function last_relaunch_failure(events, child) {
1162
+ const kind = run_event_stream.EVENT_KIND.RELAUNCH_FAILED;
1163
+ const failed = events.findLast((event) => is_own2(event, kind, child));
1164
+ return failed === void 0 ? NO_RELAUNCH_FAILURE : failed.text;
1165
+ }
1166
+ function note_of(events, child, limit) {
1167
+ const count = outages(events, child);
1168
+ const failure = last_relaunch_failure(events, child);
1169
+ return `it reached the re-dispatch cap (${String(limit)}) after ${String(count)} re-dispatches; the last failed relaunch: ${failure}.`;
1170
+ }
1171
+ function park_cause(child, cause3, note, output) {
1172
+ if (cause3 !== void 0) return cause3;
1173
+ const judged2 = run_merge_decision.cause(output);
1174
+ const stopped = run_merge_decision.is_decision(judged2.short) ? judged2 : run_merge_ship.cause(child) ?? judged2;
1175
+ if (note === void 0) return stopped;
1176
+ return { short: stopped.short, why: `${note} ${stopped.why}` };
1177
+ }
1178
+ var run_merge_cap = { note_of, outages, park_cause };
1179
+
1180
+ // scripts/run/merge/run-merge-github-limit.ts
1181
+ var RATE_LIMIT = "rate-limit";
1182
+ var TAIL_LINES = 20;
1183
+ var RATE_LIMIT_PATTERN = /^(?:gh|graphql|http 403|http 429): .*(?:api rate limit (?:already )?exceeded|secondary rate limit)/mu;
1184
+ var AUTH_PATTERN = /^http 401: |^(?:try authenticating with|to get started with github cli, please run): +gh auth login/mu;
1185
+ function error_texts(line) {
1186
+ const record = transcript_record.parse(line);
1187
+ if (record?.type !== "user") return [];
1188
+ return transcript_record.blocks_of(record).filter((block) => block.type === transcript_record.TOOL_RESULT_TYPE && block.is_error === true).map((block) => time_reported_failure.result_text(block.content));
1189
+ }
1190
+ function tail_errors(log) {
1191
+ const lines = log.trimEnd().split("\n").slice(-TAIL_LINES);
1192
+ return lines.flatMap((line) => error_texts(line)).join("\n").toLowerCase();
1193
+ }
1194
+ function stop_of(log) {
1195
+ if (log === void 0 || !agent_exit_record.ends_on_exit_record(log)) return void 0;
1196
+ const tail = tail_errors(log);
1197
+ if (RATE_LIMIT_PATTERN.test(tail)) return RATE_LIMIT;
1198
+ return AUTH_PATTERN.test(tail) ? "auth" : void 0;
1199
+ }
1200
+ function read_stop(output) {
1201
+ if (output === void 0) return void 0;
1202
+ return stop_of(run_ending.read_transcript(output));
1203
+ }
1204
+ function is_exhausted(limit, now_ms) {
1205
+ return limit?.remaining === 0 && limit.reset_ms > now_ms;
1206
+ }
1207
+ async function reset_ms2(now_ms) {
1208
+ const resources = await gh_core_rate_limit.read_resources();
1209
+ const limits = [resources?.core, resources?.graphql];
1210
+ const exhausted = limits.find((limit) => is_exhausted(limit, now_ms));
1211
+ return exhausted?.reset_ms ?? now_ms + api_usage_limit.RECHECK_MS;
1212
+ }
1213
+ async function hold2(child, output) {
1214
+ if (read_stop(output) !== RATE_LIMIT) return;
1215
+ await run_merge_usage_limit.record(child, await reset_ms2(Date.now()), "GitHub rate limit");
1216
+ }
1217
+ var run_merge_github_limit = { hold: hold2, read_stop, reset_ms: reset_ms2, stop_of };
1218
+
1219
+ // scripts/run/merge/run-merge-restart.ts
1220
+ import { uptime } from "node:os";
1221
+ var MS_PER_SECOND2 = 1e3;
1222
+ function booted_ms() {
1223
+ try {
1224
+ return Date.now() - uptime() * MS_PER_SECOND2;
1225
+ } catch {
1226
+ return void 0;
1227
+ }
1228
+ }
1229
+ function has_exit_record(output) {
1230
+ const transcript = output === void 0 ? void 0 : run_ending.read_transcript(output);
1231
+ return transcript !== void 0 && agent_exit_record.ends_on_exit_record(transcript);
1232
+ }
1233
+ async function is_host_restart(child, output) {
1234
+ if (has_exit_record(output)) return false;
1235
+ const lane = await lane_registry.find_open_lane(child);
1236
+ const dispatched_ms = lane?.dispatched_ms;
1237
+ if (dispatched_ms === void 0) return false;
1238
+ const boot_ms = booted_ms();
1239
+ return boot_ms !== void 0 && dispatched_ms < boot_ms;
1240
+ }
1241
+ var run_merge_restart = { is_host_restart };
1242
+
1243
+ // scripts/lane/lane-seat-stop.ts
1244
+ async function stop(issue) {
1245
+ const lane = await lane_registry.lane_location(issue);
1246
+ const reaped = lane_reap.reap_child(lane);
1247
+ lane_residents.end_residents(lane, reaped);
1248
+ const survivors = await lane_reap_settle.settle(lane);
1249
+ if (survivors?.length === 0) return;
1250
+ const details = lane_reap_settle.survivor_texts(survivors).join(", ");
1251
+ throw new Error(`Lane ${issue} port ownership has not settled: ${details}`);
1252
+ }
1253
+ var lane_seat_stop = { stop };
1254
+
1255
+ // scripts/run/merge/run-merge-close.ts
1256
+ var MERGE_CLOSER = "pnpm josh run:merge";
1257
+ var SINGLE_READ = { attempts: 1, interval_ms: 0 };
1258
+ async function close_merged_open(merged) {
1259
+ if (merged.merged_pr === void 0) return true;
1260
+ try {
1261
+ await git_followup_issue_close.ensure_issue_closed(
1262
+ { issue_number: merged.child, pr_url: merged.merged_pr, closer: MERGE_CLOSER },
1263
+ SINGLE_READ
1264
+ );
1265
+ return true;
1266
+ } catch {
1267
+ console.error(
1268
+ `${session_cite.issue(merged.child)}: could not be closed \u2014 ${git_followup_issue_close.CLOSE_RECOVERY}`
1269
+ );
1270
+ return false;
1271
+ }
1272
+ }
1273
+ function divert_info_to_stderr() {
1274
+ const { info } = console;
1275
+ console.info = console.error;
1276
+ return function restore() {
1277
+ console.info = info;
1278
+ };
1279
+ }
1280
+ async function with_notes_on_stderr(step) {
1281
+ const restore = divert_info_to_stderr();
1282
+ try {
1283
+ await step();
1284
+ } finally {
1285
+ restore();
1286
+ }
1287
+ }
1288
+ async function close_merged(merged) {
1289
+ if (!await close_merged_open(merged)) return;
1290
+ await with_notes_on_stderr(async () => {
1291
+ await epic_close.close_completed_epics({ issue_number: merged.child, is_merged: true });
1292
+ });
1293
+ }
1294
+ var run_merge_close = { close_merged };
1295
+
1296
+ // scripts/run/merge/run-merge-steps.ts
1297
+ var OVER = "over";
1298
+ var LANES = "--lanes";
1299
+ var REPO_FLAG = "--repo";
1300
+ var CLOSE_CAUSE = "`run:merge` closed it";
1301
+ var STOPPED_CAUSE = "the unit stopped and `run:merge --stash` classified it";
1302
+ var OPEN_STATE = "OPEN";
1303
+ var SYNC_RETRY = { attempts: 3, interval_ms: 5e3 };
1304
+ var NO_WAITS = [];
1305
+ var NOT_BEFORE_WAIT = "a start date still ahead (`not-before`)";
1306
+ async function josh(args) {
1307
+ return await josh_command.josh_run(args);
1308
+ }
1309
+ async function read_record() {
1310
+ const directory = await run_carry.repository_directory();
1311
+ if (directory === void 0) return void 0;
1312
+ const target = run_carry.carry_path(directory);
1313
+ const read = run_carry.read_carry(target);
1314
+ if (read.kind !== "carried") return void 0;
1315
+ return { target, carry: read.carry };
1316
+ }
1317
+ async function apply_carry(ctx, change) {
1318
+ const record = await read_record();
1319
+ if (record === void 0) return { kind: "none" };
1320
+ if (run_carry.is_count_refused(record.carry, ctx.owner)) {
1321
+ return { kind: "refused", carry: record.carry };
1322
+ }
1323
+ if (change === void 0) return { kind: "applied", carry: record.carry };
1324
+ const owned = run_carry_conversation.reclaim_owner(record.carry, ctx.owner);
1325
+ return { kind: "applied", carry: run_carry.apply_change(record.target, owned, change) };
1326
+ }
1327
+ async function refused_carry(ctx) {
1328
+ const record = await read_record();
1329
+ if (record === void 0 || !run_carry.is_count_refused(record.carry, ctx.owner)) return void 0;
1330
+ return record.carry;
1331
+ }
1332
+ async function sync_main() {
1333
+ let error_output = "";
1334
+ const is_synced = await poll.poll_until(
1335
+ async () => {
1336
+ const result = await josh(["main:sync"]);
1337
+ error_output = result.err ?? "";
1338
+ return result.code === 0;
1339
+ },
1340
+ { ...SYNC_RETRY, sleeper: poll.sleep }
1341
+ );
1342
+ if (!is_synced) throw new Error(`main:sync failed: ${error_output}`);
1343
+ }
1344
+ async function close_lane(child) {
1345
+ const result = await josh(["lane:close", child]);
1346
+ const said = result.err?.trimEnd() ?? "";
1347
+ if (said !== "") console.error(said);
1348
+ if (result.code !== 0) console.error(`${session_cite.issue(child)}: lane:close is incomplete`);
1349
+ }
1350
+ async function close_preserved_lane(child) {
1351
+ if (await lane_preserve.preserve_lane(child, "lane close", CLOSE_CAUSE)) await close_lane(child);
1352
+ }
1353
+ function kept_lane_comment(directory) {
1354
+ return `The split left this issue's lane open: it still holds a commit, an uncommitted change or a live process \u2014 ${directory}`;
1355
+ }
1356
+ async function close_vacant_lane(child) {
1357
+ const lane = await lane_registry.find_open_lane(child);
1358
+ if (lane === void 0) return void 0;
1359
+ if (!await lane_vacant.is_vacant(lane)) return lane;
1360
+ await close_lane(child);
1361
+ return void 0;
1362
+ }
1363
+ async function close_split_lane(child) {
1364
+ const kept = await close_vacant_lane(child);
1365
+ if (kept !== void 0) {
1366
+ await git_gh_issue_write.issue_try_comment(child, kept_lane_comment(kept.directory));
1367
+ }
1368
+ }
1369
+ async function post_counters(ctx, carry) {
1370
+ if (carry === void 0 || ctx.epic === void 0) return;
1371
+ await git_gh_issue_write.issue_try_comment(ctx.epic, run_merge.counters_comment(carry));
1372
+ }
1373
+ async function count_merged(ctx) {
1374
+ return await apply_carry(ctx, {
1375
+ ...run_merge.change_of("merged"),
1376
+ merged_issue: Number(ctx.child)
1377
+ });
1378
+ }
1379
+ async function do_merged(ctx, record) {
1380
+ const refused = await refused_carry(ctx);
1381
+ if (refused !== void 0) return refused;
1382
+ const confirmed_at = /* @__PURE__ */ new Date();
1383
+ await settled_together(run_merge_close.close_merged(ctx), sync_main());
1384
+ const result = await count_merged(ctx);
1385
+ if (result.kind === "refused") return result.carry;
1386
+ await record(ctx.child, confirmed_at);
1387
+ const carry = result.kind === "applied" ? result.carry : void 0;
1388
+ await Promise.all([close_preserved_lane(ctx.child), post_counters(ctx, carry)]);
1389
+ return void 0;
1390
+ }
1391
+ async function release_cut(child) {
1392
+ const lane = await lane_registry.find_open_lane(child);
1393
+ if (lane === void 0) return;
1394
+ const carried = run_cut.lane_cut_sync(lane.directory);
1395
+ if (carried === void 0) return;
1396
+ run_cut_adoption.release(carried.target, carried.cut, child);
1397
+ }
1398
+ async function release_child(child) {
1399
+ await lane_seat_stop.stop(child);
1400
+ await release_cut(child);
1401
+ await run_label.unmark(child);
1402
+ await close_vacant_lane(child);
1403
+ }
1404
+ function refused_result(carry) {
1405
+ return { carry, is_parked: false, is_refused: true, waits: NO_WAITS };
1406
+ }
1407
+ async function open_blockers(child) {
1408
+ try {
1409
+ const references = await git_gh_command.issue_blocked_by_references(child, "");
1410
+ return references.filter((blocker) => blocker.state === OPEN_STATE).map((blocker) => issue_cite.plain_for("github", blocker.number, blocker.repo));
1411
+ } catch {
1412
+ return NO_WAITS;
1413
+ }
1414
+ }
1415
+ async function has_not_before_label(ctx) {
1416
+ const read = await issue_state_cli.read_issue(ctx.child, ctx.repo);
1417
+ return read.kind === "state" && has_label_name(read.state.labels, NOT_BEFORE_LABEL);
1418
+ }
1419
+ async function start_date_wait(ctx) {
1420
+ const body = await git_gh_command.issue_get_body(ctx.child, ctx.repo);
1421
+ if (body === void 0) return await has_not_before_label(ctx) ? [NOT_BEFORE_WAIT] : NO_WAITS;
1422
+ await issue_sample_prime.prime([body]);
1423
+ const reason = issue_not_before.waiting_reason(body);
1424
+ return reason === void 0 ? NO_WAITS : [reason];
1425
+ }
1426
+ async function do_waiting(ctx, waits) {
1427
+ const refused = await refused_carry(ctx);
1428
+ if (refused !== void 0) return refused_result(refused);
1429
+ await release_child(ctx.child);
1430
+ await git_gh_issue_write.issue_try_comment(ctx.child, run_merge.waiting_comment(waits));
1431
+ return { carry: void 0, is_parked: false, is_refused: false, waits };
1432
+ }
1433
+ async function park_failed(ctx, cause3) {
1434
+ const is_decision2 = run_merge_decision.is_decision(cause3.short);
1435
+ const result = await apply_carry(ctx, run_merge.change_of(is_decision2 ? "parked" : "failed"));
1436
+ if (result.kind === "refused") return refused_result(result.carry);
1437
+ const carry = result.kind === "applied" ? result.carry : void 0;
1438
+ await release_child(ctx.child);
1439
+ const reason = { child: ctx.child, cause: cause3.why, carry, output: ctx.output };
1440
+ const { label, comment } = run_merge_decision.park_options(cause3, reason);
1441
+ const park = await issue_park.apply(ctx.child, label, comment);
1442
+ return {
1443
+ carry,
1444
+ is_parked: park.is_labelled,
1445
+ is_refused: false,
1446
+ waits: NO_WAITS,
1447
+ cause: cause3.short
1448
+ };
1449
+ }
1450
+ async function do_failed(ctx, cause3) {
1451
+ const waits = [...await open_blockers(ctx.child), ...await start_date_wait(ctx)];
1452
+ if (waits.length > 0) return await do_waiting(ctx, waits);
1453
+ return await park_failed(
1454
+ ctx,
1455
+ run_merge_cap.park_cause(ctx.child, cause3, ctx.capped_note, ctx.output)
1456
+ );
1457
+ }
1458
+ async function count_outage(ctx) {
1459
+ if (ctx.is_streak_exempt !== true) return await apply_carry(ctx, run_merge.change_of("outage"));
1460
+ const refused = await refused_carry(ctx);
1461
+ return refused === void 0 ? { kind: "none" } : { kind: "refused", carry: refused };
1462
+ }
1463
+ async function do_outage(ctx) {
1464
+ const result = await count_outage(ctx);
1465
+ if (result.kind === "refused") return { carry: result.carry, is_refused: true };
1466
+ await release_child(ctx.child);
1467
+ await run_merge_github_limit.hold(ctx.child, ctx.output);
1468
+ return { carry: result.kind === "applied" ? result.carry : void 0, is_refused: false };
1469
+ }
1470
+ async function relaunchable_lane(child) {
1471
+ const lane = await lane_registry.find_open_lane(child);
1472
+ return lane === void 0 || lane_relaunch.is_openai_lane(lane) ? void 0 : lane;
1473
+ }
1474
+ async function relaunchable_cut(child) {
1475
+ const lane = await relaunchable_lane(child);
1476
+ if (lane === void 0) return void 0;
1477
+ const carried = run_cut.lane_cut_sync(lane.directory);
1478
+ if (carried === void 0 || !run_cut.is_relaunchable(carried.cut, child)) return void 0;
1479
+ return { lane, ...carried };
1480
+ }
1481
+ async function has_resumable_cut(child) {
1482
+ return await relaunchable_cut(child) !== void 0;
1483
+ }
1484
+ async function stash_stopped(child) {
1485
+ if (await has_resumable_cut(child)) return;
1486
+ await lane_preserve.preserve_lane(child, "stopped unit", STOPPED_CAUSE);
1487
+ }
1488
+ async function resume_cut(child) {
1489
+ const found = await relaunchable_cut(child);
1490
+ if (found === void 0 || !run_cut.mark_merge_relaunched(found.target, found.cut)) return false;
1491
+ const result = await lane_relaunch.resume(found.lane, found.cut.phase, (note) => {
1492
+ console.error(note);
1493
+ });
1494
+ return result.kind === "launched";
1495
+ }
1496
+ async function is_over_budget(over) {
1497
+ if (over === void 0) return false;
1498
+ const result = await josh(["cost", "--cut"]);
1499
+ return result.code !== 0 || result.out === OVER;
1500
+ }
1501
+ async function ask_next(ctx) {
1502
+ if (ctx.epic === void 0 || ctx.repo === void 0) {
1503
+ const backlog = await josh(["backlog:next"]);
1504
+ return backlog.out;
1505
+ }
1506
+ const offer = await josh(["epic:next", ctx.epic, REPO_FLAG, ctx.repo, LANES]);
1507
+ return offer.out;
1508
+ }
1509
+ var run_merge_steps = {
1510
+ ask_next,
1511
+ close_split_lane,
1512
+ release_child,
1513
+ do_failed,
1514
+ do_merged,
1515
+ do_outage,
1516
+ has_resumable_cut,
1517
+ is_over_budget,
1518
+ read_record,
1519
+ refused_carry,
1520
+ resume_cut,
1521
+ stash_stopped
1522
+ };
1523
+
1524
+ // scripts/run/merge/run-merge-signals.ts
1525
+ function read_is_outage(output) {
1526
+ if (output === void 0) return false;
1527
+ if (api_outage.is_outage(run_ending.read_exit(output))) return true;
1528
+ return run_ending.ended_mid_turn(output) || run_merge_github_limit.read_stop(output) === "auth";
1529
+ }
1530
+ async function is_exempt_stop(child, output) {
1531
+ if (await run_merge_restart.is_host_restart(child, output)) return true;
1532
+ return run_merge_github_limit.read_stop(output) === "rate-limit";
1533
+ }
1534
+ function read_is_auth_failure(output) {
1535
+ if (output === void 0) return false;
1536
+ return api_auth.is_auth_failed_transcript(run_ending.read_transcript(output));
1537
+ }
1538
+ async function retry_cause(child, output) {
1539
+ if (await is_exempt_stop(child, output)) return "exempt";
1540
+ if (read_is_outage(output)) return "api";
1541
+ return await run_merge_ship.is_unanswered(child, output) ? "exempt" : void 0;
1542
+ }
1543
+ async function is_capped(child, cause3) {
1544
+ const events = await run_event_stream_emit.current_events();
1545
+ if (run_merge_cap.outages(events, child) < run_merge.CONSECUTIVE_OUTAGE_LIMIT) return false;
1546
+ if (cause3 !== "api") return true;
1547
+ const record = await run_merge_steps.read_record();
1548
+ return !run_merge.is_outage_guard_tripped(record?.carry.outages ?? 0);
1549
+ }
1550
+ async function read_retryable(child, output) {
1551
+ const cause3 = await retry_cause(child, output);
1552
+ if (cause3 === void 0) return { is_outage: false, is_streak_exempt: false };
1553
+ if (await is_capped(child, cause3)) {
1554
+ const events = await run_event_stream_emit.current_events();
1555
+ const limit = run_merge.CONSECUTIVE_OUTAGE_LIMIT;
1556
+ return { is_outage: false, capped_note: run_merge_cap.note_of(events, child, limit) };
1557
+ }
1558
+ return { is_outage: true, is_streak_exempt: cause3 === "exempt" };
1559
+ }
1560
+ async function read_merged_pr(child, read) {
1561
+ if (read.kind !== "state" || run_merge.classify_child(read.state) !== "failed") return void 0;
1562
+ return await issue_closing_pr.read_closing_pr(child);
1563
+ }
1564
+ async function read_is_withdrawn(child, read) {
1565
+ if (read.kind !== "state" || run_merge.classify_child(read.state) !== "merged") {
1566
+ return run_event_scope.is_withdrawn(await run_event_stream_emit.current_events(), child);
1567
+ }
1568
+ const is_merged = await issue_merged.read_merge_state(child);
1569
+ return is_merged === void 0 ? void 0 : !is_merged;
1570
+ }
1571
+ async function read_is_yielded(child) {
1572
+ return lane_yield.is_yielded(await run_event_stream_emit.current_events(), child);
1573
+ }
1574
+ function read_resume_ms(output) {
1575
+ if (output === void 0) return void 0;
1576
+ const transcript = run_ending.read_transcript(output);
1577
+ return api_usage_limit.transcript_resume_ms(transcript, Date.now(), run_ending.written_at(output));
1578
+ }
1579
+ async function read_signals(ctx, read) {
1580
+ const [is_cut, merged_pr, retryable, is_withdrawn, is_yielded] = await Promise.all([
1581
+ run_merge_steps.has_resumable_cut(ctx.child),
1582
+ read_merged_pr(ctx.child, read),
1583
+ read_retryable(ctx.child, ctx.output),
1584
+ read_is_withdrawn(ctx.child, read),
1585
+ read_is_yielded(ctx.child)
1586
+ ]);
1587
+ const is_auth_failure = read_is_auth_failure(ctx.output);
1588
+ const resume_ms2 = read_resume_ms(ctx.output);
1589
+ return { ...retryable, is_cut, merged_pr, is_withdrawn, is_yielded, is_auth_failure, resume_ms: resume_ms2 };
1590
+ }
1591
+ function outcome_of(read, signals) {
1592
+ if (signals.is_withdrawn === void 0) return "unresolved";
1593
+ return run_merge.classify_child(read.kind === "state" ? read.state : void 0, signals);
1594
+ }
1595
+ var run_merge_signals = { outcome_of, read_merged_pr, read_signals };
1596
+
1597
+ // scripts/run/merge/run-merge-withdrawn.ts
1598
+ var UNMERGED_REASON = "its issue was closed without a merged pull request";
1599
+ var NOTHING_LEFT = { note: void 0, is_retry: false };
1600
+ async function collect(child) {
1601
+ const events = await run_event_stream_emit.current_events();
1602
+ if (run_event_scope.is_withdrawn(events, child)) return NOTHING_LEFT;
1603
+ const lane = await lane_registry.find_open_lane(child);
1604
+ return lane === void 0 ? NOTHING_LEFT : await lane_withdraw_closed.withdraw_lane(lane, UNMERGED_REASON, "merge");
1605
+ }
1606
+ async function collect_yield(child) {
1607
+ const lane = await lane_registry.find_open_lane(child);
1608
+ if (lane === void 0) return NOTHING_LEFT;
1609
+ const reason = lane_yield.withdraw_reason(await run_event_stream_emit.current_events(), child);
1610
+ return await lane_withdraw_closed.withdraw_lane(lane, reason, "yield");
1611
+ }
1612
+ var run_merge_withdrawn = { UNMERGED_REASON, collect, collect_yield };
1613
+
1614
+ // scripts/run/merge/run-merge-cli.ts
1615
+ var SUCCESS_EXIT_CODE = 0;
1616
+ var FAILURE_EXIT_CODE = 1;
1617
+ var FIRST = 0;
1618
+ var MIN_PID = 1;
1619
+ var { MERGE_TOKEN } = run_merge_token;
1620
+ var PARK_FAILURE_NOTE = `The failed child could not be parked with ${RUN_STALLED_LABEL}; stopping.`;
1621
+ var REPO_PATTERN = /^[A-Za-z0-9][\w.-]*\/[A-Za-z0-9][\w.-]*$/u;
1622
+ var USAGE = "Usage: josh run:merge <issue> [--over <deprecated>] [--epic <E> --repo <owner/repo>] [--owner <pid>] [--output <path>] [--driver] [--stash]";
1623
+ var OPTIONS = {
1624
+ driver: { type: "boolean" },
1625
+ stash: { type: "boolean" },
1626
+ epic: { type: "string" },
1627
+ output: { type: "string" },
1628
+ over: { type: "string" },
1629
+ owner: { type: "string" },
1630
+ repo: { type: "string" }
1631
+ };
1632
+ function to_owner(raw) {
1633
+ if (raw === void 0) return run_carry.session_owner();
1634
+ const pid = cli_flags.to_count(raw);
1635
+ return pid === void 0 || pid < MIN_PID ? void 0 : run_carry.owner_of(pid);
1636
+ }
1637
+ function is_epic_without_repo(values) {
1638
+ return values.epic !== void 0 && values.repo === void 0;
1639
+ }
1640
+ function valid_epic(raw) {
1641
+ if (raw === void 0) return void 0;
1642
+ return issue_number_shape.ISSUE_NUMBER_PATTERN.test(raw) ? raw : void 0;
1643
+ }
1644
+ function valid_repo(raw) {
1645
+ if (raw === void 0) return void 0;
1646
+ return REPO_PATTERN.test(raw) ? raw : void 0;
1647
+ }
1648
+ function is_rejected(raw, valid) {
1649
+ return raw !== void 0 && valid === void 0;
1650
+ }
1651
+ function has_invalid_offer(values) {
1652
+ return is_epic_without_repo(values) || is_rejected(values.epic, valid_epic(values.epic)) || is_rejected(values.repo, valid_repo(values.repo));
1653
+ }
1654
+ function has_invalid_legacy_over(raw) {
1655
+ if (raw === void 0) return false;
1656
+ return cli_flags.to_count(raw) === void 0;
1657
+ }
1658
+ function valid_child(parsed) {
1659
+ const child = parsed.positionals[FIRST];
1660
+ if (child === void 0) return void 0;
1661
+ return issue_number_shape.ISSUE_NUMBER_PATTERN.test(child) ? child : void 0;
1662
+ }
1663
+ function cut_check_of(values) {
1664
+ return values.driver === true ? void 0 : true;
1665
+ }
1666
+ function to_context(parsed) {
1667
+ if (has_invalid_offer(parsed.values) || has_invalid_legacy_over(parsed.values.over)) {
1668
+ return void 0;
1669
+ }
1670
+ const child = valid_child(parsed);
1671
+ if (child === void 0) return void 0;
1672
+ const owner = to_owner(parsed.values.owner);
1673
+ if (owner === void 0) return void 0;
1674
+ return {
1675
+ child,
1676
+ epic: valid_epic(parsed.values.epic),
1677
+ repo: valid_repo(parsed.values.repo),
1678
+ over: cut_check_of(parsed.values),
1679
+ owner,
1680
+ output: parsed.values.output,
1681
+ stash: parsed.values.stash
1682
+ };
1683
+ }
1684
+ function parse2(argv) {
1685
+ const parsed = cli_flags.arguments_of(argv, OPTIONS);
1686
+ return parsed === void 0 ? void 0 : to_context(parsed);
1687
+ }
1688
+ function emit(token, code) {
1689
+ return { token, code, is_offer: false };
1690
+ }
1691
+ async function offered(ctx) {
1692
+ const token = ctx.over === void 0 ? run_merge_driver.DEFERRED_OFFER : await run_merge_steps.ask_next(ctx);
1693
+ return { token, code: SUCCESS_EXIT_CODE, is_offer: true };
1694
+ }
1695
+ function report_count_refused(carry) {
1696
+ if (carry !== void 0) console.error(run_carry.count_refused_message(carry));
1697
+ return emit(MERGE_TOKEN.BUSY, FAILURE_EXIT_CODE);
1698
+ }
1699
+ async function record_merged(ctx) {
1700
+ return await run_merge_steps.do_merged(ctx, run_merge_dated.put_on_record);
1701
+ }
1702
+ async function on_merged(ctx) {
1703
+ const refused = await record_merged(ctx);
1704
+ if (refused !== void 0) return report_count_refused(refused);
1705
+ await lane_overrun.investigate(Number(ctx.child));
1706
+ await lane_baseline.investigate(Number(ctx.child));
1707
+ if (await run_merge_steps.is_over_budget(ctx.over)) {
1708
+ return emit(MERGE_TOKEN.OVER, SUCCESS_EXIT_CODE);
1709
+ }
1710
+ return await offered(ctx);
1711
+ }
1712
+ async function on_waiting(ctx, waits) {
1713
+ await run_event_stream_emit.emit(
1714
+ run_event_stream.EVENT_KIND.PARK,
1715
+ `${issue_cite.plain_for("program", ctx.child)} waiting on ${waits.join(", ")}`
1716
+ );
1717
+ return await offered(ctx);
1718
+ }
1719
+ async function on_parked_failure(ctx, result) {
1720
+ if (!result.is_parked) {
1721
+ console.error(PARK_FAILURE_NOTE);
1722
+ return emit(MERGE_TOKEN.STOP, FAILURE_EXIT_CODE);
1723
+ }
1724
+ const cause3 = result.cause ?? run_merge_decision.cause(ctx.output).short;
1725
+ const park = run_merge_decision.park_event(ctx.child, cause3);
1726
+ await run_event_stream_emit.emit(run_event_stream.EVENT_KIND.PARK, park);
1727
+ if (run_merge_decision.is_guard_tripped(cause3, result.carry)) {
1728
+ await run_merge_health.check(ctx.child);
1729
+ }
1730
+ return { ...await offered(ctx), is_parked: true };
1731
+ }
1732
+ async function on_failed(ctx, cause3) {
1733
+ const result = await run_merge_steps.do_failed(ctx, cause3);
1734
+ if (result.is_refused) return report_count_refused(result.carry);
1735
+ if (result.waits.length > 0) return await on_waiting(ctx, result.waits);
1736
+ return await on_parked_failure(ctx, result);
1737
+ }
1738
+ async function on_outage(ctx) {
1739
+ const result = await run_merge_steps.do_outage(ctx);
1740
+ if (result.is_refused) return report_count_refused(result.carry);
1741
+ await run_event_stream_emit.emit(
1742
+ run_event_stream.EVENT_KIND.OUTAGE,
1743
+ `${issue_cite.plain_for("program", ctx.child)} outage (re-dispatchable)`
1744
+ );
1745
+ const outages2 = result.carry?.outages ?? 0;
1746
+ if (run_merge.is_outage_guard_tripped(outages2)) {
1747
+ await run_merge_usage_limit.record(
1748
+ ctx.child,
1749
+ Date.now() + run_merge.outage_wait_ms(outages2),
1750
+ "api outage"
1751
+ );
1752
+ }
1753
+ return await offered(ctx);
1754
+ }
1755
+ async function on_unauthenticated(ctx) {
1756
+ await run_merge_steps.release_child(ctx.child);
1757
+ await run_merge_auth.hold(ctx.child, Date.now());
1758
+ return await offered(ctx);
1759
+ }
1760
+ async function on_usage_limit(ctx) {
1761
+ await run_merge_steps.release_child(ctx.child);
1762
+ await run_merge_usage_limit.record(ctx.child, ctx.resume_ms ?? Date.now());
1763
+ return await offered(ctx);
1764
+ }
1765
+ async function on_cut(ctx) {
1766
+ const refused = await run_merge_steps.refused_carry(ctx);
1767
+ if (refused !== void 0) return report_count_refused(refused);
1768
+ if (!await run_merge_steps.resume_cut(ctx.child)) {
1769
+ return await on_failed(ctx, run_stalled.CUT_NOT_RELAUNCHED);
1770
+ }
1771
+ await run_event_stream_emit.emit(
1772
+ run_event_stream.EVENT_KIND.CHILD_LAUNCH,
1773
+ `${issue_cite.plain_for("program", ctx.child)} resumed from its cut`
1774
+ );
1775
+ return emit(MERGE_TOKEN.RESUMED, SUCCESS_EXIT_CODE);
1776
+ }
1777
+ async function on_parked(ctx) {
1778
+ await run_merge_steps.release_child(ctx.child);
1779
+ await run_event_stream_emit.emit(
1780
+ run_event_stream.EVENT_KIND.PARK,
1781
+ `${issue_cite.plain_for("program", ctx.child)} parked`
1782
+ );
1783
+ return await offered(ctx);
1784
+ }
1785
+ async function on_skipped(ctx) {
1786
+ await run_merge_steps.close_split_lane(ctx.child);
1787
+ await run_event_stream_emit.emit(
1788
+ run_event_stream.EVENT_KIND.SPLIT,
1789
+ `${issue_cite.plain_for("program", ctx.child)} split`
1790
+ );
1791
+ return await offered(ctx);
1792
+ }
1793
+ async function on_collected(ctx, collected) {
1794
+ if (collected.note !== void 0) console.error(collected.note);
1795
+ if (collected.is_retry) return emit(MERGE_TOKEN.RETRY, FAILURE_EXIT_CODE);
1796
+ return await offered(ctx);
1797
+ }
1798
+ async function on_withdrawn(ctx) {
1799
+ return await on_collected(ctx, await run_merge_withdrawn.collect(ctx.child));
1800
+ }
1801
+ async function on_yielded(ctx) {
1802
+ return await on_collected(ctx, await run_merge_withdrawn.collect_yield(ctx.child));
1803
+ }
1804
+ async function on_human_review(ctx) {
1805
+ if (!await run_merge_human_review.retain(ctx.child)) {
1806
+ return emit(MERGE_TOKEN.RETRY, FAILURE_EXIT_CODE);
1807
+ }
1808
+ return await offered(ctx);
1809
+ }
1810
+ async function on_unresolved() {
1811
+ return emit(MERGE_TOKEN.RETRY, FAILURE_EXIT_CODE);
1812
+ }
1813
+ async function on_shipping() {
1814
+ return emit(MERGE_TOKEN.RESUMED, SUCCESS_EXIT_CODE);
1815
+ }
1816
+ var HANDLERS = {
1817
+ cut: on_cut,
1818
+ failed: on_failed,
1819
+ "human-review": on_human_review,
1820
+ merged: on_merged,
1821
+ outage: on_outage,
1822
+ unauthenticated: on_unauthenticated,
1823
+ "usage-limit": on_usage_limit,
1824
+ parked: on_parked,
1825
+ split: on_skipped,
1826
+ unresolved: on_unresolved,
1827
+ shipping: on_shipping,
1828
+ withdrawn: on_withdrawn,
1829
+ yielded: on_yielded
1830
+ };
1831
+ async function merge_child(ctx) {
1832
+ if (lane_handoff.is_ship_running(ctx.child, process.cwd())) {
1833
+ return { outcome: "shipping", ...await on_shipping() };
1834
+ }
1835
+ if (ctx.stash === true) await run_merge_steps.stash_stopped(ctx.child);
1836
+ const read = await issue_state_cli.read_issue(ctx.child, ctx.repo);
1837
+ const signals = await run_merge_signals.read_signals(ctx, read);
1838
+ const outcome = run_merge_signals.outcome_of(read, signals);
1839
+ const { merged_pr, is_streak_exempt, capped_note, resume_ms: resume_ms2 } = signals;
1840
+ const handled = { ...ctx, merged_pr, is_streak_exempt, capped_note, resume_ms: resume_ms2 };
1841
+ return { outcome, ...await HANDLERS[outcome](handled) };
1842
+ }
1843
+ async function run(argv) {
1844
+ const ctx = parse2(argv);
1845
+ if (ctx === void 0) {
1846
+ console.error(USAGE);
1847
+ return FAILURE_EXIT_CODE;
1848
+ }
1849
+ const result = await merge_child(ctx);
1850
+ console.info(run_merge_driver.printed(argv, result));
1851
+ return result.code;
1852
+ }
1853
+ var run_merge_cli = {
1854
+ merge_child,
1855
+ parse: parse2,
1856
+ read_merged_pr: run_merge_signals.read_merged_pr,
1857
+ record_merged,
1858
+ run
1859
+ };
1860
+
1861
+ export {
1862
+ run_merge,
1863
+ run_merge_cli
1864
+ };