@joshuafolkken/kit 1.3044.0 → 1.3092.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 (1236) 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 +273 -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-2E6PSONB.js +46 -0
  34. package/dist/commands/chunk-2GA4775H.js +77 -0
  35. package/dist/commands/chunk-2O64H5UJ.js +462 -0
  36. package/dist/commands/chunk-2OEXY4GM.js +252 -0
  37. package/dist/commands/chunk-2OMIHPPE.js +51 -0
  38. package/dist/commands/chunk-2ONSHOAY.js +46 -0
  39. package/dist/commands/chunk-2Q7MGFYB.js +1208 -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-2XZF3YFY.js +47 -0
  45. package/dist/commands/chunk-33TAOZUE.js +29 -0
  46. package/dist/commands/chunk-374XGAWD.js +158 -0
  47. package/dist/commands/chunk-3CJNQU7P.js +179 -0
  48. package/dist/commands/chunk-3D5T6KMW.js +59 -0
  49. package/dist/commands/chunk-3EW5LTN3.js +114 -0
  50. package/dist/commands/chunk-3F3RNIG2.js +128 -0
  51. package/dist/commands/chunk-3FLTEJZY.js +74 -0
  52. package/dist/commands/chunk-3JWPTRNI.js +60 -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-3YT3RCSI.js +140 -0
  57. package/dist/commands/chunk-43DU7DYZ.js +540 -0
  58. package/dist/commands/chunk-43H725LG.js +132 -0
  59. package/dist/commands/chunk-46STCE6Q.js +48 -0
  60. package/dist/commands/chunk-46WEC6HZ.js +82 -0
  61. package/dist/commands/chunk-47J4KOZP.js +46 -0
  62. package/dist/commands/chunk-47W7PF4T.js +22 -0
  63. package/dist/commands/chunk-4F4KARQN.js +229 -0
  64. package/dist/commands/chunk-4GUGC4IW.js +338 -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-4K7KLR7L.js +69 -0
  70. package/dist/commands/chunk-4MGTNY2L.js +347 -0
  71. package/dist/commands/chunk-4NSIW3UB.js +104 -0
  72. package/dist/commands/chunk-4YTKV6WV.js +37 -0
  73. package/dist/commands/chunk-5ARNFMQK.js +1263 -0
  74. package/dist/commands/chunk-5AZTSESD.js +114 -0
  75. package/dist/commands/chunk-5FUI2MLY.js +89 -0
  76. package/dist/commands/chunk-5GI5GLC4.js +214 -0
  77. package/dist/commands/chunk-5IHEBIPD.js +333 -0
  78. package/dist/commands/chunk-5KAW5GPF.js +44 -0
  79. package/dist/commands/chunk-5KSJEWXR.js +77 -0
  80. package/dist/commands/chunk-5OF2B4BF.js +35 -0
  81. package/dist/commands/chunk-5PLJ7R3D.js +126 -0
  82. package/dist/commands/chunk-5PPWXOCF.js +64 -0
  83. package/dist/commands/chunk-5VQCL33M.js +46 -0
  84. package/dist/commands/chunk-5Y7FOJLX.js +186 -0
  85. package/dist/commands/chunk-5YTEMF4O.js +110 -0
  86. package/dist/commands/chunk-62NYXZCC.js +241 -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-7E43YW53.js +128 -0
  99. package/dist/commands/chunk-7EAYFMDN.js +235 -0
  100. package/dist/commands/chunk-7HP3FQGQ.js +51 -0
  101. package/dist/commands/chunk-7JOOMFDI.js +155 -0
  102. package/dist/commands/chunk-7OEBSPPU.js +321 -0
  103. package/dist/commands/chunk-A3JYZWBS.js +803 -0
  104. package/dist/commands/chunk-A3LCN4KA.js +84 -0
  105. package/dist/commands/chunk-ABLXBG6C.js +98 -0
  106. package/dist/commands/chunk-AN7BFVHU.js +244 -0
  107. package/dist/commands/chunk-AQCVEQSM.js +99 -0
  108. package/dist/commands/chunk-AT46EY7H.js +393 -0
  109. package/dist/commands/chunk-AU563VKH.js +75 -0
  110. package/dist/commands/chunk-AUTD5FV2.js +1077 -0
  111. package/dist/commands/chunk-AV26CMY6.js +304 -0
  112. package/dist/commands/chunk-B2PJEV3S.js +246 -0
  113. package/dist/commands/chunk-B545ENGY.js +214 -0
  114. package/dist/commands/chunk-B5HP6T4L.js +170 -0
  115. package/dist/commands/chunk-B5XYAWNN.js +37 -0
  116. package/dist/commands/chunk-B73IIRMS.js +207 -0
  117. package/dist/commands/chunk-BAEDHPXW.js +160 -0
  118. package/dist/commands/chunk-BDSG6JKH.js +977 -0
  119. package/dist/commands/chunk-BE6F4YK2.js +769 -0
  120. package/dist/commands/chunk-BFKTUD3V.js +33 -0
  121. package/dist/commands/chunk-BLRXHK2V.js +17 -0
  122. package/dist/commands/chunk-BLUAO4QW.js +173 -0
  123. package/dist/commands/chunk-BML6MEUB.js +326 -0
  124. package/dist/commands/chunk-BPDNGJXY.js +63 -0
  125. package/dist/commands/chunk-BQLKWGGC.js +118 -0
  126. package/dist/commands/chunk-BRMJVCP7.js +167 -0
  127. package/dist/commands/chunk-BRWR5YKU.js +268 -0
  128. package/dist/commands/chunk-BUZAYEBD.js +319 -0
  129. package/dist/commands/chunk-BVUL57IX.js +139 -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-EE4VOZJP.js +167 -0
  161. package/dist/commands/chunk-EHVEWJQ4.js +33 -0
  162. package/dist/commands/chunk-EMFSPPMH.js +98 -0
  163. package/dist/commands/chunk-EN65ZS3S.js +73 -0
  164. package/dist/commands/chunk-ES42XPAD.js +123 -0
  165. package/dist/commands/chunk-ESUY7KTZ.js +137 -0
  166. package/dist/commands/chunk-ET6IRQ3L.js +330 -0
  167. package/dist/commands/chunk-EWCUT7U2.js +1314 -0
  168. package/dist/commands/chunk-EWXXEGXL.js +149 -0
  169. package/dist/commands/chunk-EZYW54OQ.js +7569 -0
  170. package/dist/commands/chunk-F2RDEF2J.js +205 -0
  171. package/dist/commands/chunk-F2U46HAE.js +52 -0
  172. package/dist/commands/chunk-F2VYWU6Z.js +653 -0
  173. package/dist/commands/chunk-F4SGOTUF.js +36 -0
  174. package/dist/commands/chunk-F4YMLVWN.js +183 -0
  175. package/dist/commands/chunk-F5N2QIFD.js +213 -0
  176. package/dist/commands/chunk-F7B4ESZE.js +80 -0
  177. package/dist/commands/chunk-FJM2HWKW.js +299 -0
  178. package/dist/commands/chunk-FJMXUDEY.js +3985 -0
  179. package/dist/commands/chunk-FM7VVAK6.js +426 -0
  180. package/dist/commands/chunk-FQWRM5FC.js +67 -0
  181. package/dist/commands/chunk-FT33ZCSB.js +298 -0
  182. package/dist/commands/chunk-G2DNS74C.js +53 -0
  183. package/dist/commands/chunk-G75GWNNY.js +101 -0
  184. package/dist/commands/chunk-GA2YSPFH.js +32 -0
  185. package/dist/commands/chunk-GAVSK6P6.js +230 -0
  186. package/dist/commands/chunk-GB2BRQVL.js +300 -0
  187. package/dist/commands/chunk-GBMZXFFC.js +44 -0
  188. package/dist/commands/chunk-GDP7QXYE.js +76 -0
  189. package/dist/commands/chunk-GGWXF7RJ.js +70 -0
  190. package/dist/commands/chunk-GHOTKHI4.js +30 -0
  191. package/dist/commands/chunk-GMVN6ZP2.js +48 -0
  192. package/dist/commands/chunk-GNTTGRCX.js +133 -0
  193. package/dist/commands/chunk-GOY5JECO.js +130 -0
  194. package/dist/commands/chunk-GVDRRBHZ.js +507 -0
  195. package/dist/commands/chunk-GWTBIGYC.js +550 -0
  196. package/dist/commands/chunk-GZL6ISVM.js +72 -0
  197. package/dist/commands/chunk-HALHQILI.js +51 -0
  198. package/dist/commands/chunk-HAT7AFBF.js +85 -0
  199. package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
  200. package/dist/commands/chunk-HE3GOMR7.js +88 -0
  201. package/dist/commands/chunk-HEFUC4ZW.js +65 -0
  202. package/dist/commands/chunk-HESWKELD.js +60 -0
  203. package/dist/commands/chunk-HNFBEB4L.js +77 -0
  204. package/dist/commands/chunk-HRN73FQJ.js +77 -0
  205. package/dist/commands/chunk-HYE3MBAN.js +113 -0
  206. package/dist/commands/chunk-IAB6LCJL.js +18 -0
  207. package/dist/commands/chunk-IAGENI2U.js +42 -0
  208. package/dist/commands/chunk-ICPVBHIX.js +48 -0
  209. package/dist/commands/chunk-IEKW3ON6.js +161 -0
  210. package/dist/commands/chunk-IOKOHB7P.js +109 -0
  211. package/dist/commands/chunk-IONGJJYM.js +179 -0
  212. package/dist/commands/chunk-IP23WOWP.js +126 -0
  213. package/dist/commands/chunk-IPS7EBE5.js +140 -0
  214. package/dist/commands/chunk-IXZZSST7.js +459 -0
  215. package/dist/commands/chunk-J4XHEOOW.js +156 -0
  216. package/dist/commands/chunk-JDHLHYJJ.js +208 -0
  217. package/dist/commands/chunk-JEYITIWB.js +423 -0
  218. package/dist/commands/chunk-JGX7JIW4.js +126 -0
  219. package/dist/commands/chunk-JHIGDFBS.js +59 -0
  220. package/dist/commands/chunk-JI2EGXZX.js +53 -0
  221. package/dist/commands/chunk-JNV3VRK2.js +47 -0
  222. package/dist/commands/chunk-JPMAW2VZ.js +91 -0
  223. package/dist/commands/chunk-JQEY6KDP.js +90 -0
  224. package/dist/commands/chunk-JSJDIEGZ.js +88 -0
  225. package/dist/commands/chunk-JT5ICRFF.js +44 -0
  226. package/dist/commands/chunk-JUCJ4Y42.js +77 -0
  227. package/dist/commands/chunk-K3OZBV3L.js +49 -0
  228. package/dist/commands/chunk-K5H3CLZZ.js +430 -0
  229. package/dist/commands/chunk-K6P5PISC.js +114 -0
  230. package/dist/commands/chunk-KD3SEAMV.js +402 -0
  231. package/dist/commands/chunk-KDCHY7XO.js +88 -0
  232. package/dist/commands/chunk-KDGX3JTV.js +51 -0
  233. package/dist/commands/chunk-KGSEWOKI.js +353 -0
  234. package/dist/commands/chunk-KHGDZQRG.js +271 -0
  235. package/dist/commands/chunk-KIS7JFNP.js +217 -0
  236. package/dist/commands/chunk-KKHD3C2P.js +114 -0
  237. package/dist/commands/chunk-KKIIY5I5.js +67 -0
  238. package/dist/commands/chunk-KN46UC77.js +114 -0
  239. package/dist/commands/chunk-KP2BVAS5.js +125 -0
  240. package/dist/commands/chunk-KPAJBJXG.js +63 -0
  241. package/dist/commands/chunk-KPMAJP6D.js +145 -0
  242. package/dist/commands/chunk-KR6WUAJM.js +122 -0
  243. package/dist/commands/chunk-KWLNK2NJ.js +391 -0
  244. package/dist/commands/chunk-L2CLCNXW.js +144 -0
  245. package/dist/commands/chunk-L7MDU6D7.js +155 -0
  246. package/dist/commands/chunk-L7VD4MLF.js +78 -0
  247. package/dist/commands/chunk-LBMAJDGN.js +124 -0
  248. package/dist/commands/chunk-LBVYFW3I.js +38 -0
  249. package/dist/commands/chunk-LE3M42CF.js +350 -0
  250. package/dist/commands/chunk-LIPUSINQ.js +140 -0
  251. package/dist/commands/chunk-LJVZWE3A.js +1885 -0
  252. package/dist/commands/chunk-LKSSQVDA.js +49 -0
  253. package/dist/commands/chunk-LL6G34MF.js +93 -0
  254. package/dist/commands/chunk-LNQOL2CL.js +321 -0
  255. package/dist/commands/chunk-LS7P324N.js +72 -0
  256. package/dist/commands/chunk-LU5EOGFQ.js +50 -0
  257. package/dist/commands/chunk-LX2ENXHZ.js +197 -0
  258. package/dist/commands/chunk-M32UPB2D.js +110 -0
  259. package/dist/commands/chunk-M3UGRNNB.js +103 -0
  260. package/dist/commands/chunk-M4WG74Q7.js +260 -0
  261. package/dist/commands/chunk-M5HA2ZCG.js +105 -0
  262. package/dist/commands/chunk-MDGPJOLK.js +351 -0
  263. package/dist/commands/chunk-MDKRTUE4.js +288 -0
  264. package/dist/commands/chunk-MFZVRWRS.js +34 -0
  265. package/dist/commands/chunk-MHXIJKGP.js +304 -0
  266. package/dist/commands/chunk-MK4CARBI.js +90 -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-NOSG3RUP.js +84 -0
  287. package/dist/commands/chunk-NOSODWWK.js +1132 -0
  288. package/dist/commands/chunk-NPXXYG6Z.js +580 -0
  289. package/dist/commands/chunk-NR2JDBPV.js +75 -0
  290. package/dist/commands/chunk-NRULNBYI.js +1153 -0
  291. package/dist/commands/chunk-NTGF5N3N.js +110 -0
  292. package/dist/commands/chunk-NTIVNQKF.js +73 -0
  293. package/dist/commands/chunk-NUCFIYZL.js +119 -0
  294. package/dist/commands/chunk-NVMV7BYX.js +88 -0
  295. package/dist/commands/chunk-NYWPTYGL.js +169 -0
  296. package/dist/commands/chunk-NZ45KOLL.js +104 -0
  297. package/dist/commands/chunk-O45BX4EL.js +39 -0
  298. package/dist/commands/chunk-O46T4ANI.js +229 -0
  299. package/dist/commands/chunk-O5JGV7NA.js +245 -0
  300. package/dist/commands/chunk-O7ESC4HL.js +566 -0
  301. package/dist/commands/chunk-OBYLXHCH.js +86 -0
  302. package/dist/commands/chunk-OKN63ZH5.js +109 -0
  303. package/dist/commands/chunk-ON4IKRGS.js +469 -0
  304. package/dist/commands/chunk-OT74RSQO.js +82 -0
  305. package/dist/commands/chunk-OVCVINYW.js +143 -0
  306. package/dist/commands/chunk-OZKLVTYI.js +342 -0
  307. package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
  308. package/dist/commands/chunk-P43GWYR6.js +185 -0
  309. package/dist/commands/chunk-P6ASP2DY.js +132 -0
  310. package/dist/commands/chunk-PBAEJ5PT.js +38 -0
  311. package/dist/commands/chunk-PCZROH3R.js +100 -0
  312. package/dist/commands/chunk-PF3PMT2Q.js +46 -0
  313. package/dist/commands/chunk-PILH72AV.js +170 -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-RDUFVQVJ.js +997 -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-SD4EX75H.js +177 -0
  355. package/dist/commands/chunk-SJITWFNY.js +480 -0
  356. package/dist/commands/chunk-SKGDMAIA.js +33 -0
  357. package/dist/commands/chunk-SNSZ25XZ.js +393 -0
  358. package/dist/commands/chunk-SQZZHK6X.js +119 -0
  359. package/dist/commands/chunk-SRTEE34O.js +93 -0
  360. package/dist/commands/chunk-SYTCTLMD.js +285 -0
  361. package/dist/commands/chunk-T6JUDQMW.js +181 -0
  362. package/dist/commands/chunk-T6OUNP7E.js +426 -0
  363. package/dist/commands/chunk-TEXUEBGE.js +208 -0
  364. package/dist/commands/chunk-TFDVTU6O.js +910 -0
  365. package/dist/commands/chunk-TFYYXETQ.js +472 -0
  366. package/dist/commands/chunk-TMFKVJUW.js +121 -0
  367. package/dist/commands/chunk-TNJU4CXD.js +32 -0
  368. package/dist/commands/chunk-TRHWBUWE.js +61 -0
  369. package/dist/commands/chunk-TROCFVCU.js +45 -0
  370. package/dist/commands/chunk-TTTZZN7F.js +269 -0
  371. package/dist/commands/chunk-TUBBESHU.js +85 -0
  372. package/dist/commands/chunk-TVZIFZZN.js +62 -0
  373. package/dist/commands/chunk-TXRWAL63.js +144 -0
  374. package/dist/commands/chunk-U46YTYJQ.js +92 -0
  375. package/dist/commands/chunk-U5EO4QEV.js +48 -0
  376. package/dist/commands/chunk-UCO333EX.js +47 -0
  377. package/dist/commands/chunk-UIXQ4IYT.js +445 -0
  378. package/dist/commands/chunk-UJGNYPMD.js +716 -0
  379. package/dist/commands/chunk-URZ4RDC4.js +220 -0
  380. package/dist/commands/chunk-UUH3DE77.js +57 -0
  381. package/dist/commands/chunk-UVY5ODCM.js +60 -0
  382. package/dist/commands/chunk-UWMB6EOU.js +45 -0
  383. package/dist/commands/chunk-UX3HCPLX.js +449 -0
  384. package/dist/commands/chunk-UY62WJV6.js +120 -0
  385. package/dist/commands/chunk-V2T5DP3B.js +224 -0
  386. package/dist/commands/chunk-VAHQ4AFM.js +585 -0
  387. package/dist/commands/chunk-VCWNMRH7.js +71 -0
  388. package/dist/commands/chunk-VHLDQ3PH.js +30 -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-VTLWODJ2.js +133 -0
  394. package/dist/commands/chunk-VXE3V3OC.js +335 -0
  395. package/dist/commands/chunk-VY7ZJMDT.js +469 -0
  396. package/dist/commands/chunk-W3MDLQZF.js +137 -0
  397. package/dist/commands/chunk-W4BR6QNU.js +1241 -0
  398. package/dist/commands/chunk-WCYRNNKF.js +76 -0
  399. package/dist/commands/chunk-WEUUJIWQ.js +84 -0
  400. package/dist/commands/chunk-WNBJK6QE.js +84 -0
  401. package/dist/commands/chunk-WR5PKCQW.js +61 -0
  402. package/dist/commands/chunk-WR73HTRG.js +121 -0
  403. package/dist/commands/chunk-WRNMUQTD.js +95 -0
  404. package/dist/commands/chunk-WROJTXWZ.js +138 -0
  405. package/dist/commands/chunk-WTIPX5NG.js +43 -0
  406. package/dist/commands/chunk-WWLCQREY.js +225 -0
  407. package/dist/commands/chunk-WXLW7S4M.js +71 -0
  408. package/dist/commands/chunk-WXXLJQBO.js +67 -0
  409. package/dist/commands/chunk-X4LYH6Q4.js +56 -0
  410. package/dist/commands/chunk-XAEL24EG.js +66 -0
  411. package/dist/commands/chunk-XCCT6GKA.js +74 -0
  412. package/dist/commands/chunk-XDR2BRDL.js +216 -0
  413. package/dist/commands/chunk-XRQMVAB4.js +85 -0
  414. package/dist/commands/chunk-XSKJAG72.js +91 -0
  415. package/dist/commands/chunk-XTJA34ND.js +492 -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-YEAE46TS.js +98 -0
  420. package/dist/commands/chunk-YEQFAEVW.js +112 -0
  421. package/dist/commands/chunk-YJZAD4Z5.js +103 -0
  422. package/dist/commands/chunk-YMAEYY5R.js +278 -0
  423. package/dist/commands/chunk-YNCF66RK.js +1052 -0
  424. package/dist/commands/chunk-YOA25SII.js +210 -0
  425. package/dist/commands/chunk-YOZTZMAT.js +38 -0
  426. package/dist/commands/chunk-YSGRHVZG.js +897 -0
  427. package/dist/commands/chunk-YSLGWRQN.js +646 -0
  428. package/dist/commands/chunk-YTXCLGGL.js +168 -0
  429. package/dist/commands/chunk-YVHJN2HS.js +74 -0
  430. package/dist/commands/chunk-YY7XVVSB.js +43 -0
  431. package/dist/commands/chunk-Z5GZV4DV.js +16 -0
  432. package/dist/commands/chunk-Z6QLFPFB.js +907 -0
  433. package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
  434. package/dist/commands/chunk-ZCD4AV2P.js +73 -0
  435. package/dist/commands/chunk-ZCHZU6NX.js +799 -0
  436. package/dist/commands/chunk-ZEH2B3DF.js +239 -0
  437. package/dist/commands/chunk-ZEUKX3RZ.js +245 -0
  438. package/dist/commands/chunk-ZGANVZCA.js +92 -0
  439. package/dist/commands/chunk-ZGBXUY7R.js +198 -0
  440. package/dist/commands/chunk-ZGEUWHFF.js +297 -0
  441. package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
  442. package/dist/commands/chunk-ZIIUBGON.js +773 -0
  443. package/dist/commands/chunk-ZJ5S4VFD.js +258 -0
  444. package/dist/commands/chunk-ZNIIA275.js +59 -0
  445. package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
  446. package/dist/commands/ci-timing-cli.js +22 -3
  447. package/dist/commands/code-symbol-cli.js +21 -7
  448. package/dist/commands/codex-hook-adapter.js +124 -119
  449. package/dist/commands/command-derive.js +9 -11
  450. package/dist/commands/cost-audit-main.js +118 -119
  451. package/dist/commands/cost-main.js +5 -7
  452. package/dist/commands/cspell-cached.js +55 -57
  453. package/dist/commands/defect-origin-main.js +42 -37
  454. package/dist/commands/defect-report-main.js +33 -25
  455. package/dist/commands/diff-summary-cli.js +3 -4
  456. package/dist/commands/disposition-cli.js +117 -118
  457. package/dist/commands/doctor.js +24 -11
  458. package/dist/commands/document-read-cli.js +50 -53
  459. package/dist/commands/document-section-main.js +50 -53
  460. package/dist/commands/dogfood-commit-cli.js +19 -4
  461. package/dist/commands/effect-audit-cli.js +40 -41
  462. package/dist/commands/epic-audit-main.js +88 -86
  463. package/dist/commands/epic-bundle-main.js +122 -119
  464. package/dist/commands/epic-check.js +37 -31
  465. package/dist/commands/epic-main.js +129 -126
  466. package/dist/commands/epic-next-main.js +85 -83
  467. package/dist/commands/eval-run.js +6 -7
  468. package/dist/commands/format-edited-cli.js +71 -46
  469. package/dist/commands/format.js +41 -56
  470. package/dist/commands/fresh-machine-cli.js +24 -7
  471. package/dist/commands/gh-usage-cli.js +22 -22
  472. package/dist/commands/git-followup-workflow.js +158 -158
  473. package/dist/commands/git-gh-checks-failed-main.js +23 -15
  474. package/dist/commands/git-workflow.js +52 -53
  475. package/dist/commands/github-release-cli.js +3 -3
  476. package/dist/commands/hook-ledger-cli.js +93 -94
  477. package/dist/commands/init-main.js +40 -40
  478. package/dist/commands/inputs.json +2020 -1980
  479. package/dist/commands/issue-ack-cli.js +28 -21
  480. package/dist/commands/issue-already-done-cli.js +107 -110
  481. package/dist/commands/issue-body-cli.js +71 -73
  482. package/dist/commands/issue-cite-main.js +35 -28
  483. package/dist/commands/issue-comment-main.js +36 -30
  484. package/dist/commands/issue-consolidate-cli.js +54 -54
  485. package/dist/commands/issue-file-main.js +274 -148
  486. package/dist/commands/issue-fold-existing-cli.js +126 -123
  487. package/dist/commands/issue-fold-main.js +57 -60
  488. package/dist/commands/issue-lint-main.js +59 -61
  489. package/dist/commands/issue-measured-cli.js +108 -110
  490. package/dist/commands/issue-plan-cli.js +156 -155
  491. package/dist/commands/issue-premise-unmet-cli.js +111 -113
  492. package/dist/commands/issue-priority-cli.js +38 -32
  493. package/dist/commands/issue-read-main.js +38 -33
  494. package/dist/commands/issue-release-class-cli.js +37 -31
  495. package/dist/commands/issue-release-main.js +35 -29
  496. package/dist/commands/issue-scout-main.js +123 -120
  497. package/dist/commands/issue-spill-main.js +149 -144
  498. package/dist/commands/issue-state-main.js +36 -31
  499. package/dist/commands/issue-tick-cli.js +37 -31
  500. package/dist/commands/josh-completion.js +21 -24
  501. package/dist/commands/lane-adopt-cli.js +53 -55
  502. package/dist/commands/lane-breakdown-cli.js +193 -172
  503. package/dist/commands/lane-cli.js +199 -180
  504. package/dist/commands/lane-launch-main.js +106 -56
  505. package/dist/commands/lane-limit-cli.js +119 -116
  506. package/dist/commands/lane-measure-cli.js +408 -245
  507. package/dist/commands/lane-pause-cli.js +51 -54
  508. package/dist/commands/lane-plan-cli.js +148 -147
  509. package/dist/commands/lane-resolve-cli.js +48 -50
  510. package/dist/commands/lane-restart-cli.js +185 -168
  511. package/dist/commands/lane-why-cli.js +121 -122
  512. package/dist/commands/lane-withdraw-cli.js +84 -86
  513. package/dist/commands/latest-corepack.js +3 -2
  514. package/dist/commands/latest-if-required-cli.js +12 -15
  515. package/dist/commands/latest-lane-guard-main.js +2 -3
  516. package/dist/commands/latest-scope-main.js +5 -7
  517. package/dist/commands/latest-update.js +3 -2
  518. package/dist/commands/lines-command.js +8 -10
  519. package/dist/commands/lint-parallel-main.js +65 -67
  520. package/dist/commands/lint-related.js +149 -133
  521. package/dist/commands/lint-rule.js +64 -66
  522. package/dist/commands/lockfile-policy.js +29 -32
  523. package/dist/commands/main-merge-main.js +23 -25
  524. package/dist/commands/main-sync-main.js +23 -24
  525. package/dist/commands/managed-config-scope-cli.js +11 -10
  526. package/dist/commands/measure-rerun-cli.js +31 -26
  527. package/dist/commands/metrics-command.js +97 -100
  528. package/dist/commands/observation-record-cli.js +24 -14
  529. package/dist/commands/observations-flush-cli.js +50 -52
  530. package/dist/commands/overrides-check.js +1 -1
  531. package/dist/commands/package-scout-cli.js +70 -73
  532. package/dist/commands/pin-verify-cli.js +21 -2
  533. package/dist/commands/plan-consumers-main.js +3 -4
  534. package/dist/commands/plan-scaffold-cli.js +145 -146
  535. package/dist/commands/pr-classification-main.js +22 -3
  536. package/dist/commands/pre-commit-lint.js +30 -34
  537. package/dist/commands/pre-commit-type-check.js +55 -55
  538. package/dist/commands/pre-push-unit.js +69 -70
  539. package/dist/commands/pretool-guard-cli.js +111 -113
  540. package/dist/commands/prevent-main-commit.js +2 -3
  541. package/dist/commands/project-profile-cli.js +24 -9
  542. package/dist/commands/propagate.js +31 -23
  543. package/dist/commands/prose-stale-cli.js +48 -42
  544. package/dist/commands/publishable-range-check.js +3 -3
  545. package/dist/commands/read-set-cli.js +58 -61
  546. package/dist/commands/refactor-scan-cli.js +8 -9
  547. package/dist/commands/release-cli.js +57 -57
  548. package/dist/commands/release-scope-main.js +41 -36
  549. package/dist/commands/rename-cli.js +64 -36
  550. package/dist/commands/repo-party-cli.js +3 -4
  551. package/dist/commands/report-template-cli.js +4 -5
  552. package/dist/commands/reserved-run.js +17 -20
  553. package/dist/commands/retrospective-cli.js +126 -127
  554. package/dist/commands/review-attest-cli.js +28 -20
  555. package/dist/commands/review-brief-main.js +184 -167
  556. package/dist/commands/review-findings-cli.js +23 -13
  557. package/dist/commands/review-pair-cli.js +180 -156
  558. package/dist/commands/review-record-main.js +171 -147
  559. package/dist/commands/review-round2-cli.js +89 -91
  560. package/dist/commands/review-stops-cli.js +51 -54
  561. package/dist/commands/review-submit-cli.js +184 -167
  562. package/dist/commands/rule-list.js +78 -80
  563. package/dist/commands/rule-value-cli.js +115 -116
  564. package/dist/commands/ruleset-check-cli.js +23 -6
  565. package/dist/commands/run-add-cli.js +115 -75
  566. package/dist/commands/run-board-main.js +172 -169
  567. package/dist/commands/run-carry-cli.js +182 -174
  568. package/dist/commands/run-chain-cli.js +184 -160
  569. package/dist/commands/run-cut-cli.js +206 -168
  570. package/dist/commands/run-ending-cli.js +51 -54
  571. package/dist/commands/run-entry-cli.js +230 -283
  572. package/dist/commands/run-event-cli.js +18 -21
  573. package/dist/commands/run-handoff-cli.js +75 -78
  574. package/dist/commands/run-handoff-lanes-cli.js +48 -51
  575. package/dist/commands/run-hold-main.js +105 -107
  576. package/dist/commands/run-liveness-cli.js +47 -49
  577. package/dist/commands/run-merge-main.js +159 -151
  578. package/dist/commands/run-next-cli.js +128 -129
  579. package/dist/commands/run-park-cli.js +137 -140
  580. package/dist/commands/run-pause-cli.js +190 -186
  581. package/dist/commands/run-pickup-cli.js +49 -52
  582. package/dist/commands/run-prep-main.js +124 -125
  583. package/dist/commands/run-prime-cli.js +175 -147
  584. package/dist/commands/run-progress-main.js +149 -146
  585. package/dist/commands/run-report-cli.js +60 -60
  586. package/dist/commands/run-review-cli.js +229 -214
  587. package/dist/commands/run-ship-cli.js +258 -252
  588. package/dist/commands/run-ship-evidence-cli.js +71 -72
  589. package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
  590. package/dist/commands/run-ship-wait-main.js +83 -85
  591. package/dist/commands/run-split-cli.js +176 -172
  592. package/dist/commands/run-stale-main.js +72 -75
  593. package/dist/commands/run-status-cli.js +44 -44
  594. package/dist/commands/run-step-cli.js +213 -211
  595. package/dist/commands/run-tail-cli.js +23 -18
  596. package/dist/commands/run-tidy-main.js +67 -69
  597. package/dist/commands/run-wake-main.js +206 -187
  598. package/dist/commands/run-watcher-guard-cli.js +63 -66
  599. package/dist/commands/security-audit-main.js +21 -24
  600. package/dist/commands/security-audit-provision-main.js +9 -11
  601. package/dist/commands/selfcheck-cli.js +63 -57
  602. package/dist/commands/session-language-main.js +70 -73
  603. package/dist/commands/sonar-hotspots-cli.js +9 -8
  604. package/dist/commands/sonar-new-code-cli.js +3 -4
  605. package/dist/commands/split-assess-cli.js +55 -58
  606. package/dist/commands/split-child-recover-cli.js +38 -39
  607. package/dist/commands/start.js +64 -64
  608. package/dist/commands/stash-pop-main.js +4 -5
  609. package/dist/commands/stash-push-main.js +7 -9
  610. package/dist/commands/stop-guard.js +180 -176
  611. package/dist/commands/sync-main.js +30 -15
  612. package/dist/commands/telegram-test-main.js +29 -22
  613. package/dist/commands/test-declared.js +29 -15
  614. package/dist/commands/test-e2e-guard.js +54 -54
  615. package/dist/commands/test-pinned-main.js +57 -56
  616. package/dist/commands/test-reach-cli.js +40 -32
  617. package/dist/commands/test-red-main.js +12 -14
  618. package/dist/commands/test-related-Z6YY2GFH.js +113 -0
  619. package/dist/commands/test-related-main.js +89 -89
  620. package/dist/commands/test-unit-guard-main.js +37 -37
  621. package/dist/commands/time-cli.js +54 -57
  622. package/dist/commands/time-density-cli.js +26 -29
  623. package/dist/commands/tree-status-cli.js +6 -8
  624. package/dist/commands/type-check-command.js +26 -11
  625. package/dist/commands/ui-routes-cli.js +5 -6
  626. package/dist/commands/ui-shot-cli.js +1 -1
  627. package/dist/commands/uninstall.js +44 -43
  628. package/dist/commands/unused-members-KVKZDTXD.js +329 -0
  629. package/dist/commands/unused-members-cli.js +27 -12
  630. package/dist/commands/upstream-interrupt-main.js +159 -151
  631. package/dist/commands/verification-gate.js +85 -86
  632. package/dist/commands/version-check.js +25 -8
  633. package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
  634. package/dist/hooks/chunk-46PTTMGE.js +1625 -0
  635. package/dist/hooks/chunk-5NIBRHWG.js +77 -0
  636. package/dist/hooks/chunk-76QKN2K3.js +258 -0
  637. package/dist/hooks/chunk-CHEKMGFP.js +321 -0
  638. package/dist/hooks/chunk-DCILEVDR.js +5173 -0
  639. package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
  640. package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
  641. package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
  642. package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
  643. package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
  644. package/dist/hooks/codex-hook-adapter.js +11 -12
  645. package/dist/hooks/daemon.js +2140 -1387
  646. package/dist/hooks/format-edited.js +6 -6
  647. package/dist/hooks/inputs.json +521 -497
  648. package/dist/hooks/pretool-guard.js +8 -8
  649. package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
  650. package/dist/hooks/session-lang.js +9 -7
  651. package/dist/hooks/stop-guard.js +962 -669
  652. package/dist/inputs.json +63 -54
  653. package/dist/josh.js +1029 -577
  654. package/dist/registry-migrate.mjs +33938 -0
  655. package/dist/version/index.js +4251 -175
  656. package/package.json +4 -1
  657. package/prompts/collaboration-workflow/principles.md +4 -1
  658. package/prompts/collaboration-workflow/rule-delivery.md +1 -1
  659. package/scripts/agent/codex-launch-identity.ts +70 -0
  660. package/scripts/auto-ok/auto-ok-cli.ts +2 -0
  661. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
  662. package/scripts/auto-ok/auto-ok-judge.ts +3 -1
  663. package/scripts/backlog/backlog-arrival.ts +1 -1
  664. package/scripts/backlog/backlog-budget.ts +5 -2
  665. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  666. package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
  667. package/scripts/backlog/backlog-drain-flush.ts +38 -3
  668. package/scripts/backlog/backlog-drive-cli.ts +1 -1
  669. package/scripts/backlog/backlog-drive-hold.ts +28 -5
  670. package/scripts/backlog/backlog-drive-launch.ts +37 -15
  671. package/scripts/backlog/backlog-drive-listing.ts +39 -23
  672. package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
  673. package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
  674. package/scripts/backlog/backlog-hold-codes.ts +7 -0
  675. package/scripts/backlog/backlog-hold-text.ts +14 -1
  676. package/scripts/backlog/backlog-measure-close.ts +6 -0
  677. package/scripts/backlog/backlog-next-shared.ts +20 -2
  678. package/scripts/backlog/backlog-next.ts +24 -3
  679. package/scripts/backlog/backlog-offer-cli.ts +69 -16
  680. package/scripts/build/build-migration.ts +25 -0
  681. package/scripts/build/build.ts +2 -0
  682. package/scripts/epic/epic-classify.ts +6 -1
  683. package/scripts/epic/epic-live.ts +46 -0
  684. package/scripts/followup/followup-failed-tests.ts +71 -10
  685. package/scripts/followup/followup-job-rerun.ts +2 -2
  686. package/scripts/gate/change-scope-action.integration.test.ts +88 -0
  687. package/scripts/gate/change-scope-action.ts +2 -0
  688. package/scripts/gate/check-related-order.ts +6 -7
  689. package/scripts/gate/check-related.ts +18 -8
  690. package/scripts/gate/core-admission.ts +17 -30
  691. package/scripts/gate/core-budget-poll.ts +183 -0
  692. package/scripts/gate/core-budget-timing.ts +1 -1
  693. package/scripts/gate/core-budget.ts +24 -112
  694. package/scripts/gate/core-wait-record.ts +52 -7
  695. package/scripts/gate/machine-capacity.ts +6 -2
  696. package/scripts/gate/metrics-totals.ts +11 -0
  697. package/scripts/gate/path-glob.test.ts +18 -0
  698. package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
  699. package/scripts/gh/fix-gh-packages-logic.ts +22 -15
  700. package/scripts/gh/gh-request-tally.ts +4 -0
  701. package/scripts/hooks/bash-revert.ts +79 -31
  702. package/scripts/hooks/format-edited-file.ts +6 -8
  703. package/scripts/hooks/implementation-shell.ts +3 -2
  704. package/scripts/init/distributed-paths.ts +18 -5
  705. package/scripts/init/init-actions.ts +16 -1
  706. package/scripts/init/init-bootstrap.ts +2 -0
  707. package/scripts/init/init-logic.ts +40 -8
  708. package/scripts/init/init.ts +11 -3
  709. package/scripts/issue/defect-rate-cli.ts +19 -13
  710. package/scripts/issue/issue-file-batch.ts +7 -3
  711. package/scripts/issue/issue-file-cli.ts +19 -6
  712. package/scripts/issue/issue-file-main.ts +6 -1
  713. package/scripts/issue/issue-file-pass.ts +17 -0
  714. package/scripts/issue/issue-file.ts +3 -0
  715. package/scripts/issue/issue-not-before.ts +9 -2
  716. package/scripts/issue/issue-observation-gate.ts +141 -0
  717. package/scripts/issue/issue-observation-prime.ts +83 -0
  718. package/scripts/issue/issue-publication-state.ts +61 -0
  719. package/scripts/issue/issue-publication.ts +144 -0
  720. package/scripts/issue/issue-sample-prime.ts +2 -0
  721. package/scripts/issue/issue-search-count.ts +26 -0
  722. package/scripts/issue/issue-search.ts +128 -3
  723. package/scripts/issue/issue-spill-cli.ts +4 -0
  724. package/scripts/issue/upstream-interrupt-cli.ts +21 -5
  725. package/scripts/josh/josh-commands-ai.ts +1 -1
  726. package/scripts/josh/josh-commands-development.ts +1 -1
  727. package/scripts/josh/josh-commands-issue-write.ts +9 -0
  728. package/scripts/josh/josh-commands-run.ts +6 -1
  729. package/scripts/josh/josh-commands-ship.ts +5 -5
  730. package/scripts/josh/josh-run.ts +5 -2
  731. package/scripts/josh/shared-cache.ts +16 -1
  732. package/scripts/lane/lane-await.ts +15 -0
  733. package/scripts/lane/lane-cli.ts +2 -0
  734. package/scripts/lane/lane-dispatch-dependency.ts +102 -0
  735. package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
  736. package/scripts/lane/lane-dispatch.ts +44 -5
  737. package/scripts/lane/lane-early-push-count.ts +21 -0
  738. package/scripts/lane/lane-install.ts +15 -5
  739. package/scripts/lane/lane-launch-cli.ts +35 -14
  740. package/scripts/lane/lane-ledger-kind.ts +2 -0
  741. package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
  742. package/scripts/lane/lane-ledger-schema.ts +15 -1
  743. package/scripts/lane/lane-ledger-write.ts +4 -1
  744. package/scripts/lane/lane-relaunch.ts +25 -2
  745. package/scripts/lane/lane-state-record.ts +2 -0
  746. package/scripts/lane/lane-state.ts +8 -1
  747. package/scripts/lane/lane-stats-tables.ts +2 -0
  748. package/scripts/lane/openai-lane-supervisor.ts +16 -1
  749. package/scripts/lib/inherited-scope.ts +48 -0
  750. package/scripts/lint/format-steps.ts +93 -0
  751. package/scripts/lint/format.ts +6 -49
  752. package/scripts/lint/lint-related-fix.ts +35 -0
  753. package/scripts/lint/lint-related.ts +22 -35
  754. package/scripts/propagate/propagate-steps.ts +9 -4
  755. package/scripts/registry-migration/migrate-cli.ts +50 -0
  756. package/scripts/registry-migration/migrate-files.ts +154 -0
  757. package/scripts/registry-migration/migrate-lock.ts +147 -0
  758. package/scripts/registry-migration/migrate.ts +235 -0
  759. package/scripts/registry-migration/npm-acquisition.ts +118 -0
  760. package/scripts/review/review-record-cli.ts +27 -13
  761. package/scripts/review/review-record-pinned.ts +15 -6
  762. package/scripts/run/add/run-add-cli.ts +21 -3
  763. package/scripts/run/add/run-add.ts +26 -9
  764. package/scripts/run/board/run-board-layout.ts +2 -2
  765. package/scripts/run/board/run-board-reason.ts +12 -0
  766. package/scripts/run/board/run-board-retry-wait.ts +35 -0
  767. package/scripts/run/board/run-board-seat.ts +9 -2
  768. package/scripts/run/board/run-board-setup.ts +6 -4
  769. package/scripts/run/carry/run-carry-reclaim.ts +12 -2
  770. package/scripts/run/carry/run-carry-session.ts +48 -0
  771. package/scripts/run/carry/run-carry.ts +21 -14
  772. package/scripts/run/cut/run-cut-resume.ts +15 -3
  773. package/scripts/run/cut/run-cut.ts +1 -1
  774. package/scripts/run/detached-launch.ts +14 -5
  775. package/scripts/run/early-push-record.ts +6 -2
  776. package/scripts/run/event/run-event-setup.ts +2 -0
  777. package/scripts/run/event/run-event-stream-emit.ts +27 -7
  778. package/scripts/run/hold/run-hold-cli.ts +40 -5
  779. package/scripts/run/merge/run-merge-cut-release.ts +17 -0
  780. package/scripts/run/merge/run-merge-human-review.ts +6 -0
  781. package/scripts/run/merge/run-merge-steps.ts +4 -57
  782. package/scripts/run/merge/run-merge-waits.ts +54 -0
  783. package/scripts/run/prime/run-prime-cli.ts +16 -2
  784. package/scripts/run/review/run-review-cli.ts +5 -7
  785. package/scripts/run/review/run-review-early-push.ts +19 -8
  786. package/scripts/run/review/run-review-join-read.ts +33 -6
  787. package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
  788. package/scripts/run/review/run-review-pinned-steps.ts +7 -1
  789. package/scripts/run/run-halfrun-resume.ts +49 -6
  790. package/scripts/run/run-headless.ts +3 -0
  791. package/scripts/run/run-pr-return.ts +14 -5
  792. package/scripts/run/run-repair-attempt.ts +219 -0
  793. package/scripts/run/ship/run-ship-lap.ts +5 -17
  794. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
  795. package/scripts/run/ship/run-ship-scoped.ts +66 -30
  796. package/scripts/run/startup/run-startup-schema.ts +31 -0
  797. package/scripts/run/startup/run-startup-store.ts +130 -0
  798. package/scripts/run/startup/run-startup.ts +119 -0
  799. package/scripts/run/wake/run-wake-codex.ts +144 -0
  800. package/scripts/run/wake/run-wake-driver.ts +32 -7
  801. package/scripts/run/wake/run-wake-handoff.ts +9 -8
  802. package/scripts/run/wake/run-wake-loop.ts +23 -3
  803. package/scripts/run/wake/run-wake-ports.ts +17 -3
  804. package/scripts/run/wake/run-wake-takeover.ts +6 -3
  805. package/scripts/run/wake/run-wake-window.ts +4 -1
  806. package/scripts/run/wake/run-wake.ts +5 -0
  807. package/scripts/sync/sync-ai-files.ts +17 -0
  808. package/scripts/sync/sync-configs.ts +11 -1
  809. package/scripts/sync/sync.ts +5 -1
  810. package/scripts/test/test-related-cap.ts +7 -3
  811. package/scripts/test/test-related-imports.ts +92 -0
  812. package/scripts/test/vitest-failure-summary.ts +7 -0
  813. package/scripts/version/npm-registry.ts +45 -7
  814. package/scripts/version/upgrade-shell-command.ts +34 -2
  815. package/templates/workflows/ci.yml +0 -15
  816. package/templates/workflows/github-release.yml +0 -5
  817. package/dist/commands/chunk-23GH6B3D.js +0 -333
  818. package/dist/commands/chunk-24OATKOF.js +0 -7534
  819. package/dist/commands/chunk-24ZDAWML.js +0 -48
  820. package/dist/commands/chunk-2BB5ZR2F.js +0 -128
  821. package/dist/commands/chunk-2BJJUTZA.js +0 -59
  822. package/dist/commands/chunk-2CXT6MBR.js +0 -51
  823. package/dist/commands/chunk-2DJLAUYB.js +0 -109
  824. package/dist/commands/chunk-2EZTYLO4.js +0 -179
  825. package/dist/commands/chunk-2FJJYCBD.js +0 -149
  826. package/dist/commands/chunk-2PHOLX62.js +0 -43
  827. package/dist/commands/chunk-2QM72JCJ.js +0 -338
  828. package/dist/commands/chunk-2VRITY55.js +0 -41
  829. package/dist/commands/chunk-2XAH3MHV.js +0 -23
  830. package/dist/commands/chunk-34KZDKQJ.js +0 -304
  831. package/dist/commands/chunk-352KLSFX.js +0 -67
  832. package/dist/commands/chunk-36LOGVJ7.js +0 -38
  833. package/dist/commands/chunk-3AEDZZNL.js +0 -223
  834. package/dist/commands/chunk-3B2HEFNO.js +0 -51
  835. package/dist/commands/chunk-3PEXBHRN.js +0 -33
  836. package/dist/commands/chunk-3Z425MM3.js +0 -61
  837. package/dist/commands/chunk-3ZOX4G4U.js +0 -88
  838. package/dist/commands/chunk-452HWOJ7.js +0 -395
  839. package/dist/commands/chunk-475EFIJV.js +0 -178
  840. package/dist/commands/chunk-47UZB54M.js +0 -73
  841. package/dist/commands/chunk-4DN4XVPL.js +0 -716
  842. package/dist/commands/chunk-4DVM57T7.js +0 -86
  843. package/dist/commands/chunk-4EADHJVC.js +0 -247
  844. package/dist/commands/chunk-4HERA2GY.js +0 -95
  845. package/dist/commands/chunk-4JI35CVO.js +0 -70
  846. package/dist/commands/chunk-4L4LNWZ7.js +0 -143
  847. package/dist/commands/chunk-4N32QKJZ.js +0 -170
  848. package/dist/commands/chunk-4NRSFLG7.js +0 -185
  849. package/dist/commands/chunk-4OKRPAUT.js +0 -98
  850. package/dist/commands/chunk-4PUKDAXL.js +0 -42
  851. package/dist/commands/chunk-4Q64PG46.js +0 -478
  852. package/dist/commands/chunk-4UDTQVDD.js +0 -278
  853. package/dist/commands/chunk-4WR2LEZL.js +0 -123
  854. package/dist/commands/chunk-4ZJOC6OK.js +0 -298
  855. package/dist/commands/chunk-4ZQM4I7R.js +0 -533
  856. package/dist/commands/chunk-54X37JEJ.js +0 -170
  857. package/dist/commands/chunk-56KW5EOK.js +0 -85
  858. package/dist/commands/chunk-5CG3XU3O.js +0 -74
  859. package/dist/commands/chunk-5ESZLHDZ.js +0 -514
  860. package/dist/commands/chunk-5FBRMARM.js +0 -578
  861. package/dist/commands/chunk-5RG4S66L.js +0 -47
  862. package/dist/commands/chunk-5UJGACVN.js +0 -137
  863. package/dist/commands/chunk-5Y7B7FDL.js +0 -44
  864. package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
  865. package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
  866. package/dist/commands/chunk-5ZTQX7OS.js +0 -125
  867. package/dist/commands/chunk-66NX6EXR.js +0 -29
  868. package/dist/commands/chunk-66TGK5XL.js +0 -84
  869. package/dist/commands/chunk-6CFHLMKM.js +0 -555
  870. package/dist/commands/chunk-6DDK5XWK.js +0 -74
  871. package/dist/commands/chunk-6GQX752S.js +0 -145
  872. package/dist/commands/chunk-6HRRZANN.js +0 -55
  873. package/dist/commands/chunk-6MAZ55GF.js +0 -1241
  874. package/dist/commands/chunk-6OP63TBT.js +0 -78
  875. package/dist/commands/chunk-6Q3XUCLM.js +0 -204
  876. package/dist/commands/chunk-6RUWU2SB.js +0 -45
  877. package/dist/commands/chunk-6UCWAFQY.js +0 -245
  878. package/dist/commands/chunk-6WKJ3GDA.js +0 -408
  879. package/dist/commands/chunk-6YURRFRU.js +0 -461
  880. package/dist/commands/chunk-6YVURZAJ.js +0 -350
  881. package/dist/commands/chunk-6Z4YZG7P.js +0 -169
  882. package/dist/commands/chunk-77BIN247.js +0 -122
  883. package/dist/commands/chunk-7ABHNNY3.js +0 -529
  884. package/dist/commands/chunk-7C7FOKJK.js +0 -115
  885. package/dist/commands/chunk-7HAGC6SW.js +0 -1062
  886. package/dist/commands/chunk-7KKUFLH5.js +0 -56
  887. package/dist/commands/chunk-7LJQMM2K.js +0 -102
  888. package/dist/commands/chunk-7MJYLUF4.js +0 -99
  889. package/dist/commands/chunk-7NHZCI5Y.js +0 -704
  890. package/dist/commands/chunk-7OQ56DVW.js +0 -239
  891. package/dist/commands/chunk-7VWPGTZO.js +0 -260
  892. package/dist/commands/chunk-7YZXS3AK.js +0 -30
  893. package/dist/commands/chunk-A4HOQKOG.js +0 -85
  894. package/dist/commands/chunk-A6T2N7VC.js +0 -159
  895. package/dist/commands/chunk-AAUDI7WJ.js +0 -250
  896. package/dist/commands/chunk-AC26ZUG5.js +0 -259
  897. package/dist/commands/chunk-ACZ52JPI.js +0 -140
  898. package/dist/commands/chunk-AJ65WNJB.js +0 -230
  899. package/dist/commands/chunk-AK7SEO4Y.js +0 -177
  900. package/dist/commands/chunk-AKK56GNX.js +0 -205
  901. package/dist/commands/chunk-AKQYYHP2.js +0 -461
  902. package/dist/commands/chunk-ALDAS2WG.js +0 -137
  903. package/dist/commands/chunk-ANUTT56I.js +0 -85
  904. package/dist/commands/chunk-AVVMDVGO.js +0 -68
  905. package/dist/commands/chunk-B3M5WSGN.js +0 -72
  906. package/dist/commands/chunk-B7ZNIEDV.js +0 -351
  907. package/dist/commands/chunk-BCUDQWYK.js +0 -77
  908. package/dist/commands/chunk-BF6YX4HE.js +0 -70
  909. package/dist/commands/chunk-BHRS7HAM.js +0 -272
  910. package/dist/commands/chunk-BIKGPT52.js +0 -29
  911. package/dist/commands/chunk-BJA5U4Q7.js +0 -75
  912. package/dist/commands/chunk-BMKWSWWE.js +0 -126
  913. package/dist/commands/chunk-BMTYUJNT.js +0 -59
  914. package/dist/commands/chunk-BRHPRDDV.js +0 -127
  915. package/dist/commands/chunk-BRUBX64M.js +0 -33
  916. package/dist/commands/chunk-BTZJDHQT.js +0 -46
  917. package/dist/commands/chunk-BYFC6MD2.js +0 -72
  918. package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
  919. package/dist/commands/chunk-C2SEDMZ3.js +0 -238
  920. package/dist/commands/chunk-C54QXJD6.js +0 -4208
  921. package/dist/commands/chunk-C6QSVO5K.js +0 -56
  922. package/dist/commands/chunk-CBAKBWSZ.js +0 -332
  923. package/dist/commands/chunk-CFHRNTE5.js +0 -326
  924. package/dist/commands/chunk-CGLLAEKZ.js +0 -110
  925. package/dist/commands/chunk-CHKYPF5O.js +0 -82
  926. package/dist/commands/chunk-CJBW6BWG.js +0 -800
  927. package/dist/commands/chunk-CJKPF5DJ.js +0 -156
  928. package/dist/commands/chunk-CKUKK7JG.js +0 -252
  929. package/dist/commands/chunk-CMHGDCGN.js +0 -263
  930. package/dist/commands/chunk-CNGTHSUS.js +0 -750
  931. package/dist/commands/chunk-CP2J4RV2.js +0 -3987
  932. package/dist/commands/chunk-CQZI7RIK.js +0 -72
  933. package/dist/commands/chunk-CWCKCZS6.js +0 -188
  934. package/dist/commands/chunk-D5HIP4HT.js +0 -289
  935. package/dist/commands/chunk-D6D6WQR6.js +0 -125
  936. package/dist/commands/chunk-D7JRJI44.js +0 -297
  937. package/dist/commands/chunk-D7OAU32Z.js +0 -119
  938. package/dist/commands/chunk-DAAX7XDS.js +0 -1208
  939. package/dist/commands/chunk-DBKTFB5V.js +0 -18
  940. package/dist/commands/chunk-DEZF7QZZ.js +0 -184
  941. package/dist/commands/chunk-DMD74E3F.js +0 -39
  942. package/dist/commands/chunk-DPJVKTO4.js +0 -41
  943. package/dist/commands/chunk-DXJQHJQ4.js +0 -73
  944. package/dist/commands/chunk-DYZOOWVW.js +0 -912
  945. package/dist/commands/chunk-EBI2BAKQ.js +0 -47
  946. package/dist/commands/chunk-EDKOSZ3K.js +0 -88
  947. package/dist/commands/chunk-EFDVE5P5.js +0 -121
  948. package/dist/commands/chunk-EGIHAEMT.js +0 -72
  949. package/dist/commands/chunk-EKLU6QR7.js +0 -507
  950. package/dist/commands/chunk-ELY76WAR.js +0 -65
  951. package/dist/commands/chunk-EM3HAZF6.js +0 -52
  952. package/dist/commands/chunk-EMTZAGT5.js +0 -51
  953. package/dist/commands/chunk-ENKFCOVY.js +0 -472
  954. package/dist/commands/chunk-ERG4QRNG.js +0 -224
  955. package/dist/commands/chunk-EUGNQCYK.js +0 -139
  956. package/dist/commands/chunk-EW4NPUMQ.js +0 -363
  957. package/dist/commands/chunk-EWVR5AEX.js +0 -140
  958. package/dist/commands/chunk-EXDFKKMH.js +0 -113
  959. package/dist/commands/chunk-EXWB34R2.js +0 -238
  960. package/dist/commands/chunk-EYMPBHDN.js +0 -61
  961. package/dist/commands/chunk-EZ7IPKIH.js +0 -20
  962. package/dist/commands/chunk-EZSO25UZ.js +0 -80
  963. package/dist/commands/chunk-F6IQHZYY.js +0 -94
  964. package/dist/commands/chunk-FDS65XOJ.js +0 -212
  965. package/dist/commands/chunk-FFHEGWPK.js +0 -91
  966. package/dist/commands/chunk-FGL6DBZU.js +0 -71
  967. package/dist/commands/chunk-FHFWNNUC.js +0 -144
  968. package/dist/commands/chunk-FIUCHMCF.js +0 -32
  969. package/dist/commands/chunk-FJX7AENO.js +0 -74
  970. package/dist/commands/chunk-FKZ5E4JD.js +0 -97
  971. package/dist/commands/chunk-FMZWRDKH.js +0 -302
  972. package/dist/commands/chunk-FOKCRIAN.js +0 -67
  973. package/dist/commands/chunk-FQGWO2ZH.js +0 -43
  974. package/dist/commands/chunk-FROACLVU.js +0 -525
  975. package/dist/commands/chunk-FURNDIT3.js +0 -34
  976. package/dist/commands/chunk-FVDQNMP6.js +0 -93
  977. package/dist/commands/chunk-FVVZIJUC.js +0 -425
  978. package/dist/commands/chunk-FWU3H4TX.js +0 -17
  979. package/dist/commands/chunk-G3HBYHFA.js +0 -16
  980. package/dist/commands/chunk-G4E4M2P4.js +0 -299
  981. package/dist/commands/chunk-G5KSL2Q2.js +0 -151
  982. package/dist/commands/chunk-G6XC7V6Y.js +0 -58
  983. package/dist/commands/chunk-GCPP5XIG.js +0 -90
  984. package/dist/commands/chunk-GITT5A5A.js +0 -198
  985. package/dist/commands/chunk-GJYMI2CM.js +0 -48
  986. package/dist/commands/chunk-GLC47H7I.js +0 -285
  987. package/dist/commands/chunk-GUR54ELE.js +0 -328
  988. package/dist/commands/chunk-GW4UWR3O.js +0 -126
  989. package/dist/commands/chunk-GY4DMCKS.js +0 -306
  990. package/dist/commands/chunk-H6JQRHDC.js +0 -80
  991. package/dist/commands/chunk-HATKF6VX.js +0 -173
  992. package/dist/commands/chunk-HG2NZQD5.js +0 -135
  993. package/dist/commands/chunk-HH3CVIFU.js +0 -93
  994. package/dist/commands/chunk-HHMMGDMP.js +0 -469
  995. package/dist/commands/chunk-HI5WPM6C.js +0 -127
  996. package/dist/commands/chunk-HQGNXR6I.js +0 -245
  997. package/dist/commands/chunk-HTIDHEEN.js +0 -108
  998. package/dist/commands/chunk-HVCQYZVD.js +0 -38
  999. package/dist/commands/chunk-HWEZRNPL.js +0 -66
  1000. package/dist/commands/chunk-HX3FFIO5.js +0 -74
  1001. package/dist/commands/chunk-HXDTA5VU.js +0 -208
  1002. package/dist/commands/chunk-I2KCGKJI.js +0 -107
  1003. package/dist/commands/chunk-I63RNFFR.js +0 -213
  1004. package/dist/commands/chunk-IAD4WLLI.js +0 -98
  1005. package/dist/commands/chunk-IB5TT73I.js +0 -177
  1006. package/dist/commands/chunk-IBAYXCMU.js +0 -156
  1007. package/dist/commands/chunk-IGDJNXX2.js +0 -49
  1008. package/dist/commands/chunk-ILGPZ47M.js +0 -33
  1009. package/dist/commands/chunk-IYJEBWW5.js +0 -44
  1010. package/dist/commands/chunk-J22PSIXR.js +0 -418
  1011. package/dist/commands/chunk-J66YBAAM.js +0 -161
  1012. package/dist/commands/chunk-J6WKZRV2.js +0 -391
  1013. package/dist/commands/chunk-J7IO3AYH.js +0 -179
  1014. package/dist/commands/chunk-JAKC2BHX.js +0 -88
  1015. package/dist/commands/chunk-JCAQ7B6J.js +0 -124
  1016. package/dist/commands/chunk-JHN6RCE6.js +0 -123
  1017. package/dist/commands/chunk-JIGBNCDR.js +0 -88
  1018. package/dist/commands/chunk-JJHWTFWQ.js +0 -76
  1019. package/dist/commands/chunk-JJRKTWLK.js +0 -64
  1020. package/dist/commands/chunk-JKOGWGQM.js +0 -92
  1021. package/dist/commands/chunk-JM6EVOFN.js +0 -172
  1022. package/dist/commands/chunk-JQXPLMCO.js +0 -81
  1023. package/dist/commands/chunk-JV24VP2O.js +0 -81
  1024. package/dist/commands/chunk-JVKXJ763.js +0 -45
  1025. package/dist/commands/chunk-K275REYP.js +0 -37
  1026. package/dist/commands/chunk-K4G3HOKS.js +0 -105
  1027. package/dist/commands/chunk-K64EIHD2.js +0 -138
  1028. package/dist/commands/chunk-KB3OQWDT.js +0 -71
  1029. package/dist/commands/chunk-KCFOP5RI.js +0 -1310
  1030. package/dist/commands/chunk-KGE4AS2Y.js +0 -134
  1031. package/dist/commands/chunk-KIILCKQR.js +0 -220
  1032. package/dist/commands/chunk-KK2SL42W.js +0 -241
  1033. package/dist/commands/chunk-KKIMVXAP.js +0 -280
  1034. package/dist/commands/chunk-KODXWMBX.js +0 -77
  1035. package/dist/commands/chunk-KPSKWTOS.js +0 -208
  1036. package/dist/commands/chunk-KVHNQHX3.js +0 -100
  1037. package/dist/commands/chunk-KWYQR5MK.js +0 -269
  1038. package/dist/commands/chunk-KXHXMERX.js +0 -214
  1039. package/dist/commands/chunk-KZ5BBBMO.js +0 -271
  1040. package/dist/commands/chunk-KZ7HD37E.js +0 -121
  1041. package/dist/commands/chunk-KZSM5M5P.js +0 -89
  1042. package/dist/commands/chunk-KZZWPUJW.js +0 -25
  1043. package/dist/commands/chunk-L7DAL54N.js +0 -347
  1044. package/dist/commands/chunk-LAR76BFA.js +0 -114
  1045. package/dist/commands/chunk-LB557AHJ.js +0 -192
  1046. package/dist/commands/chunk-LJXKVLYI.js +0 -229
  1047. package/dist/commands/chunk-LOOFYHUM.js +0 -773
  1048. package/dist/commands/chunk-LQXFVZTS.js +0 -13
  1049. package/dist/commands/chunk-LT7QSHR4.js +0 -995
  1050. package/dist/commands/chunk-LUXWDMKI.js +0 -426
  1051. package/dist/commands/chunk-LWAXXZPS.js +0 -118
  1052. package/dist/commands/chunk-LX7TIEMI.js +0 -1612
  1053. package/dist/commands/chunk-LZ5QXE5N.js +0 -244
  1054. package/dist/commands/chunk-LZPPSOTP.js +0 -122
  1055. package/dist/commands/chunk-M4UV3BEV.js +0 -313
  1056. package/dist/commands/chunk-M6JDU5EK.js +0 -133
  1057. package/dist/commands/chunk-MDLOETXL.js +0 -211
  1058. package/dist/commands/chunk-MFBNNTBM.js +0 -44
  1059. package/dist/commands/chunk-MGF64OHV.js +0 -32
  1060. package/dist/commands/chunk-MI2OS6TL.js +0 -132
  1061. package/dist/commands/chunk-MLW4S35K.js +0 -389
  1062. package/dist/commands/chunk-MN425CU6.js +0 -63
  1063. package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
  1064. package/dist/commands/chunk-MRORPFSO.js +0 -402
  1065. package/dist/commands/chunk-MUGTOJUL.js +0 -319
  1066. package/dist/commands/chunk-MVHPRYHE.js +0 -91
  1067. package/dist/commands/chunk-MWO6FOSZ.js +0 -393
  1068. package/dist/commands/chunk-MXC4IBZ7.js +0 -104
  1069. package/dist/commands/chunk-N7QTMTST.js +0 -210
  1070. package/dist/commands/chunk-NDBX7LSS.js +0 -32
  1071. package/dist/commands/chunk-NEGJ77RV.js +0 -173
  1072. package/dist/commands/chunk-NEGRE5VW.js +0 -101
  1073. package/dist/commands/chunk-NFPD2P3V.js +0 -53
  1074. package/dist/commands/chunk-NHIW7JE6.js +0 -335
  1075. package/dist/commands/chunk-NILSN7A4.js +0 -158
  1076. package/dist/commands/chunk-NOLFSPOB.js +0 -74
  1077. package/dist/commands/chunk-NSAVEXVR.js +0 -353
  1078. package/dist/commands/chunk-NT67QTZO.js +0 -65
  1079. package/dist/commands/chunk-NU7W6QGT.js +0 -155
  1080. package/dist/commands/chunk-NYWGJLBU.js +0 -19
  1081. package/dist/commands/chunk-OAAVY2JK.js +0 -49
  1082. package/dist/commands/chunk-OGS2DK7I.js +0 -47
  1083. package/dist/commands/chunk-OHNP3QL2.js +0 -186
  1084. package/dist/commands/chunk-OIPV3PWW.js +0 -870
  1085. package/dist/commands/chunk-OIX2363L.js +0 -16
  1086. package/dist/commands/chunk-OJ65BZBV.js +0 -646
  1087. package/dist/commands/chunk-OKZWEVR4.js +0 -352
  1088. package/dist/commands/chunk-OL6IF4JC.js +0 -20
  1089. package/dist/commands/chunk-OMPRILFH.js +0 -29
  1090. package/dist/commands/chunk-OOWGH2RG.js +0 -85
  1091. package/dist/commands/chunk-OP2RFVLS.js +0 -102
  1092. package/dist/commands/chunk-ORKVN2LO.js +0 -56
  1093. package/dist/commands/chunk-OSBWXZJ4.js +0 -492
  1094. package/dist/commands/chunk-OT3UMEWK.js +0 -47
  1095. package/dist/commands/chunk-OVWPZDWP.js +0 -64
  1096. package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
  1097. package/dist/commands/chunk-OX3VQLV2.js +0 -488
  1098. package/dist/commands/chunk-OZJP77UM.js +0 -103
  1099. package/dist/commands/chunk-OZZWRJQI.js +0 -246
  1100. package/dist/commands/chunk-P3H3DKTE.js +0 -69
  1101. package/dist/commands/chunk-P4D5RESF.js +0 -88
  1102. package/dist/commands/chunk-P4KIQRSL.js +0 -119
  1103. package/dist/commands/chunk-P5SOYWH2.js +0 -37
  1104. package/dist/commands/chunk-P7FPXAHP.js +0 -29
  1105. package/dist/commands/chunk-PE7B7242.js +0 -84
  1106. package/dist/commands/chunk-PFO7EYAP.js +0 -45
  1107. package/dist/commands/chunk-PHLOTUB7.js +0 -366
  1108. package/dist/commands/chunk-PTNQCCIB.js +0 -41
  1109. package/dist/commands/chunk-PTZEFQUX.js +0 -211
  1110. package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
  1111. package/dist/commands/chunk-Q7EEIOAD.js +0 -120
  1112. package/dist/commands/chunk-QABRNGQV.js +0 -88
  1113. package/dist/commands/chunk-QAHFPCFR.js +0 -50
  1114. package/dist/commands/chunk-QDFVVRQP.js +0 -92
  1115. package/dist/commands/chunk-QGAERR7D.js +0 -99
  1116. package/dist/commands/chunk-QHWJJ6X5.js +0 -53
  1117. package/dist/commands/chunk-QJRVDE7T.js +0 -307
  1118. package/dist/commands/chunk-QMDKDQKW.js +0 -114
  1119. package/dist/commands/chunk-QOSC5RKD.js +0 -18
  1120. package/dist/commands/chunk-QQ4CIYMF.js +0 -132
  1121. package/dist/commands/chunk-QV5FKMOU.js +0 -80
  1122. package/dist/commands/chunk-QWWTC3XR.js +0 -109
  1123. package/dist/commands/chunk-QXQ56E56.js +0 -27
  1124. package/dist/commands/chunk-R54Z2Z3X.js +0 -114
  1125. package/dist/commands/chunk-R6QE5VJG.js +0 -46
  1126. package/dist/commands/chunk-RG53UFNW.js +0 -418
  1127. package/dist/commands/chunk-RGGEQM6G.js +0 -140
  1128. package/dist/commands/chunk-RH6ZWJOA.js +0 -77
  1129. package/dist/commands/chunk-RHKCWJQX.js +0 -62
  1130. package/dist/commands/chunk-RKIAX4DZ.js +0 -191
  1131. package/dist/commands/chunk-RLBFEHHC.js +0 -300
  1132. package/dist/commands/chunk-RN2YDNLF.js +0 -229
  1133. package/dist/commands/chunk-RRAIRS2T.js +0 -54
  1134. package/dist/commands/chunk-RS764ZMU.js +0 -46
  1135. package/dist/commands/chunk-RUIBQMOV.js +0 -38
  1136. package/dist/commands/chunk-RUQY5TS3.js +0 -83
  1137. package/dist/commands/chunk-RVUJ6F5L.js +0 -181
  1138. package/dist/commands/chunk-RW64VHEB.js +0 -130
  1139. package/dist/commands/chunk-RXYMJPJB.js +0 -114
  1140. package/dist/commands/chunk-S4M6UWR2.js +0 -103
  1141. package/dist/commands/chunk-SASX3W2M.js +0 -99
  1142. package/dist/commands/chunk-SFNBUB6D.js +0 -110
  1143. package/dist/commands/chunk-SJ2ZN575.js +0 -90
  1144. package/dist/commands/chunk-SP7DKYGU.js +0 -1263
  1145. package/dist/commands/chunk-SSL6A3Y4.js +0 -165
  1146. package/dist/commands/chunk-SVAKCXZ7.js +0 -44
  1147. package/dist/commands/chunk-SYOXIKB7.js +0 -705
  1148. package/dist/commands/chunk-SZG5HDNP.js +0 -321
  1149. package/dist/commands/chunk-T25S4QHL.js +0 -52
  1150. package/dist/commands/chunk-T4F33UKZ.js +0 -114
  1151. package/dist/commands/chunk-T4UYEHWG.js +0 -50
  1152. package/dist/commands/chunk-TAEGXID2.js +0 -58
  1153. package/dist/commands/chunk-TCBUX52E.js +0 -701
  1154. package/dist/commands/chunk-TEPYEUYG.js +0 -585
  1155. package/dist/commands/chunk-TFLHYC2F.js +0 -141
  1156. package/dist/commands/chunk-TJKM56WJ.js +0 -109
  1157. package/dist/commands/chunk-TLAB552K.js +0 -445
  1158. package/dist/commands/chunk-TP6L4W3W.js +0 -82
  1159. package/dist/commands/chunk-TR7WWYD5.js +0 -60
  1160. package/dist/commands/chunk-TVZXG4Y4.js +0 -197
  1161. package/dist/commands/chunk-TYNH2R66.js +0 -1150
  1162. package/dist/commands/chunk-U3IVVR4W.js +0 -33
  1163. package/dist/commands/chunk-U5P6G3UV.js +0 -77
  1164. package/dist/commands/chunk-U7XU5RG3.js +0 -86
  1165. package/dist/commands/chunk-UKBBWMLE.js +0 -1189
  1166. package/dist/commands/chunk-ULVVGGTY.js +0 -64
  1167. package/dist/commands/chunk-UNMSZGSG.js +0 -269
  1168. package/dist/commands/chunk-URDT2O2K.js +0 -36
  1169. package/dist/commands/chunk-UTHUX7VU.js +0 -88
  1170. package/dist/commands/chunk-V4Z7G4UH.js +0 -73
  1171. package/dist/commands/chunk-V5FD7DVV.js +0 -48
  1172. package/dist/commands/chunk-VCPGFBMN.js +0 -655
  1173. package/dist/commands/chunk-VGPIQNDB.js +0 -24
  1174. package/dist/commands/chunk-VJE3RJAX.js +0 -23
  1175. package/dist/commands/chunk-VK6D5CWA.js +0 -161
  1176. package/dist/commands/chunk-VOF3N4WO.js +0 -114
  1177. package/dist/commands/chunk-VQVPAVQ3.js +0 -45
  1178. package/dist/commands/chunk-VV4TQYGD.js +0 -38
  1179. package/dist/commands/chunk-W3FX7FYN.js +0 -84
  1180. package/dist/commands/chunk-W7DRUOF7.js +0 -122
  1181. package/dist/commands/chunk-WAEN2RTT.js +0 -161
  1182. package/dist/commands/chunk-WCEUMOKK.js +0 -84
  1183. package/dist/commands/chunk-WJ4NEDNI.js +0 -288
  1184. package/dist/commands/chunk-WMMGXJXP.js +0 -92
  1185. package/dist/commands/chunk-WOFLW2LX.js +0 -26
  1186. package/dist/commands/chunk-WTH6NTXU.js +0 -128
  1187. package/dist/commands/chunk-WWVYEHQT.js +0 -272
  1188. package/dist/commands/chunk-X3TNPALI.js +0 -213
  1189. package/dist/commands/chunk-XC6GG5JR.js +0 -78
  1190. package/dist/commands/chunk-XDF25GSU.js +0 -536
  1191. package/dist/commands/chunk-XFPEUYDV.js +0 -67
  1192. package/dist/commands/chunk-XFWI6WHH.js +0 -60
  1193. package/dist/commands/chunk-XGMRAKSL.js +0 -85
  1194. package/dist/commands/chunk-XHGWMD3L.js +0 -104
  1195. package/dist/commands/chunk-XKSUBUIH.js +0 -116
  1196. package/dist/commands/chunk-XPBF5DG3.js +0 -419
  1197. package/dist/commands/chunk-XUMYPESL.js +0 -160
  1198. package/dist/commands/chunk-XXC32PVL.js +0 -541
  1199. package/dist/commands/chunk-XXN2EZBY.js +0 -133
  1200. package/dist/commands/chunk-XXNEY4B3.js +0 -110
  1201. package/dist/commands/chunk-Y27PTXXI.js +0 -258
  1202. package/dist/commands/chunk-Y4EBUI6M.js +0 -237
  1203. package/dist/commands/chunk-YAU3LYNF.js +0 -60
  1204. package/dist/commands/chunk-YDURQICF.js +0 -204
  1205. package/dist/commands/chunk-YGFOGA7C.js +0 -1153
  1206. package/dist/commands/chunk-YHJ2AJMA.js +0 -66
  1207. package/dist/commands/chunk-YIA6FC3K.js +0 -78
  1208. package/dist/commands/chunk-YM77CF4D.js +0 -183
  1209. package/dist/commands/chunk-YNPRJCEO.js +0 -81
  1210. package/dist/commands/chunk-YTBQAD5W.js +0 -170
  1211. package/dist/commands/chunk-YVH2OLDS.js +0 -104
  1212. package/dist/commands/chunk-ZAAHZY2A.js +0 -19
  1213. package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
  1214. package/dist/commands/chunk-ZLRUHSOP.js +0 -48
  1215. package/dist/commands/chunk-ZNR75OXP.js +0 -444
  1216. package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
  1217. package/dist/commands/chunk-ZVAIIHBE.js +0 -63
  1218. package/dist/commands/chunk-ZYFHYQA7.js +0 -51
  1219. package/dist/commands/chunk-ZZFFSQF4.js +0 -218
  1220. package/dist/commands/chunk-ZZULXNC2.js +0 -47
  1221. package/dist/commands/chunk-ZZXO6TFH.js +0 -232
  1222. package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
  1223. package/dist/commands/test-related-ZCNC46MS.js +0 -113
  1224. package/dist/commands/unused-members-STULPRBU.js +0 -331
  1225. package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
  1226. package/dist/hooks/chunk-5R5YFQR5.js +0 -931
  1227. package/dist/hooks/chunk-6RLY27FT.js +0 -232
  1228. package/dist/hooks/chunk-6YGMIODI.js +0 -86
  1229. package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
  1230. package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
  1231. package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
  1232. package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
  1233. package/dist/hooks/chunk-IURJANNZ.js +0 -1082
  1234. package/dist/hooks/chunk-OV22V63P.js +0 -10980
  1235. package/dist/hooks/chunk-SXABK6UV.js +0 -321
  1236. 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
- };