@joshuafolkken/kit 1.3044.0 → 1.3099.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 (1250) hide show
  1. package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
  2. package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
  3. package/.claude/skills/workflow-commands/halfrun.md +3 -2
  4. package/.claude/skills/workflow-commands/kickoff.md +9 -2
  5. package/.claude/skills/workflow-commands/prerequisite.md +2 -0
  6. package/.claude/skills/workflow-commands/retrospective.md +2 -1
  7. package/.claude/skills/workflow-commands/split-assessment.md +4 -0
  8. package/.github/workflows/ci.yml +0 -20
  9. package/.github/workflows/pr-classification.yml +0 -5
  10. package/.github/workflows/publish.yml +0 -1
  11. package/.github/workflows/sonar-qube.yml +0 -5
  12. package/README.md +2 -0
  13. package/SECURITY.md +2 -1
  14. package/dist/.inputs-verified.json +1 -1
  15. package/dist/commands/adopt.js +29 -20
  16. package/dist/commands/auto-ok-judge-cli.js +43 -33
  17. package/dist/commands/auto-ok-main.js +73 -74
  18. package/dist/commands/backlog-budget-main.js +5 -6
  19. package/dist/commands/backlog-drive-cli.js +286 -305
  20. package/dist/commands/backlog-next-main.js +111 -108
  21. package/dist/commands/backlog-offer-main.js +148 -112
  22. package/dist/commands/backlog-plan-cli.js +123 -120
  23. package/dist/commands/backlog-triage-cli.js +131 -128
  24. package/dist/commands/backlogrun-cli.js +274 -264
  25. package/dist/commands/behavior-cli.js +23 -26
  26. package/dist/commands/bytes-command.js +56 -59
  27. package/dist/commands/cases-cli.js +4 -5
  28. package/dist/commands/check-commit-message-main.js +3 -4
  29. package/dist/commands/check-related.js +125 -119
  30. package/dist/commands/chunk-26JL4UU4.js +365 -0
  31. package/dist/commands/chunk-2BIVHPCA.js +85 -0
  32. package/dist/commands/chunk-2CKJODCK.js +245 -0
  33. package/dist/commands/chunk-2CNVIA35.js +335 -0
  34. package/dist/commands/chunk-2E6PSONB.js +46 -0
  35. package/dist/commands/chunk-2GA4775H.js +77 -0
  36. package/dist/commands/chunk-2O64H5UJ.js +462 -0
  37. package/dist/commands/chunk-2OEXY4GM.js +252 -0
  38. package/dist/commands/chunk-2OMIHPPE.js +51 -0
  39. package/dist/commands/chunk-2ONSHOAY.js +46 -0
  40. package/dist/commands/chunk-2SA3W4JF.js +41 -0
  41. package/dist/commands/chunk-2VY7CJ2R.js +212 -0
  42. package/dist/commands/chunk-2WRDAQPJ.js +74 -0
  43. package/dist/commands/chunk-2XLR7R6E.js +541 -0
  44. package/dist/commands/chunk-33TAOZUE.js +29 -0
  45. package/dist/commands/chunk-36XHHYNU.js +158 -0
  46. package/dist/commands/chunk-3CJNQU7P.js +179 -0
  47. package/dist/commands/chunk-3D5T6KMW.js +59 -0
  48. package/dist/commands/chunk-3EW5LTN3.js +114 -0
  49. package/dist/commands/chunk-3F3RNIG2.js +128 -0
  50. package/dist/commands/chunk-3FLTEJZY.js +74 -0
  51. package/dist/commands/chunk-3JWPTRNI.js +60 -0
  52. package/dist/commands/chunk-3LUPGBW4.js +137 -0
  53. package/dist/commands/chunk-3MQTOUXT.js +94 -0
  54. package/dist/commands/chunk-3PCUERXE.js +19 -0
  55. package/dist/commands/chunk-3U6A5WON.js +173 -0
  56. package/dist/commands/chunk-3VLDFM5I.js +426 -0
  57. package/dist/commands/chunk-3YT3RCSI.js +140 -0
  58. package/dist/commands/chunk-43DU7DYZ.js +540 -0
  59. package/dist/commands/chunk-43H725LG.js +132 -0
  60. package/dist/commands/chunk-46STCE6Q.js +48 -0
  61. package/dist/commands/chunk-46WEC6HZ.js +82 -0
  62. package/dist/commands/chunk-47J4KOZP.js +46 -0
  63. package/dist/commands/chunk-47W7PF4T.js +22 -0
  64. package/dist/commands/chunk-4F4KARQN.js +229 -0
  65. package/dist/commands/chunk-4HB7NWXP.js +263 -0
  66. package/dist/commands/chunk-4HOTJAO6.js +89 -0
  67. package/dist/commands/chunk-4I5AA4P5.js +237 -0
  68. package/dist/commands/chunk-4IDINPBE.js +525 -0
  69. package/dist/commands/chunk-4NSIW3UB.js +104 -0
  70. package/dist/commands/chunk-4YTKV6WV.js +37 -0
  71. package/dist/commands/chunk-5ARNFMQK.js +1263 -0
  72. package/dist/commands/chunk-5AZTSESD.js +114 -0
  73. package/dist/commands/chunk-5FUI2MLY.js +89 -0
  74. package/dist/commands/chunk-5GI5GLC4.js +214 -0
  75. package/dist/commands/chunk-5IHEBIPD.js +333 -0
  76. package/dist/commands/chunk-5KAW5GPF.js +44 -0
  77. package/dist/commands/chunk-5KSJEWXR.js +77 -0
  78. package/dist/commands/chunk-5OF2B4BF.js +35 -0
  79. package/dist/commands/chunk-5PLJ7R3D.js +126 -0
  80. package/dist/commands/chunk-5PPWXOCF.js +64 -0
  81. package/dist/commands/chunk-5VQCL33M.js +46 -0
  82. package/dist/commands/chunk-5Y7FOJLX.js +186 -0
  83. package/dist/commands/chunk-5YTEMF4O.js +110 -0
  84. package/dist/commands/chunk-6AHAY5VZ.js +69 -0
  85. package/dist/commands/chunk-6FN37DER.js +330 -0
  86. package/dist/commands/chunk-6JD4VNO4.js +124 -0
  87. package/dist/commands/chunk-6KUA7MRG.js +64 -0
  88. package/dist/commands/chunk-6LDEZFYR.js +88 -0
  89. package/dist/commands/chunk-6NXIZMIK.js +122 -0
  90. package/dist/commands/chunk-6O45F6YI.js +86 -0
  91. package/dist/commands/chunk-6OHJBQDE.js +184 -0
  92. package/dist/commands/chunk-6WDCCG3M.js +1249 -0
  93. package/dist/commands/chunk-6ZHXEQAI.js +715 -0
  94. package/dist/commands/chunk-736NECRD.js +16 -0
  95. package/dist/commands/chunk-77LEKVEE.js +32 -0
  96. package/dist/commands/chunk-7CX5VYOL.js +50 -0
  97. package/dist/commands/chunk-7DGHFBU7.js +247 -0
  98. package/dist/commands/chunk-7EAYFMDN.js +235 -0
  99. package/dist/commands/chunk-7HP3FQGQ.js +51 -0
  100. package/dist/commands/chunk-7HYYHCTN.js +402 -0
  101. package/dist/commands/chunk-7JOOMFDI.js +155 -0
  102. package/dist/commands/chunk-7K5ITPHR.js +338 -0
  103. package/dist/commands/chunk-7OEBSPPU.js +321 -0
  104. package/dist/commands/chunk-7ULYLGUK.js +492 -0
  105. package/dist/commands/chunk-A3JYZWBS.js +803 -0
  106. package/dist/commands/chunk-A3LCN4KA.js +84 -0
  107. package/dist/commands/chunk-ABLXBG6C.js +98 -0
  108. package/dist/commands/chunk-ABM2MZBF.js +161 -0
  109. package/dist/commands/chunk-AN7BFVHU.js +244 -0
  110. package/dist/commands/chunk-AQCVEQSM.js +99 -0
  111. package/dist/commands/chunk-AU563VKH.js +75 -0
  112. package/dist/commands/chunk-AUTD5FV2.js +1077 -0
  113. package/dist/commands/chunk-AV26CMY6.js +304 -0
  114. package/dist/commands/chunk-B2PJEV3S.js +246 -0
  115. package/dist/commands/chunk-B545ENGY.js +214 -0
  116. package/dist/commands/chunk-B5HP6T4L.js +170 -0
  117. package/dist/commands/chunk-B73IIRMS.js +207 -0
  118. package/dist/commands/chunk-BBLEC4YQ.js +109 -0
  119. package/dist/commands/chunk-BDSG6JKH.js +977 -0
  120. package/dist/commands/chunk-BFKTUD3V.js +33 -0
  121. package/dist/commands/chunk-BLRXHK2V.js +17 -0
  122. package/dist/commands/chunk-BML6MEUB.js +326 -0
  123. package/dist/commands/chunk-BPDNGJXY.js +63 -0
  124. package/dist/commands/chunk-BQLKWGGC.js +118 -0
  125. package/dist/commands/chunk-BRMJVCP7.js +167 -0
  126. package/dist/commands/chunk-BRWR5YKU.js +268 -0
  127. package/dist/commands/chunk-BUZAYEBD.js +319 -0
  128. package/dist/commands/chunk-BVUL57IX.js +139 -0
  129. package/dist/commands/chunk-C7FGDZWP.js +224 -0
  130. package/dist/commands/chunk-CC4BIGCA.js +20 -0
  131. package/dist/commands/chunk-CCHJZEF5.js +4220 -0
  132. package/dist/commands/chunk-CDK7QZWG.js +44 -0
  133. package/dist/commands/chunk-CDYFUCDC.js +72 -0
  134. package/dist/commands/chunk-CEADAQIL.js +170 -0
  135. package/dist/commands/chunk-CNL3SLM6.js +116 -0
  136. package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
  137. package/dist/commands/chunk-CTXJVMHW.js +48 -0
  138. package/dist/commands/chunk-CUWT6UQO.js +13 -0
  139. package/dist/commands/chunk-CVRDJCOE.js +125 -0
  140. package/dist/commands/chunk-D6CF5QGM.js +80 -0
  141. package/dist/commands/chunk-DACNQAXC.js +20 -0
  142. package/dist/commands/chunk-DDOS32JU.js +74 -0
  143. package/dist/commands/chunk-DDZVMXZD.js +481 -0
  144. package/dist/commands/chunk-DF6QD4AF.js +52 -0
  145. package/dist/commands/chunk-DFEXNB44.js +159 -0
  146. package/dist/commands/chunk-DHDKG5HZ.js +151 -0
  147. package/dist/commands/chunk-DHJRFBKO.js +223 -0
  148. package/dist/commands/chunk-DKDWOE3C.js +78 -0
  149. package/dist/commands/chunk-DKO5VTEH.js +65 -0
  150. package/dist/commands/chunk-DLHH3MLS.js +85 -0
  151. package/dist/commands/chunk-DOYNK72G.js +81 -0
  152. package/dist/commands/chunk-DS53UUDH.js +679 -0
  153. package/dist/commands/chunk-DUA4E4ES.js +230 -0
  154. package/dist/commands/chunk-DURHGVRC.js +33 -0
  155. package/dist/commands/chunk-DVCMQMRN.js +191 -0
  156. package/dist/commands/chunk-E3YKMCCJ.js +108 -0
  157. package/dist/commands/chunk-E4F2RTKC.js +272 -0
  158. package/dist/commands/chunk-E4PFCTXN.js +127 -0
  159. package/dist/commands/chunk-EAOTR2WL.js +24 -0
  160. package/dist/commands/chunk-EHPTXSAT.js +315 -0
  161. package/dist/commands/chunk-EHVEWJQ4.js +33 -0
  162. package/dist/commands/chunk-EMFSPPMH.js +98 -0
  163. package/dist/commands/chunk-EPICTV2P.js +46 -0
  164. package/dist/commands/chunk-ES42XPAD.js +123 -0
  165. package/dist/commands/chunk-ESUY7KTZ.js +137 -0
  166. package/dist/commands/chunk-EVVQJJFV.js +507 -0
  167. package/dist/commands/chunk-EWXXEGXL.js +149 -0
  168. package/dist/commands/chunk-F2RDEF2J.js +205 -0
  169. package/dist/commands/chunk-F2U46HAE.js +52 -0
  170. package/dist/commands/chunk-F2VYWU6Z.js +653 -0
  171. package/dist/commands/chunk-F4SGOTUF.js +36 -0
  172. package/dist/commands/chunk-F4YMLVWN.js +183 -0
  173. package/dist/commands/chunk-F57LACNC.js +84 -0
  174. package/dist/commands/chunk-F5N2QIFD.js +213 -0
  175. package/dist/commands/chunk-F7B4ESZE.js +80 -0
  176. package/dist/commands/chunk-FA7CN75F.js +160 -0
  177. package/dist/commands/chunk-FDASVHZD.js +241 -0
  178. package/dist/commands/chunk-FEYZ575X.js +278 -0
  179. package/dist/commands/chunk-FJM2HWKW.js +299 -0
  180. package/dist/commands/chunk-FJMXUDEY.js +3985 -0
  181. package/dist/commands/chunk-FM7VVAK6.js +426 -0
  182. package/dist/commands/chunk-FQWRM5FC.js +67 -0
  183. package/dist/commands/chunk-FT33ZCSB.js +298 -0
  184. package/dist/commands/chunk-FTAWHAI7.js +170 -0
  185. package/dist/commands/chunk-G2DNS74C.js +53 -0
  186. package/dist/commands/chunk-G3BBCAAH.js +90 -0
  187. package/dist/commands/chunk-G75GWNNY.js +101 -0
  188. package/dist/commands/chunk-GA2YSPFH.js +32 -0
  189. package/dist/commands/chunk-GABDPTDK.js +907 -0
  190. package/dist/commands/chunk-GAVSK6P6.js +230 -0
  191. package/dist/commands/chunk-GB2BRQVL.js +300 -0
  192. package/dist/commands/chunk-GBMZXFFC.js +44 -0
  193. package/dist/commands/chunk-GDP7QXYE.js +76 -0
  194. package/dist/commands/chunk-GGWXF7RJ.js +70 -0
  195. package/dist/commands/chunk-GHOTKHI4.js +30 -0
  196. package/dist/commands/chunk-GMVN6ZP2.js +48 -0
  197. package/dist/commands/chunk-GNTTGRCX.js +133 -0
  198. package/dist/commands/chunk-GOY5JECO.js +130 -0
  199. package/dist/commands/chunk-GZL6ISVM.js +72 -0
  200. package/dist/commands/chunk-HALHQILI.js +51 -0
  201. package/dist/commands/chunk-HAT7AFBF.js +85 -0
  202. package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
  203. package/dist/commands/chunk-HE3GOMR7.js +88 -0
  204. package/dist/commands/chunk-HEFUC4ZW.js +65 -0
  205. package/dist/commands/chunk-HHS3LYLV.js +30 -0
  206. package/dist/commands/chunk-HQZ65PJE.js +167 -0
  207. package/dist/commands/chunk-HRN73FQJ.js +77 -0
  208. package/dist/commands/chunk-HSZECERZ.js +271 -0
  209. package/dist/commands/chunk-HYE3MBAN.js +113 -0
  210. package/dist/commands/chunk-IAB6LCJL.js +18 -0
  211. package/dist/commands/chunk-IAGENI2U.js +42 -0
  212. package/dist/commands/chunk-ICPVBHIX.js +48 -0
  213. package/dist/commands/chunk-IONGJJYM.js +179 -0
  214. package/dist/commands/chunk-IP23WOWP.js +126 -0
  215. package/dist/commands/chunk-IPS7EBE5.js +140 -0
  216. package/dist/commands/chunk-IXZZSST7.js +459 -0
  217. package/dist/commands/chunk-IY3DSDRW.js +173 -0
  218. package/dist/commands/chunk-J2RUI4KN.js +47 -0
  219. package/dist/commands/chunk-J3PCRUVY.js +1223 -0
  220. package/dist/commands/chunk-J4XHEOOW.js +156 -0
  221. package/dist/commands/chunk-JDHLHYJJ.js +208 -0
  222. package/dist/commands/chunk-JEYITIWB.js +423 -0
  223. package/dist/commands/chunk-JGX7JIW4.js +126 -0
  224. package/dist/commands/chunk-JHIGDFBS.js +59 -0
  225. package/dist/commands/chunk-JI2EGXZX.js +53 -0
  226. package/dist/commands/chunk-JNV3VRK2.js +47 -0
  227. package/dist/commands/chunk-JPMAW2VZ.js +91 -0
  228. package/dist/commands/chunk-JQEY6KDP.js +90 -0
  229. package/dist/commands/chunk-JSJDIEGZ.js +88 -0
  230. package/dist/commands/chunk-JT5ICRFF.js +44 -0
  231. package/dist/commands/chunk-JU2MAYQ3.js +997 -0
  232. package/dist/commands/chunk-JUCJ4Y42.js +77 -0
  233. package/dist/commands/chunk-K3OZBV3L.js +49 -0
  234. package/dist/commands/chunk-K6P5PISC.js +114 -0
  235. package/dist/commands/chunk-KDCHY7XO.js +88 -0
  236. package/dist/commands/chunk-KDGX3JTV.js +51 -0
  237. package/dist/commands/chunk-KGSEWOKI.js +353 -0
  238. package/dist/commands/chunk-KIS7JFNP.js +217 -0
  239. package/dist/commands/chunk-KJPZPTS4.js +245 -0
  240. package/dist/commands/chunk-KKHD3C2P.js +114 -0
  241. package/dist/commands/chunk-KKIIY5I5.js +67 -0
  242. package/dist/commands/chunk-KN46UC77.js +114 -0
  243. package/dist/commands/chunk-KP2BVAS5.js +125 -0
  244. package/dist/commands/chunk-KPAJBJXG.js +63 -0
  245. package/dist/commands/chunk-KPMAJP6D.js +145 -0
  246. package/dist/commands/chunk-KR6WUAJM.js +122 -0
  247. package/dist/commands/chunk-KWLNK2NJ.js +391 -0
  248. package/dist/commands/chunk-L2CLCNXW.js +144 -0
  249. package/dist/commands/chunk-L7MDU6D7.js +155 -0
  250. package/dist/commands/chunk-L7VD4MLF.js +78 -0
  251. package/dist/commands/chunk-LBVYFW3I.js +38 -0
  252. package/dist/commands/chunk-LE3M42CF.js +350 -0
  253. package/dist/commands/chunk-LIPUSINQ.js +140 -0
  254. package/dist/commands/chunk-LJVZWE3A.js +1885 -0
  255. package/dist/commands/chunk-LKSSQVDA.js +49 -0
  256. package/dist/commands/chunk-LL6G34MF.js +93 -0
  257. package/dist/commands/chunk-LNQOL2CL.js +321 -0
  258. package/dist/commands/chunk-LS7P324N.js +72 -0
  259. package/dist/commands/chunk-LU5EOGFQ.js +50 -0
  260. package/dist/commands/chunk-LX2ENXHZ.js +197 -0
  261. package/dist/commands/chunk-M32UPB2D.js +110 -0
  262. package/dist/commands/chunk-M3UGRNNB.js +103 -0
  263. package/dist/commands/chunk-MDGPJOLK.js +351 -0
  264. package/dist/commands/chunk-MDKRTUE4.js +288 -0
  265. package/dist/commands/chunk-MFZVRWRS.js +34 -0
  266. package/dist/commands/chunk-MHF6BDQI.js +128 -0
  267. package/dist/commands/chunk-MLJDW7YN.js +64 -0
  268. package/dist/commands/chunk-MNLHYAJO.js +80 -0
  269. package/dist/commands/chunk-MOD3FG4V.js +419 -0
  270. package/dist/commands/chunk-MRAEJLXL.js +83 -0
  271. package/dist/commands/chunk-MRW2WYJS.js +68 -0
  272. package/dist/commands/chunk-MXPCEZL5.js +23 -0
  273. package/dist/commands/chunk-N2XH7QBY.js +103 -0
  274. package/dist/commands/chunk-N2ZF6T4E.js +332 -0
  275. package/dist/commands/chunk-N36NZMAL.js +79 -0
  276. package/dist/commands/chunk-N4EMFHQ6.js +114 -0
  277. package/dist/commands/chunk-N4P64UIH.js +211 -0
  278. package/dist/commands/chunk-NABSSY4P.js +204 -0
  279. package/dist/commands/chunk-NDQIJBRQ.js +100 -0
  280. package/dist/commands/chunk-NDR4PCVG.js +29 -0
  281. package/dist/commands/chunk-NEOCCN6D.js +302 -0
  282. package/dist/commands/chunk-NFKWFOFM.js +45 -0
  283. package/dist/commands/chunk-NFUPJBBG.js +516 -0
  284. package/dist/commands/chunk-NHEBKL7X.js +170 -0
  285. package/dist/commands/chunk-NHTEC5U4.js +99 -0
  286. package/dist/commands/chunk-NOSODWWK.js +1132 -0
  287. package/dist/commands/chunk-NPXXYG6Z.js +580 -0
  288. package/dist/commands/chunk-NR2JDBPV.js +75 -0
  289. package/dist/commands/chunk-NRULNBYI.js +1153 -0
  290. package/dist/commands/chunk-NTGF5N3N.js +110 -0
  291. package/dist/commands/chunk-NTIVNQKF.js +73 -0
  292. package/dist/commands/chunk-NUCFIYZL.js +119 -0
  293. package/dist/commands/chunk-NVMV7BYX.js +88 -0
  294. package/dist/commands/chunk-NYWPTYGL.js +169 -0
  295. package/dist/commands/chunk-NZ45KOLL.js +104 -0
  296. package/dist/commands/chunk-O45BX4EL.js +39 -0
  297. package/dist/commands/chunk-O46T4ANI.js +229 -0
  298. package/dist/commands/chunk-O5JGV7NA.js +245 -0
  299. package/dist/commands/chunk-O7ESC4HL.js +566 -0
  300. package/dist/commands/chunk-OBYLXHCH.js +86 -0
  301. package/dist/commands/chunk-OHN3QARP.js +769 -0
  302. package/dist/commands/chunk-OKBZGLD5.js +393 -0
  303. package/dist/commands/chunk-OKN63ZH5.js +109 -0
  304. package/dist/commands/chunk-ON4IKRGS.js +469 -0
  305. package/dist/commands/chunk-OT74RSQO.js +82 -0
  306. package/dist/commands/chunk-OVCVINYW.js +143 -0
  307. package/dist/commands/chunk-OZKLVTYI.js +342 -0
  308. package/dist/commands/chunk-OZN4HOZT.js +74 -0
  309. package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
  310. package/dist/commands/chunk-P43GWYR6.js +185 -0
  311. package/dist/commands/chunk-P6ASP2DY.js +132 -0
  312. package/dist/commands/chunk-PBAEJ5PT.js +38 -0
  313. package/dist/commands/chunk-PCZROH3R.js +100 -0
  314. package/dist/commands/chunk-PJYTUUTH.js +34 -0
  315. package/dist/commands/chunk-PKXTISWR.js +58 -0
  316. package/dist/commands/chunk-PSGLUBSB.js +74 -0
  317. package/dist/commands/chunk-PUQA7F6Y.js +186 -0
  318. package/dist/commands/chunk-PVRDJU2B.js +126 -0
  319. package/dist/commands/chunk-Q3HM2BEH.js +45 -0
  320. package/dist/commands/chunk-Q42NF2TL.js +47 -0
  321. package/dist/commands/chunk-Q4ULMZAS.js +106 -0
  322. package/dist/commands/chunk-QCRUPRQ2.js +207 -0
  323. package/dist/commands/chunk-QFIKPGMC.js +280 -0
  324. package/dist/commands/chunk-QSBYULSS.js +100 -0
  325. package/dist/commands/chunk-QSJCZATC.js +18 -0
  326. package/dist/commands/chunk-QTJPCXEW.js +23 -0
  327. package/dist/commands/chunk-QTQAI2M2.js +179 -0
  328. package/dist/commands/chunk-QTVVFV4Q.js +127 -0
  329. package/dist/commands/chunk-QX2EMUXV.js +102 -0
  330. package/dist/commands/chunk-QXBOECGL.js +272 -0
  331. package/dist/commands/chunk-QXCG3SG4.js +88 -0
  332. package/dist/commands/chunk-QZVMGAWV.js +307 -0
  333. package/dist/commands/chunk-R36VZIKU.js +53 -0
  334. package/dist/commands/chunk-R3F7F3TX.js +94 -0
  335. package/dist/commands/chunk-R5AABJZJ.js +1062 -0
  336. package/dist/commands/chunk-R7PYR4HW.js +389 -0
  337. package/dist/commands/chunk-RAQ3E6OT.js +258 -0
  338. package/dist/commands/chunk-RESNXNDG.js +54 -0
  339. package/dist/commands/chunk-RFIOZTXY.js +305 -0
  340. package/dist/commands/chunk-RFWB2KAV.js +102 -0
  341. package/dist/commands/chunk-RFXON3FK.js +25 -0
  342. package/dist/commands/chunk-RGEB5L37.js +66 -0
  343. package/dist/commands/chunk-RGRLLF2J.js +119 -0
  344. package/dist/commands/chunk-RLRIMYXM.js +178 -0
  345. package/dist/commands/chunk-RNB3DQOZ.js +70 -0
  346. package/dist/commands/chunk-RO4QEZJO.js +172 -0
  347. package/dist/commands/chunk-RS5HBJY6.js +161 -0
  348. package/dist/commands/chunk-RV7EQIE4.js +202 -0
  349. package/dist/commands/chunk-RWPCK3CO.js +41 -0
  350. package/dist/commands/chunk-RWYSVFIA.js +250 -0
  351. package/dist/commands/chunk-RYKK75YT.js +289 -0
  352. package/dist/commands/chunk-S4JE63QE.js +704 -0
  353. package/dist/commands/chunk-S4OZJIXD.js +134 -0
  354. package/dist/commands/chunk-S5GX3H4P.js +91 -0
  355. package/dist/commands/chunk-SC57VV6A.js +60 -0
  356. package/dist/commands/chunk-SD4EX75H.js +177 -0
  357. package/dist/commands/chunk-SJITWFNY.js +480 -0
  358. package/dist/commands/chunk-SKGDMAIA.js +33 -0
  359. package/dist/commands/chunk-SNSZ25XZ.js +393 -0
  360. package/dist/commands/chunk-SOETJZWH.js +7672 -0
  361. package/dist/commands/chunk-SQZZHK6X.js +119 -0
  362. package/dist/commands/chunk-SRTEE34O.js +93 -0
  363. package/dist/commands/chunk-SYTCTLMD.js +285 -0
  364. package/dist/commands/chunk-T6JUDQMW.js +181 -0
  365. package/dist/commands/chunk-TEXUEBGE.js +208 -0
  366. package/dist/commands/chunk-TFDVTU6O.js +910 -0
  367. package/dist/commands/chunk-TFYYXETQ.js +472 -0
  368. package/dist/commands/chunk-TMFKVJUW.js +121 -0
  369. package/dist/commands/chunk-TNJU4CXD.js +32 -0
  370. package/dist/commands/chunk-TRHWBUWE.js +61 -0
  371. package/dist/commands/chunk-TROCFVCU.js +45 -0
  372. package/dist/commands/chunk-TUBBESHU.js +85 -0
  373. package/dist/commands/chunk-TVZIFZZN.js +62 -0
  374. package/dist/commands/chunk-TXRWAL63.js +144 -0
  375. package/dist/commands/chunk-U46YTYJQ.js +92 -0
  376. package/dist/commands/chunk-U5EO4QEV.js +48 -0
  377. package/dist/commands/chunk-UCO333EX.js +47 -0
  378. package/dist/commands/chunk-UIXQ4IYT.js +445 -0
  379. package/dist/commands/chunk-UJGNYPMD.js +716 -0
  380. package/dist/commands/chunk-URZ4RDC4.js +220 -0
  381. package/dist/commands/chunk-UUA63LCI.js +77 -0
  382. package/dist/commands/chunk-UUH3DE77.js +57 -0
  383. package/dist/commands/chunk-UVY5ODCM.js +60 -0
  384. package/dist/commands/chunk-UWMB6EOU.js +45 -0
  385. package/dist/commands/chunk-UY62WJV6.js +120 -0
  386. package/dist/commands/chunk-UZDKCGDC.js +198 -0
  387. package/dist/commands/chunk-VAHQ4AFM.js +585 -0
  388. package/dist/commands/chunk-VCWNMRH7.js +71 -0
  389. package/dist/commands/chunk-VL5I2IOD.js +332 -0
  390. package/dist/commands/chunk-VLN6TSPJ.js +139 -0
  391. package/dist/commands/chunk-VMG3QB6C.js +81 -0
  392. package/dist/commands/chunk-VO25PMGS.js +58 -0
  393. package/dist/commands/chunk-VPRQFM2T.js +37 -0
  394. package/dist/commands/chunk-VTLWODJ2.js +133 -0
  395. package/dist/commands/chunk-VUCDGQ6Y.js +260 -0
  396. package/dist/commands/chunk-VY7ZJMDT.js +469 -0
  397. package/dist/commands/chunk-W4BR6QNU.js +1241 -0
  398. package/dist/commands/chunk-W7X7MZZN.js +449 -0
  399. package/dist/commands/chunk-WCYRNNKF.js +76 -0
  400. package/dist/commands/chunk-WEUUJIWQ.js +84 -0
  401. package/dist/commands/chunk-WNBJK6QE.js +84 -0
  402. package/dist/commands/chunk-WORHUJ6T.js +73 -0
  403. package/dist/commands/chunk-WR5PKCQW.js +61 -0
  404. package/dist/commands/chunk-WR73HTRG.js +121 -0
  405. package/dist/commands/chunk-WRHMYSW7.js +36 -0
  406. package/dist/commands/chunk-WRNMUQTD.js +95 -0
  407. package/dist/commands/chunk-WROJTXWZ.js +138 -0
  408. package/dist/commands/chunk-WTIPX5NG.js +43 -0
  409. package/dist/commands/chunk-WWLCQREY.js +225 -0
  410. package/dist/commands/chunk-WXLW7S4M.js +71 -0
  411. package/dist/commands/chunk-WXXLJQBO.js +67 -0
  412. package/dist/commands/chunk-X4LYH6Q4.js +56 -0
  413. package/dist/commands/chunk-XAEL24EG.js +66 -0
  414. package/dist/commands/chunk-XDR2BRDL.js +216 -0
  415. package/dist/commands/chunk-XRQMVAB4.js +85 -0
  416. package/dist/commands/chunk-XUXCFPDK.js +218 -0
  417. package/dist/commands/chunk-XXPDFJRI.js +48 -0
  418. package/dist/commands/chunk-Y6OGDG5I.js +49 -0
  419. package/dist/commands/chunk-YANDBVAT.js +430 -0
  420. package/dist/commands/chunk-YD7XK2TX.js +550 -0
  421. package/dist/commands/chunk-YEAE46TS.js +98 -0
  422. package/dist/commands/chunk-YEQFAEVW.js +112 -0
  423. package/dist/commands/chunk-YJZAD4Z5.js +103 -0
  424. package/dist/commands/chunk-YNCF66RK.js +1052 -0
  425. package/dist/commands/chunk-YOA25SII.js +210 -0
  426. package/dist/commands/chunk-YOZTZMAT.js +38 -0
  427. package/dist/commands/chunk-YSGRHVZG.js +897 -0
  428. package/dist/commands/chunk-YSLGWRQN.js +646 -0
  429. package/dist/commands/chunk-YT5JR2CB.js +105 -0
  430. package/dist/commands/chunk-YTXCLGGL.js +168 -0
  431. package/dist/commands/chunk-YVHJN2HS.js +74 -0
  432. package/dist/commands/chunk-YY7XVVSB.js +43 -0
  433. package/dist/commands/chunk-Z2NUK47W.js +1314 -0
  434. package/dist/commands/chunk-Z5GZV4DV.js +16 -0
  435. package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
  436. package/dist/commands/chunk-ZCD4AV2P.js +73 -0
  437. package/dist/commands/chunk-ZCHZU6NX.js +799 -0
  438. package/dist/commands/chunk-ZEH2B3DF.js +239 -0
  439. package/dist/commands/chunk-ZGANVZCA.js +92 -0
  440. package/dist/commands/chunk-ZGEUWHFF.js +297 -0
  441. package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
  442. package/dist/commands/chunk-ZI3SABMH.js +347 -0
  443. package/dist/commands/chunk-ZIIUBGON.js +773 -0
  444. package/dist/commands/chunk-ZJJLROJY.js +269 -0
  445. package/dist/commands/chunk-ZNIIA275.js +59 -0
  446. package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
  447. package/dist/commands/ci-timing-cli.js +22 -3
  448. package/dist/commands/code-symbol-cli.js +21 -7
  449. package/dist/commands/codex-hook-adapter.js +124 -119
  450. package/dist/commands/command-derive.js +9 -11
  451. package/dist/commands/cost-audit-main.js +118 -119
  452. package/dist/commands/cost-main.js +5 -7
  453. package/dist/commands/cspell-cached.js +55 -57
  454. package/dist/commands/defect-origin-main.js +42 -37
  455. package/dist/commands/defect-report-main.js +33 -25
  456. package/dist/commands/diff-summary-cli.js +3 -4
  457. package/dist/commands/disposition-cli.js +117 -118
  458. package/dist/commands/doctor.js +24 -11
  459. package/dist/commands/document-read-cli.js +50 -53
  460. package/dist/commands/document-section-main.js +50 -53
  461. package/dist/commands/dogfood-commit-cli.js +19 -4
  462. package/dist/commands/effect-audit-cli.js +40 -41
  463. package/dist/commands/epic-audit-main.js +88 -86
  464. package/dist/commands/epic-bundle-main.js +122 -119
  465. package/dist/commands/epic-check.js +37 -31
  466. package/dist/commands/epic-main.js +129 -126
  467. package/dist/commands/epic-next-main.js +85 -83
  468. package/dist/commands/eval-run.js +6 -7
  469. package/dist/commands/format-edited-cli.js +71 -46
  470. package/dist/commands/format.js +41 -56
  471. package/dist/commands/fresh-machine-cli.js +24 -7
  472. package/dist/commands/gh-usage-cli.js +22 -22
  473. package/dist/commands/git-followup-workflow.js +170 -159
  474. package/dist/commands/git-gh-checks-failed-main.js +23 -15
  475. package/dist/commands/git-workflow.js +52 -53
  476. package/dist/commands/github-release-cli.js +3 -3
  477. package/dist/commands/hook-ledger-cli.js +93 -94
  478. package/dist/commands/init-main.js +40 -40
  479. package/dist/commands/inputs.json +1999 -1954
  480. package/dist/commands/issue-ack-cli.js +28 -21
  481. package/dist/commands/issue-already-done-cli.js +107 -110
  482. package/dist/commands/issue-body-cli.js +71 -73
  483. package/dist/commands/issue-cite-main.js +35 -28
  484. package/dist/commands/issue-comment-main.js +36 -30
  485. package/dist/commands/issue-consolidate-cli.js +54 -54
  486. package/dist/commands/issue-file-main.js +274 -148
  487. package/dist/commands/issue-fold-existing-cli.js +126 -123
  488. package/dist/commands/issue-fold-main.js +57 -60
  489. package/dist/commands/issue-lint-main.js +59 -61
  490. package/dist/commands/issue-measured-cli.js +108 -110
  491. package/dist/commands/issue-plan-cli.js +156 -155
  492. package/dist/commands/issue-premise-unmet-cli.js +111 -113
  493. package/dist/commands/issue-priority-cli.js +38 -32
  494. package/dist/commands/issue-read-main.js +38 -33
  495. package/dist/commands/issue-release-class-cli.js +37 -31
  496. package/dist/commands/issue-release-main.js +35 -29
  497. package/dist/commands/issue-scout-main.js +123 -120
  498. package/dist/commands/issue-spill-main.js +149 -144
  499. package/dist/commands/issue-state-main.js +36 -31
  500. package/dist/commands/issue-tick-cli.js +37 -31
  501. package/dist/commands/josh-completion.js +21 -24
  502. package/dist/commands/lane-adopt-cli.js +53 -55
  503. package/dist/commands/lane-breakdown-cli.js +193 -172
  504. package/dist/commands/lane-cli.js +199 -180
  505. package/dist/commands/lane-launch-main.js +106 -56
  506. package/dist/commands/lane-limit-cli.js +119 -116
  507. package/dist/commands/lane-measure-cli.js +408 -245
  508. package/dist/commands/lane-pause-cli.js +51 -54
  509. package/dist/commands/lane-plan-cli.js +148 -147
  510. package/dist/commands/lane-resolve-cli.js +48 -50
  511. package/dist/commands/lane-restart-cli.js +185 -168
  512. package/dist/commands/lane-why-cli.js +121 -122
  513. package/dist/commands/lane-withdraw-cli.js +84 -86
  514. package/dist/commands/latest-corepack.js +3 -2
  515. package/dist/commands/latest-if-required-cli.js +12 -15
  516. package/dist/commands/latest-lane-guard-main.js +2 -3
  517. package/dist/commands/latest-scope-main.js +5 -7
  518. package/dist/commands/latest-update.js +3 -2
  519. package/dist/commands/lines-command.js +8 -10
  520. package/dist/commands/lint-parallel-main.js +65 -67
  521. package/dist/commands/lint-related.js +149 -133
  522. package/dist/commands/lint-rule.js +64 -66
  523. package/dist/commands/lockfile-policy.js +29 -32
  524. package/dist/commands/main-merge-main.js +23 -25
  525. package/dist/commands/main-sync-main.js +23 -24
  526. package/dist/commands/managed-config-scope-cli.js +11 -10
  527. package/dist/commands/measure-rerun-cli.js +31 -26
  528. package/dist/commands/metrics-command.js +97 -100
  529. package/dist/commands/observation-record-cli.js +24 -14
  530. package/dist/commands/observations-flush-cli.js +50 -52
  531. package/dist/commands/overrides-check.js +1 -1
  532. package/dist/commands/package-scout-cli.js +70 -73
  533. package/dist/commands/pin-verify-cli.js +21 -2
  534. package/dist/commands/plan-consumers-main.js +3 -4
  535. package/dist/commands/plan-scaffold-cli.js +145 -146
  536. package/dist/commands/pr-classification-main.js +22 -3
  537. package/dist/commands/pre-commit-lint.js +30 -34
  538. package/dist/commands/pre-commit-type-check.js +55 -55
  539. package/dist/commands/pre-push-unit.js +69 -70
  540. package/dist/commands/pretool-guard-cli.js +111 -113
  541. package/dist/commands/prevent-main-commit.js +2 -3
  542. package/dist/commands/project-profile-cli.js +24 -9
  543. package/dist/commands/propagate.js +31 -23
  544. package/dist/commands/prose-stale-cli.js +48 -42
  545. package/dist/commands/publishable-range-check.js +3 -3
  546. package/dist/commands/read-set-cli.js +58 -61
  547. package/dist/commands/refactor-scan-cli.js +8 -9
  548. package/dist/commands/release-cli.js +57 -57
  549. package/dist/commands/release-scope-main.js +41 -36
  550. package/dist/commands/rename-cli.js +64 -36
  551. package/dist/commands/repo-party-cli.js +3 -4
  552. package/dist/commands/report-template-cli.js +4 -5
  553. package/dist/commands/reserved-run.js +17 -20
  554. package/dist/commands/retrospective-cli.js +126 -127
  555. package/dist/commands/review-attest-cli.js +28 -20
  556. package/dist/commands/review-brief-main.js +184 -167
  557. package/dist/commands/review-findings-cli.js +23 -13
  558. package/dist/commands/review-pair-cli.js +180 -156
  559. package/dist/commands/review-record-main.js +171 -147
  560. package/dist/commands/review-round2-cli.js +89 -91
  561. package/dist/commands/review-stops-cli.js +51 -54
  562. package/dist/commands/review-submit-cli.js +184 -167
  563. package/dist/commands/rule-list.js +78 -80
  564. package/dist/commands/rule-value-cli.js +115 -116
  565. package/dist/commands/ruleset-check-cli.js +23 -6
  566. package/dist/commands/run-add-cli.js +115 -75
  567. package/dist/commands/run-board-main.js +173 -169
  568. package/dist/commands/run-carry-cli.js +182 -174
  569. package/dist/commands/run-chain-cli.js +184 -160
  570. package/dist/commands/run-cut-cli.js +206 -168
  571. package/dist/commands/run-ending-cli.js +51 -54
  572. package/dist/commands/run-entry-cli.js +230 -283
  573. package/dist/commands/run-event-cli.js +18 -21
  574. package/dist/commands/run-handoff-cli.js +75 -78
  575. package/dist/commands/run-handoff-lanes-cli.js +48 -51
  576. package/dist/commands/run-hold-main.js +105 -107
  577. package/dist/commands/run-liveness-cli.js +47 -49
  578. package/dist/commands/run-merge-main.js +159 -151
  579. package/dist/commands/run-next-cli.js +128 -129
  580. package/dist/commands/run-park-cli.js +137 -140
  581. package/dist/commands/run-pause-cli.js +190 -186
  582. package/dist/commands/run-pickup-cli.js +49 -52
  583. package/dist/commands/run-prep-main.js +124 -125
  584. package/dist/commands/run-prime-cli.js +175 -147
  585. package/dist/commands/run-progress-main.js +149 -146
  586. package/dist/commands/run-report-cli.js +60 -60
  587. package/dist/commands/run-review-cli.js +229 -214
  588. package/dist/commands/run-ship-cli.js +258 -252
  589. package/dist/commands/run-ship-evidence-cli.js +71 -72
  590. package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
  591. package/dist/commands/run-ship-wait-main.js +83 -85
  592. package/dist/commands/run-split-cli.js +176 -172
  593. package/dist/commands/run-stale-main.js +72 -75
  594. package/dist/commands/run-status-cli.js +44 -44
  595. package/dist/commands/run-step-cli.js +213 -211
  596. package/dist/commands/run-tail-cli.js +23 -18
  597. package/dist/commands/run-tidy-main.js +67 -69
  598. package/dist/commands/run-wake-main.js +206 -187
  599. package/dist/commands/run-watcher-guard-cli.js +63 -66
  600. package/dist/commands/security-audit-main.js +21 -24
  601. package/dist/commands/security-audit-provision-main.js +9 -11
  602. package/dist/commands/selfcheck-cli.js +63 -57
  603. package/dist/commands/session-language-main.js +70 -73
  604. package/dist/commands/sonar-hotspots-cli.js +9 -8
  605. package/dist/commands/sonar-new-code-cli.js +3 -4
  606. package/dist/commands/split-assess-cli.js +55 -58
  607. package/dist/commands/split-child-recover-cli.js +38 -39
  608. package/dist/commands/start.js +64 -64
  609. package/dist/commands/stash-pop-main.js +4 -5
  610. package/dist/commands/stash-push-main.js +7 -9
  611. package/dist/commands/stop-guard.js +180 -176
  612. package/dist/commands/sync-main.js +30 -15
  613. package/dist/commands/telegram-test-main.js +29 -22
  614. package/dist/commands/test-declared.js +29 -15
  615. package/dist/commands/test-e2e-guard.js +54 -54
  616. package/dist/commands/test-pinned-main.js +57 -56
  617. package/dist/commands/test-reach-cli.js +40 -32
  618. package/dist/commands/test-red-main.js +12 -14
  619. package/dist/commands/test-related-XBDH2IOH.js +113 -0
  620. package/dist/commands/test-related-main.js +89 -89
  621. package/dist/commands/test-unit-guard-main.js +37 -37
  622. package/dist/commands/time-cli.js +54 -57
  623. package/dist/commands/time-density-cli.js +26 -29
  624. package/dist/commands/tree-status-cli.js +6 -8
  625. package/dist/commands/type-check-command.js +26 -11
  626. package/dist/commands/ui-routes-cli.js +5 -6
  627. package/dist/commands/ui-shot-cli.js +1 -1
  628. package/dist/commands/uninstall.js +44 -43
  629. package/dist/commands/unused-members-KVKZDTXD.js +329 -0
  630. package/dist/commands/unused-members-cli.js +27 -12
  631. package/dist/commands/upstream-interrupt-main.js +159 -151
  632. package/dist/commands/verification-gate.js +85 -86
  633. package/dist/commands/version-check.js +25 -8
  634. package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
  635. package/dist/hooks/chunk-46PTTMGE.js +1625 -0
  636. package/dist/hooks/chunk-5NIBRHWG.js +77 -0
  637. package/dist/hooks/chunk-76QKN2K3.js +258 -0
  638. package/dist/hooks/chunk-CHEKMGFP.js +321 -0
  639. package/dist/hooks/chunk-DCILEVDR.js +5173 -0
  640. package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
  641. package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
  642. package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
  643. package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
  644. package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
  645. package/dist/hooks/codex-hook-adapter.js +11 -12
  646. package/dist/hooks/daemon.js +2140 -1387
  647. package/dist/hooks/format-edited.js +6 -6
  648. package/dist/hooks/inputs.json +543 -518
  649. package/dist/hooks/pretool-guard.js +8 -8
  650. package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
  651. package/dist/hooks/session-lang.js +9 -7
  652. package/dist/hooks/stop-guard.js +970 -668
  653. package/dist/inputs.json +77 -68
  654. package/dist/josh.js +1029 -577
  655. package/dist/registry-migrate.mjs +33938 -0
  656. package/dist/version/index.js +4251 -175
  657. package/package.json +4 -1
  658. package/prompts/collaboration-workflow/principles.md +4 -1
  659. package/prompts/collaboration-workflow/rule-delivery.md +1 -1
  660. package/scripts/agent/codex-launch-identity.ts +70 -0
  661. package/scripts/auto-ok/auto-ok-cli.ts +2 -0
  662. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
  663. package/scripts/auto-ok/auto-ok-judge.ts +3 -1
  664. package/scripts/backlog/backlog-arrival.ts +1 -1
  665. package/scripts/backlog/backlog-budget.ts +5 -2
  666. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  667. package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
  668. package/scripts/backlog/backlog-drain-flush.ts +38 -3
  669. package/scripts/backlog/backlog-drive-cli.ts +1 -1
  670. package/scripts/backlog/backlog-drive-hold.ts +28 -5
  671. package/scripts/backlog/backlog-drive-launch.ts +37 -15
  672. package/scripts/backlog/backlog-drive-listing.ts +39 -23
  673. package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
  674. package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
  675. package/scripts/backlog/backlog-hold-codes.ts +7 -0
  676. package/scripts/backlog/backlog-hold-text.ts +14 -1
  677. package/scripts/backlog/backlog-measure-close.ts +6 -0
  678. package/scripts/backlog/backlog-next-shared.ts +20 -2
  679. package/scripts/backlog/backlog-next.ts +24 -3
  680. package/scripts/backlog/backlog-offer-cli.ts +69 -16
  681. package/scripts/build/build-migration.ts +25 -0
  682. package/scripts/build/build.ts +2 -0
  683. package/scripts/epic/epic-classify.ts +6 -1
  684. package/scripts/epic/epic-live.ts +46 -0
  685. package/scripts/followup/followup-failed-tests.ts +71 -10
  686. package/scripts/followup/followup-job-rerun.ts +2 -2
  687. package/scripts/followup/git-followup-finish.ts +16 -1
  688. package/scripts/gate/change-scope-action.integration.test.ts +88 -0
  689. package/scripts/gate/change-scope-action.ts +2 -0
  690. package/scripts/gate/check-related-order.ts +6 -7
  691. package/scripts/gate/check-related.ts +18 -8
  692. package/scripts/gate/core-admission.ts +17 -30
  693. package/scripts/gate/core-budget-poll.ts +183 -0
  694. package/scripts/gate/core-budget-timing.ts +1 -1
  695. package/scripts/gate/core-budget.ts +24 -112
  696. package/scripts/gate/core-wait-record.ts +52 -7
  697. package/scripts/gate/machine-capacity.ts +6 -2
  698. package/scripts/gate/metrics-totals.ts +11 -0
  699. package/scripts/gate/path-glob.test.ts +18 -0
  700. package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
  701. package/scripts/gate/verification-inputs.ts +2 -1
  702. package/scripts/gh/fix-gh-packages-logic.ts +22 -15
  703. package/scripts/gh/gh-request-tally.ts +4 -0
  704. package/scripts/hooks/bash-revert.ts +79 -31
  705. package/scripts/hooks/format-edited-file.ts +6 -8
  706. package/scripts/hooks/implementation-shell.ts +3 -2
  707. package/scripts/init/distributed-paths.ts +18 -5
  708. package/scripts/init/init-actions.ts +16 -1
  709. package/scripts/init/init-bootstrap.ts +2 -0
  710. package/scripts/init/init-logic.ts +40 -8
  711. package/scripts/init/init.ts +11 -3
  712. package/scripts/issue/defect-rate-cli.ts +19 -13
  713. package/scripts/issue/issue-file-batch.ts +7 -3
  714. package/scripts/issue/issue-file-cli.ts +19 -6
  715. package/scripts/issue/issue-file-main.ts +6 -1
  716. package/scripts/issue/issue-file-pass.ts +17 -0
  717. package/scripts/issue/issue-file.ts +3 -0
  718. package/scripts/issue/issue-not-before.ts +9 -2
  719. package/scripts/issue/issue-observation-gate.ts +141 -0
  720. package/scripts/issue/issue-observation-prime.ts +83 -0
  721. package/scripts/issue/issue-publication-state.ts +61 -0
  722. package/scripts/issue/issue-publication.ts +144 -0
  723. package/scripts/issue/issue-sample-prime.ts +2 -0
  724. package/scripts/issue/issue-search-count.ts +26 -0
  725. package/scripts/issue/issue-search.ts +128 -3
  726. package/scripts/issue/issue-spill-cli.ts +4 -0
  727. package/scripts/issue/upstream-interrupt-cli.ts +21 -5
  728. package/scripts/josh/josh-commands-ai.ts +1 -1
  729. package/scripts/josh/josh-commands-development.ts +1 -1
  730. package/scripts/josh/josh-commands-issue-write.ts +9 -0
  731. package/scripts/josh/josh-commands-run.ts +6 -1
  732. package/scripts/josh/josh-commands-ship.ts +5 -5
  733. package/scripts/josh/josh-run.ts +5 -2
  734. package/scripts/josh/shared-cache.ts +16 -1
  735. package/scripts/lane/lane-await.ts +15 -0
  736. package/scripts/lane/lane-cli.ts +2 -0
  737. package/scripts/lane/lane-dispatch-dependency.ts +102 -0
  738. package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
  739. package/scripts/lane/lane-dispatch.ts +44 -5
  740. package/scripts/lane/lane-early-push-count.ts +21 -0
  741. package/scripts/lane/lane-install.ts +15 -5
  742. package/scripts/lane/lane-launch-cli.ts +35 -14
  743. package/scripts/lane/lane-ledger-kind.ts +2 -0
  744. package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
  745. package/scripts/lane/lane-ledger-schema.ts +15 -1
  746. package/scripts/lane/lane-ledger-write.ts +4 -1
  747. package/scripts/lane/lane-relaunch.ts +25 -2
  748. package/scripts/lane/lane-state-record.ts +2 -0
  749. package/scripts/lane/lane-state.ts +8 -1
  750. package/scripts/lane/lane-stats-tables.ts +2 -0
  751. package/scripts/lane/openai-lane-supervisor.ts +16 -1
  752. package/scripts/lib/inherited-scope.ts +48 -0
  753. package/scripts/lint/format-steps.ts +93 -0
  754. package/scripts/lint/format.ts +6 -49
  755. package/scripts/lint/lint-related-fix.ts +35 -0
  756. package/scripts/lint/lint-related.ts +22 -35
  757. package/scripts/propagate/propagate-steps.ts +9 -4
  758. package/scripts/registry-migration/migrate-cli.ts +50 -0
  759. package/scripts/registry-migration/migrate-files.ts +154 -0
  760. package/scripts/registry-migration/migrate-lock.ts +147 -0
  761. package/scripts/registry-migration/migrate.ts +235 -0
  762. package/scripts/registry-migration/npm-acquisition.ts +118 -0
  763. package/scripts/review/review-record-cli.ts +27 -13
  764. package/scripts/review/review-record-pinned.ts +15 -6
  765. package/scripts/run/add/run-add-cli.ts +21 -3
  766. package/scripts/run/add/run-add.ts +26 -9
  767. package/scripts/run/board/run-board-layout.ts +11 -6
  768. package/scripts/run/board/run-board-read.ts +29 -69
  769. package/scripts/run/board/run-board-reason.ts +12 -0
  770. package/scripts/run/board/run-board-render-lanes.ts +26 -9
  771. package/scripts/run/board/run-board-render-lead.ts +9 -0
  772. package/scripts/run/board/run-board-retry-wait.ts +35 -0
  773. package/scripts/run/board/run-board-root-layout.ts +69 -0
  774. package/scripts/run/board/run-board-seat.ts +9 -2
  775. package/scripts/run/board/run-board-setup.ts +6 -4
  776. package/scripts/run/board/run-board-single.ts +69 -4
  777. package/scripts/run/board/run-board-span-read.ts +85 -0
  778. package/scripts/run/board/run-board-tick.ts +12 -4
  779. package/scripts/run/carry/run-carry-reclaim.ts +12 -2
  780. package/scripts/run/carry/run-carry-session.ts +48 -0
  781. package/scripts/run/carry/run-carry.ts +21 -14
  782. package/scripts/run/cut/run-cut-resume.ts +15 -3
  783. package/scripts/run/cut/run-cut.ts +1 -1
  784. package/scripts/run/detached-launch.ts +14 -5
  785. package/scripts/run/early-push-record.ts +6 -2
  786. package/scripts/run/event/run-event-setup.ts +2 -0
  787. package/scripts/run/event/run-event-stream-emit.ts +27 -7
  788. package/scripts/run/hold/run-hold-cli.ts +40 -5
  789. package/scripts/run/hold/run-hold-ended.ts +50 -0
  790. package/scripts/run/merge/run-merge-cut-release.ts +17 -0
  791. package/scripts/run/merge/run-merge-human-review.ts +6 -0
  792. package/scripts/run/merge/run-merge-steps.ts +4 -57
  793. package/scripts/run/merge/run-merge-waits.ts +54 -0
  794. package/scripts/run/prime/run-prime-cli.ts +16 -2
  795. package/scripts/run/review/run-review-cli.ts +5 -7
  796. package/scripts/run/review/run-review-early-push.ts +19 -8
  797. package/scripts/run/review/run-review-join-read.ts +33 -6
  798. package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
  799. package/scripts/run/review/run-review-pinned-steps.ts +7 -1
  800. package/scripts/run/run-halfrun-resume.ts +49 -6
  801. package/scripts/run/run-headless.ts +3 -0
  802. package/scripts/run/run-pr-return.ts +14 -5
  803. package/scripts/run/run-repair-attempt.ts +219 -0
  804. package/scripts/run/ship/run-ship-lap.ts +5 -17
  805. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
  806. package/scripts/run/ship/run-ship-scoped.ts +66 -30
  807. package/scripts/run/startup/run-startup-schema.ts +31 -0
  808. package/scripts/run/startup/run-startup-store.ts +130 -0
  809. package/scripts/run/startup/run-startup.ts +119 -0
  810. package/scripts/run/wake/run-wake-codex.ts +144 -0
  811. package/scripts/run/wake/run-wake-driver.ts +32 -7
  812. package/scripts/run/wake/run-wake-handoff.ts +9 -8
  813. package/scripts/run/wake/run-wake-loop.ts +23 -3
  814. package/scripts/run/wake/run-wake-ports.ts +17 -3
  815. package/scripts/run/wake/run-wake-takeover.ts +6 -3
  816. package/scripts/run/wake/run-wake-window.ts +4 -1
  817. package/scripts/run/wake/run-wake.ts +5 -0
  818. package/scripts/sync/sync-ai-files.ts +17 -0
  819. package/scripts/sync/sync-configs.ts +11 -1
  820. package/scripts/sync/sync.ts +5 -1
  821. package/scripts/test/test-pinned-cache-logic.ts +13 -7
  822. package/scripts/test/test-pinned-cache.ts +33 -11
  823. package/scripts/test/test-related-cap.ts +7 -3
  824. package/scripts/test/test-related-imports.ts +92 -0
  825. package/scripts/test/test-runner-config.ts +19 -0
  826. package/scripts/test/vitest-failure-summary.ts +7 -0
  827. package/scripts/version/npm-registry.ts +45 -7
  828. package/scripts/version/upgrade-shell-command.ts +34 -2
  829. package/templates/workflows/ci.yml +0 -15
  830. package/templates/workflows/github-release.yml +0 -5
  831. package/dist/commands/chunk-23GH6B3D.js +0 -333
  832. package/dist/commands/chunk-24OATKOF.js +0 -7534
  833. package/dist/commands/chunk-24ZDAWML.js +0 -48
  834. package/dist/commands/chunk-2BB5ZR2F.js +0 -128
  835. package/dist/commands/chunk-2BJJUTZA.js +0 -59
  836. package/dist/commands/chunk-2CXT6MBR.js +0 -51
  837. package/dist/commands/chunk-2DJLAUYB.js +0 -109
  838. package/dist/commands/chunk-2EZTYLO4.js +0 -179
  839. package/dist/commands/chunk-2FJJYCBD.js +0 -149
  840. package/dist/commands/chunk-2PHOLX62.js +0 -43
  841. package/dist/commands/chunk-2QM72JCJ.js +0 -338
  842. package/dist/commands/chunk-2VRITY55.js +0 -41
  843. package/dist/commands/chunk-2XAH3MHV.js +0 -23
  844. package/dist/commands/chunk-34KZDKQJ.js +0 -304
  845. package/dist/commands/chunk-352KLSFX.js +0 -67
  846. package/dist/commands/chunk-36LOGVJ7.js +0 -38
  847. package/dist/commands/chunk-3AEDZZNL.js +0 -223
  848. package/dist/commands/chunk-3B2HEFNO.js +0 -51
  849. package/dist/commands/chunk-3PEXBHRN.js +0 -33
  850. package/dist/commands/chunk-3Z425MM3.js +0 -61
  851. package/dist/commands/chunk-3ZOX4G4U.js +0 -88
  852. package/dist/commands/chunk-452HWOJ7.js +0 -395
  853. package/dist/commands/chunk-475EFIJV.js +0 -178
  854. package/dist/commands/chunk-47UZB54M.js +0 -73
  855. package/dist/commands/chunk-4DN4XVPL.js +0 -716
  856. package/dist/commands/chunk-4DVM57T7.js +0 -86
  857. package/dist/commands/chunk-4EADHJVC.js +0 -247
  858. package/dist/commands/chunk-4HERA2GY.js +0 -95
  859. package/dist/commands/chunk-4JI35CVO.js +0 -70
  860. package/dist/commands/chunk-4L4LNWZ7.js +0 -143
  861. package/dist/commands/chunk-4N32QKJZ.js +0 -170
  862. package/dist/commands/chunk-4NRSFLG7.js +0 -185
  863. package/dist/commands/chunk-4OKRPAUT.js +0 -98
  864. package/dist/commands/chunk-4PUKDAXL.js +0 -42
  865. package/dist/commands/chunk-4Q64PG46.js +0 -478
  866. package/dist/commands/chunk-4UDTQVDD.js +0 -278
  867. package/dist/commands/chunk-4WR2LEZL.js +0 -123
  868. package/dist/commands/chunk-4ZJOC6OK.js +0 -298
  869. package/dist/commands/chunk-4ZQM4I7R.js +0 -533
  870. package/dist/commands/chunk-54X37JEJ.js +0 -170
  871. package/dist/commands/chunk-56KW5EOK.js +0 -85
  872. package/dist/commands/chunk-5CG3XU3O.js +0 -74
  873. package/dist/commands/chunk-5ESZLHDZ.js +0 -514
  874. package/dist/commands/chunk-5FBRMARM.js +0 -578
  875. package/dist/commands/chunk-5RG4S66L.js +0 -47
  876. package/dist/commands/chunk-5UJGACVN.js +0 -137
  877. package/dist/commands/chunk-5Y7B7FDL.js +0 -44
  878. package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
  879. package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
  880. package/dist/commands/chunk-5ZTQX7OS.js +0 -125
  881. package/dist/commands/chunk-66NX6EXR.js +0 -29
  882. package/dist/commands/chunk-66TGK5XL.js +0 -84
  883. package/dist/commands/chunk-6CFHLMKM.js +0 -555
  884. package/dist/commands/chunk-6DDK5XWK.js +0 -74
  885. package/dist/commands/chunk-6GQX752S.js +0 -145
  886. package/dist/commands/chunk-6HRRZANN.js +0 -55
  887. package/dist/commands/chunk-6MAZ55GF.js +0 -1241
  888. package/dist/commands/chunk-6OP63TBT.js +0 -78
  889. package/dist/commands/chunk-6Q3XUCLM.js +0 -204
  890. package/dist/commands/chunk-6RUWU2SB.js +0 -45
  891. package/dist/commands/chunk-6UCWAFQY.js +0 -245
  892. package/dist/commands/chunk-6WKJ3GDA.js +0 -408
  893. package/dist/commands/chunk-6YURRFRU.js +0 -461
  894. package/dist/commands/chunk-6YVURZAJ.js +0 -350
  895. package/dist/commands/chunk-6Z4YZG7P.js +0 -169
  896. package/dist/commands/chunk-77BIN247.js +0 -122
  897. package/dist/commands/chunk-7ABHNNY3.js +0 -529
  898. package/dist/commands/chunk-7C7FOKJK.js +0 -115
  899. package/dist/commands/chunk-7HAGC6SW.js +0 -1062
  900. package/dist/commands/chunk-7KKUFLH5.js +0 -56
  901. package/dist/commands/chunk-7LJQMM2K.js +0 -102
  902. package/dist/commands/chunk-7MJYLUF4.js +0 -99
  903. package/dist/commands/chunk-7NHZCI5Y.js +0 -704
  904. package/dist/commands/chunk-7OQ56DVW.js +0 -239
  905. package/dist/commands/chunk-7VWPGTZO.js +0 -260
  906. package/dist/commands/chunk-7YZXS3AK.js +0 -30
  907. package/dist/commands/chunk-A4HOQKOG.js +0 -85
  908. package/dist/commands/chunk-A6T2N7VC.js +0 -159
  909. package/dist/commands/chunk-AAUDI7WJ.js +0 -250
  910. package/dist/commands/chunk-AC26ZUG5.js +0 -259
  911. package/dist/commands/chunk-ACZ52JPI.js +0 -140
  912. package/dist/commands/chunk-AJ65WNJB.js +0 -230
  913. package/dist/commands/chunk-AK7SEO4Y.js +0 -177
  914. package/dist/commands/chunk-AKK56GNX.js +0 -205
  915. package/dist/commands/chunk-AKQYYHP2.js +0 -461
  916. package/dist/commands/chunk-ALDAS2WG.js +0 -137
  917. package/dist/commands/chunk-ANUTT56I.js +0 -85
  918. package/dist/commands/chunk-AVVMDVGO.js +0 -68
  919. package/dist/commands/chunk-B3M5WSGN.js +0 -72
  920. package/dist/commands/chunk-B7ZNIEDV.js +0 -351
  921. package/dist/commands/chunk-BCUDQWYK.js +0 -77
  922. package/dist/commands/chunk-BF6YX4HE.js +0 -70
  923. package/dist/commands/chunk-BHRS7HAM.js +0 -272
  924. package/dist/commands/chunk-BIKGPT52.js +0 -29
  925. package/dist/commands/chunk-BJA5U4Q7.js +0 -75
  926. package/dist/commands/chunk-BMKWSWWE.js +0 -126
  927. package/dist/commands/chunk-BMTYUJNT.js +0 -59
  928. package/dist/commands/chunk-BRHPRDDV.js +0 -127
  929. package/dist/commands/chunk-BRUBX64M.js +0 -33
  930. package/dist/commands/chunk-BTZJDHQT.js +0 -46
  931. package/dist/commands/chunk-BYFC6MD2.js +0 -72
  932. package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
  933. package/dist/commands/chunk-C2SEDMZ3.js +0 -238
  934. package/dist/commands/chunk-C54QXJD6.js +0 -4208
  935. package/dist/commands/chunk-C6QSVO5K.js +0 -56
  936. package/dist/commands/chunk-CBAKBWSZ.js +0 -332
  937. package/dist/commands/chunk-CFHRNTE5.js +0 -326
  938. package/dist/commands/chunk-CGLLAEKZ.js +0 -110
  939. package/dist/commands/chunk-CHKYPF5O.js +0 -82
  940. package/dist/commands/chunk-CJBW6BWG.js +0 -800
  941. package/dist/commands/chunk-CJKPF5DJ.js +0 -156
  942. package/dist/commands/chunk-CKUKK7JG.js +0 -252
  943. package/dist/commands/chunk-CMHGDCGN.js +0 -263
  944. package/dist/commands/chunk-CNGTHSUS.js +0 -750
  945. package/dist/commands/chunk-CP2J4RV2.js +0 -3987
  946. package/dist/commands/chunk-CQZI7RIK.js +0 -72
  947. package/dist/commands/chunk-CWCKCZS6.js +0 -188
  948. package/dist/commands/chunk-D5HIP4HT.js +0 -289
  949. package/dist/commands/chunk-D6D6WQR6.js +0 -125
  950. package/dist/commands/chunk-D7JRJI44.js +0 -297
  951. package/dist/commands/chunk-D7OAU32Z.js +0 -119
  952. package/dist/commands/chunk-DAAX7XDS.js +0 -1208
  953. package/dist/commands/chunk-DBKTFB5V.js +0 -18
  954. package/dist/commands/chunk-DEZF7QZZ.js +0 -184
  955. package/dist/commands/chunk-DMD74E3F.js +0 -39
  956. package/dist/commands/chunk-DPJVKTO4.js +0 -41
  957. package/dist/commands/chunk-DXJQHJQ4.js +0 -73
  958. package/dist/commands/chunk-DYZOOWVW.js +0 -912
  959. package/dist/commands/chunk-EBI2BAKQ.js +0 -47
  960. package/dist/commands/chunk-EDKOSZ3K.js +0 -88
  961. package/dist/commands/chunk-EFDVE5P5.js +0 -121
  962. package/dist/commands/chunk-EGIHAEMT.js +0 -72
  963. package/dist/commands/chunk-EKLU6QR7.js +0 -507
  964. package/dist/commands/chunk-ELY76WAR.js +0 -65
  965. package/dist/commands/chunk-EM3HAZF6.js +0 -52
  966. package/dist/commands/chunk-EMTZAGT5.js +0 -51
  967. package/dist/commands/chunk-ENKFCOVY.js +0 -472
  968. package/dist/commands/chunk-ERG4QRNG.js +0 -224
  969. package/dist/commands/chunk-EUGNQCYK.js +0 -139
  970. package/dist/commands/chunk-EW4NPUMQ.js +0 -363
  971. package/dist/commands/chunk-EWVR5AEX.js +0 -140
  972. package/dist/commands/chunk-EXDFKKMH.js +0 -113
  973. package/dist/commands/chunk-EXWB34R2.js +0 -238
  974. package/dist/commands/chunk-EYMPBHDN.js +0 -61
  975. package/dist/commands/chunk-EZ7IPKIH.js +0 -20
  976. package/dist/commands/chunk-EZSO25UZ.js +0 -80
  977. package/dist/commands/chunk-F6IQHZYY.js +0 -94
  978. package/dist/commands/chunk-FDS65XOJ.js +0 -212
  979. package/dist/commands/chunk-FFHEGWPK.js +0 -91
  980. package/dist/commands/chunk-FGL6DBZU.js +0 -71
  981. package/dist/commands/chunk-FHFWNNUC.js +0 -144
  982. package/dist/commands/chunk-FIUCHMCF.js +0 -32
  983. package/dist/commands/chunk-FJX7AENO.js +0 -74
  984. package/dist/commands/chunk-FKZ5E4JD.js +0 -97
  985. package/dist/commands/chunk-FMZWRDKH.js +0 -302
  986. package/dist/commands/chunk-FOKCRIAN.js +0 -67
  987. package/dist/commands/chunk-FQGWO2ZH.js +0 -43
  988. package/dist/commands/chunk-FROACLVU.js +0 -525
  989. package/dist/commands/chunk-FURNDIT3.js +0 -34
  990. package/dist/commands/chunk-FVDQNMP6.js +0 -93
  991. package/dist/commands/chunk-FVVZIJUC.js +0 -425
  992. package/dist/commands/chunk-FWU3H4TX.js +0 -17
  993. package/dist/commands/chunk-G3HBYHFA.js +0 -16
  994. package/dist/commands/chunk-G4E4M2P4.js +0 -299
  995. package/dist/commands/chunk-G5KSL2Q2.js +0 -151
  996. package/dist/commands/chunk-G6XC7V6Y.js +0 -58
  997. package/dist/commands/chunk-GCPP5XIG.js +0 -90
  998. package/dist/commands/chunk-GITT5A5A.js +0 -198
  999. package/dist/commands/chunk-GJYMI2CM.js +0 -48
  1000. package/dist/commands/chunk-GLC47H7I.js +0 -285
  1001. package/dist/commands/chunk-GUR54ELE.js +0 -328
  1002. package/dist/commands/chunk-GW4UWR3O.js +0 -126
  1003. package/dist/commands/chunk-GY4DMCKS.js +0 -306
  1004. package/dist/commands/chunk-H6JQRHDC.js +0 -80
  1005. package/dist/commands/chunk-HATKF6VX.js +0 -173
  1006. package/dist/commands/chunk-HG2NZQD5.js +0 -135
  1007. package/dist/commands/chunk-HH3CVIFU.js +0 -93
  1008. package/dist/commands/chunk-HHMMGDMP.js +0 -469
  1009. package/dist/commands/chunk-HI5WPM6C.js +0 -127
  1010. package/dist/commands/chunk-HQGNXR6I.js +0 -245
  1011. package/dist/commands/chunk-HTIDHEEN.js +0 -108
  1012. package/dist/commands/chunk-HVCQYZVD.js +0 -38
  1013. package/dist/commands/chunk-HWEZRNPL.js +0 -66
  1014. package/dist/commands/chunk-HX3FFIO5.js +0 -74
  1015. package/dist/commands/chunk-HXDTA5VU.js +0 -208
  1016. package/dist/commands/chunk-I2KCGKJI.js +0 -107
  1017. package/dist/commands/chunk-I63RNFFR.js +0 -213
  1018. package/dist/commands/chunk-IAD4WLLI.js +0 -98
  1019. package/dist/commands/chunk-IB5TT73I.js +0 -177
  1020. package/dist/commands/chunk-IBAYXCMU.js +0 -156
  1021. package/dist/commands/chunk-IGDJNXX2.js +0 -49
  1022. package/dist/commands/chunk-ILGPZ47M.js +0 -33
  1023. package/dist/commands/chunk-IYJEBWW5.js +0 -44
  1024. package/dist/commands/chunk-J22PSIXR.js +0 -418
  1025. package/dist/commands/chunk-J66YBAAM.js +0 -161
  1026. package/dist/commands/chunk-J6WKZRV2.js +0 -391
  1027. package/dist/commands/chunk-J7IO3AYH.js +0 -179
  1028. package/dist/commands/chunk-JAKC2BHX.js +0 -88
  1029. package/dist/commands/chunk-JCAQ7B6J.js +0 -124
  1030. package/dist/commands/chunk-JHN6RCE6.js +0 -123
  1031. package/dist/commands/chunk-JIGBNCDR.js +0 -88
  1032. package/dist/commands/chunk-JJHWTFWQ.js +0 -76
  1033. package/dist/commands/chunk-JJRKTWLK.js +0 -64
  1034. package/dist/commands/chunk-JKOGWGQM.js +0 -92
  1035. package/dist/commands/chunk-JM6EVOFN.js +0 -172
  1036. package/dist/commands/chunk-JQXPLMCO.js +0 -81
  1037. package/dist/commands/chunk-JV24VP2O.js +0 -81
  1038. package/dist/commands/chunk-JVKXJ763.js +0 -45
  1039. package/dist/commands/chunk-K275REYP.js +0 -37
  1040. package/dist/commands/chunk-K4G3HOKS.js +0 -105
  1041. package/dist/commands/chunk-K64EIHD2.js +0 -138
  1042. package/dist/commands/chunk-KB3OQWDT.js +0 -71
  1043. package/dist/commands/chunk-KCFOP5RI.js +0 -1310
  1044. package/dist/commands/chunk-KGE4AS2Y.js +0 -134
  1045. package/dist/commands/chunk-KIILCKQR.js +0 -220
  1046. package/dist/commands/chunk-KK2SL42W.js +0 -241
  1047. package/dist/commands/chunk-KKIMVXAP.js +0 -280
  1048. package/dist/commands/chunk-KODXWMBX.js +0 -77
  1049. package/dist/commands/chunk-KPSKWTOS.js +0 -208
  1050. package/dist/commands/chunk-KVHNQHX3.js +0 -100
  1051. package/dist/commands/chunk-KWYQR5MK.js +0 -269
  1052. package/dist/commands/chunk-KXHXMERX.js +0 -214
  1053. package/dist/commands/chunk-KZ5BBBMO.js +0 -271
  1054. package/dist/commands/chunk-KZ7HD37E.js +0 -121
  1055. package/dist/commands/chunk-KZSM5M5P.js +0 -89
  1056. package/dist/commands/chunk-KZZWPUJW.js +0 -25
  1057. package/dist/commands/chunk-L7DAL54N.js +0 -347
  1058. package/dist/commands/chunk-LAR76BFA.js +0 -114
  1059. package/dist/commands/chunk-LB557AHJ.js +0 -192
  1060. package/dist/commands/chunk-LJXKVLYI.js +0 -229
  1061. package/dist/commands/chunk-LOOFYHUM.js +0 -773
  1062. package/dist/commands/chunk-LQXFVZTS.js +0 -13
  1063. package/dist/commands/chunk-LT7QSHR4.js +0 -995
  1064. package/dist/commands/chunk-LUXWDMKI.js +0 -426
  1065. package/dist/commands/chunk-LWAXXZPS.js +0 -118
  1066. package/dist/commands/chunk-LX7TIEMI.js +0 -1612
  1067. package/dist/commands/chunk-LZ5QXE5N.js +0 -244
  1068. package/dist/commands/chunk-LZPPSOTP.js +0 -122
  1069. package/dist/commands/chunk-M4UV3BEV.js +0 -313
  1070. package/dist/commands/chunk-M6JDU5EK.js +0 -133
  1071. package/dist/commands/chunk-MDLOETXL.js +0 -211
  1072. package/dist/commands/chunk-MFBNNTBM.js +0 -44
  1073. package/dist/commands/chunk-MGF64OHV.js +0 -32
  1074. package/dist/commands/chunk-MI2OS6TL.js +0 -132
  1075. package/dist/commands/chunk-MLW4S35K.js +0 -389
  1076. package/dist/commands/chunk-MN425CU6.js +0 -63
  1077. package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
  1078. package/dist/commands/chunk-MRORPFSO.js +0 -402
  1079. package/dist/commands/chunk-MUGTOJUL.js +0 -319
  1080. package/dist/commands/chunk-MVHPRYHE.js +0 -91
  1081. package/dist/commands/chunk-MWO6FOSZ.js +0 -393
  1082. package/dist/commands/chunk-MXC4IBZ7.js +0 -104
  1083. package/dist/commands/chunk-N7QTMTST.js +0 -210
  1084. package/dist/commands/chunk-NDBX7LSS.js +0 -32
  1085. package/dist/commands/chunk-NEGJ77RV.js +0 -173
  1086. package/dist/commands/chunk-NEGRE5VW.js +0 -101
  1087. package/dist/commands/chunk-NFPD2P3V.js +0 -53
  1088. package/dist/commands/chunk-NHIW7JE6.js +0 -335
  1089. package/dist/commands/chunk-NILSN7A4.js +0 -158
  1090. package/dist/commands/chunk-NOLFSPOB.js +0 -74
  1091. package/dist/commands/chunk-NSAVEXVR.js +0 -353
  1092. package/dist/commands/chunk-NT67QTZO.js +0 -65
  1093. package/dist/commands/chunk-NU7W6QGT.js +0 -155
  1094. package/dist/commands/chunk-NYWGJLBU.js +0 -19
  1095. package/dist/commands/chunk-OAAVY2JK.js +0 -49
  1096. package/dist/commands/chunk-OGS2DK7I.js +0 -47
  1097. package/dist/commands/chunk-OHNP3QL2.js +0 -186
  1098. package/dist/commands/chunk-OIPV3PWW.js +0 -870
  1099. package/dist/commands/chunk-OIX2363L.js +0 -16
  1100. package/dist/commands/chunk-OJ65BZBV.js +0 -646
  1101. package/dist/commands/chunk-OKZWEVR4.js +0 -352
  1102. package/dist/commands/chunk-OL6IF4JC.js +0 -20
  1103. package/dist/commands/chunk-OMPRILFH.js +0 -29
  1104. package/dist/commands/chunk-OOWGH2RG.js +0 -85
  1105. package/dist/commands/chunk-OP2RFVLS.js +0 -102
  1106. package/dist/commands/chunk-ORKVN2LO.js +0 -56
  1107. package/dist/commands/chunk-OSBWXZJ4.js +0 -492
  1108. package/dist/commands/chunk-OT3UMEWK.js +0 -47
  1109. package/dist/commands/chunk-OVWPZDWP.js +0 -64
  1110. package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
  1111. package/dist/commands/chunk-OX3VQLV2.js +0 -488
  1112. package/dist/commands/chunk-OZJP77UM.js +0 -103
  1113. package/dist/commands/chunk-OZZWRJQI.js +0 -246
  1114. package/dist/commands/chunk-P3H3DKTE.js +0 -69
  1115. package/dist/commands/chunk-P4D5RESF.js +0 -88
  1116. package/dist/commands/chunk-P4KIQRSL.js +0 -119
  1117. package/dist/commands/chunk-P5SOYWH2.js +0 -37
  1118. package/dist/commands/chunk-P7FPXAHP.js +0 -29
  1119. package/dist/commands/chunk-PE7B7242.js +0 -84
  1120. package/dist/commands/chunk-PFO7EYAP.js +0 -45
  1121. package/dist/commands/chunk-PHLOTUB7.js +0 -366
  1122. package/dist/commands/chunk-PTNQCCIB.js +0 -41
  1123. package/dist/commands/chunk-PTZEFQUX.js +0 -211
  1124. package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
  1125. package/dist/commands/chunk-Q7EEIOAD.js +0 -120
  1126. package/dist/commands/chunk-QABRNGQV.js +0 -88
  1127. package/dist/commands/chunk-QAHFPCFR.js +0 -50
  1128. package/dist/commands/chunk-QDFVVRQP.js +0 -92
  1129. package/dist/commands/chunk-QGAERR7D.js +0 -99
  1130. package/dist/commands/chunk-QHWJJ6X5.js +0 -53
  1131. package/dist/commands/chunk-QJRVDE7T.js +0 -307
  1132. package/dist/commands/chunk-QMDKDQKW.js +0 -114
  1133. package/dist/commands/chunk-QOSC5RKD.js +0 -18
  1134. package/dist/commands/chunk-QQ4CIYMF.js +0 -132
  1135. package/dist/commands/chunk-QV5FKMOU.js +0 -80
  1136. package/dist/commands/chunk-QWWTC3XR.js +0 -109
  1137. package/dist/commands/chunk-QXQ56E56.js +0 -27
  1138. package/dist/commands/chunk-R54Z2Z3X.js +0 -114
  1139. package/dist/commands/chunk-R6QE5VJG.js +0 -46
  1140. package/dist/commands/chunk-RG53UFNW.js +0 -418
  1141. package/dist/commands/chunk-RGGEQM6G.js +0 -140
  1142. package/dist/commands/chunk-RH6ZWJOA.js +0 -77
  1143. package/dist/commands/chunk-RHKCWJQX.js +0 -62
  1144. package/dist/commands/chunk-RKIAX4DZ.js +0 -191
  1145. package/dist/commands/chunk-RLBFEHHC.js +0 -300
  1146. package/dist/commands/chunk-RN2YDNLF.js +0 -229
  1147. package/dist/commands/chunk-RRAIRS2T.js +0 -54
  1148. package/dist/commands/chunk-RS764ZMU.js +0 -46
  1149. package/dist/commands/chunk-RUIBQMOV.js +0 -38
  1150. package/dist/commands/chunk-RUQY5TS3.js +0 -83
  1151. package/dist/commands/chunk-RVUJ6F5L.js +0 -181
  1152. package/dist/commands/chunk-RW64VHEB.js +0 -130
  1153. package/dist/commands/chunk-RXYMJPJB.js +0 -114
  1154. package/dist/commands/chunk-S4M6UWR2.js +0 -103
  1155. package/dist/commands/chunk-SASX3W2M.js +0 -99
  1156. package/dist/commands/chunk-SFNBUB6D.js +0 -110
  1157. package/dist/commands/chunk-SJ2ZN575.js +0 -90
  1158. package/dist/commands/chunk-SP7DKYGU.js +0 -1263
  1159. package/dist/commands/chunk-SSL6A3Y4.js +0 -165
  1160. package/dist/commands/chunk-SVAKCXZ7.js +0 -44
  1161. package/dist/commands/chunk-SYOXIKB7.js +0 -705
  1162. package/dist/commands/chunk-SZG5HDNP.js +0 -321
  1163. package/dist/commands/chunk-T25S4QHL.js +0 -52
  1164. package/dist/commands/chunk-T4F33UKZ.js +0 -114
  1165. package/dist/commands/chunk-T4UYEHWG.js +0 -50
  1166. package/dist/commands/chunk-TAEGXID2.js +0 -58
  1167. package/dist/commands/chunk-TCBUX52E.js +0 -701
  1168. package/dist/commands/chunk-TEPYEUYG.js +0 -585
  1169. package/dist/commands/chunk-TFLHYC2F.js +0 -141
  1170. package/dist/commands/chunk-TJKM56WJ.js +0 -109
  1171. package/dist/commands/chunk-TLAB552K.js +0 -445
  1172. package/dist/commands/chunk-TP6L4W3W.js +0 -82
  1173. package/dist/commands/chunk-TR7WWYD5.js +0 -60
  1174. package/dist/commands/chunk-TVZXG4Y4.js +0 -197
  1175. package/dist/commands/chunk-TYNH2R66.js +0 -1150
  1176. package/dist/commands/chunk-U3IVVR4W.js +0 -33
  1177. package/dist/commands/chunk-U5P6G3UV.js +0 -77
  1178. package/dist/commands/chunk-U7XU5RG3.js +0 -86
  1179. package/dist/commands/chunk-UKBBWMLE.js +0 -1189
  1180. package/dist/commands/chunk-ULVVGGTY.js +0 -64
  1181. package/dist/commands/chunk-UNMSZGSG.js +0 -269
  1182. package/dist/commands/chunk-URDT2O2K.js +0 -36
  1183. package/dist/commands/chunk-UTHUX7VU.js +0 -88
  1184. package/dist/commands/chunk-V4Z7G4UH.js +0 -73
  1185. package/dist/commands/chunk-V5FD7DVV.js +0 -48
  1186. package/dist/commands/chunk-VCPGFBMN.js +0 -655
  1187. package/dist/commands/chunk-VGPIQNDB.js +0 -24
  1188. package/dist/commands/chunk-VJE3RJAX.js +0 -23
  1189. package/dist/commands/chunk-VK6D5CWA.js +0 -161
  1190. package/dist/commands/chunk-VOF3N4WO.js +0 -114
  1191. package/dist/commands/chunk-VQVPAVQ3.js +0 -45
  1192. package/dist/commands/chunk-VV4TQYGD.js +0 -38
  1193. package/dist/commands/chunk-W3FX7FYN.js +0 -84
  1194. package/dist/commands/chunk-W7DRUOF7.js +0 -122
  1195. package/dist/commands/chunk-WAEN2RTT.js +0 -161
  1196. package/dist/commands/chunk-WCEUMOKK.js +0 -84
  1197. package/dist/commands/chunk-WJ4NEDNI.js +0 -288
  1198. package/dist/commands/chunk-WMMGXJXP.js +0 -92
  1199. package/dist/commands/chunk-WOFLW2LX.js +0 -26
  1200. package/dist/commands/chunk-WTH6NTXU.js +0 -128
  1201. package/dist/commands/chunk-WWVYEHQT.js +0 -272
  1202. package/dist/commands/chunk-X3TNPALI.js +0 -213
  1203. package/dist/commands/chunk-XC6GG5JR.js +0 -78
  1204. package/dist/commands/chunk-XDF25GSU.js +0 -536
  1205. package/dist/commands/chunk-XFPEUYDV.js +0 -67
  1206. package/dist/commands/chunk-XFWI6WHH.js +0 -60
  1207. package/dist/commands/chunk-XGMRAKSL.js +0 -85
  1208. package/dist/commands/chunk-XHGWMD3L.js +0 -104
  1209. package/dist/commands/chunk-XKSUBUIH.js +0 -116
  1210. package/dist/commands/chunk-XPBF5DG3.js +0 -419
  1211. package/dist/commands/chunk-XUMYPESL.js +0 -160
  1212. package/dist/commands/chunk-XXC32PVL.js +0 -541
  1213. package/dist/commands/chunk-XXN2EZBY.js +0 -133
  1214. package/dist/commands/chunk-XXNEY4B3.js +0 -110
  1215. package/dist/commands/chunk-Y27PTXXI.js +0 -258
  1216. package/dist/commands/chunk-Y4EBUI6M.js +0 -237
  1217. package/dist/commands/chunk-YAU3LYNF.js +0 -60
  1218. package/dist/commands/chunk-YDURQICF.js +0 -204
  1219. package/dist/commands/chunk-YGFOGA7C.js +0 -1153
  1220. package/dist/commands/chunk-YHJ2AJMA.js +0 -66
  1221. package/dist/commands/chunk-YIA6FC3K.js +0 -78
  1222. package/dist/commands/chunk-YM77CF4D.js +0 -183
  1223. package/dist/commands/chunk-YNPRJCEO.js +0 -81
  1224. package/dist/commands/chunk-YTBQAD5W.js +0 -170
  1225. package/dist/commands/chunk-YVH2OLDS.js +0 -104
  1226. package/dist/commands/chunk-ZAAHZY2A.js +0 -19
  1227. package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
  1228. package/dist/commands/chunk-ZLRUHSOP.js +0 -48
  1229. package/dist/commands/chunk-ZNR75OXP.js +0 -444
  1230. package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
  1231. package/dist/commands/chunk-ZVAIIHBE.js +0 -63
  1232. package/dist/commands/chunk-ZYFHYQA7.js +0 -51
  1233. package/dist/commands/chunk-ZZFFSQF4.js +0 -218
  1234. package/dist/commands/chunk-ZZULXNC2.js +0 -47
  1235. package/dist/commands/chunk-ZZXO6TFH.js +0 -232
  1236. package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
  1237. package/dist/commands/test-related-ZCNC46MS.js +0 -113
  1238. package/dist/commands/unused-members-STULPRBU.js +0 -331
  1239. package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
  1240. package/dist/hooks/chunk-5R5YFQR5.js +0 -931
  1241. package/dist/hooks/chunk-6RLY27FT.js +0 -232
  1242. package/dist/hooks/chunk-6YGMIODI.js +0 -86
  1243. package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
  1244. package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
  1245. package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
  1246. package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
  1247. package/dist/hooks/chunk-IURJANNZ.js +0 -1082
  1248. package/dist/hooks/chunk-OV22V63P.js +0 -10980
  1249. package/dist/hooks/chunk-SXABK6UV.js +0 -321
  1250. package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
@@ -1,1150 +0,0 @@
1
- import {
2
- lane_capacity
3
- } from "./chunk-EFDVE5P5.js";
4
- import {
5
- epic_triage
6
- } from "./chunk-VQRT32JB.js";
7
- import {
8
- lane_spent
9
- } from "./chunk-77BIN247.js";
10
- import {
11
- epic_label_age
12
- } from "./chunk-ANUTT56I.js";
13
- import {
14
- epic_cross_repo,
15
- epic_fetch
16
- } from "./chunk-OX3VQLV2.js";
17
- import {
18
- issue_not_before
19
- } from "./chunk-FKZ5E4JD.js";
20
- import {
21
- epic_issue
22
- } from "./chunk-IAD4WLLI.js";
23
- import {
24
- issue_rank
25
- } from "./chunk-HLKAFSN4.js";
26
- import {
27
- size_estimate
28
- } from "./chunk-FDS65XOJ.js";
29
- import {
30
- expected_effect_lint
31
- } from "./chunk-XZQWEVR3.js";
32
- import {
33
- issue_priority
34
- } from "./chunk-XI2ABCRX.js";
35
- import {
36
- epic_parse
37
- } from "./chunk-VDGNXSP3.js";
38
- import {
39
- epic_graph
40
- } from "./chunk-3RIQ36LH.js";
41
- import {
42
- epic_busy
43
- } from "./chunk-QABRNGQV.js";
44
- import {
45
- git_gh_command
46
- } from "./chunk-YGFOGA7C.js";
47
- import {
48
- lane_await
49
- } from "./chunk-IB5TT73I.js";
50
- import {
51
- lane_process_table,
52
- lane_registry,
53
- lane_snapshot_trace
54
- } from "./chunk-452HWOJ7.js";
55
- import {
56
- lane_state
57
- } from "./chunk-ZZXO6TFH.js";
58
- import {
59
- EPIC_LABEL,
60
- IN_PROGRESS_LABEL,
61
- RUN_SOLO_LABEL,
62
- has_any_label,
63
- has_label_name,
64
- has_parked_label
65
- } from "./chunk-QQBMVC5W.js";
66
- import {
67
- issue_citation,
68
- session_cite
69
- } from "./chunk-22DVQCP6.js";
70
- import {
71
- repo_discovery
72
- } from "./chunk-MDKDJF2K.js";
73
- import {
74
- issue_cite
75
- } from "./chunk-HQ2HSZBN.js";
76
- import {
77
- cli_flags
78
- } from "./chunk-2FE3C4PH.js";
79
- import {
80
- error_text
81
- } from "./chunk-CDY4NFQG.js";
82
- import {
83
- PROJECT_ROOT
84
- } from "./chunk-3CCGKX7Y.js";
85
-
86
- // scripts/epic/epic-report.ts
87
- function to_path_field(path) {
88
- return path === void 0 ? {} : { path };
89
- }
90
- function bundle_by_repo(children, paths = /* @__PURE__ */ new Map()) {
91
- const grouped = /* @__PURE__ */ new Map();
92
- for (const child of children) {
93
- const bucket = grouped.get(child.repo) ?? [];
94
- bucket.push(child);
95
- grouped.set(child.repo, bucket);
96
- }
97
- const repos = [];
98
- for (const [repo] of grouped) repos.push(repo);
99
- return repos.toSorted((left, right) => left.localeCompare(right)).map((repo) => ({
100
- repo,
101
- children: grouped.get(repo) ?? [],
102
- ...to_path_field(paths.get(repo.toLowerCase()))
103
- }));
104
- }
105
- function decide_verdict(classification, anomalies) {
106
- if (anomalies > 0) return "error";
107
- if (classification.runnable.length > 0) return "run";
108
- if (classification.time.length > 0) return "wait";
109
- if (classification.human.length > 0) return "stop";
110
- return "complete";
111
- }
112
- function build_result(classification, anomalies, paths = /* @__PURE__ */ new Map()) {
113
- const verdict = decide_verdict(classification, anomalies.length);
114
- return {
115
- verdict,
116
- candidates: verdict === "error" ? [] : bundle_by_repo(classification.runnable, paths),
117
- waiting: classification.time,
118
- blocked_on_people: classification.human,
119
- anomalies
120
- };
121
- }
122
- function candidates_for_repo(result, repo) {
123
- return result.candidates.find((bundle) => bundle.repo === repo)?.children ?? [];
124
- }
125
- function format_bundle_heading(bundle) {
126
- return ` ${bundle.repo} ${bundle.path ?? "(no local checkout)"}`;
127
- }
128
- function format_child(child, current_repo) {
129
- return ` ${epic_graph.format_reference(child, current_repo)}`;
130
- }
131
- function format_group(label, children, current_repo) {
132
- if (children.length === 0) return [];
133
- return [label, ...children.map((child) => format_child(child, current_repo))];
134
- }
135
- var VERDICT_LINES = {
136
- run: "Runnable children (each takes a free lane in its repository):",
137
- wait: "Nothing is runnable yet, but these resolve on their own \u2014 wait and ask again:",
138
- stop: "Nothing will resolve on its own. These need a person:",
139
- complete: "Every child is closed; the epic is complete.",
140
- error: "The dependency graph is unusable:"
141
- };
142
- function format_result(result, current_repo) {
143
- if (result.verdict === "error") {
144
- return [VERDICT_LINES.error, ...result.anomalies.map((anomaly) => anomaly.message)].join("\n");
145
- }
146
- const lines = [VERDICT_LINES[result.verdict]];
147
- for (const bundle of result.candidates) {
148
- lines.push(
149
- format_bundle_heading(bundle),
150
- ...bundle.children.map((child) => format_child(child, current_repo))
151
- );
152
- }
153
- lines.push(
154
- ...format_group(" Waiting on time:", result.waiting, current_repo),
155
- ...format_group(" Waiting on a person:", result.blocked_on_people, current_repo)
156
- );
157
- return lines.join("\n");
158
- }
159
- var epic_report = {
160
- bundle_by_repo,
161
- format_bundle_heading,
162
- decide_verdict,
163
- build_result,
164
- candidates_for_repo,
165
- format_result
166
- };
167
-
168
- // scripts/epic/epic-nested.ts
169
- function is_nested_epic(child) {
170
- return has_label_name(child.labels, EPIC_LABEL);
171
- }
172
- var epic_nested = {
173
- is_nested_epic
174
- };
175
-
176
- // scripts/epic/epic-outside-blocker.ts
177
- var NOTICE_ICON = "\u2757";
178
- var CLOSED = "CLOSED";
179
- function name_of(child) {
180
- return session_cite.issue(child.number, void 0, child.repo);
181
- }
182
- function as_closed_child(reference) {
183
- return {
184
- number: reference.number,
185
- repo: reference.repo,
186
- state: CLOSED,
187
- labels: [],
188
- blocked_by: []
189
- };
190
- }
191
- function unread_answer(child, reference) {
192
- const blocker = epic_graph.key_of(reference);
193
- return {
194
- category: "time",
195
- notice: {
196
- key: `unread:${epic_graph.key_of(child)}:${blocker}`,
197
- message: `${NOTICE_ICON} ${name_of(child)} is blocked by ${blocker}, whose state could not be read \u2014 it waits rather than runs`
198
- }
199
- };
200
- }
201
- function open_answer(child, reference, running) {
202
- if (running.has(epic_graph.blocker_key(reference))) return { category: "time" };
203
- const blocker = epic_graph.key_of(reference);
204
- return {
205
- category: "human",
206
- notice: {
207
- key: `outside:${epic_graph.key_of(child)}:${blocker}`,
208
- message: `${NOTICE_ICON} ${name_of(child)} waits on ${blocker}, which this run will not finish \u2014 withheld for a person`
209
- }
210
- };
211
- }
212
- function closed_category(verdict) {
213
- if (verdict === "resolved") return void 0;
214
- return verdict === "human" ? "human" : "time";
215
- }
216
- function outside_category(child, reference, resolve, running) {
217
- if (reference.state === void 0) return unread_answer(child, reference);
218
- if (reference.state !== CLOSED) return open_answer(child, reference, running);
219
- return { category: closed_category(resolve(as_closed_child(reference), child)) };
220
- }
221
- function running_keys(issues) {
222
- return new Set(issues.map((issue) => epic_graph.key_of(issue)));
223
- }
224
- var epic_outside_blocker = { outside_category, running_keys };
225
-
226
- // scripts/epic/epic-classify.ts
227
- var CLOSED2 = "CLOSED";
228
- function resolve_by_state(blocker) {
229
- return blocker.state === CLOSED2 ? "resolved" : "inherit";
230
- }
231
- function has_label(child, label) {
232
- return has_label_name(child.labels, label);
233
- }
234
- function has_human_label(child) {
235
- return has_parked_label(child.labels);
236
- }
237
- function is_waiting(child) {
238
- return has_label(child, IN_PROGRESS_LABEL) || !issue_not_before.is_due(child.body);
239
- }
240
- function local_category(child) {
241
- if (child.state === CLOSED2) return "done";
242
- if (epic_nested.is_nested_epic(child) || has_human_label(child)) return "human";
243
- if (is_waiting(child)) return "time";
244
- return void 0;
245
- }
246
- function inherited_category(blocker_category) {
247
- return blocker_category === "human" ? "human" : "time";
248
- }
249
- function dependency_category(verdict, blocker_category) {
250
- if (verdict === "resolved") return void 0;
251
- if (verdict === "inherit") return inherited_category(blocker_category);
252
- return verdict;
253
- }
254
- var reported = /* @__PURE__ */ new Set();
255
- function reset_reported() {
256
- reported.clear();
257
- }
258
- var silence = { is_muted: false };
259
- function mute_notices() {
260
- silence.is_muted = true;
261
- }
262
- function report_notice(notice) {
263
- if (silence.is_muted || reported.has(notice.key)) return;
264
- reported.add(notice.key);
265
- console.warn(notice.message);
266
- }
267
- function outside_category2(child, reference, context) {
268
- const answer = epic_outside_blocker.outside_category(
269
- child,
270
- reference,
271
- context.resolve,
272
- context.running
273
- );
274
- if (answer.notice !== void 0) report_notice(answer.notice);
275
- return answer.category;
276
- }
277
- function report_nested_epic(child) {
278
- const line = `epic:${epic_graph.key_of(child)}`;
279
- if (reported.has(line)) return;
280
- reported.add(line);
281
- console.warn(
282
- `\u26A0 ${epic_graph.key_of(child)} is itself an epic \u2014 a run cannot implement one, so it is withheld rather than offered`
283
- );
284
- }
285
- function report_nested_epics(children) {
286
- for (const child of children) {
287
- if (child.state !== CLOSED2 && epic_nested.is_nested_epic(child)) report_nested_epic(child);
288
- }
289
- }
290
- function relation_category(child, blocker_reference, context) {
291
- const blocker = context.index.get(epic_graph.blocker_key(blocker_reference));
292
- if (blocker === void 0) return outside_category2(child, blocker_reference, context);
293
- return dependency_category(
294
- context.resolve(blocker, child),
295
- context.memo.get(epic_graph.key_of(blocker)) ?? "time"
296
- );
297
- }
298
- function blocker_categories(child, context) {
299
- return child.blocked_by.map((blocker) => relation_category(child, blocker, context)).filter((category) => category !== void 0);
300
- }
301
- function from_blockers(categories) {
302
- if (categories.includes("human")) return "human";
303
- return categories.length > 0 ? "time" : "runnable";
304
- }
305
- function compute_category(child, context) {
306
- return local_category(child) ?? from_blockers(blocker_categories(child, context));
307
- }
308
- function is_ready(node, context) {
309
- return epic_graph.blockers_of(context.index, node).every((blocker) => !context.index.has(blocker) || context.memo.has(blocker));
310
- }
311
- function fill_memo(children, context) {
312
- const pending = new Set(children.map((child) => epic_graph.key_of(child)));
313
- function peel() {
314
- const ready = [...pending].filter((node) => is_ready(node, context));
315
- for (const node of ready) {
316
- const child = context.index.get(node);
317
- if (child !== void 0) context.memo.set(node, compute_category(child, context));
318
- pending.delete(node);
319
- }
320
- return ready.length;
321
- }
322
- while (peel() > 0) {
323
- }
324
- for (const node of pending) context.memo.set(node, "time");
325
- }
326
- function new_context(children, resolve = resolve_by_state, running = epic_outside_blocker.running_keys(children)) {
327
- return {
328
- index: epic_graph.index_children(children),
329
- resolve,
330
- memo: /* @__PURE__ */ new Map(),
331
- running
332
- };
333
- }
334
- function classify_children(children, resolve, running) {
335
- const context = new_context(children, resolve, running);
336
- const buckets = {
337
- runnable: [],
338
- time: [],
339
- human: []
340
- };
341
- fill_memo(children, context);
342
- report_nested_epics(children);
343
- for (const child of children) {
344
- const category = context.memo.get(epic_graph.key_of(child)) ?? "time";
345
- if (category !== "done") buckets[category].push(child);
346
- }
347
- return buckets;
348
- }
349
- var epic_classify = {
350
- resolve_by_state,
351
- mute_notices,
352
- reset_reported,
353
- local_category,
354
- classify_children
355
- };
356
-
357
- // scripts/epic/epic-candidate-confirm.ts
358
- var NO_ANOMALIES = 0;
359
- var NO_LANES = 0;
360
- var ONE_LANE = 1;
361
- function is_same_blockers(left, right) {
362
- function sorted(blockers) {
363
- return blockers.map((blocker) => epic_graph.key_of(blocker)).toSorted((first, second) => first.localeCompare(second)).join(",");
364
- }
365
- return sorted(left) === sorted(right);
366
- }
367
- function with_blockers(children, target, blocked_by) {
368
- const key = epic_graph.key_of(target);
369
- return children.map(
370
- (child) => epic_graph.key_of(child) === key ? { ...child, blocked_by } : child
371
- );
372
- }
373
- function is_still_runnable(child, children, context) {
374
- const key = epic_graph.key_of(child);
375
- return epic_classify.classify_children(children, context.resolve, context.running).runnable.some((candidate) => epic_graph.key_of(candidate) === key);
376
- }
377
- async function read_or_withhold(candidate, read_blockers) {
378
- try {
379
- return await read_blockers(candidate);
380
- } catch (error) {
381
- const reason = error_text.message_of(error);
382
- console.warn(
383
- `\u26A0 could not confirm the blockers of ${session_cite.issue(candidate.number, void 0, candidate.repo)}: ${reason}
384
- it is withheld rather than offered; asking again is what resolves this`
385
- );
386
- return void 0;
387
- }
388
- }
389
- function warn_withheld(candidate, listed) {
390
- const named = listed.map((blocker) => epic_graph.key_of(blocker)).join(", ");
391
- console.warn(
392
- `\u26A0 ${session_cite.issue(candidate.number, void 0, candidate.repo)} is withheld: its relations listing names ${named}, which the dependency summary it was classified from did not count`
393
- );
394
- }
395
- function untracked_blockers(listed, children) {
396
- const index = epic_graph.index_children(children);
397
- return listed.filter((blocker) => !index.has(epic_graph.blocker_key(blocker)));
398
- }
399
- function warn_untracked(candidate, untracked) {
400
- const named = untracked.map((blocker) => epic_graph.key_of(blocker)).join(", ");
401
- console.warn(
402
- `\u26A0 ${session_cite.issue(candidate.number, void 0, candidate.repo)} is offered although its relations listing names ${named}: this epic does not track those, and every one of them is already finished`
403
- );
404
- }
405
- function warn_recovered(candidate, listed, children, is_confirmed) {
406
- if (!is_confirmed) {
407
- warn_withheld(candidate, listed);
408
- return;
409
- }
410
- const untracked = untracked_blockers(listed, children);
411
- if (untracked.length > 0) warn_untracked(candidate, untracked);
412
- }
413
- async function confirm_one(candidate, context) {
414
- const listed = await read_or_withhold(candidate, context.read_blockers);
415
- if (listed === void 0) return { is_confirmed: false, children: context.children };
416
- if (is_same_blockers(candidate.blocked_by, listed)) {
417
- return { is_confirmed: true, children: context.children };
418
- }
419
- const children = with_blockers(context.children, candidate, listed);
420
- const is_confirmed = is_still_runnable(candidate, children, context);
421
- warn_recovered(candidate, listed, children, is_confirmed);
422
- return { is_confirmed, children };
423
- }
424
- async function confirm_candidates(candidates, context, wanted) {
425
- const [candidate, ...rest] = candidates;
426
- if (candidate === void 0 || wanted <= NO_LANES) {
427
- return { children: context.children, confirmed: [] };
428
- }
429
- const verdict = await confirm_one(candidate, context);
430
- const taken = verdict.is_confirmed ? [candidate] : [];
431
- const next = { ...context, children: verdict.children };
432
- const walk = await confirm_candidates(rest, next, wanted - taken.length);
433
- return { children: walk.children, confirmed: [...taken, ...walk.confirmed] };
434
- }
435
- function withheld_verdict(children, context) {
436
- return epic_report.decide_verdict(
437
- epic_classify.classify_children(children, context.resolve, context.running),
438
- NO_ANOMALIES
439
- );
440
- }
441
- async function answer_for_repo(candidates, context, wanted = ONE_LANE) {
442
- const outcome = await confirm_candidates(candidates, context, wanted);
443
- if (outcome.confirmed.length > NO_LANES) return { children: outcome.confirmed, verdict: "run" };
444
- return { children: [], verdict: withheld_verdict(outcome.children, context) };
445
- }
446
- var epic_candidate_confirm = {
447
- is_same_blockers,
448
- answer_for_repo
449
- };
450
-
451
- // scripts/backlog/backlog-occupied.ts
452
- function is_never_merge_waiting() {
453
- return false;
454
- }
455
- function occupied_lanes(lanes, idle, records, is_merge_waiting = is_never_merge_waiting) {
456
- const live = lanes.filter((lane) => !lane.is_stranded);
457
- const idle_issues = new Set(idle(live));
458
- return live.filter((lane) => {
459
- const state = records.get(lane.issue)?.state;
460
- return !idle_issues.has(lane.issue) && state !== "paused" && !is_merge_waiting(lane.issue);
461
- });
462
- }
463
- function unknown_lanes(lanes, records) {
464
- return lanes.filter((lane) => !lane.is_stranded && !records.has(lane.issue)).map((lane) => lane.issue);
465
- }
466
- var backlog_occupied = { occupied_lanes, unknown_lanes };
467
-
468
- // scripts/lane/lane-room.ts
469
- async function occupancy_of(open, table) {
470
- const rows = await table();
471
- const issues = open.map((lane) => lane.issue);
472
- const trace = { process_trace: await lane_snapshot_trace.traces_of(issues, rows) };
473
- const records = await lane_state.read_states(issues);
474
- const is_merge_waiting = await lane_snapshot_trace.merge_waits_of(issues, rows);
475
- const occupied = backlog_occupied.occupied_lanes(
476
- open,
477
- (live) => lane_spent.idle_lanes(live, trace),
478
- records,
479
- is_merge_waiting
480
- );
481
- const unknown = backlog_occupied.unknown_lanes(open, records);
482
- return { occupied, idle: lane_spent.idle_lanes(open, trace), unknown };
483
- }
484
- async function read(lanes, table = lane_process_table.read_table) {
485
- const open = lanes ?? await lane_registry.list_lanes();
486
- const occupancy = await occupancy_of(open, table);
487
- const seated = lane_registry.used_seats(open).length;
488
- const use = { occupied: occupancy.occupied.length, seated, unknown: occupancy.unknown };
489
- return { ...occupancy, use };
490
- }
491
- var lane_room = { read };
492
-
493
- // scripts/epic/epic-lane-occupancy.ts
494
- var SOLO_LABELS = /* @__PURE__ */ new Set([RUN_SOLO_LABEL]);
495
- function is_local(issue, lanes) {
496
- return lanes.some((lane) => lane.issue === String(issue.number));
497
- }
498
- function confirmed_stopped(lanes, room) {
499
- const occupied = new Set(room.occupied.map((lane) => lane.issue));
500
- return new Set(
501
- lanes.filter((lane) => !lane.seat_held && lane.seat_problem === void 0).map((lane) => lane.issue).filter(
502
- (issue) => room.idle.includes(issue) && !room.unknown.includes(issue) && !occupied.has(issue)
503
- )
504
- );
505
- }
506
- function reconcile(issues, lanes, room) {
507
- const stopped = confirmed_stopped(lanes, room);
508
- const holders = issues.filter(
509
- (issue) => has_any_label(issue.labels, SOLO_LABELS) || !stopped.has(String(issue.number))
510
- );
511
- const remote = holders.filter((issue) => !is_local(issue, lanes)).length;
512
- const occupied = new Set(room.occupied.map((lane) => lane.issue));
513
- const unknown = holders.filter(
514
- (issue) => room.unknown.includes(String(issue.number)) && !occupied.has(String(issue.number))
515
- ).length;
516
- const use = {
517
- ...room.use,
518
- occupied: room.use.occupied + remote + unknown,
519
- seated: room.use.seated + remote
520
- };
521
- return { read: holders.length > 0 ? { kind: "busy", issues: holders } : { kind: "idle" }, use };
522
- }
523
- async function read2(reading, is_this_checkout) {
524
- if (!is_this_checkout || reading.kind !== "busy") return { read: reading };
525
- try {
526
- const lanes = await lane_registry.list_lanes();
527
- if (reading.issues.every((issue) => !is_local(issue, lanes))) return { read: reading };
528
- return reconcile(reading.issues, lanes, await lane_room.read(lanes));
529
- } catch {
530
- return { read: reading };
531
- }
532
- }
533
- var epic_lane_occupancy = { read: read2 };
534
-
535
- // scripts/epic/epic-rank.ts
536
- var CLOSED3 = "CLOSED";
537
- function dependents_of(pool) {
538
- return issue_rank.count_dependents(
539
- pool.filter((child) => child.state !== CLOSED3).map((child) => ({
540
- key: epic_graph.key_of(child),
541
- blockers: child.blocked_by.map((blocker) => epic_graph.blocker_key(blocker))
542
- }))
543
- );
544
- }
545
- function rank(children, pool) {
546
- const dependents = dependents_of(pool);
547
- return issue_rank.rank(children, (child) => ({
548
- is_resumable: child.is_resumable,
549
- is_last: issue_priority.is_last(child.body),
550
- labels: child.labels,
551
- lost_minutes: issue_priority.lost_minutes(child.body),
552
- gain_minutes: expected_effect_lint.weekly_minutes(child.body),
553
- dependents: dependents.get(epic_graph.key_of(child)) ?? 0,
554
- estimated_lines: size_estimate.declared_size(child.body ?? "")?.lines
555
- }));
556
- }
557
- var epic_rank = { rank };
558
-
559
- // scripts/epic/epic-solo.ts
560
- function is_solo(child) {
561
- return has_label_name(child.labels, RUN_SOLO_LABEL);
562
- }
563
- function holder_of(running) {
564
- return running.find((issue) => is_solo(issue))?.number;
565
- }
566
- function solo_holder(read3) {
567
- if (read3.kind !== "busy") return void 0;
568
- const running = read3.issues.map((issue) => ({
569
- number: issue.number,
570
- labels: (issue.labels ?? []).map((label) => label.name)
571
- }));
572
- return holder_of(running);
573
- }
574
- var HELD_MARK = `carries \`${RUN_SOLO_LABEL}\` and is running in`;
575
- var WAITING_MARK = `carries \`${RUN_SOLO_LABEL}\` and waits for`;
576
- function held_message(holder, repo) {
577
- return issue_citation.linkify(
578
- `${issue_cite.plain_for("linked", holder)} ${HELD_MARK} ${repo}; nothing else starts until it merges or is parked.`,
579
- repo
580
- );
581
- }
582
- function waiting_message(solo, repo) {
583
- return issue_citation.linkify(
584
- `${issue_cite.plain_for("linked", solo)} ${WAITING_MARK} ${repo}'s running lanes to finish; nothing ranked below it is offered past it.`,
585
- repo
586
- );
587
- }
588
- function is_solo_wait(text) {
589
- return text.includes(HELD_MARK) || text.includes(WAITING_MARK);
590
- }
591
- function first_of(children, keep) {
592
- return { offered: children.slice(0, keep), withheld: children.slice(keep) };
593
- }
594
- function none_of(children, notice) {
595
- return { offered: [], withheld: [...children], notice };
596
- }
597
- function queue_of(children) {
598
- const index = children.findIndex((child) => is_solo(child));
599
- const solo = children[index];
600
- return solo === void 0 ? void 0 : { solo, index, behind: children.slice(index + 1) };
601
- }
602
- function select_candidates(children, read3, repo, occupied) {
603
- const queue = queue_of(children);
604
- if (queue === void 0) return first_of(children, children.length);
605
- if (queue.index > 0) return first_of(children, queue.index);
606
- if (occupied === 0 && read3.kind === "idle") return first_of(children, 1);
607
- return none_of(children, waiting_message(queue.solo.number, repo));
608
- }
609
- function select(children, read3, repo, occupied = epic_busy.occupied_lanes(read3)) {
610
- if (read3.kind === "unreadable" || read3.kind === "truncated") {
611
- return none_of(children, epic_busy.busy_reason(read3, repo, 0));
612
- }
613
- const holder = solo_holder(read3);
614
- if (holder !== void 0) return none_of(children, held_message(holder, repo));
615
- return select_candidates(children, read3, repo, occupied);
616
- }
617
- function withhold(result, repo, selection) {
618
- return {
619
- ...result,
620
- candidates: result.candidates.map(
621
- (bundle) => bundle.repo === repo ? { ...bundle, children: selection.offered } : bundle
622
- ),
623
- waiting: [...result.waiting, ...selection.withheld]
624
- };
625
- }
626
- function gate(result, read3, repo, selector = select) {
627
- if (result.verdict !== "run") return { result };
628
- const selection = selector(epic_report.candidates_for_repo(result, repo), read3, repo);
629
- const gated = withhold(result, repo, selection);
630
- return selection.notice === void 0 ? { result: gated } : { result: gated, notice: selection.notice };
631
- }
632
- var epic_solo = { gate, holder_of, is_solo, is_solo_wait, queue_of, select };
633
-
634
- // scripts/epic/epic-solo-stale.ts
635
- import { setTimeout as sleep } from "node:timers/promises";
636
- var SOLO_LABELS2 = /* @__PURE__ */ new Set([RUN_SOLO_LABEL]);
637
- function is_absent_solo(issue) {
638
- if (!has_any_label(issue.labels, SOLO_LABELS2)) return false;
639
- return !lane_await.is_process_running_default(String(issue.number));
640
- }
641
- async function local_lanes() {
642
- try {
643
- const lanes = await lane_registry.list_lanes();
644
- return new Set(lanes.map((lane) => lane.issue));
645
- } catch {
646
- return /* @__PURE__ */ new Set();
647
- }
648
- }
649
- async function settle() {
650
- await sleep(lane_await.RECONFIRM_MS);
651
- }
652
- var io = { local_lanes, settle };
653
- async function find_stale(issues) {
654
- const absent = issues.filter((issue) => is_absent_solo(issue));
655
- if (absent.length === 0) return [];
656
- const lanes = await io.local_lanes();
657
- const dispatched = absent.filter((issue) => lanes.has(String(issue.number)));
658
- if (dispatched.length === 0) return [];
659
- await io.settle();
660
- return dispatched.filter((issue) => is_absent_solo(issue));
661
- }
662
- function stale_message(stale, repo) {
663
- const named = stale.map((issue) => issue_cite.plain_for("linked", issue.number)).join(", ");
664
- return issue_citation.linkify(
665
- `${named} carries \`${RUN_SOLO_LABEL}\` and \`${IN_PROGRESS_LABEL}\`, but no process of it is running in ${repo} \u2014 the \`${IN_PROGRESS_LABEL}\` label is stale, so it does not hold the backlog. Remove the label once you have confirmed nothing is running it.`,
666
- repo
667
- );
668
- }
669
- async function release(read3, repo) {
670
- if (read3.kind !== "busy") return { read: read3 };
671
- const stale = await find_stale(read3.issues);
672
- if (stale.length === 0) return { read: read3 };
673
- const holders = read3.issues.filter((issue) => !stale.includes(issue));
674
- const released = holders.length > 0 ? { kind: "busy", issues: holders } : { kind: "idle" };
675
- return { read: released, notice: stale_message(stale, repo) };
676
- }
677
- var epic_solo_stale = { io, release };
678
-
679
- // scripts/epic/epic-lane-offer.ts
680
- var WAIT_VERDICT = "wait";
681
- var RUN_VERDICT = "run";
682
- var NO_LANES2 = 0;
683
- var ONE_LANE2 = 1;
684
- function is_held(read3) {
685
- return read3.kind === "unreadable" || read3.kind === "truncated";
686
- }
687
- function free_lanes(read3, limit, merge_waiting) {
688
- if (is_held(read3)) return NO_LANES2;
689
- const holders = epic_busy.occupied_lanes(read3);
690
- return lane_capacity.free_lanes(limit, holders - merge_waiting, holders);
691
- }
692
- async function merge_waiting_holders(read3, request) {
693
- if (read3.kind !== "busy" || !request.is_this_checkout) return NO_LANES2;
694
- return await lane_snapshot_trace.count_merge_waiting(
695
- read3.issues.map((issue) => String(issue.number))
696
- );
697
- }
698
- async function room_in(occupancy, request) {
699
- if (occupancy.use !== void 0) {
700
- return lane_capacity.free_lanes(request.limit, occupancy.use.occupied, occupancy.use.seated);
701
- }
702
- return free_lanes(
703
- occupancy.read,
704
- request.limit,
705
- await merge_waiting_holders(occupancy.read, request)
706
- );
707
- }
708
- function wanted_of(request, free) {
709
- return request.is_all_lanes ? free : Math.min(ONE_LANE2, free);
710
- }
711
- function withheld_message(repo) {
712
- return `No runnable child in ${repo}: every candidate was withheld when its blocker relations were confirmed \u2014 the reason for each is above.`;
713
- }
714
- function offered_notice(children, read3, request, ages) {
715
- if (children.length === NO_LANES2) return withheld_message(request.repo);
716
- if (read3.kind !== "busy") return "";
717
- return epic_busy.occupancy_message(read3.issues, request.repo, request.limit, ages);
718
- }
719
- async function holder_ages(read3, repo) {
720
- if (read3.kind !== "busy") return /* @__PURE__ */ new Map();
721
- return await epic_label_age.read_ages(
722
- read3.issues.map((issue) => issue.number),
723
- repo,
724
- /* @__PURE__ */ new Date()
725
- );
726
- }
727
- var VERDICT_PRIORITY = [RUN_VERDICT, WAIT_VERDICT, "stop", "complete"];
728
- function combine_verdicts(left, right) {
729
- return VERDICT_PRIORITY.indexOf(left) <= VERDICT_PRIORITY.indexOf(right) ? left : right;
730
- }
731
- function candidates_in(pool, repo) {
732
- return { ...pool, candidates: pool.candidates.filter((child) => child.repo === repo) };
733
- }
734
- function ranked_in(pool, repo) {
735
- const scoped = candidates_in(pool, repo);
736
- return { ...scoped, candidates: epic_rank.rank(scoped.candidates, pool.context.children) };
737
- }
738
- function unseen_candidates(pool, seen) {
739
- const candidates = [];
740
- for (const child of pool.candidates) {
741
- const key = epic_graph.key_of(child);
742
- if (seen.has(key)) continue;
743
- seen.add(key);
744
- candidates.push(child);
745
- }
746
- return { ...pool, candidates };
747
- }
748
- function dedupe_pools(pools) {
749
- const seen = /* @__PURE__ */ new Set();
750
- return pools.map((pool) => unseen_candidates(pool, seen));
751
- }
752
- async function ask_pool(pool, wanted) {
753
- return await epic_candidate_confirm.answer_for_repo(pool.candidates, pool.context, wanted);
754
- }
755
- async function collect(pools, wanted) {
756
- const children = [];
757
- let verdict = "complete";
758
- for (const pool of pools) {
759
- if (children.length >= wanted) break;
760
- const answer = await ask_pool(pool, wanted - children.length);
761
- children.push(...answer.children);
762
- verdict = combine_verdicts(verdict, answer.verdict);
763
- }
764
- return { children, verdict: children.length > NO_LANES2 ? RUN_VERDICT : verdict };
765
- }
766
- function solo_offer(answer, occupancy, request, ages) {
767
- const { read: read3, use } = occupancy;
768
- const { offered, notice = "" } = epic_solo.select(
769
- answer.children,
770
- read3,
771
- request.repo,
772
- use?.occupied
773
- );
774
- if (offered.length === NO_LANES2 && answer.children.length > NO_LANES2) {
775
- return { children: [], verdict: WAIT_VERDICT, notice };
776
- }
777
- return { ...answer, children: offered, notice: offered_notice(offered, read3, request, ages) };
778
- }
779
- function triage_offer(pools, request) {
780
- if (!request.is_all_lanes) return void 0;
781
- const untriaged = epic_triage.untriaged(
782
- dedupe_pools(pools.map((pool) => candidates_in(pool, request.repo))).flatMap(
783
- (pool) => pool.candidates
784
- )
785
- );
786
- if (untriaged.length === NO_LANES2) return void 0;
787
- return {
788
- children: [],
789
- verdict: epic_triage.TRIAGE_VERDICT,
790
- notice: epic_triage.message(untriaged, request.repo)
791
- };
792
- }
793
- function full_notice(occupancy, request, ages) {
794
- if (occupancy.use === void 0) {
795
- return epic_busy.busy_reason(occupancy.read, request.repo, request.limit, ages);
796
- }
797
- return `${String(occupancy.use.occupied)} of ${String(request.limit)} lanes in use in ${request.repo}; ${String(occupancy.use.seated)} port seats held. No lane is free, so nothing is offered here.`;
798
- }
799
- async function offer_after_triage(pools, request) {
800
- const released = await epic_solo_stale.release(
801
- await epic_busy.read_repository(request.repo),
802
- request.repo
803
- );
804
- if (released.notice !== void 0) console.error(released.notice);
805
- const occupancy = await epic_lane_occupancy.read(released.read, request.is_this_checkout);
806
- const { read: read3 } = occupancy;
807
- const free = await room_in(occupancy, request);
808
- const ages = await holder_ages(read3, request.repo);
809
- if (free === NO_LANES2) {
810
- return {
811
- children: [],
812
- verdict: WAIT_VERDICT,
813
- notice: full_notice(occupancy, request, ages)
814
- };
815
- }
816
- const for_repo = dedupe_pools(pools.map((pool) => ranked_in(pool, request.repo)));
817
- return solo_offer(await collect(for_repo, wanted_of(request, free)), occupancy, request, ages);
818
- }
819
- async function offer_for_repo(pools, request) {
820
- return triage_offer(pools, request) ?? await offer_after_triage(pools, request);
821
- }
822
- function lane_request(asked, limit, current_repo) {
823
- const is_this_checkout = asked.repo.toLowerCase() === current_repo.toLowerCase();
824
- return { ...asked, limit, is_this_checkout };
825
- }
826
- var epic_lane_offer = {
827
- combine_verdicts,
828
- dedupe_pools,
829
- lane_request,
830
- offer_for_repo
831
- };
832
-
833
- // scripts/epic/epic-next-read.ts
834
- var FOREIGN_EPIC = "That epic belongs to another owner; this command only reads our own.";
835
- var NO_CHILDREN = 0;
836
- function epic_repo_of(reference, current_repo) {
837
- const epic_repo = reference.repo ?? current_repo;
838
- const owner = epic_cross_repo.owner_of(current_repo);
839
- return epic_cross_repo.is_same_owner_repo(epic_repo, owner) ? epic_repo : void 0;
840
- }
841
- function childless(reference) {
842
- return `${session_cite.issue(reference.number, void 0, reference.repo)} tracks no children in a task list.`;
843
- }
844
- function unique_references(references, current_repo) {
845
- const seen = /* @__PURE__ */ new Set();
846
- const unique = [];
847
- for (const reference of references) {
848
- const repo = reference.repo ?? current_repo;
849
- const key = epic_graph.key_of({ repo, number: reference.number });
850
- if (seen.has(key)) continue;
851
- seen.add(key);
852
- unique.push(reference);
853
- }
854
- return unique;
855
- }
856
- function is_childless(snapshot) {
857
- if (snapshot.body_failure !== void 0) return false;
858
- return snapshot.child_numbers.length === NO_CHILDREN;
859
- }
860
- async function read_one(reference, current_repo, source) {
861
- const epic_repo = epic_repo_of(reference, current_repo);
862
- if (epic_repo === void 0) return { refusal: FOREIGN_EPIC };
863
- const snapshot = await epic_fetch.fetch_epic(reference.number, epic_repo, current_repo, source);
864
- if (is_childless(snapshot)) return { notice: childless(reference) };
865
- return { read: { reference, snapshot } };
866
- }
867
- function collect2(outcome, reads, notices) {
868
- if (outcome.read !== void 0) reads.push(outcome.read);
869
- if (outcome.notice !== void 0) notices.push(outcome.notice);
870
- }
871
- async function read_snapshots(references, current_repo, source) {
872
- const reads = [];
873
- const notices = [];
874
- for (const reference of unique_references(references, current_repo)) {
875
- const outcome = await read_one(reference, current_repo, source);
876
- if (outcome.refusal !== void 0) return { reads, notices, refusal: outcome.refusal };
877
- collect2(outcome, reads, notices);
878
- }
879
- return { reads, notices };
880
- }
881
- var epic_next_read = {
882
- FOREIGN_EPIC,
883
- childless,
884
- unique_references,
885
- read_snapshots
886
- };
887
-
888
- // scripts/epic/epic-next-views.ts
889
- var COMPLETE_VERDICT = "complete";
890
- var ERROR_VERDICT = "error";
891
- var ONE_EPIC = 1;
892
- var BLOCK_SEPARATOR = "\n\n";
893
- function format_reference(reference) {
894
- return issue_cite.plain_for("linked", reference.number, reference.repo);
895
- }
896
- function confirm_context(snapshot, running) {
897
- return {
898
- children: snapshot.children,
899
- running,
900
- resolve: epic_cross_repo.resolve_cross_repo,
901
- read_blockers: async (child) => await epic_fetch.read_child_blockers(child, snapshot.current_repo)
902
- };
903
- }
904
- function pools_of(views, repo) {
905
- return views.map((view) => ({
906
- candidates: epic_report.candidates_for_repo(view.result, repo),
907
- context: confirm_context(view.snapshot, view.running)
908
- }));
909
- }
910
- function combined_verdict(views) {
911
- let verdict = COMPLETE_VERDICT;
912
- for (const view of views) verdict = epic_lane_offer.combine_verdicts(verdict, view.result.verdict);
913
- return verdict;
914
- }
915
- function error_view(views) {
916
- return views.find((view) => view.result.verdict === ERROR_VERDICT);
917
- }
918
- function format_view(view, is_many, current_repo) {
919
- const text = epic_report.format_result(view.result, current_repo);
920
- return is_many ? `${format_reference(view.reference)}
921
- ${text}` : text;
922
- }
923
- function aggregate_text(views, current_repo) {
924
- const is_many = views.length > ONE_EPIC;
925
- return views.map((view) => format_view(view, is_many, current_repo)).join(BLOCK_SEPARATOR);
926
- }
927
- function settle_views(running, build) {
928
- const views = build(running);
929
- const stuck = new Set(
930
- views.flatMap((view) => view.result.blocked_on_people.map((child) => epic_graph.key_of(child)))
931
- );
932
- const settled = new Set(running);
933
- for (const key of stuck) settled.delete(key);
934
- return settled.size === running.size ? views : settle_views(settled, build);
935
- }
936
- var epic_next_views = {
937
- settle_views,
938
- format_reference,
939
- pools_of,
940
- combined_verdict,
941
- error_view,
942
- format_view,
943
- aggregate_text
944
- };
945
-
946
- // scripts/epic/epic-next.ts
947
- var SUCCESS_EXIT_CODE = 0;
948
- var FAILURE_EXIT_CODE = 1;
949
- var OPTIONS = { repo: { type: "string" }, lanes: { type: "boolean" } };
950
- var USAGE = "Usage: josh epic:next <epic-number|owner/repo#number>... [--repo <owner/repo>] [--lanes]";
951
- var UNKNOWN_REPO = "Could not read this repository from `git remote`, so the children cannot be keyed by repository \u2014 check `gh auth status` and that this is a checkout with an `origin` remote.";
952
- var EXTERNAL_NOTICE = "Note: this epic tracks children in other repositories.";
953
- var { FOREIGN_EPIC: FOREIGN_EPIC2 } = epic_next_read;
954
- var NO_CHILDREN2 = 0;
955
- var ONE_EPIC2 = 1;
956
- var UNCHECKED_EXCLUSION = "Note: the per-repository lane count is applied by `--repo`; a child listed here may still be held back there while every lane is in use.";
957
- function parse_references(head) {
958
- const references = [];
959
- for (const entry of head) {
960
- const reference = epic_issue.parse_epic_reference(entry);
961
- if (reference === void 0) return void 0;
962
- references.push(reference);
963
- }
964
- return references.length === 0 ? void 0 : references;
965
- }
966
- function with_repo(references, values) {
967
- const { repo, lanes: is_all_lanes = false } = values;
968
- if (repo === void 0) return is_all_lanes ? { usage: USAGE } : { references };
969
- return { references, repo, is_all_lanes };
970
- }
971
- function parse_options(argv) {
972
- const parsed = cli_flags.arguments_of(argv, OPTIONS);
973
- if (parsed === void 0) return { usage: USAGE };
974
- const references = parse_references(parsed.positionals);
975
- if (references === void 0 || parsed.values.repo === "") return { usage: USAGE };
976
- return with_repo(references, parsed.values);
977
- }
978
- function body_anomaly(snapshot) {
979
- if (snapshot.body_failure === void 0) return void 0;
980
- return {
981
- kind: "unreadable_epic_body",
982
- message: `Could not read the body of the epic in ${snapshot.repo}. Its task list is what names the children, so nothing is offered \u2014 check \`gh auth status\` and that the epic exists.`,
983
- is_unreachable: snapshot.is_unreachable
984
- };
985
- }
986
- function unreadable_anomaly(snapshot) {
987
- const missing = epic_fetch.missing_children(snapshot);
988
- if (missing.length === 0) return void 0;
989
- const list = epic_graph.format_references(missing, snapshot.current_repo);
990
- return {
991
- kind: "unreadable_children",
992
- message: `Could not read ${list}. The dependency graph would be missing them, so nothing is offered \u2014 check \`gh auth status\` and that the issues exist.`,
993
- is_unreachable: snapshot.is_unreachable
994
- };
995
- }
996
- function is_order_declared(body, links) {
997
- return links.length > 0 || epic_parse.has_unordered_declaration(body);
998
- }
999
- function decide(snapshot, paths = /* @__PURE__ */ new Map(), running) {
1000
- const links = epic_parse.parse_dependency_links(snapshot.body);
1001
- const unreadable = body_anomaly(snapshot) ?? unreadable_anomaly(snapshot);
1002
- const anomalies = unreadable === void 0 ? epic_graph.find_anomalies(
1003
- snapshot.children,
1004
- links,
1005
- is_order_declared(snapshot.body, links),
1006
- snapshot.repo
1007
- ) : [unreadable];
1008
- const classification = epic_classify.classify_children(
1009
- snapshot.children,
1010
- epic_cross_repo.resolve_cross_repo,
1011
- running
1012
- );
1013
- return epic_report.build_result(classification, anomalies, paths);
1014
- }
1015
- function refuse(reason) {
1016
- console.error(reason);
1017
- return FAILURE_EXIT_CODE;
1018
- }
1019
- function repo_verdict(verdict) {
1020
- return verdict === "run" ? "wait" : verdict;
1021
- }
1022
- function report_offer(offer) {
1023
- if (offer.notice !== "") console.error(offer.notice);
1024
- if (offer.children.length === NO_CHILDREN2) {
1025
- console.info(repo_verdict(offer.verdict));
1026
- return SUCCESS_EXIT_CODE;
1027
- }
1028
- for (const child of offer.children) console.info(String(child.number));
1029
- return SUCCESS_EXIT_CODE;
1030
- }
1031
- async function offer_children(views, request) {
1032
- const pools = epic_next_views.pools_of(views, request.repo);
1033
- return report_offer(await epic_lane_offer.offer_for_repo(pools, request));
1034
- }
1035
- async function report_single(views, request) {
1036
- const broken = epic_next_views.error_view(views);
1037
- if (broken !== void 0) {
1038
- return refuse(epic_next_views.format_view(broken, views.length > ONE_EPIC2, request.repo));
1039
- }
1040
- const has_candidate = views.some(
1041
- (view) => epic_report.candidates_for_repo(view.result, request.repo).length > NO_CHILDREN2
1042
- );
1043
- if (!has_candidate) {
1044
- console.error(`No runnable child in ${request.repo}.`);
1045
- console.info(repo_verdict(epic_next_views.combined_verdict(views)));
1046
- return SUCCESS_EXIT_CODE;
1047
- }
1048
- return await offer_children(views, request);
1049
- }
1050
- function note_unchecked_exclusion(views) {
1051
- if (epic_next_views.combined_verdict(views) === "run") console.error(UNCHECKED_EXCLUSION);
1052
- }
1053
- function report_aggregate(views, current_repo) {
1054
- note_unchecked_exclusion(views);
1055
- const text = epic_next_views.aggregate_text(views, current_repo);
1056
- if (epic_next_views.error_view(views) !== void 0) {
1057
- console.error(text);
1058
- return FAILURE_EXIT_CODE;
1059
- }
1060
- console.info(issue_citation.linkify(text, current_repo));
1061
- return SUCCESS_EXIT_CODE;
1062
- }
1063
- function external_notice(view, is_many) {
1064
- return is_many ? `${epic_next_views.format_reference(view.reference)} ${EXTERNAL_NOTICE}` : EXTERNAL_NOTICE;
1065
- }
1066
- function note_external(views) {
1067
- const is_many = views.length > ONE_EPIC2;
1068
- for (const view of views) {
1069
- if (view.snapshot.has_external_children) console.error(external_notice(view, is_many));
1070
- }
1071
- }
1072
- async function report(views, request, current_repo) {
1073
- note_external(views);
1074
- if (request !== void 0) return await report_single(views, request);
1075
- return report_aggregate(views, current_repo);
1076
- }
1077
- async function report_epics(views, options, current_repo) {
1078
- if (options.repo === void 0) return await report(views, void 0, current_repo);
1079
- const choice = await lane_capacity.lane_limit();
1080
- if (choice.kind === "problem") return refuse(choice.problem);
1081
- const request = epic_lane_offer.lane_request(
1082
- { repo: options.repo, is_all_lanes: options.is_all_lanes ?? false },
1083
- choice.limit,
1084
- current_repo
1085
- );
1086
- return await report(views, request, current_repo);
1087
- }
1088
- function views_of(reads, running = epic_outside_blocker.running_keys(reads.flatMap((read3) => read3.snapshot.children))) {
1089
- const paths = repo_discovery.discover_repositories(PROJECT_ROOT);
1090
- epic_cross_repo.reset_publish_cache();
1091
- epic_classify.reset_reported();
1092
- return epic_next_views.settle_views(
1093
- running,
1094
- (settled) => reads.map((read3) => ({
1095
- ...read3,
1096
- running: settled,
1097
- result: decide(read3.snapshot, paths, settled)
1098
- }))
1099
- );
1100
- }
1101
- function refuse_reads(result) {
1102
- if (result.refusal !== void 0) return refuse(result.refusal);
1103
- if (result.reads.length === NO_CHILDREN2) return refuse(result.notices.join("\n"));
1104
- for (const notice of result.notices) console.error(notice);
1105
- return void 0;
1106
- }
1107
- async function run_epics(options) {
1108
- const references = options.references ?? [];
1109
- if (references.length === NO_CHILDREN2) return refuse(USAGE);
1110
- const current_repo = await git_gh_command.repo_get_name_with_owner();
1111
- if (current_repo === void 0) return refuse(UNKNOWN_REPO);
1112
- const result = await epic_next_read.read_snapshots(references, current_repo);
1113
- const stopped = refuse_reads(result);
1114
- return stopped ?? await report_epics(views_of(result.reads), options, current_repo);
1115
- }
1116
- async function run(argv) {
1117
- const options = parse_options(argv);
1118
- if (options.references === void 0) {
1119
- console.error(options.usage ?? USAGE);
1120
- return FAILURE_EXIT_CODE;
1121
- }
1122
- return await run_epics(options);
1123
- }
1124
- var epic_next = {
1125
- EXTERNAL_NOTICE,
1126
- FOREIGN_EPIC: FOREIGN_EPIC2,
1127
- is_order_declared,
1128
- repo_verdict,
1129
- UNCHECKED_EXCLUSION,
1130
- parse_options,
1131
- refuse_reads,
1132
- views_of,
1133
- run,
1134
- run_epics,
1135
- decide,
1136
- report
1137
- };
1138
-
1139
- export {
1140
- lane_room,
1141
- epic_nested,
1142
- epic_outside_blocker,
1143
- epic_classify,
1144
- epic_report,
1145
- epic_rank,
1146
- epic_solo,
1147
- epic_solo_stale,
1148
- epic_next_read,
1149
- epic_next
1150
- };