@joshuafolkken/kit 1.3041.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 (1243) 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/progress-watcher.md +10 -8
  7. package/.claude/skills/workflow-commands/retrospective.md +2 -1
  8. package/.claude/skills/workflow-commands/split-assessment.md +4 -0
  9. package/.github/workflows/ci.yml +0 -20
  10. package/.github/workflows/pr-classification.yml +0 -5
  11. package/.github/workflows/publish.yml +0 -1
  12. package/.github/workflows/sonar-qube.yml +0 -5
  13. package/README.md +2 -0
  14. package/SECURITY.md +2 -1
  15. package/dist/.inputs-verified.json +1 -1
  16. package/dist/commands/adopt.js +29 -20
  17. package/dist/commands/auto-ok-judge-cli.js +43 -33
  18. package/dist/commands/auto-ok-main.js +73 -74
  19. package/dist/commands/backlog-budget-main.js +5 -6
  20. package/dist/commands/backlog-drive-cli.js +286 -305
  21. package/dist/commands/backlog-next-main.js +111 -108
  22. package/dist/commands/backlog-offer-main.js +148 -112
  23. package/dist/commands/backlog-plan-cli.js +123 -120
  24. package/dist/commands/backlog-triage-cli.js +131 -128
  25. package/dist/commands/backlogrun-cli.js +273 -264
  26. package/dist/commands/behavior-cli.js +23 -26
  27. package/dist/commands/bytes-command.js +56 -59
  28. package/dist/commands/cases-cli.js +4 -5
  29. package/dist/commands/check-commit-message-main.js +3 -4
  30. package/dist/commands/check-related.js +125 -119
  31. package/dist/commands/chunk-26JL4UU4.js +365 -0
  32. package/dist/commands/chunk-2BIVHPCA.js +85 -0
  33. package/dist/commands/chunk-2CKJODCK.js +245 -0
  34. package/dist/commands/chunk-2E6PSONB.js +46 -0
  35. package/dist/commands/chunk-2GA4775H.js +77 -0
  36. package/dist/commands/chunk-2O64H5UJ.js +462 -0
  37. package/dist/commands/chunk-2OEXY4GM.js +252 -0
  38. package/dist/commands/chunk-2OMIHPPE.js +51 -0
  39. package/dist/commands/chunk-2ONSHOAY.js +46 -0
  40. package/dist/commands/chunk-2Q7MGFYB.js +1208 -0
  41. package/dist/commands/chunk-2SA3W4JF.js +41 -0
  42. package/dist/commands/chunk-2VY7CJ2R.js +212 -0
  43. package/dist/commands/chunk-2WRDAQPJ.js +74 -0
  44. package/dist/commands/chunk-2XLR7R6E.js +541 -0
  45. package/dist/commands/chunk-2XZF3YFY.js +47 -0
  46. package/dist/commands/chunk-33TAOZUE.js +29 -0
  47. package/dist/commands/chunk-374XGAWD.js +158 -0
  48. package/dist/commands/chunk-3CJNQU7P.js +179 -0
  49. package/dist/commands/chunk-3D5T6KMW.js +59 -0
  50. package/dist/commands/chunk-3EW5LTN3.js +114 -0
  51. package/dist/commands/chunk-3F3RNIG2.js +128 -0
  52. package/dist/commands/chunk-3FLTEJZY.js +74 -0
  53. package/dist/commands/chunk-3JWPTRNI.js +60 -0
  54. package/dist/commands/chunk-3MQTOUXT.js +94 -0
  55. package/dist/commands/chunk-3PCUERXE.js +19 -0
  56. package/dist/commands/chunk-3U6A5WON.js +173 -0
  57. package/dist/commands/chunk-3YT3RCSI.js +140 -0
  58. package/dist/commands/chunk-43DU7DYZ.js +540 -0
  59. package/dist/commands/chunk-43H725LG.js +132 -0
  60. package/dist/commands/chunk-46STCE6Q.js +48 -0
  61. package/dist/commands/chunk-46WEC6HZ.js +82 -0
  62. package/dist/commands/chunk-47J4KOZP.js +46 -0
  63. package/dist/commands/chunk-47W7PF4T.js +22 -0
  64. package/dist/commands/chunk-4F4KARQN.js +229 -0
  65. package/dist/commands/chunk-4GUGC4IW.js +338 -0
  66. package/dist/commands/chunk-4HB7NWXP.js +263 -0
  67. package/dist/commands/chunk-4HOTJAO6.js +89 -0
  68. package/dist/commands/chunk-4I5AA4P5.js +237 -0
  69. package/dist/commands/chunk-4IDINPBE.js +525 -0
  70. package/dist/commands/chunk-4K7KLR7L.js +69 -0
  71. package/dist/commands/chunk-4MGTNY2L.js +347 -0
  72. package/dist/commands/chunk-4NSIW3UB.js +104 -0
  73. package/dist/commands/chunk-4YTKV6WV.js +37 -0
  74. package/dist/commands/chunk-5ARNFMQK.js +1263 -0
  75. package/dist/commands/chunk-5AZTSESD.js +114 -0
  76. package/dist/commands/chunk-5FUI2MLY.js +89 -0
  77. package/dist/commands/chunk-5GI5GLC4.js +214 -0
  78. package/dist/commands/chunk-5IHEBIPD.js +333 -0
  79. package/dist/commands/chunk-5KAW5GPF.js +44 -0
  80. package/dist/commands/chunk-5KSJEWXR.js +77 -0
  81. package/dist/commands/chunk-5OF2B4BF.js +35 -0
  82. package/dist/commands/chunk-5PLJ7R3D.js +126 -0
  83. package/dist/commands/chunk-5PPWXOCF.js +64 -0
  84. package/dist/commands/chunk-5VQCL33M.js +46 -0
  85. package/dist/commands/chunk-5Y7FOJLX.js +186 -0
  86. package/dist/commands/chunk-5YTEMF4O.js +110 -0
  87. package/dist/commands/chunk-62NYXZCC.js +241 -0
  88. package/dist/commands/chunk-6KUA7MRG.js +64 -0
  89. package/dist/commands/chunk-6LDEZFYR.js +88 -0
  90. package/dist/commands/chunk-6NXIZMIK.js +122 -0
  91. package/dist/commands/chunk-6O45F6YI.js +86 -0
  92. package/dist/commands/chunk-6OHJBQDE.js +184 -0
  93. package/dist/commands/chunk-6WDCCG3M.js +1249 -0
  94. package/dist/commands/chunk-6ZHXEQAI.js +715 -0
  95. package/dist/commands/chunk-736NECRD.js +16 -0
  96. package/dist/commands/chunk-77LEKVEE.js +32 -0
  97. package/dist/commands/chunk-7CX5VYOL.js +50 -0
  98. package/dist/commands/chunk-7DGHFBU7.js +247 -0
  99. package/dist/commands/chunk-7E43YW53.js +128 -0
  100. package/dist/commands/chunk-7EAYFMDN.js +235 -0
  101. package/dist/commands/chunk-7HP3FQGQ.js +51 -0
  102. package/dist/commands/chunk-7JOOMFDI.js +155 -0
  103. package/dist/commands/chunk-7OEBSPPU.js +321 -0
  104. package/dist/commands/chunk-A3JYZWBS.js +803 -0
  105. package/dist/commands/chunk-A3LCN4KA.js +84 -0
  106. package/dist/commands/chunk-ABLXBG6C.js +98 -0
  107. package/dist/commands/chunk-AN7BFVHU.js +244 -0
  108. package/dist/commands/chunk-AQCVEQSM.js +99 -0
  109. package/dist/commands/chunk-AT46EY7H.js +393 -0
  110. package/dist/commands/chunk-AU563VKH.js +75 -0
  111. package/dist/commands/chunk-AUTD5FV2.js +1077 -0
  112. package/dist/commands/chunk-AV26CMY6.js +304 -0
  113. package/dist/commands/chunk-B2PJEV3S.js +246 -0
  114. package/dist/commands/chunk-B545ENGY.js +214 -0
  115. package/dist/commands/chunk-B5HP6T4L.js +170 -0
  116. package/dist/commands/chunk-B5XYAWNN.js +37 -0
  117. package/dist/commands/chunk-B73IIRMS.js +207 -0
  118. package/dist/commands/chunk-BAEDHPXW.js +160 -0
  119. package/dist/commands/chunk-BDSG6JKH.js +977 -0
  120. package/dist/commands/chunk-BE6F4YK2.js +769 -0
  121. package/dist/commands/chunk-BFKTUD3V.js +33 -0
  122. package/dist/commands/chunk-BLRXHK2V.js +17 -0
  123. package/dist/commands/chunk-BLUAO4QW.js +173 -0
  124. package/dist/commands/chunk-BML6MEUB.js +326 -0
  125. package/dist/commands/chunk-BPDNGJXY.js +63 -0
  126. package/dist/commands/chunk-BQLKWGGC.js +118 -0
  127. package/dist/commands/chunk-BRMJVCP7.js +167 -0
  128. package/dist/commands/chunk-BRWR5YKU.js +268 -0
  129. package/dist/commands/chunk-BUZAYEBD.js +319 -0
  130. package/dist/commands/chunk-BVUL57IX.js +139 -0
  131. package/dist/commands/chunk-CC4BIGCA.js +20 -0
  132. package/dist/commands/chunk-CCHJZEF5.js +4220 -0
  133. package/dist/commands/chunk-CDK7QZWG.js +44 -0
  134. package/dist/commands/chunk-CDYFUCDC.js +72 -0
  135. package/dist/commands/chunk-CEADAQIL.js +170 -0
  136. package/dist/commands/chunk-CNL3SLM6.js +116 -0
  137. package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
  138. package/dist/commands/chunk-CTXJVMHW.js +48 -0
  139. package/dist/commands/chunk-CUWT6UQO.js +13 -0
  140. package/dist/commands/chunk-CVRDJCOE.js +125 -0
  141. package/dist/commands/chunk-D6CF5QGM.js +80 -0
  142. package/dist/commands/chunk-DACNQAXC.js +20 -0
  143. package/dist/commands/chunk-DDOS32JU.js +74 -0
  144. package/dist/commands/chunk-DDZVMXZD.js +481 -0
  145. package/dist/commands/chunk-DF6QD4AF.js +52 -0
  146. package/dist/commands/chunk-DFEXNB44.js +159 -0
  147. package/dist/commands/chunk-DHDKG5HZ.js +151 -0
  148. package/dist/commands/chunk-DHJRFBKO.js +223 -0
  149. package/dist/commands/chunk-DKDWOE3C.js +78 -0
  150. package/dist/commands/chunk-DKO5VTEH.js +65 -0
  151. package/dist/commands/chunk-DLHH3MLS.js +85 -0
  152. package/dist/commands/chunk-DOYNK72G.js +81 -0
  153. package/dist/commands/chunk-DS53UUDH.js +679 -0
  154. package/dist/commands/chunk-DUA4E4ES.js +230 -0
  155. package/dist/commands/chunk-DURHGVRC.js +33 -0
  156. package/dist/commands/chunk-DVCMQMRN.js +191 -0
  157. package/dist/commands/chunk-E3YKMCCJ.js +108 -0
  158. package/dist/commands/chunk-E4F2RTKC.js +272 -0
  159. package/dist/commands/chunk-E4PFCTXN.js +127 -0
  160. package/dist/commands/chunk-EAOTR2WL.js +24 -0
  161. package/dist/commands/chunk-EE4VOZJP.js +167 -0
  162. package/dist/commands/chunk-EHVEWJQ4.js +33 -0
  163. package/dist/commands/chunk-EMFSPPMH.js +98 -0
  164. package/dist/commands/chunk-EN65ZS3S.js +73 -0
  165. package/dist/commands/chunk-ES42XPAD.js +123 -0
  166. package/dist/commands/chunk-ESUY7KTZ.js +137 -0
  167. package/dist/commands/chunk-ET6IRQ3L.js +330 -0
  168. package/dist/commands/chunk-EWCUT7U2.js +1314 -0
  169. package/dist/commands/chunk-EWXXEGXL.js +149 -0
  170. package/dist/commands/chunk-EZYW54OQ.js +7569 -0
  171. package/dist/commands/chunk-F2RDEF2J.js +205 -0
  172. package/dist/commands/chunk-F2U46HAE.js +52 -0
  173. package/dist/commands/chunk-F2VYWU6Z.js +653 -0
  174. package/dist/commands/chunk-F4SGOTUF.js +36 -0
  175. package/dist/commands/chunk-F4YMLVWN.js +183 -0
  176. package/dist/commands/chunk-F5N2QIFD.js +213 -0
  177. package/dist/commands/chunk-F7B4ESZE.js +80 -0
  178. package/dist/commands/chunk-FJM2HWKW.js +299 -0
  179. package/dist/commands/chunk-FJMXUDEY.js +3985 -0
  180. package/dist/commands/chunk-FM7VVAK6.js +426 -0
  181. package/dist/commands/chunk-FQWRM5FC.js +67 -0
  182. package/dist/commands/chunk-FT33ZCSB.js +298 -0
  183. package/dist/commands/chunk-G2DNS74C.js +53 -0
  184. package/dist/commands/chunk-G75GWNNY.js +101 -0
  185. package/dist/commands/chunk-GA2YSPFH.js +32 -0
  186. package/dist/commands/chunk-GAVSK6P6.js +230 -0
  187. package/dist/commands/chunk-GB2BRQVL.js +300 -0
  188. package/dist/commands/chunk-GBMZXFFC.js +44 -0
  189. package/dist/commands/chunk-GDP7QXYE.js +76 -0
  190. package/dist/commands/chunk-GGWXF7RJ.js +70 -0
  191. package/dist/commands/chunk-GHOTKHI4.js +30 -0
  192. package/dist/commands/chunk-GMVN6ZP2.js +48 -0
  193. package/dist/commands/chunk-GNTTGRCX.js +133 -0
  194. package/dist/commands/chunk-GOY5JECO.js +130 -0
  195. package/dist/commands/chunk-GVDRRBHZ.js +507 -0
  196. package/dist/commands/chunk-GWTBIGYC.js +550 -0
  197. package/dist/commands/chunk-GZL6ISVM.js +72 -0
  198. package/dist/commands/chunk-HALHQILI.js +51 -0
  199. package/dist/commands/chunk-HAT7AFBF.js +85 -0
  200. package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
  201. package/dist/commands/chunk-HE3GOMR7.js +88 -0
  202. package/dist/commands/chunk-HEFUC4ZW.js +65 -0
  203. package/dist/commands/chunk-HESWKELD.js +60 -0
  204. package/dist/commands/chunk-HNFBEB4L.js +77 -0
  205. package/dist/commands/chunk-HRN73FQJ.js +77 -0
  206. package/dist/commands/chunk-HYE3MBAN.js +113 -0
  207. package/dist/commands/chunk-IAB6LCJL.js +18 -0
  208. package/dist/commands/chunk-IAGENI2U.js +42 -0
  209. package/dist/commands/chunk-ICPVBHIX.js +48 -0
  210. package/dist/commands/chunk-IEKW3ON6.js +161 -0
  211. package/dist/commands/chunk-IOKOHB7P.js +109 -0
  212. package/dist/commands/chunk-IONGJJYM.js +179 -0
  213. package/dist/commands/chunk-IP23WOWP.js +126 -0
  214. package/dist/commands/chunk-IPS7EBE5.js +140 -0
  215. package/dist/commands/chunk-IXZZSST7.js +459 -0
  216. package/dist/commands/chunk-J4XHEOOW.js +156 -0
  217. package/dist/commands/chunk-JDHLHYJJ.js +208 -0
  218. package/dist/commands/chunk-JEYITIWB.js +423 -0
  219. package/dist/commands/chunk-JGX7JIW4.js +126 -0
  220. package/dist/commands/chunk-JHIGDFBS.js +59 -0
  221. package/dist/commands/chunk-JI2EGXZX.js +53 -0
  222. package/dist/commands/chunk-JNV3VRK2.js +47 -0
  223. package/dist/commands/chunk-JPMAW2VZ.js +91 -0
  224. package/dist/commands/chunk-JQEY6KDP.js +90 -0
  225. package/dist/commands/chunk-JSJDIEGZ.js +88 -0
  226. package/dist/commands/chunk-JT5ICRFF.js +44 -0
  227. package/dist/commands/chunk-JUCJ4Y42.js +77 -0
  228. package/dist/commands/chunk-K3OZBV3L.js +49 -0
  229. package/dist/commands/chunk-K5H3CLZZ.js +430 -0
  230. package/dist/commands/chunk-K6P5PISC.js +114 -0
  231. package/dist/commands/chunk-KD3SEAMV.js +402 -0
  232. package/dist/commands/chunk-KDCHY7XO.js +88 -0
  233. package/dist/commands/chunk-KDGX3JTV.js +51 -0
  234. package/dist/commands/chunk-KGSEWOKI.js +353 -0
  235. package/dist/commands/chunk-KHGDZQRG.js +271 -0
  236. package/dist/commands/chunk-KIS7JFNP.js +217 -0
  237. package/dist/commands/chunk-KKHD3C2P.js +114 -0
  238. package/dist/commands/chunk-KKIIY5I5.js +67 -0
  239. package/dist/commands/chunk-KN46UC77.js +114 -0
  240. package/dist/commands/chunk-KP2BVAS5.js +125 -0
  241. package/dist/commands/chunk-KPAJBJXG.js +63 -0
  242. package/dist/commands/chunk-KPMAJP6D.js +145 -0
  243. package/dist/commands/chunk-KR6WUAJM.js +122 -0
  244. package/dist/commands/chunk-KWLNK2NJ.js +391 -0
  245. package/dist/commands/chunk-L2CLCNXW.js +144 -0
  246. package/dist/commands/chunk-L7MDU6D7.js +155 -0
  247. package/dist/commands/chunk-L7VD4MLF.js +78 -0
  248. package/dist/commands/chunk-LBMAJDGN.js +124 -0
  249. package/dist/commands/chunk-LBVYFW3I.js +38 -0
  250. package/dist/commands/chunk-LE3M42CF.js +350 -0
  251. package/dist/commands/chunk-LIPUSINQ.js +140 -0
  252. package/dist/commands/chunk-LJVZWE3A.js +1885 -0
  253. package/dist/commands/chunk-LKSSQVDA.js +49 -0
  254. package/dist/commands/chunk-LL6G34MF.js +93 -0
  255. package/dist/commands/chunk-LNQOL2CL.js +321 -0
  256. package/dist/commands/chunk-LS7P324N.js +72 -0
  257. package/dist/commands/chunk-LU5EOGFQ.js +50 -0
  258. package/dist/commands/chunk-LX2ENXHZ.js +197 -0
  259. package/dist/commands/chunk-M32UPB2D.js +110 -0
  260. package/dist/commands/chunk-M3UGRNNB.js +103 -0
  261. package/dist/commands/chunk-M4WG74Q7.js +260 -0
  262. package/dist/commands/chunk-M5HA2ZCG.js +105 -0
  263. package/dist/commands/chunk-MDGPJOLK.js +351 -0
  264. package/dist/commands/chunk-MDKRTUE4.js +288 -0
  265. package/dist/commands/chunk-MFZVRWRS.js +34 -0
  266. package/dist/commands/chunk-MHXIJKGP.js +304 -0
  267. package/dist/commands/chunk-MK4CARBI.js +90 -0
  268. package/dist/commands/chunk-MLJDW7YN.js +64 -0
  269. package/dist/commands/chunk-MNLHYAJO.js +80 -0
  270. package/dist/commands/chunk-MOD3FG4V.js +419 -0
  271. package/dist/commands/chunk-MRAEJLXL.js +83 -0
  272. package/dist/commands/chunk-MRW2WYJS.js +68 -0
  273. package/dist/commands/chunk-MXPCEZL5.js +23 -0
  274. package/dist/commands/chunk-N2XH7QBY.js +103 -0
  275. package/dist/commands/chunk-N2ZF6T4E.js +332 -0
  276. package/dist/commands/chunk-N36NZMAL.js +79 -0
  277. package/dist/commands/chunk-N4EMFHQ6.js +114 -0
  278. package/dist/commands/chunk-N4P64UIH.js +211 -0
  279. package/dist/commands/chunk-NABSSY4P.js +204 -0
  280. package/dist/commands/chunk-NDQIJBRQ.js +100 -0
  281. package/dist/commands/chunk-NDR4PCVG.js +29 -0
  282. package/dist/commands/chunk-NEOCCN6D.js +302 -0
  283. package/dist/commands/chunk-NFKWFOFM.js +45 -0
  284. package/dist/commands/chunk-NFUPJBBG.js +516 -0
  285. package/dist/commands/chunk-NHEBKL7X.js +170 -0
  286. package/dist/commands/chunk-NHTEC5U4.js +99 -0
  287. package/dist/commands/chunk-NOSG3RUP.js +84 -0
  288. package/dist/commands/chunk-NOSODWWK.js +1132 -0
  289. package/dist/commands/chunk-NPXXYG6Z.js +580 -0
  290. package/dist/commands/chunk-NR2JDBPV.js +75 -0
  291. package/dist/commands/chunk-NRULNBYI.js +1153 -0
  292. package/dist/commands/chunk-NTGF5N3N.js +110 -0
  293. package/dist/commands/chunk-NTIVNQKF.js +73 -0
  294. package/dist/commands/chunk-NUCFIYZL.js +119 -0
  295. package/dist/commands/chunk-NVMV7BYX.js +88 -0
  296. package/dist/commands/chunk-NYWPTYGL.js +169 -0
  297. package/dist/commands/chunk-NZ45KOLL.js +104 -0
  298. package/dist/commands/chunk-O45BX4EL.js +39 -0
  299. package/dist/commands/chunk-O46T4ANI.js +229 -0
  300. package/dist/commands/chunk-O5JGV7NA.js +245 -0
  301. package/dist/commands/chunk-O7ESC4HL.js +566 -0
  302. package/dist/commands/chunk-OBYLXHCH.js +86 -0
  303. package/dist/commands/chunk-OKN63ZH5.js +109 -0
  304. package/dist/commands/chunk-ON4IKRGS.js +469 -0
  305. package/dist/commands/chunk-OT74RSQO.js +82 -0
  306. package/dist/commands/chunk-OVCVINYW.js +143 -0
  307. package/dist/commands/chunk-OZKLVTYI.js +342 -0
  308. package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
  309. package/dist/commands/chunk-P43GWYR6.js +185 -0
  310. package/dist/commands/chunk-P6ASP2DY.js +132 -0
  311. package/dist/commands/chunk-PBAEJ5PT.js +38 -0
  312. package/dist/commands/chunk-PCZROH3R.js +100 -0
  313. package/dist/commands/chunk-PF3PMT2Q.js +46 -0
  314. package/dist/commands/chunk-PILH72AV.js +170 -0
  315. package/dist/commands/chunk-PJYTUUTH.js +34 -0
  316. package/dist/commands/chunk-PKXTISWR.js +58 -0
  317. package/dist/commands/chunk-PSGLUBSB.js +74 -0
  318. package/dist/commands/chunk-PUQA7F6Y.js +186 -0
  319. package/dist/commands/chunk-PVRDJU2B.js +126 -0
  320. package/dist/commands/chunk-Q3HM2BEH.js +45 -0
  321. package/dist/commands/chunk-Q42NF2TL.js +47 -0
  322. package/dist/commands/chunk-Q4ULMZAS.js +106 -0
  323. package/dist/commands/chunk-QCRUPRQ2.js +207 -0
  324. package/dist/commands/chunk-QFIKPGMC.js +280 -0
  325. package/dist/commands/chunk-QSBYULSS.js +100 -0
  326. package/dist/commands/chunk-QSJCZATC.js +18 -0
  327. package/dist/commands/chunk-QTJPCXEW.js +23 -0
  328. package/dist/commands/chunk-QTQAI2M2.js +179 -0
  329. package/dist/commands/chunk-QTVVFV4Q.js +127 -0
  330. package/dist/commands/chunk-QX2EMUXV.js +102 -0
  331. package/dist/commands/chunk-QXBOECGL.js +272 -0
  332. package/dist/commands/chunk-QXCG3SG4.js +88 -0
  333. package/dist/commands/chunk-QZVMGAWV.js +307 -0
  334. package/dist/commands/chunk-R36VZIKU.js +53 -0
  335. package/dist/commands/chunk-R3F7F3TX.js +94 -0
  336. package/dist/commands/chunk-R5AABJZJ.js +1062 -0
  337. package/dist/commands/chunk-R7PYR4HW.js +389 -0
  338. package/dist/commands/chunk-RDUFVQVJ.js +997 -0
  339. package/dist/commands/chunk-RESNXNDG.js +54 -0
  340. package/dist/commands/chunk-RFIOZTXY.js +305 -0
  341. package/dist/commands/chunk-RFWB2KAV.js +102 -0
  342. package/dist/commands/chunk-RFXON3FK.js +25 -0
  343. package/dist/commands/chunk-RGEB5L37.js +66 -0
  344. package/dist/commands/chunk-RGRLLF2J.js +119 -0
  345. package/dist/commands/chunk-RLRIMYXM.js +178 -0
  346. package/dist/commands/chunk-RNB3DQOZ.js +70 -0
  347. package/dist/commands/chunk-RO4QEZJO.js +172 -0
  348. package/dist/commands/chunk-RS5HBJY6.js +161 -0
  349. package/dist/commands/chunk-RV7EQIE4.js +202 -0
  350. package/dist/commands/chunk-RWPCK3CO.js +41 -0
  351. package/dist/commands/chunk-RWYSVFIA.js +250 -0
  352. package/dist/commands/chunk-RYKK75YT.js +289 -0
  353. package/dist/commands/chunk-S4JE63QE.js +704 -0
  354. package/dist/commands/chunk-S4OZJIXD.js +134 -0
  355. package/dist/commands/chunk-SD4EX75H.js +177 -0
  356. package/dist/commands/chunk-SJITWFNY.js +480 -0
  357. package/dist/commands/chunk-SKGDMAIA.js +33 -0
  358. package/dist/commands/chunk-SNSZ25XZ.js +393 -0
  359. package/dist/commands/chunk-SQZZHK6X.js +119 -0
  360. package/dist/commands/chunk-SRTEE34O.js +93 -0
  361. package/dist/commands/chunk-SYTCTLMD.js +285 -0
  362. package/dist/commands/chunk-T6JUDQMW.js +181 -0
  363. package/dist/commands/chunk-T6OUNP7E.js +426 -0
  364. package/dist/commands/chunk-TEXUEBGE.js +208 -0
  365. package/dist/commands/chunk-TFDVTU6O.js +910 -0
  366. package/dist/commands/chunk-TFYYXETQ.js +472 -0
  367. package/dist/commands/chunk-TMFKVJUW.js +121 -0
  368. package/dist/commands/chunk-TNJU4CXD.js +32 -0
  369. package/dist/commands/chunk-TRHWBUWE.js +61 -0
  370. package/dist/commands/chunk-TROCFVCU.js +45 -0
  371. package/dist/commands/chunk-TTTZZN7F.js +269 -0
  372. package/dist/commands/chunk-TUBBESHU.js +85 -0
  373. package/dist/commands/chunk-TVZIFZZN.js +62 -0
  374. package/dist/commands/chunk-TXRWAL63.js +144 -0
  375. package/dist/commands/chunk-U46YTYJQ.js +92 -0
  376. package/dist/commands/chunk-U5EO4QEV.js +48 -0
  377. package/dist/commands/chunk-UCO333EX.js +47 -0
  378. package/dist/commands/chunk-UIXQ4IYT.js +445 -0
  379. package/dist/commands/chunk-UJGNYPMD.js +716 -0
  380. package/dist/commands/chunk-URZ4RDC4.js +220 -0
  381. package/dist/commands/chunk-UUH3DE77.js +57 -0
  382. package/dist/commands/chunk-UVY5ODCM.js +60 -0
  383. package/dist/commands/chunk-UWMB6EOU.js +45 -0
  384. package/dist/commands/chunk-UX3HCPLX.js +449 -0
  385. package/dist/commands/chunk-UY62WJV6.js +120 -0
  386. package/dist/commands/chunk-V2T5DP3B.js +224 -0
  387. package/dist/commands/chunk-VAHQ4AFM.js +585 -0
  388. package/dist/commands/chunk-VCWNMRH7.js +71 -0
  389. package/dist/commands/chunk-VHLDQ3PH.js +30 -0
  390. package/dist/commands/chunk-VL5I2IOD.js +332 -0
  391. package/dist/commands/chunk-VLN6TSPJ.js +139 -0
  392. package/dist/commands/chunk-VMG3QB6C.js +81 -0
  393. package/dist/commands/chunk-VO25PMGS.js +58 -0
  394. package/dist/commands/chunk-VTLWODJ2.js +133 -0
  395. package/dist/commands/chunk-VXE3V3OC.js +335 -0
  396. package/dist/commands/chunk-VY7ZJMDT.js +469 -0
  397. package/dist/commands/chunk-W3MDLQZF.js +137 -0
  398. package/dist/commands/chunk-W4BR6QNU.js +1241 -0
  399. package/dist/commands/chunk-WCYRNNKF.js +76 -0
  400. package/dist/commands/chunk-WEUUJIWQ.js +84 -0
  401. package/dist/commands/chunk-WNBJK6QE.js +84 -0
  402. package/dist/commands/chunk-WR5PKCQW.js +61 -0
  403. package/dist/commands/chunk-WR73HTRG.js +121 -0
  404. package/dist/commands/chunk-WRNMUQTD.js +95 -0
  405. package/dist/commands/chunk-WROJTXWZ.js +138 -0
  406. package/dist/commands/chunk-WTIPX5NG.js +43 -0
  407. package/dist/commands/chunk-WWLCQREY.js +225 -0
  408. package/dist/commands/chunk-WXLW7S4M.js +71 -0
  409. package/dist/commands/chunk-WXXLJQBO.js +67 -0
  410. package/dist/commands/chunk-X4LYH6Q4.js +56 -0
  411. package/dist/commands/chunk-XAEL24EG.js +66 -0
  412. package/dist/commands/chunk-XCCT6GKA.js +74 -0
  413. package/dist/commands/chunk-XDR2BRDL.js +216 -0
  414. package/dist/commands/chunk-XRQMVAB4.js +85 -0
  415. package/dist/commands/chunk-XSKJAG72.js +91 -0
  416. package/dist/commands/chunk-XTJA34ND.js +492 -0
  417. package/dist/commands/chunk-XUXCFPDK.js +218 -0
  418. package/dist/commands/chunk-XXPDFJRI.js +48 -0
  419. package/dist/commands/chunk-Y6OGDG5I.js +49 -0
  420. package/dist/commands/chunk-YEAE46TS.js +98 -0
  421. package/dist/commands/chunk-YEQFAEVW.js +112 -0
  422. package/dist/commands/chunk-YJZAD4Z5.js +103 -0
  423. package/dist/commands/chunk-YMAEYY5R.js +278 -0
  424. package/dist/commands/chunk-YNCF66RK.js +1052 -0
  425. package/dist/commands/chunk-YOA25SII.js +210 -0
  426. package/dist/commands/chunk-YOZTZMAT.js +38 -0
  427. package/dist/commands/chunk-YSGRHVZG.js +897 -0
  428. package/dist/commands/chunk-YSLGWRQN.js +646 -0
  429. package/dist/commands/chunk-YTXCLGGL.js +168 -0
  430. package/dist/commands/chunk-YVHJN2HS.js +74 -0
  431. package/dist/commands/chunk-YY7XVVSB.js +43 -0
  432. package/dist/commands/chunk-Z5GZV4DV.js +16 -0
  433. package/dist/commands/chunk-Z6QLFPFB.js +907 -0
  434. package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
  435. package/dist/commands/chunk-ZCD4AV2P.js +73 -0
  436. package/dist/commands/chunk-ZCHZU6NX.js +799 -0
  437. package/dist/commands/chunk-ZEH2B3DF.js +239 -0
  438. package/dist/commands/chunk-ZEUKX3RZ.js +245 -0
  439. package/dist/commands/chunk-ZGANVZCA.js +92 -0
  440. package/dist/commands/chunk-ZGBXUY7R.js +198 -0
  441. package/dist/commands/chunk-ZGEUWHFF.js +297 -0
  442. package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
  443. package/dist/commands/chunk-ZIIUBGON.js +773 -0
  444. package/dist/commands/chunk-ZJ5S4VFD.js +258 -0
  445. package/dist/commands/chunk-ZNIIA275.js +59 -0
  446. package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
  447. package/dist/commands/ci-timing-cli.js +22 -3
  448. package/dist/commands/code-symbol-cli.js +21 -7
  449. package/dist/commands/codex-hook-adapter.js +124 -119
  450. package/dist/commands/command-derive.js +9 -11
  451. package/dist/commands/cost-audit-main.js +118 -119
  452. package/dist/commands/cost-main.js +5 -7
  453. package/dist/commands/cspell-cached.js +55 -57
  454. package/dist/commands/defect-origin-main.js +42 -37
  455. package/dist/commands/defect-report-main.js +33 -25
  456. package/dist/commands/diff-summary-cli.js +3 -4
  457. package/dist/commands/disposition-cli.js +117 -118
  458. package/dist/commands/doctor.js +24 -11
  459. package/dist/commands/document-read-cli.js +50 -53
  460. package/dist/commands/document-section-main.js +50 -53
  461. package/dist/commands/dogfood-commit-cli.js +19 -4
  462. package/dist/commands/effect-audit-cli.js +40 -41
  463. package/dist/commands/epic-audit-main.js +88 -86
  464. package/dist/commands/epic-bundle-main.js +122 -119
  465. package/dist/commands/epic-check.js +37 -31
  466. package/dist/commands/epic-main.js +129 -126
  467. package/dist/commands/epic-next-main.js +85 -83
  468. package/dist/commands/eval-run.js +6 -7
  469. package/dist/commands/format-edited-cli.js +71 -46
  470. package/dist/commands/format.js +41 -56
  471. package/dist/commands/fresh-machine-cli.js +24 -7
  472. package/dist/commands/gh-usage-cli.js +22 -22
  473. package/dist/commands/git-followup-workflow.js +158 -158
  474. package/dist/commands/git-gh-checks-failed-main.js +23 -15
  475. package/dist/commands/git-workflow.js +52 -53
  476. package/dist/commands/github-release-cli.js +3 -3
  477. package/dist/commands/hook-ledger-cli.js +93 -94
  478. package/dist/commands/init-main.js +40 -40
  479. package/dist/commands/inputs.json +2042 -2002
  480. package/dist/commands/issue-ack-cli.js +28 -21
  481. package/dist/commands/issue-already-done-cli.js +107 -110
  482. package/dist/commands/issue-body-cli.js +71 -73
  483. package/dist/commands/issue-cite-main.js +35 -28
  484. package/dist/commands/issue-comment-main.js +36 -30
  485. package/dist/commands/issue-consolidate-cli.js +54 -54
  486. package/dist/commands/issue-file-main.js +274 -148
  487. package/dist/commands/issue-fold-existing-cli.js +126 -123
  488. package/dist/commands/issue-fold-main.js +57 -60
  489. package/dist/commands/issue-lint-main.js +59 -61
  490. package/dist/commands/issue-measured-cli.js +108 -110
  491. package/dist/commands/issue-plan-cli.js +156 -155
  492. package/dist/commands/issue-premise-unmet-cli.js +111 -113
  493. package/dist/commands/issue-priority-cli.js +38 -32
  494. package/dist/commands/issue-read-main.js +38 -33
  495. package/dist/commands/issue-release-class-cli.js +37 -31
  496. package/dist/commands/issue-release-main.js +35 -29
  497. package/dist/commands/issue-scout-main.js +123 -120
  498. package/dist/commands/issue-spill-main.js +149 -144
  499. package/dist/commands/issue-state-main.js +36 -31
  500. package/dist/commands/issue-tick-cli.js +37 -31
  501. package/dist/commands/josh-completion.js +21 -24
  502. package/dist/commands/lane-adopt-cli.js +53 -55
  503. package/dist/commands/lane-breakdown-cli.js +193 -172
  504. package/dist/commands/lane-cli.js +199 -180
  505. package/dist/commands/lane-launch-main.js +106 -56
  506. package/dist/commands/lane-limit-cli.js +119 -116
  507. package/dist/commands/lane-measure-cli.js +408 -245
  508. package/dist/commands/lane-pause-cli.js +51 -54
  509. package/dist/commands/lane-plan-cli.js +148 -147
  510. package/dist/commands/lane-resolve-cli.js +48 -50
  511. package/dist/commands/lane-restart-cli.js +185 -168
  512. package/dist/commands/lane-why-cli.js +121 -122
  513. package/dist/commands/lane-withdraw-cli.js +84 -86
  514. package/dist/commands/latest-corepack.js +3 -2
  515. package/dist/commands/latest-if-required-cli.js +12 -15
  516. package/dist/commands/latest-lane-guard-main.js +2 -3
  517. package/dist/commands/latest-scope-main.js +5 -7
  518. package/dist/commands/latest-update.js +3 -2
  519. package/dist/commands/lines-command.js +8 -10
  520. package/dist/commands/lint-parallel-main.js +65 -67
  521. package/dist/commands/lint-related.js +149 -133
  522. package/dist/commands/lint-rule.js +64 -66
  523. package/dist/commands/lockfile-policy.js +29 -32
  524. package/dist/commands/main-merge-main.js +23 -25
  525. package/dist/commands/main-sync-main.js +23 -24
  526. package/dist/commands/managed-config-scope-cli.js +11 -10
  527. package/dist/commands/measure-rerun-cli.js +31 -26
  528. package/dist/commands/metrics-command.js +97 -100
  529. package/dist/commands/observation-record-cli.js +24 -14
  530. package/dist/commands/observations-flush-cli.js +50 -52
  531. package/dist/commands/overrides-check.js +1 -1
  532. package/dist/commands/package-scout-cli.js +70 -73
  533. package/dist/commands/pin-verify-cli.js +21 -2
  534. package/dist/commands/plan-consumers-main.js +3 -4
  535. package/dist/commands/plan-scaffold-cli.js +145 -146
  536. package/dist/commands/pr-classification-main.js +22 -3
  537. package/dist/commands/pre-commit-lint.js +30 -34
  538. package/dist/commands/pre-commit-type-check.js +55 -55
  539. package/dist/commands/pre-push-unit.js +69 -70
  540. package/dist/commands/pretool-guard-cli.js +111 -113
  541. package/dist/commands/prevent-main-commit.js +2 -3
  542. package/dist/commands/project-profile-cli.js +24 -9
  543. package/dist/commands/propagate.js +31 -23
  544. package/dist/commands/prose-stale-cli.js +48 -42
  545. package/dist/commands/publishable-range-check.js +3 -3
  546. package/dist/commands/read-set-cli.js +58 -61
  547. package/dist/commands/refactor-scan-cli.js +8 -9
  548. package/dist/commands/release-cli.js +57 -57
  549. package/dist/commands/release-scope-main.js +41 -36
  550. package/dist/commands/rename-cli.js +64 -36
  551. package/dist/commands/repo-party-cli.js +3 -4
  552. package/dist/commands/report-template-cli.js +4 -5
  553. package/dist/commands/reserved-run.js +17 -20
  554. package/dist/commands/retrospective-cli.js +126 -127
  555. package/dist/commands/review-attest-cli.js +28 -20
  556. package/dist/commands/review-brief-main.js +184 -167
  557. package/dist/commands/review-findings-cli.js +23 -13
  558. package/dist/commands/review-pair-cli.js +180 -156
  559. package/dist/commands/review-record-main.js +171 -147
  560. package/dist/commands/review-round2-cli.js +89 -91
  561. package/dist/commands/review-stops-cli.js +51 -54
  562. package/dist/commands/review-submit-cli.js +184 -167
  563. package/dist/commands/rule-list.js +78 -80
  564. package/dist/commands/rule-value-cli.js +115 -116
  565. package/dist/commands/ruleset-check-cli.js +23 -6
  566. package/dist/commands/run-add-cli.js +115 -75
  567. package/dist/commands/run-board-main.js +172 -169
  568. package/dist/commands/run-carry-cli.js +182 -174
  569. package/dist/commands/run-chain-cli.js +184 -160
  570. package/dist/commands/run-cut-cli.js +206 -168
  571. package/dist/commands/run-ending-cli.js +51 -54
  572. package/dist/commands/run-entry-cli.js +230 -283
  573. package/dist/commands/run-event-cli.js +18 -21
  574. package/dist/commands/run-handoff-cli.js +75 -78
  575. package/dist/commands/run-handoff-lanes-cli.js +48 -51
  576. package/dist/commands/run-hold-main.js +105 -107
  577. package/dist/commands/run-liveness-cli.js +47 -49
  578. package/dist/commands/run-merge-main.js +159 -151
  579. package/dist/commands/run-next-cli.js +128 -129
  580. package/dist/commands/run-park-cli.js +137 -140
  581. package/dist/commands/run-pause-cli.js +190 -186
  582. package/dist/commands/run-pickup-cli.js +49 -52
  583. package/dist/commands/run-prep-main.js +124 -125
  584. package/dist/commands/run-prime-cli.js +175 -147
  585. package/dist/commands/run-progress-main.js +149 -146
  586. package/dist/commands/run-report-cli.js +60 -60
  587. package/dist/commands/run-review-cli.js +229 -214
  588. package/dist/commands/run-ship-cli.js +258 -252
  589. package/dist/commands/run-ship-evidence-cli.js +71 -72
  590. package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
  591. package/dist/commands/run-ship-wait-main.js +83 -85
  592. package/dist/commands/run-split-cli.js +176 -172
  593. package/dist/commands/run-stale-main.js +72 -75
  594. package/dist/commands/run-status-cli.js +44 -44
  595. package/dist/commands/run-step-cli.js +213 -211
  596. package/dist/commands/run-tail-cli.js +23 -18
  597. package/dist/commands/run-tidy-main.js +67 -69
  598. package/dist/commands/run-wake-main.js +206 -187
  599. package/dist/commands/run-watcher-guard-cli.js +63 -66
  600. package/dist/commands/security-audit-main.js +21 -24
  601. package/dist/commands/security-audit-provision-main.js +9 -11
  602. package/dist/commands/selfcheck-cli.js +63 -57
  603. package/dist/commands/session-language-main.js +70 -73
  604. package/dist/commands/sonar-hotspots-cli.js +9 -8
  605. package/dist/commands/sonar-new-code-cli.js +3 -4
  606. package/dist/commands/split-assess-cli.js +55 -58
  607. package/dist/commands/split-child-recover-cli.js +38 -39
  608. package/dist/commands/start.js +64 -64
  609. package/dist/commands/stash-pop-main.js +4 -5
  610. package/dist/commands/stash-push-main.js +7 -9
  611. package/dist/commands/stop-guard.js +180 -176
  612. package/dist/commands/sync-main.js +30 -15
  613. package/dist/commands/telegram-test-main.js +29 -22
  614. package/dist/commands/test-declared.js +29 -15
  615. package/dist/commands/test-e2e-guard.js +54 -54
  616. package/dist/commands/test-pinned-main.js +57 -56
  617. package/dist/commands/test-reach-cli.js +40 -32
  618. package/dist/commands/test-red-main.js +12 -14
  619. package/dist/commands/test-related-Z6YY2GFH.js +113 -0
  620. package/dist/commands/test-related-main.js +89 -89
  621. package/dist/commands/test-unit-guard-main.js +37 -37
  622. package/dist/commands/time-cli.js +54 -57
  623. package/dist/commands/time-density-cli.js +26 -29
  624. package/dist/commands/tree-status-cli.js +6 -8
  625. package/dist/commands/type-check-command.js +26 -11
  626. package/dist/commands/ui-routes-cli.js +5 -6
  627. package/dist/commands/ui-shot-cli.js +1 -1
  628. package/dist/commands/uninstall.js +44 -43
  629. package/dist/commands/unused-members-KVKZDTXD.js +329 -0
  630. package/dist/commands/unused-members-cli.js +27 -12
  631. package/dist/commands/upstream-interrupt-main.js +159 -151
  632. package/dist/commands/verification-gate.js +85 -86
  633. package/dist/commands/version-check.js +25 -8
  634. package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
  635. package/dist/hooks/chunk-46PTTMGE.js +1625 -0
  636. package/dist/hooks/chunk-5NIBRHWG.js +77 -0
  637. package/dist/hooks/chunk-76QKN2K3.js +258 -0
  638. package/dist/hooks/chunk-CHEKMGFP.js +321 -0
  639. package/dist/hooks/chunk-DCILEVDR.js +5173 -0
  640. package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
  641. package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
  642. package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
  643. package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
  644. package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
  645. package/dist/hooks/codex-hook-adapter.js +11 -12
  646. package/dist/hooks/daemon.js +2140 -1387
  647. package/dist/hooks/format-edited.js +6 -6
  648. package/dist/hooks/inputs.json +512 -488
  649. package/dist/hooks/pretool-guard.js +8 -8
  650. package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
  651. package/dist/hooks/session-lang.js +10 -8
  652. package/dist/hooks/stop-guard.js +962 -669
  653. package/dist/inputs.json +73 -64
  654. package/dist/josh.js +1029 -577
  655. package/dist/registry-migrate.mjs +33938 -0
  656. package/dist/version/index.js +4251 -175
  657. package/package.json +4 -1
  658. package/prompts/collaboration-workflow/principles.md +4 -1
  659. package/prompts/collaboration-workflow/rule-delivery.md +1 -1
  660. package/scripts/agent/codex-launch-identity.ts +70 -0
  661. package/scripts/auto-ok/auto-ok-cli.ts +2 -0
  662. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
  663. package/scripts/auto-ok/auto-ok-judge.ts +3 -1
  664. package/scripts/backlog/backlog-arrival.ts +1 -1
  665. package/scripts/backlog/backlog-budget.ts +5 -2
  666. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  667. package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
  668. package/scripts/backlog/backlog-drain-flush.ts +38 -3
  669. package/scripts/backlog/backlog-drive-cli.ts +1 -1
  670. package/scripts/backlog/backlog-drive-hold.ts +28 -5
  671. package/scripts/backlog/backlog-drive-launch.ts +37 -15
  672. package/scripts/backlog/backlog-drive-listing.ts +39 -23
  673. package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
  674. package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
  675. package/scripts/backlog/backlog-hold-codes.ts +7 -0
  676. package/scripts/backlog/backlog-hold-text.ts +14 -1
  677. package/scripts/backlog/backlog-measure-close.ts +6 -0
  678. package/scripts/backlog/backlog-next-shared.ts +20 -2
  679. package/scripts/backlog/backlog-next.ts +24 -3
  680. package/scripts/backlog/backlog-offer-cli.ts +69 -16
  681. package/scripts/build/build-migration.ts +25 -0
  682. package/scripts/build/build.ts +2 -0
  683. package/scripts/epic/epic-classify.ts +6 -1
  684. package/scripts/epic/epic-live.ts +46 -0
  685. package/scripts/followup/followup-failed-tests.ts +71 -10
  686. package/scripts/followup/followup-job-rerun.ts +2 -2
  687. package/scripts/gate/change-scope-action.integration.test.ts +88 -0
  688. package/scripts/gate/change-scope-action.ts +2 -0
  689. package/scripts/gate/check-related-order.ts +6 -7
  690. package/scripts/gate/check-related.ts +18 -8
  691. package/scripts/gate/core-admission.ts +17 -30
  692. package/scripts/gate/core-budget-poll.ts +183 -0
  693. package/scripts/gate/core-budget-timing.ts +1 -1
  694. package/scripts/gate/core-budget.ts +24 -112
  695. package/scripts/gate/core-wait-record.ts +52 -7
  696. package/scripts/gate/machine-capacity.ts +6 -2
  697. package/scripts/gate/metrics-totals.ts +11 -0
  698. package/scripts/gate/path-glob.test.ts +18 -0
  699. package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
  700. package/scripts/gh/fix-gh-packages-logic.ts +22 -15
  701. package/scripts/gh/gh-request-tally.ts +4 -0
  702. package/scripts/hooks/bash-revert.ts +79 -31
  703. package/scripts/hooks/format-edited-file.ts +6 -8
  704. package/scripts/hooks/implementation-shell.ts +3 -2
  705. package/scripts/init/distributed-paths.ts +18 -5
  706. package/scripts/init/init-actions.ts +16 -1
  707. package/scripts/init/init-bootstrap.ts +2 -0
  708. package/scripts/init/init-logic.ts +40 -8
  709. package/scripts/init/init.ts +11 -3
  710. package/scripts/issue/defect-rate-cli.ts +19 -13
  711. package/scripts/issue/issue-file-batch.ts +7 -3
  712. package/scripts/issue/issue-file-cli.ts +19 -6
  713. package/scripts/issue/issue-file-main.ts +6 -1
  714. package/scripts/issue/issue-file-pass.ts +17 -0
  715. package/scripts/issue/issue-file.ts +3 -0
  716. package/scripts/issue/issue-not-before.ts +9 -2
  717. package/scripts/issue/issue-observation-gate.ts +141 -0
  718. package/scripts/issue/issue-observation-prime.ts +83 -0
  719. package/scripts/issue/issue-publication-state.ts +61 -0
  720. package/scripts/issue/issue-publication.ts +144 -0
  721. package/scripts/issue/issue-sample-prime.ts +2 -0
  722. package/scripts/issue/issue-search-count.ts +26 -0
  723. package/scripts/issue/issue-search.ts +128 -3
  724. package/scripts/issue/issue-spill-cli.ts +4 -0
  725. package/scripts/issue/upstream-interrupt-cli.ts +21 -5
  726. package/scripts/josh/josh-commands-ai.ts +1 -1
  727. package/scripts/josh/josh-commands-development.ts +1 -1
  728. package/scripts/josh/josh-commands-issue-write.ts +9 -0
  729. package/scripts/josh/josh-commands-run.ts +6 -1
  730. package/scripts/josh/josh-commands-ship.ts +5 -5
  731. package/scripts/josh/josh-run.ts +5 -2
  732. package/scripts/josh/session-language-cli.ts +1 -1
  733. package/scripts/josh/shared-cache.ts +16 -1
  734. package/scripts/lane/lane-await.ts +15 -0
  735. package/scripts/lane/lane-cli.ts +2 -0
  736. package/scripts/lane/lane-dispatch-dependency.ts +102 -0
  737. package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
  738. package/scripts/lane/lane-dispatch.ts +44 -5
  739. package/scripts/lane/lane-early-push-count.ts +21 -0
  740. package/scripts/lane/lane-install.ts +15 -5
  741. package/scripts/lane/lane-launch-cli.ts +35 -14
  742. package/scripts/lane/lane-ledger-kind.ts +2 -0
  743. package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
  744. package/scripts/lane/lane-ledger-schema.ts +15 -1
  745. package/scripts/lane/lane-ledger-write.ts +4 -1
  746. package/scripts/lane/lane-relaunch.ts +25 -2
  747. package/scripts/lane/lane-state-record.ts +2 -0
  748. package/scripts/lane/lane-state.ts +8 -1
  749. package/scripts/lane/lane-stats-tables.ts +2 -0
  750. package/scripts/lane/openai-lane-supervisor.ts +16 -1
  751. package/scripts/lib/inherited-scope.ts +48 -0
  752. package/scripts/lint/format-steps.ts +93 -0
  753. package/scripts/lint/format.ts +6 -49
  754. package/scripts/lint/lint-related-fix.ts +35 -0
  755. package/scripts/lint/lint-related.ts +22 -35
  756. package/scripts/propagate/propagate-steps.ts +9 -4
  757. package/scripts/registry-migration/migrate-cli.ts +50 -0
  758. package/scripts/registry-migration/migrate-files.ts +154 -0
  759. package/scripts/registry-migration/migrate-lock.ts +147 -0
  760. package/scripts/registry-migration/migrate.ts +235 -0
  761. package/scripts/registry-migration/npm-acquisition.ts +118 -0
  762. package/scripts/review/review-record-cli.ts +27 -13
  763. package/scripts/review/review-record-pinned.ts +15 -6
  764. package/scripts/run/add/run-add-cli.ts +21 -3
  765. package/scripts/run/add/run-add.ts +26 -9
  766. package/scripts/run/board/run-board-header.ts +4 -5
  767. package/scripts/run/board/run-board-layout.ts +2 -2
  768. package/scripts/run/board/run-board-read.ts +7 -1
  769. package/scripts/run/board/run-board-reason.ts +12 -0
  770. package/scripts/run/board/run-board-retry-wait.ts +35 -0
  771. package/scripts/run/board/run-board-roots.ts +25 -2
  772. package/scripts/run/board/run-board-seat.ts +9 -2
  773. package/scripts/run/board/run-board-setup.ts +19 -11
  774. package/scripts/run/board/run-board-status.ts +2 -0
  775. package/scripts/run/board/run-board-tick.ts +7 -1
  776. package/scripts/run/carry/run-carry-reclaim.ts +12 -2
  777. package/scripts/run/carry/run-carry-session.ts +48 -0
  778. package/scripts/run/carry/run-carry.ts +21 -14
  779. package/scripts/run/cut/run-cut-resume.ts +15 -3
  780. package/scripts/run/cut/run-cut.ts +1 -1
  781. package/scripts/run/detached-launch.ts +14 -5
  782. package/scripts/run/early-push-record.ts +6 -2
  783. package/scripts/run/event/run-event-setup.ts +2 -0
  784. package/scripts/run/event/run-event-stream-emit.ts +27 -7
  785. package/scripts/run/hold/run-hold-cli.ts +40 -5
  786. package/scripts/run/merge/run-merge-cut-release.ts +17 -0
  787. package/scripts/run/merge/run-merge-human-review.ts +6 -0
  788. package/scripts/run/merge/run-merge-steps.ts +4 -57
  789. package/scripts/run/merge/run-merge-waits.ts +54 -0
  790. package/scripts/run/prime/run-prime-cli.ts +16 -2
  791. package/scripts/run/review/run-review-cli.ts +5 -7
  792. package/scripts/run/review/run-review-early-push.ts +19 -8
  793. package/scripts/run/review/run-review-join-read.ts +33 -6
  794. package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
  795. package/scripts/run/review/run-review-pinned-steps.ts +7 -1
  796. package/scripts/run/run-halfrun-resume.ts +49 -6
  797. package/scripts/run/run-headless.ts +3 -0
  798. package/scripts/run/run-pr-return.ts +14 -5
  799. package/scripts/run/run-repair-attempt.ts +219 -0
  800. package/scripts/run/ship/run-ship-lap.ts +5 -17
  801. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
  802. package/scripts/run/ship/run-ship-scoped.ts +66 -30
  803. package/scripts/run/startup/run-startup-schema.ts +31 -0
  804. package/scripts/run/startup/run-startup-store.ts +130 -0
  805. package/scripts/run/startup/run-startup.ts +119 -0
  806. package/scripts/run/wake/run-wake-codex.ts +144 -0
  807. package/scripts/run/wake/run-wake-driver.ts +32 -7
  808. package/scripts/run/wake/run-wake-handoff.ts +9 -8
  809. package/scripts/run/wake/run-wake-loop.ts +23 -3
  810. package/scripts/run/wake/run-wake-ports.ts +17 -3
  811. package/scripts/run/wake/run-wake-takeover.ts +6 -3
  812. package/scripts/run/wake/run-wake-window.ts +4 -1
  813. package/scripts/run/wake/run-wake.ts +5 -0
  814. package/scripts/sync/sync-ai-files.ts +17 -0
  815. package/scripts/sync/sync-configs.ts +11 -1
  816. package/scripts/sync/sync.ts +5 -1
  817. package/scripts/test/test-related-cap.ts +7 -3
  818. package/scripts/test/test-related-imports.ts +92 -0
  819. package/scripts/test/vitest-failure-summary.ts +7 -0
  820. package/scripts/version/npm-registry.ts +45 -7
  821. package/scripts/version/upgrade-shell-command.ts +34 -2
  822. package/templates/workflows/ci.yml +0 -15
  823. package/templates/workflows/github-release.yml +0 -5
  824. package/dist/commands/chunk-23GH6B3D.js +0 -333
  825. package/dist/commands/chunk-24ZDAWML.js +0 -48
  826. package/dist/commands/chunk-2BB5ZR2F.js +0 -128
  827. package/dist/commands/chunk-2BJJUTZA.js +0 -59
  828. package/dist/commands/chunk-2CXT6MBR.js +0 -51
  829. package/dist/commands/chunk-2DJLAUYB.js +0 -109
  830. package/dist/commands/chunk-2EZTYLO4.js +0 -179
  831. package/dist/commands/chunk-2FJJYCBD.js +0 -149
  832. package/dist/commands/chunk-2PHOLX62.js +0 -43
  833. package/dist/commands/chunk-2QM72JCJ.js +0 -338
  834. package/dist/commands/chunk-2VRITY55.js +0 -41
  835. package/dist/commands/chunk-2XAH3MHV.js +0 -23
  836. package/dist/commands/chunk-34KZDKQJ.js +0 -304
  837. package/dist/commands/chunk-352KLSFX.js +0 -67
  838. package/dist/commands/chunk-36LOGVJ7.js +0 -38
  839. package/dist/commands/chunk-3AEDZZNL.js +0 -223
  840. package/dist/commands/chunk-3B2HEFNO.js +0 -51
  841. package/dist/commands/chunk-3PEXBHRN.js +0 -33
  842. package/dist/commands/chunk-3Z425MM3.js +0 -61
  843. package/dist/commands/chunk-3ZOX4G4U.js +0 -88
  844. package/dist/commands/chunk-452HWOJ7.js +0 -395
  845. package/dist/commands/chunk-475EFIJV.js +0 -178
  846. package/dist/commands/chunk-47UZB54M.js +0 -73
  847. package/dist/commands/chunk-4DN4XVPL.js +0 -716
  848. package/dist/commands/chunk-4DVM57T7.js +0 -86
  849. package/dist/commands/chunk-4EADHJVC.js +0 -247
  850. package/dist/commands/chunk-4HERA2GY.js +0 -95
  851. package/dist/commands/chunk-4JI35CVO.js +0 -70
  852. package/dist/commands/chunk-4L4LNWZ7.js +0 -143
  853. package/dist/commands/chunk-4N32QKJZ.js +0 -170
  854. package/dist/commands/chunk-4NRSFLG7.js +0 -185
  855. package/dist/commands/chunk-4OKRPAUT.js +0 -98
  856. package/dist/commands/chunk-4PUKDAXL.js +0 -42
  857. package/dist/commands/chunk-4Q64PG46.js +0 -478
  858. package/dist/commands/chunk-4UDTQVDD.js +0 -278
  859. package/dist/commands/chunk-4WR2LEZL.js +0 -123
  860. package/dist/commands/chunk-4ZJOC6OK.js +0 -298
  861. package/dist/commands/chunk-4ZQM4I7R.js +0 -533
  862. package/dist/commands/chunk-54X37JEJ.js +0 -170
  863. package/dist/commands/chunk-56KW5EOK.js +0 -85
  864. package/dist/commands/chunk-5CG3XU3O.js +0 -74
  865. package/dist/commands/chunk-5ESZLHDZ.js +0 -514
  866. package/dist/commands/chunk-5FBRMARM.js +0 -578
  867. package/dist/commands/chunk-5RG4S66L.js +0 -47
  868. package/dist/commands/chunk-5UJGACVN.js +0 -137
  869. package/dist/commands/chunk-5Y7B7FDL.js +0 -44
  870. package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
  871. package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
  872. package/dist/commands/chunk-5ZTQX7OS.js +0 -125
  873. package/dist/commands/chunk-66NX6EXR.js +0 -29
  874. package/dist/commands/chunk-66TGK5XL.js +0 -84
  875. package/dist/commands/chunk-6CFHLMKM.js +0 -555
  876. package/dist/commands/chunk-6DDK5XWK.js +0 -74
  877. package/dist/commands/chunk-6GQX752S.js +0 -145
  878. package/dist/commands/chunk-6HRRZANN.js +0 -55
  879. package/dist/commands/chunk-6MAZ55GF.js +0 -1241
  880. package/dist/commands/chunk-6OP63TBT.js +0 -78
  881. package/dist/commands/chunk-6Q3XUCLM.js +0 -204
  882. package/dist/commands/chunk-6RUWU2SB.js +0 -45
  883. package/dist/commands/chunk-6UCWAFQY.js +0 -245
  884. package/dist/commands/chunk-6WKJ3GDA.js +0 -408
  885. package/dist/commands/chunk-6YURRFRU.js +0 -461
  886. package/dist/commands/chunk-6YVURZAJ.js +0 -350
  887. package/dist/commands/chunk-6Z4YZG7P.js +0 -169
  888. package/dist/commands/chunk-77BIN247.js +0 -122
  889. package/dist/commands/chunk-7ABHNNY3.js +0 -529
  890. package/dist/commands/chunk-7C7FOKJK.js +0 -115
  891. package/dist/commands/chunk-7HAGC6SW.js +0 -1062
  892. package/dist/commands/chunk-7KKUFLH5.js +0 -56
  893. package/dist/commands/chunk-7LJQMM2K.js +0 -102
  894. package/dist/commands/chunk-7MJYLUF4.js +0 -99
  895. package/dist/commands/chunk-7NHZCI5Y.js +0 -704
  896. package/dist/commands/chunk-7OQ56DVW.js +0 -239
  897. package/dist/commands/chunk-7VWPGTZO.js +0 -260
  898. package/dist/commands/chunk-7YZXS3AK.js +0 -30
  899. package/dist/commands/chunk-A4HOQKOG.js +0 -85
  900. package/dist/commands/chunk-A6T2N7VC.js +0 -159
  901. package/dist/commands/chunk-AAUDI7WJ.js +0 -250
  902. package/dist/commands/chunk-AC26ZUG5.js +0 -259
  903. package/dist/commands/chunk-ACZ52JPI.js +0 -140
  904. package/dist/commands/chunk-AJ65WNJB.js +0 -230
  905. package/dist/commands/chunk-AK7SEO4Y.js +0 -177
  906. package/dist/commands/chunk-AKK56GNX.js +0 -205
  907. package/dist/commands/chunk-AKQYYHP2.js +0 -461
  908. package/dist/commands/chunk-ALDAS2WG.js +0 -137
  909. package/dist/commands/chunk-ANUTT56I.js +0 -85
  910. package/dist/commands/chunk-AVVMDVGO.js +0 -68
  911. package/dist/commands/chunk-B3M5WSGN.js +0 -72
  912. package/dist/commands/chunk-B7ZNIEDV.js +0 -351
  913. package/dist/commands/chunk-BCUDQWYK.js +0 -77
  914. package/dist/commands/chunk-BF6YX4HE.js +0 -70
  915. package/dist/commands/chunk-BHRS7HAM.js +0 -272
  916. package/dist/commands/chunk-BIKGPT52.js +0 -29
  917. package/dist/commands/chunk-BJA5U4Q7.js +0 -75
  918. package/dist/commands/chunk-BMKWSWWE.js +0 -126
  919. package/dist/commands/chunk-BMTYUJNT.js +0 -59
  920. package/dist/commands/chunk-BRHPRDDV.js +0 -127
  921. package/dist/commands/chunk-BRUBX64M.js +0 -33
  922. package/dist/commands/chunk-BTZJDHQT.js +0 -46
  923. package/dist/commands/chunk-BYFC6MD2.js +0 -72
  924. package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
  925. package/dist/commands/chunk-C2SEDMZ3.js +0 -238
  926. package/dist/commands/chunk-C54QXJD6.js +0 -4208
  927. package/dist/commands/chunk-C6QSVO5K.js +0 -56
  928. package/dist/commands/chunk-CBAKBWSZ.js +0 -332
  929. package/dist/commands/chunk-CFHRNTE5.js +0 -326
  930. package/dist/commands/chunk-CGLLAEKZ.js +0 -110
  931. package/dist/commands/chunk-CHKYPF5O.js +0 -82
  932. package/dist/commands/chunk-CJBW6BWG.js +0 -800
  933. package/dist/commands/chunk-CJKPF5DJ.js +0 -156
  934. package/dist/commands/chunk-CKUKK7JG.js +0 -252
  935. package/dist/commands/chunk-CMHGDCGN.js +0 -263
  936. package/dist/commands/chunk-CNGTHSUS.js +0 -750
  937. package/dist/commands/chunk-CP2J4RV2.js +0 -3987
  938. package/dist/commands/chunk-CQZI7RIK.js +0 -72
  939. package/dist/commands/chunk-CWCKCZS6.js +0 -188
  940. package/dist/commands/chunk-D5HIP4HT.js +0 -289
  941. package/dist/commands/chunk-D6D6WQR6.js +0 -125
  942. package/dist/commands/chunk-D7JRJI44.js +0 -297
  943. package/dist/commands/chunk-D7OAU32Z.js +0 -119
  944. package/dist/commands/chunk-DAAX7XDS.js +0 -1208
  945. package/dist/commands/chunk-DBKTFB5V.js +0 -18
  946. package/dist/commands/chunk-DEZF7QZZ.js +0 -184
  947. package/dist/commands/chunk-DMD74E3F.js +0 -39
  948. package/dist/commands/chunk-DPJVKTO4.js +0 -41
  949. package/dist/commands/chunk-DXJQHJQ4.js +0 -73
  950. package/dist/commands/chunk-DYZOOWVW.js +0 -912
  951. package/dist/commands/chunk-EBI2BAKQ.js +0 -47
  952. package/dist/commands/chunk-EDKOSZ3K.js +0 -88
  953. package/dist/commands/chunk-EFDVE5P5.js +0 -121
  954. package/dist/commands/chunk-EGIHAEMT.js +0 -72
  955. package/dist/commands/chunk-EKLU6QR7.js +0 -507
  956. package/dist/commands/chunk-ELY76WAR.js +0 -65
  957. package/dist/commands/chunk-EM3HAZF6.js +0 -52
  958. package/dist/commands/chunk-EMTZAGT5.js +0 -51
  959. package/dist/commands/chunk-ENKFCOVY.js +0 -472
  960. package/dist/commands/chunk-ERG4QRNG.js +0 -224
  961. package/dist/commands/chunk-EUGNQCYK.js +0 -139
  962. package/dist/commands/chunk-EW4NPUMQ.js +0 -363
  963. package/dist/commands/chunk-EWVR5AEX.js +0 -140
  964. package/dist/commands/chunk-EXDFKKMH.js +0 -113
  965. package/dist/commands/chunk-EXWB34R2.js +0 -238
  966. package/dist/commands/chunk-EYMPBHDN.js +0 -61
  967. package/dist/commands/chunk-EZ7IPKIH.js +0 -20
  968. package/dist/commands/chunk-EZSO25UZ.js +0 -80
  969. package/dist/commands/chunk-F6IQHZYY.js +0 -94
  970. package/dist/commands/chunk-FDS65XOJ.js +0 -212
  971. package/dist/commands/chunk-FFHEGWPK.js +0 -91
  972. package/dist/commands/chunk-FGL6DBZU.js +0 -71
  973. package/dist/commands/chunk-FHFWNNUC.js +0 -144
  974. package/dist/commands/chunk-FIUCHMCF.js +0 -32
  975. package/dist/commands/chunk-FJX7AENO.js +0 -74
  976. package/dist/commands/chunk-FKZ5E4JD.js +0 -97
  977. package/dist/commands/chunk-FMZWRDKH.js +0 -302
  978. package/dist/commands/chunk-FOKCRIAN.js +0 -67
  979. package/dist/commands/chunk-FQGWO2ZH.js +0 -43
  980. package/dist/commands/chunk-FROACLVU.js +0 -525
  981. package/dist/commands/chunk-FURNDIT3.js +0 -34
  982. package/dist/commands/chunk-FVDQNMP6.js +0 -93
  983. package/dist/commands/chunk-FVVZIJUC.js +0 -425
  984. package/dist/commands/chunk-FWU3H4TX.js +0 -17
  985. package/dist/commands/chunk-G3HBYHFA.js +0 -16
  986. package/dist/commands/chunk-G4E4M2P4.js +0 -299
  987. package/dist/commands/chunk-G5KSL2Q2.js +0 -151
  988. package/dist/commands/chunk-G6XC7V6Y.js +0 -58
  989. package/dist/commands/chunk-GCPP5XIG.js +0 -90
  990. package/dist/commands/chunk-GITT5A5A.js +0 -198
  991. package/dist/commands/chunk-GJYMI2CM.js +0 -48
  992. package/dist/commands/chunk-GLC47H7I.js +0 -285
  993. package/dist/commands/chunk-GUR54ELE.js +0 -328
  994. package/dist/commands/chunk-GW4UWR3O.js +0 -126
  995. package/dist/commands/chunk-GY4DMCKS.js +0 -306
  996. package/dist/commands/chunk-H6JQRHDC.js +0 -80
  997. package/dist/commands/chunk-HATKF6VX.js +0 -173
  998. package/dist/commands/chunk-HG2NZQD5.js +0 -135
  999. package/dist/commands/chunk-HH3CVIFU.js +0 -93
  1000. package/dist/commands/chunk-HHMMGDMP.js +0 -469
  1001. package/dist/commands/chunk-HI5WPM6C.js +0 -127
  1002. package/dist/commands/chunk-HQGNXR6I.js +0 -245
  1003. package/dist/commands/chunk-HTIDHEEN.js +0 -108
  1004. package/dist/commands/chunk-HVCQYZVD.js +0 -38
  1005. package/dist/commands/chunk-HWEZRNPL.js +0 -66
  1006. package/dist/commands/chunk-HX3FFIO5.js +0 -74
  1007. package/dist/commands/chunk-HXDTA5VU.js +0 -208
  1008. package/dist/commands/chunk-I2KCGKJI.js +0 -107
  1009. package/dist/commands/chunk-I63RNFFR.js +0 -213
  1010. package/dist/commands/chunk-IAD4WLLI.js +0 -98
  1011. package/dist/commands/chunk-IB5TT73I.js +0 -177
  1012. package/dist/commands/chunk-IBAYXCMU.js +0 -156
  1013. package/dist/commands/chunk-IF3EIFK4.js +0 -7515
  1014. package/dist/commands/chunk-IGDJNXX2.js +0 -49
  1015. package/dist/commands/chunk-ILGPZ47M.js +0 -33
  1016. package/dist/commands/chunk-IYJEBWW5.js +0 -44
  1017. package/dist/commands/chunk-J22PSIXR.js +0 -418
  1018. package/dist/commands/chunk-J66YBAAM.js +0 -161
  1019. package/dist/commands/chunk-J6WKZRV2.js +0 -391
  1020. package/dist/commands/chunk-J7IO3AYH.js +0 -179
  1021. package/dist/commands/chunk-JAKC2BHX.js +0 -88
  1022. package/dist/commands/chunk-JCAQ7B6J.js +0 -124
  1023. package/dist/commands/chunk-JHN6RCE6.js +0 -123
  1024. package/dist/commands/chunk-JIGBNCDR.js +0 -88
  1025. package/dist/commands/chunk-JJHWTFWQ.js +0 -76
  1026. package/dist/commands/chunk-JJRKTWLK.js +0 -64
  1027. package/dist/commands/chunk-JKOGWGQM.js +0 -92
  1028. package/dist/commands/chunk-JM6EVOFN.js +0 -172
  1029. package/dist/commands/chunk-JQXPLMCO.js +0 -81
  1030. package/dist/commands/chunk-JV24VP2O.js +0 -81
  1031. package/dist/commands/chunk-JVKXJ763.js +0 -45
  1032. package/dist/commands/chunk-K275REYP.js +0 -37
  1033. package/dist/commands/chunk-K4G3HOKS.js +0 -105
  1034. package/dist/commands/chunk-K64EIHD2.js +0 -138
  1035. package/dist/commands/chunk-KB3OQWDT.js +0 -71
  1036. package/dist/commands/chunk-KCFOP5RI.js +0 -1310
  1037. package/dist/commands/chunk-KGE4AS2Y.js +0 -134
  1038. package/dist/commands/chunk-KIILCKQR.js +0 -220
  1039. package/dist/commands/chunk-KK2SL42W.js +0 -241
  1040. package/dist/commands/chunk-KKIMVXAP.js +0 -280
  1041. package/dist/commands/chunk-KODXWMBX.js +0 -77
  1042. package/dist/commands/chunk-KPSKWTOS.js +0 -208
  1043. package/dist/commands/chunk-KVHNQHX3.js +0 -100
  1044. package/dist/commands/chunk-KWYQR5MK.js +0 -269
  1045. package/dist/commands/chunk-KXHXMERX.js +0 -214
  1046. package/dist/commands/chunk-KZ5BBBMO.js +0 -271
  1047. package/dist/commands/chunk-KZ7HD37E.js +0 -121
  1048. package/dist/commands/chunk-KZSM5M5P.js +0 -89
  1049. package/dist/commands/chunk-KZZWPUJW.js +0 -25
  1050. package/dist/commands/chunk-L7DAL54N.js +0 -347
  1051. package/dist/commands/chunk-LAR76BFA.js +0 -114
  1052. package/dist/commands/chunk-LB557AHJ.js +0 -192
  1053. package/dist/commands/chunk-LJXKVLYI.js +0 -229
  1054. package/dist/commands/chunk-LOOFYHUM.js +0 -773
  1055. package/dist/commands/chunk-LQXFVZTS.js +0 -13
  1056. package/dist/commands/chunk-LT7QSHR4.js +0 -995
  1057. package/dist/commands/chunk-LUXWDMKI.js +0 -426
  1058. package/dist/commands/chunk-LWAXXZPS.js +0 -118
  1059. package/dist/commands/chunk-LX7TIEMI.js +0 -1612
  1060. package/dist/commands/chunk-LZ5QXE5N.js +0 -244
  1061. package/dist/commands/chunk-M4UV3BEV.js +0 -313
  1062. package/dist/commands/chunk-M6JDU5EK.js +0 -133
  1063. package/dist/commands/chunk-MDLOETXL.js +0 -211
  1064. package/dist/commands/chunk-MFBNNTBM.js +0 -44
  1065. package/dist/commands/chunk-MGF64OHV.js +0 -32
  1066. package/dist/commands/chunk-MI2OS6TL.js +0 -132
  1067. package/dist/commands/chunk-MLW4S35K.js +0 -389
  1068. package/dist/commands/chunk-MN425CU6.js +0 -63
  1069. package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
  1070. package/dist/commands/chunk-MRORPFSO.js +0 -402
  1071. package/dist/commands/chunk-MUGTOJUL.js +0 -319
  1072. package/dist/commands/chunk-MVHPRYHE.js +0 -91
  1073. package/dist/commands/chunk-MWO6FOSZ.js +0 -393
  1074. package/dist/commands/chunk-MXC4IBZ7.js +0 -104
  1075. package/dist/commands/chunk-N7QTMTST.js +0 -210
  1076. package/dist/commands/chunk-NDBX7LSS.js +0 -32
  1077. package/dist/commands/chunk-NEGJ77RV.js +0 -173
  1078. package/dist/commands/chunk-NEGRE5VW.js +0 -101
  1079. package/dist/commands/chunk-NFPD2P3V.js +0 -53
  1080. package/dist/commands/chunk-NHIW7JE6.js +0 -335
  1081. package/dist/commands/chunk-NILSN7A4.js +0 -158
  1082. package/dist/commands/chunk-NOLFSPOB.js +0 -74
  1083. package/dist/commands/chunk-NSAVEXVR.js +0 -353
  1084. package/dist/commands/chunk-NT67QTZO.js +0 -65
  1085. package/dist/commands/chunk-NU7W6QGT.js +0 -155
  1086. package/dist/commands/chunk-NYWGJLBU.js +0 -19
  1087. package/dist/commands/chunk-OAAVY2JK.js +0 -49
  1088. package/dist/commands/chunk-OGS2DK7I.js +0 -47
  1089. package/dist/commands/chunk-OHNP3QL2.js +0 -186
  1090. package/dist/commands/chunk-OIPV3PWW.js +0 -870
  1091. package/dist/commands/chunk-OIX2363L.js +0 -16
  1092. package/dist/commands/chunk-OJ65BZBV.js +0 -646
  1093. package/dist/commands/chunk-OKZWEVR4.js +0 -352
  1094. package/dist/commands/chunk-OL6IF4JC.js +0 -20
  1095. package/dist/commands/chunk-OMPRILFH.js +0 -29
  1096. package/dist/commands/chunk-OOWGH2RG.js +0 -85
  1097. package/dist/commands/chunk-OP2RFVLS.js +0 -102
  1098. package/dist/commands/chunk-ORKVN2LO.js +0 -56
  1099. package/dist/commands/chunk-OSBWXZJ4.js +0 -492
  1100. package/dist/commands/chunk-OT3UMEWK.js +0 -47
  1101. package/dist/commands/chunk-OVWPZDWP.js +0 -64
  1102. package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
  1103. package/dist/commands/chunk-OX3VQLV2.js +0 -488
  1104. package/dist/commands/chunk-OZJP77UM.js +0 -103
  1105. package/dist/commands/chunk-OZZWRJQI.js +0 -246
  1106. package/dist/commands/chunk-P3H3DKTE.js +0 -69
  1107. package/dist/commands/chunk-P4D5RESF.js +0 -88
  1108. package/dist/commands/chunk-P4KIQRSL.js +0 -119
  1109. package/dist/commands/chunk-P5SOYWH2.js +0 -37
  1110. package/dist/commands/chunk-P7FPXAHP.js +0 -29
  1111. package/dist/commands/chunk-PE7B7242.js +0 -84
  1112. package/dist/commands/chunk-PFO7EYAP.js +0 -45
  1113. package/dist/commands/chunk-PHLOTUB7.js +0 -366
  1114. package/dist/commands/chunk-PTNQCCIB.js +0 -41
  1115. package/dist/commands/chunk-PTZEFQUX.js +0 -211
  1116. package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
  1117. package/dist/commands/chunk-Q7EEIOAD.js +0 -120
  1118. package/dist/commands/chunk-QABRNGQV.js +0 -88
  1119. package/dist/commands/chunk-QAHFPCFR.js +0 -50
  1120. package/dist/commands/chunk-QDFVVRQP.js +0 -92
  1121. package/dist/commands/chunk-QGAERR7D.js +0 -99
  1122. package/dist/commands/chunk-QHWJJ6X5.js +0 -53
  1123. package/dist/commands/chunk-QJRVDE7T.js +0 -307
  1124. package/dist/commands/chunk-QMDKDQKW.js +0 -114
  1125. package/dist/commands/chunk-QOSC5RKD.js +0 -18
  1126. package/dist/commands/chunk-QQ4CIYMF.js +0 -132
  1127. package/dist/commands/chunk-QV5FKMOU.js +0 -80
  1128. package/dist/commands/chunk-QWWTC3XR.js +0 -109
  1129. package/dist/commands/chunk-QXQ56E56.js +0 -27
  1130. package/dist/commands/chunk-R54Z2Z3X.js +0 -114
  1131. package/dist/commands/chunk-R6QE5VJG.js +0 -46
  1132. package/dist/commands/chunk-RG53UFNW.js +0 -418
  1133. package/dist/commands/chunk-RGGEQM6G.js +0 -140
  1134. package/dist/commands/chunk-RH6ZWJOA.js +0 -77
  1135. package/dist/commands/chunk-RHKCWJQX.js +0 -62
  1136. package/dist/commands/chunk-RKIAX4DZ.js +0 -191
  1137. package/dist/commands/chunk-RLBFEHHC.js +0 -300
  1138. package/dist/commands/chunk-RN2YDNLF.js +0 -229
  1139. package/dist/commands/chunk-RRAIRS2T.js +0 -54
  1140. package/dist/commands/chunk-RS764ZMU.js +0 -46
  1141. package/dist/commands/chunk-RUIBQMOV.js +0 -38
  1142. package/dist/commands/chunk-RUQY5TS3.js +0 -83
  1143. package/dist/commands/chunk-RVUJ6F5L.js +0 -181
  1144. package/dist/commands/chunk-RW64VHEB.js +0 -130
  1145. package/dist/commands/chunk-RXYMJPJB.js +0 -114
  1146. package/dist/commands/chunk-S4M6UWR2.js +0 -103
  1147. package/dist/commands/chunk-SASX3W2M.js +0 -99
  1148. package/dist/commands/chunk-SFNBUB6D.js +0 -110
  1149. package/dist/commands/chunk-SJ2ZN575.js +0 -90
  1150. package/dist/commands/chunk-SP7DKYGU.js +0 -1263
  1151. package/dist/commands/chunk-SSL6A3Y4.js +0 -165
  1152. package/dist/commands/chunk-SVAKCXZ7.js +0 -44
  1153. package/dist/commands/chunk-SYOXIKB7.js +0 -705
  1154. package/dist/commands/chunk-SZG5HDNP.js +0 -321
  1155. package/dist/commands/chunk-T25S4QHL.js +0 -52
  1156. package/dist/commands/chunk-T4F33UKZ.js +0 -114
  1157. package/dist/commands/chunk-T4UYEHWG.js +0 -50
  1158. package/dist/commands/chunk-TAEGXID2.js +0 -58
  1159. package/dist/commands/chunk-TCBUX52E.js +0 -701
  1160. package/dist/commands/chunk-TEPYEUYG.js +0 -585
  1161. package/dist/commands/chunk-TFLHYC2F.js +0 -141
  1162. package/dist/commands/chunk-TJKM56WJ.js +0 -109
  1163. package/dist/commands/chunk-TLAB552K.js +0 -445
  1164. package/dist/commands/chunk-TP6L4W3W.js +0 -82
  1165. package/dist/commands/chunk-TR7WWYD5.js +0 -60
  1166. package/dist/commands/chunk-TVZXG4Y4.js +0 -197
  1167. package/dist/commands/chunk-TYNH2R66.js +0 -1150
  1168. package/dist/commands/chunk-U3IVVR4W.js +0 -33
  1169. package/dist/commands/chunk-U5P6G3UV.js +0 -77
  1170. package/dist/commands/chunk-U7XU5RG3.js +0 -86
  1171. package/dist/commands/chunk-UKBBWMLE.js +0 -1189
  1172. package/dist/commands/chunk-ULVVGGTY.js +0 -64
  1173. package/dist/commands/chunk-UNMSZGSG.js +0 -269
  1174. package/dist/commands/chunk-URDT2O2K.js +0 -36
  1175. package/dist/commands/chunk-UTHUX7VU.js +0 -88
  1176. package/dist/commands/chunk-V4Z7G4UH.js +0 -73
  1177. package/dist/commands/chunk-V5FD7DVV.js +0 -48
  1178. package/dist/commands/chunk-VCPGFBMN.js +0 -655
  1179. package/dist/commands/chunk-VGPIQNDB.js +0 -24
  1180. package/dist/commands/chunk-VJE3RJAX.js +0 -23
  1181. package/dist/commands/chunk-VK6D5CWA.js +0 -161
  1182. package/dist/commands/chunk-VOF3N4WO.js +0 -114
  1183. package/dist/commands/chunk-VQVPAVQ3.js +0 -45
  1184. package/dist/commands/chunk-VV4TQYGD.js +0 -38
  1185. package/dist/commands/chunk-W3FX7FYN.js +0 -84
  1186. package/dist/commands/chunk-W7DRUOF7.js +0 -122
  1187. package/dist/commands/chunk-WAEN2RTT.js +0 -161
  1188. package/dist/commands/chunk-WCEUMOKK.js +0 -84
  1189. package/dist/commands/chunk-WJ4NEDNI.js +0 -288
  1190. package/dist/commands/chunk-WMMGXJXP.js +0 -92
  1191. package/dist/commands/chunk-WOFLW2LX.js +0 -26
  1192. package/dist/commands/chunk-WTH6NTXU.js +0 -128
  1193. package/dist/commands/chunk-WWVYEHQT.js +0 -272
  1194. package/dist/commands/chunk-X3TNPALI.js +0 -213
  1195. package/dist/commands/chunk-XC6GG5JR.js +0 -78
  1196. package/dist/commands/chunk-XDF25GSU.js +0 -536
  1197. package/dist/commands/chunk-XFPEUYDV.js +0 -67
  1198. package/dist/commands/chunk-XFWI6WHH.js +0 -60
  1199. package/dist/commands/chunk-XGMRAKSL.js +0 -85
  1200. package/dist/commands/chunk-XHGWMD3L.js +0 -104
  1201. package/dist/commands/chunk-XKSUBUIH.js +0 -116
  1202. package/dist/commands/chunk-XPBF5DG3.js +0 -419
  1203. package/dist/commands/chunk-XUMYPESL.js +0 -160
  1204. package/dist/commands/chunk-XXC32PVL.js +0 -541
  1205. package/dist/commands/chunk-XXN2EZBY.js +0 -133
  1206. package/dist/commands/chunk-XXNEY4B3.js +0 -110
  1207. package/dist/commands/chunk-Y27PTXXI.js +0 -258
  1208. package/dist/commands/chunk-Y4EBUI6M.js +0 -237
  1209. package/dist/commands/chunk-YAU3LYNF.js +0 -60
  1210. package/dist/commands/chunk-YDURQICF.js +0 -204
  1211. package/dist/commands/chunk-YGFOGA7C.js +0 -1153
  1212. package/dist/commands/chunk-YHJ2AJMA.js +0 -66
  1213. package/dist/commands/chunk-YIA6FC3K.js +0 -78
  1214. package/dist/commands/chunk-YM77CF4D.js +0 -183
  1215. package/dist/commands/chunk-YNPRJCEO.js +0 -81
  1216. package/dist/commands/chunk-YTBQAD5W.js +0 -170
  1217. package/dist/commands/chunk-YVH2OLDS.js +0 -104
  1218. package/dist/commands/chunk-Z3WGHIVB.js +0 -122
  1219. package/dist/commands/chunk-ZAAHZY2A.js +0 -19
  1220. package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
  1221. package/dist/commands/chunk-ZLRUHSOP.js +0 -48
  1222. package/dist/commands/chunk-ZNR75OXP.js +0 -444
  1223. package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
  1224. package/dist/commands/chunk-ZVAIIHBE.js +0 -63
  1225. package/dist/commands/chunk-ZYFHYQA7.js +0 -51
  1226. package/dist/commands/chunk-ZZFFSQF4.js +0 -218
  1227. package/dist/commands/chunk-ZZULXNC2.js +0 -47
  1228. package/dist/commands/chunk-ZZXO6TFH.js +0 -232
  1229. package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
  1230. package/dist/commands/test-related-ZCNC46MS.js +0 -113
  1231. package/dist/commands/unused-members-STULPRBU.js +0 -331
  1232. package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
  1233. package/dist/hooks/chunk-5R5YFQR5.js +0 -931
  1234. package/dist/hooks/chunk-6RLY27FT.js +0 -232
  1235. package/dist/hooks/chunk-6YGMIODI.js +0 -86
  1236. package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
  1237. package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
  1238. package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
  1239. package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
  1240. package/dist/hooks/chunk-IURJANNZ.js +0 -1082
  1241. package/dist/hooks/chunk-OV22V63P.js +0 -10980
  1242. package/dist/hooks/chunk-SXABK6UV.js +0 -321
  1243. package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
@@ -1,1310 +0,0 @@
1
- import {
2
- stash_orphans
3
- } from "./chunk-EYMPBHDN.js";
4
- import {
5
- lane_net_read
6
- } from "./chunk-MFBNNTBM.js";
7
- import {
8
- epic_next,
9
- epic_next_read,
10
- epic_outside_blocker,
11
- epic_rank,
12
- epic_report,
13
- epic_solo,
14
- epic_solo_stale
15
- } from "./chunk-TYNH2R66.js";
16
- import {
17
- epic_triage
18
- } from "./chunk-VQRT32JB.js";
19
- import {
20
- epic_cross_repo
21
- } from "./chunk-OX3VQLV2.js";
22
- import {
23
- backlog_plan_comment
24
- } from "./chunk-AVVMDVGO.js";
25
- import {
26
- auto_ok_author,
27
- auto_ok_cli,
28
- epic_bundle_gaps
29
- } from "./chunk-FMZWRDKH.js";
30
- import {
31
- epic_index
32
- } from "./chunk-7MJYLUF4.js";
33
- import {
34
- issue_not_before
35
- } from "./chunk-FKZ5E4JD.js";
36
- import {
37
- run_prep_locate
38
- } from "./chunk-A4HOQKOG.js";
39
- import {
40
- defect_rate,
41
- issue_search
42
- } from "./chunk-SSL6A3Y4.js";
43
- import {
44
- issue_sample_prime
45
- } from "./chunk-QDFVVRQP.js";
46
- import {
47
- epic_issue
48
- } from "./chunk-IAD4WLLI.js";
49
- import {
50
- git_next_issues
51
- } from "./chunk-HH3CVIFU.js";
52
- import {
53
- size_estimate
54
- } from "./chunk-FDS65XOJ.js";
55
- import {
56
- split_assess
57
- } from "./chunk-D7JRJI44.js";
58
- import {
59
- epic_audit_logic
60
- } from "./chunk-ILIITIMQ.js";
61
- import {
62
- epic_graph
63
- } from "./chunk-3RIQ36LH.js";
64
- import {
65
- epic_busy
66
- } from "./chunk-QABRNGQV.js";
67
- import {
68
- git_gh_command
69
- } from "./chunk-YGFOGA7C.js";
70
- import {
71
- backlog_overlap,
72
- lane_plan
73
- } from "./chunk-B7ZNIEDV.js";
74
- import {
75
- git_stash
76
- } from "./chunk-K64EIHD2.js";
77
- import {
78
- issue_body_keys
79
- } from "./chunk-KXK2A2HB.js";
80
- import {
81
- git_gh_issue_write
82
- } from "./chunk-RN2YDNLF.js";
83
- import {
84
- git_gh_issue_read
85
- } from "./chunk-ENKFCOVY.js";
86
- import {
87
- GRAPHQL_PATH
88
- } from "./chunk-TVZXG4Y4.js";
89
- import {
90
- shared_cache
91
- } from "./chunk-C6QSVO5K.js";
92
- import {
93
- lane_state
94
- } from "./chunk-ZZXO6TFH.js";
95
- import {
96
- epic_issue_schema
97
- } from "./chunk-34DND4BA.js";
98
- import {
99
- BUG_LABEL,
100
- EPIC_LABEL,
101
- IN_PROGRESS_LABEL,
102
- NOT_BEFORE_LABEL,
103
- PARKED_LABELS,
104
- REPOSITORY_LABELS,
105
- RUN_LANE_LABEL,
106
- SPLIT_ROUTE_LABEL,
107
- has_any_label,
108
- has_label_name
109
- } from "./chunk-QQBMVC5W.js";
110
- import {
111
- issue_citation,
112
- session_cite
113
- } from "./chunk-22DVQCP6.js";
114
- import {
115
- repo_discovery
116
- } from "./chunk-MDKDJF2K.js";
117
- import {
118
- issue_cite
119
- } from "./chunk-HQ2HSZBN.js";
120
- import {
121
- lane_ledger_write
122
- } from "./chunk-I63RNFFR.js";
123
- import {
124
- git_gh_api_path
125
- } from "./chunk-RDRN56E4.js";
126
- import {
127
- git_gh_exec,
128
- parse_json_array_or_undefined,
129
- parse_json_object_or_undefined
130
- } from "./chunk-XDF25GSU.js";
131
- import {
132
- error_text
133
- } from "./chunk-CDY4NFQG.js";
134
- import {
135
- line_budget
136
- } from "./chunk-KKIMVXAP.js";
137
- import {
138
- PROJECT_ROOT
139
- } from "./chunk-3CCGKX7Y.js";
140
-
141
- // scripts/issue/issue-not-before-label.ts
142
- var DEFINITION = REPOSITORY_LABELS.find((label) => label.name === NOT_BEFORE_LABEL);
143
- var NOT_APPLIED = "the label was not applied";
144
- var LABELLED_LIMIT = 200;
145
- function is_waiting(body, now) {
146
- return !issue_not_before.is_due(body, now);
147
- }
148
- function change_of(body, labels, now = Date.now()) {
149
- const is_labelled = has_label_name(labels, NOT_BEFORE_LABEL);
150
- if (is_waiting(body, now) === is_labelled) return void 0;
151
- return is_labelled ? "remove" : "add";
152
- }
153
- function with_label(labels, body, now = Date.now()) {
154
- return change_of(body, labels, now) === "add" ? [...labels, NOT_BEFORE_LABEL] : labels;
155
- }
156
- function changes_of(issues, now) {
157
- return issues.flatMap(function change(issue) {
158
- const names = (issue.labels ?? []).map((label) => label.name);
159
- const owed = change_of(issue.body, names, now);
160
- return owed === void 0 ? [] : [[issue, owed]];
161
- });
162
- }
163
- async function write(number, owed) {
164
- if (owed === "remove") {
165
- await git_gh_issue_write.issue_remove_label(number, NOT_BEFORE_LABEL);
166
- return;
167
- }
168
- if (!await git_gh_issue_write.issue_add_label(number, NOT_BEFORE_LABEL)) {
169
- throw new Error(NOT_APPLIED);
170
- }
171
- }
172
- async function apply(issue, owed) {
173
- try {
174
- await write(String(issue.number), owed);
175
- } catch (error) {
176
- const cited2 = session_cite.issue(issue.number);
177
- console.warn(
178
- `${cited2}: could not ${owed} \`${NOT_BEFORE_LABEL}\`: ${error_text.message_of(error)}`
179
- );
180
- }
181
- }
182
- async function sync(issues, now = Date.now()) {
183
- const changes = changes_of(issues, now);
184
- if (DEFINITION !== void 0 && changes.some(([, owed]) => owed === "add")) {
185
- await git_gh_issue_write.label_ensure(DEFINITION);
186
- }
187
- await Promise.all(
188
- changes.map(async ([issue, owed]) => {
189
- await apply(issue, owed);
190
- })
191
- );
192
- }
193
- async function read_labelled() {
194
- const { json } = await git_gh_command.issue_list_by_label(NOT_BEFORE_LABEL, LABELLED_LIMIT);
195
- const rows = json === void 0 ? void 0 : parse_json_array_or_undefined(json, epic_issue_schema);
196
- return (rows ?? []).map((row) => ({ ...row, labels: [{ name: NOT_BEFORE_LABEL }] }));
197
- }
198
- async function sweep(scanned, now = Date.now()) {
199
- const seen = new Set(scanned.map((issue) => issue.number));
200
- const labelled = await read_labelled();
201
- await issue_sample_prime.prime(labelled.map((issue) => issue.body));
202
- await sync([...scanned, ...labelled.filter((issue) => !seen.has(issue.number))], now);
203
- }
204
- var issue_not_before_label = { change_of, sweep, sync, with_label };
205
-
206
- // scripts/backlog/backlog-auto-triage.ts
207
- var GATE_PATHS = [
208
- "eslint/",
209
- "eslint.config",
210
- "scripts/hooks/",
211
- "scripts/gate/",
212
- "scripts/lint/",
213
- "scripts/review/",
214
- "scripts/ci/",
215
- "prompts/review",
216
- "lefthook",
217
- ".github/workflows/",
218
- "vitest.config",
219
- "tsconfig",
220
- "cspell.config"
221
- ];
222
- function names_gate_path(body) {
223
- return GATE_PATHS.some((path2) => body.includes(path2));
224
- }
225
- function lane_reason(child) {
226
- if (!has_label_name(child.labels, BUG_LABEL)) return `it carries no \`${BUG_LABEL}\` label`;
227
- if (child.body === void 0 || names_gate_path(child.body)) return void 0;
228
- return `it is a \`${BUG_LABEL}\`, but its body names no verification-gate path`;
229
- }
230
- function comment_of(reason) {
231
- return [
232
- `Triaged mechanically to \`${RUN_LANE_LABEL}\`: ${reason}.`,
233
- '`run:solo` needs all three conditions of `backlogrun-lanes.md` \u2192 "A solo run", so no judgment session was woken.'
234
- ].join("\n");
235
- }
236
- async function decided_labels(child, repo) {
237
- const reason = lane_reason(child);
238
- if (reason === void 0) return void 0;
239
- const issue = String(child.number);
240
- const current = await git_gh_command.read_label_names(issue, repo);
241
- if (current === void 0 || epic_triage.has_triage_label(current)) return current;
242
- const write2 = await git_gh_command.issue_apply_label(issue, RUN_LANE_LABEL, repo);
243
- if (!write2.is_applied) return void 0;
244
- await git_gh_command.issue_try_comment(issue, comment_of(reason), repo);
245
- return [...current, RUN_LANE_LABEL];
246
- }
247
- async function settle_child(child, repo) {
248
- if (epic_triage.is_triaged(child)) return child;
249
- const labels = await decided_labels(child, repo);
250
- return labels === void 0 ? child : { ...child, labels };
251
- }
252
- async function settle_children(children, repo) {
253
- return await Promise.all(children.map(async (child) => await settle_child(child, repo)));
254
- }
255
- async function settle(result, repo) {
256
- if (result.verdict !== "run") return result;
257
- const candidates = await Promise.all(
258
- result.candidates.map(
259
- async (bucket) => bucket.repo === repo ? { ...bucket, children: await settle_children(bucket.children, repo) } : bucket
260
- )
261
- );
262
- return { ...result, candidates };
263
- }
264
- async function untriaged_of(result, repo) {
265
- const settled = await settle(result, repo);
266
- if (settled.verdict !== "run") return { result: settled, untriaged: [] };
267
- return {
268
- result: settled,
269
- untriaged: epic_triage.untriaged(epic_report.candidates_for_repo(settled, repo))
270
- };
271
- }
272
- var backlog_auto_triage = { lane_reason, untriaged_of };
273
-
274
- // scripts/issue/defect-rate-cli.ts
275
- import { z } from "zod";
276
- var MS_PER_MINUTE = 6e4;
277
- var CACHE_TTL_MINUTES = 15;
278
- var RATE_CACHE = {
279
- prefix: "josh-defect-rate-",
280
- ttl_ms: CACHE_TTL_MINUTES * MS_PER_MINUTE
281
- };
282
- var defect_rate_schema = z.object({
283
- days: z.number(),
284
- since: z.string(),
285
- defects: z.number(),
286
- enhancements: z.number(),
287
- is_capped: z.boolean()
288
- });
289
- async function measure_uncached(repo, days, since) {
290
- const [filed, completed] = await Promise.all([
291
- issue_search.search(defect_rate.filed_query(repo, since)),
292
- issue_search.search(defect_rate.completed_query(repo, since))
293
- ]);
294
- if (filed === void 0 || completed === void 0) return void 0;
295
- const is_capped = filed.is_capped || completed.is_capped;
296
- return defect_rate.measure({
297
- days,
298
- since,
299
- filed: filed.issues,
300
- completed: completed.issues,
301
- is_capped
302
- });
303
- }
304
- async function measure_window(repo, days, now_ms) {
305
- const since = defect_rate.window_start(now_ms, days);
306
- const key = [repo, String(days), since].join(" ");
307
- return await shared_cache.remember(
308
- { slot: RATE_CACHE, key, schema: defect_rate_schema },
309
- async () => await measure_uncached(repo, days, since),
310
- now_ms
311
- );
312
- }
313
- var defect_rate_cli = { RATE_CACHE, measure_window };
314
-
315
- // scripts/backlog/backlog-defect-priority.ts
316
- var UNMEASURED_MESSAGE = "The defect rate could not be read from GitHub, so defects are offered first without deferring new mechanisms.";
317
- var KIND_RANK = { defect: 0, other: 1, mechanism: 1 };
318
- var DEFERRED_KIND_RANK = { ...KIND_RANK, mechanism: 2 };
319
- function above_message(measured) {
320
- return `The defect rate ${defect_rate.rate_text(measured)} is above its baseline ${String(defect_rate.BASELINE_RATE)}, so among issues the ranking keys tie, defects are offered first and new mechanisms last.`;
321
- }
322
- function should_defer_mechanisms(measured) {
323
- if (measured === void 0) {
324
- console.error(UNMEASURED_MESSAGE);
325
- return false;
326
- }
327
- if (!defect_rate.is_above_baseline(measured)) return false;
328
- console.error(above_message(measured));
329
- return true;
330
- }
331
- async function kind_of_child(child) {
332
- const body = child.body ?? await git_gh_command.issue_get_body(String(child.number), child.repo);
333
- return defect_rate.kind_of({ body: body ?? "", labels: child.labels });
334
- }
335
- async function reorder_bundle(bundle, is_above_baseline) {
336
- const kinds = await Promise.all(bundle.children.map(async (child) => await kind_of_child(child)));
337
- const ranks = is_above_baseline ? DEFERRED_KIND_RANK : KIND_RANK;
338
- const ranked = bundle.children.map((child, index) => ({
339
- child,
340
- rank: ranks[kinds[index] ?? "other"]
341
- }));
342
- const children = ranked.toSorted((left, right) => left.rank - right.rank).map((row) => row.child);
343
- return { ...bundle, children };
344
- }
345
- async function reorder(result, repo, is_above_baseline) {
346
- const candidates = await Promise.all(
347
- result.candidates.map(
348
- async (bundle) => bundle.repo === repo ? await reorder_bundle(bundle, is_above_baseline) : bundle
349
- )
350
- );
351
- return { ...result, candidates };
352
- }
353
- async function prioritize(result, repo, now_ms = Date.now()) {
354
- if (result.verdict !== "run") return result;
355
- const days = defect_rate.DEFAULT_WINDOW_DAYS;
356
- const measured = await defect_rate_cli.measure_window(repo, days, now_ms);
357
- return await reorder(result, repo, should_defer_mechanisms(measured));
358
- }
359
- var backlog_defect_priority = { UNMEASURED_MESSAGE, prioritize };
360
-
361
- // scripts/backlog/backlog-pool.ts
362
- var EPIC_LABELS = /* @__PURE__ */ new Set([EPIC_LABEL]);
363
- var DECISION_LABELS = PARKED_LABELS;
364
- function is_epic_row(issue) {
365
- return has_any_label(issue.labels, EPIC_LABELS);
366
- }
367
- function waits_outside(issue, running, repo) {
368
- return epic_issue.blocker_references_of(issue, repo).some((blocker) => blocker.state === "OPEN" && !running.has(epic_graph.blocker_key(blocker)));
369
- }
370
- function is_stuck(issue, running, context) {
371
- return !auto_ok_author.is_author_trusted(issue) || has_any_label(issue.labels, DECISION_LABELS) || waits_outside(issue, running, context.repo);
372
- }
373
- function needs_person(issue, context) {
374
- return is_stuck(issue, context.running, context);
375
- }
376
- function epic_keys_of(tracking, repo) {
377
- return new Set([...tracking.values()].flat().map((number) => epic_graph.key_of({ repo, number })));
378
- }
379
- function with_tracking_epics(running, tracking, repo) {
380
- const tracking_epics = [...tracking].filter(([child]) => running.has(epic_graph.key_of({ repo, number: child }))).flatMap(([, epics]) => epics.map((number) => epic_graph.key_of({ repo, number })));
381
- const grown = /* @__PURE__ */ new Set([...running, ...tracking_epics]);
382
- return grown.size === running.size ? running : with_tracking_epics(grown, tracking, repo);
383
- }
384
- function rooted(running, tracking, repo) {
385
- const epics = epic_keys_of(tracking, repo);
386
- const members = new Set([...running].filter((key) => !epics.has(key)));
387
- return with_tracking_epics(members, tracking, repo);
388
- }
389
- function settle_standalone(running, issues, context, tracking) {
390
- const settled = new Set(running);
391
- for (const issue of issues) {
392
- if (is_stuck(issue, running, context)) {
393
- settled.delete(epic_graph.key_of({ repo: context.repo, number: issue.number }));
394
- }
395
- }
396
- const next = rooted(settled, tracking, context.repo);
397
- return next.size === running.size ? next : settle_standalone(next, issues, context, tracking);
398
- }
399
- function to_child(issue, repo) {
400
- return {
401
- number: issue.number,
402
- repo,
403
- state: "OPEN",
404
- labels: (issue.labels ?? []).map((label) => label.name),
405
- blocked_by: epic_issue.blocker_references_of(issue, repo),
406
- body: issue.body,
407
- author_association: issue.author_association,
408
- user: issue.user
409
- };
410
- }
411
- function to_children(issues, repo) {
412
- return issues.map((issue) => to_child(issue, repo));
413
- }
414
- function opted_in_epics(issues, tracking) {
415
- return [...epic_index.reachable_epic_numbers(tracking, issues)];
416
- }
417
- async function read_epics(pool) {
418
- const { issues } = pool.opted_in;
419
- const references = opted_in_epics(issues, pool.tracking.index).map((number) => ({ number }));
420
- const listed = new Map(to_children(issues, pool.repo).map((child) => [child.number, child]));
421
- return await epic_next_read.read_snapshots(references, pool.repo, { repo: pool.repo, listed });
422
- }
423
- function standalone_rows(issues) {
424
- return issues.filter((issue) => !is_epic_row(issue));
425
- }
426
- function is_considered(issue, context) {
427
- return !context.tracked.has(issue.number) && !context.exclude.includes(issue.number);
428
- }
429
- function classify_standalone(issues, context) {
430
- const considered = issues.filter((issue) => is_considered(issue, context));
431
- const runnable = git_next_issues.order(
432
- considered.filter((issue) => auto_ok_cli.is_runnable(issue, context.tracked, context.exclude))
433
- );
434
- const offered = new Set(runnable.map((issue) => issue.number));
435
- const withheld = considered.filter((issue) => !offered.has(issue.number));
436
- return {
437
- runnable: to_children(runnable, context.repo),
438
- time: to_children(
439
- withheld.filter((issue) => !needs_person(issue, context)),
440
- context.repo
441
- ),
442
- human: to_children(
443
- withheld.filter((issue) => needs_person(issue, context)),
444
- context.repo
445
- )
446
- };
447
- }
448
- function running_set(graphs, issues, context, tracking) {
449
- const running = epic_outside_blocker.running_keys([
450
- ...graphs.flat().filter((child) => child.state === "OPEN"),
451
- ...to_children(standalone_rows(issues), context.repo)
452
- ]);
453
- return settle_standalone(rooted(running, tracking, context.repo), issues, context, tracking);
454
- }
455
- function cross_epic_cycles(graphs, standalone) {
456
- const within = new Set(
457
- [...graphs, standalone].flatMap((children) => epic_graph.find_stuck_children(children))
458
- );
459
- const union = [...epic_graph.index_children([...graphs.flat(), ...standalone]).values()];
460
- const stuck = epic_graph.find_stuck_children(
461
- union.filter((child) => !within.has(epic_graph.key_of(child)))
462
- );
463
- if (stuck.length === 0) return [];
464
- return [
465
- {
466
- kind: "cycle",
467
- message: `Dependency cycle across the backlog: ${stuck.join(", ")} can never start until a person breaks it`
468
- }
469
- ];
470
- }
471
- function unique_children(children) {
472
- const seen = /* @__PURE__ */ new Set();
473
- const unique = [];
474
- for (const child of children) {
475
- if (seen.has(epic_graph.key_of(child))) continue;
476
- seen.add(epic_graph.key_of(child));
477
- unique.push(child);
478
- }
479
- return unique;
480
- }
481
- function without(children, taken) {
482
- return children.filter((child) => !taken.has(epic_graph.key_of(child)));
483
- }
484
- function keys_of(children) {
485
- return new Set(children.map((child) => epic_graph.key_of(child)));
486
- }
487
- function trusted_graphs(graphs, untrusted) {
488
- return graphs.map((children) => without(children, untrusted));
489
- }
490
- function waits_on(child, held) {
491
- return child.blocked_by.some((blocker) => held.has(epic_graph.blocker_key(blocker)));
492
- }
493
- function with_dependants(children, held) {
494
- const grown = /* @__PURE__ */ new Set([...held, ...keys_of(children.filter((child) => waits_on(child, held)))]);
495
- return grown.size === held.size ? held : with_dependants(children, grown);
496
- }
497
- function epic_classification(views, untrusted) {
498
- const waiting = views.flatMap((view) => view.result.waiting);
499
- const offered = views.flatMap(
500
- (view) => view.result.candidates.flatMap((bundle) => bundle.children)
501
- );
502
- const held = with_dependants(waiting, untrusted);
503
- const human = unique_children([
504
- ...views.flatMap((view) => view.result.blocked_on_people),
505
- ...[...waiting, ...offered].filter((child) => held.has(epic_graph.key_of(child)))
506
- ]);
507
- const time = without(unique_children(waiting), keys_of(human));
508
- return {
509
- runnable: without(unique_children(offered), keys_of([...human, ...time])),
510
- time,
511
- human
512
- };
513
- }
514
- function is_kept(child, exclude, repo) {
515
- return child.repo !== repo || !exclude.includes(child.number);
516
- }
517
- function drop_excluded(classification, exclude, repo) {
518
- return {
519
- runnable: classification.runnable.filter((child) => is_kept(child, exclude, repo)),
520
- time: classification.time.filter((child) => is_kept(child, exclude, repo)),
521
- human: classification.human.filter((child) => is_kept(child, exclude, repo))
522
- };
523
- }
524
- function merge_classifications(left, right) {
525
- return {
526
- runnable: [...left.runnable, ...right.runnable],
527
- time: [...left.time, ...right.time],
528
- human: [...left.human, ...right.human]
529
- };
530
- }
531
- function standalone_keys(issues, context) {
532
- return keys_of(
533
- to_children(
534
- standalone_rows(issues).filter((issue) => is_considered(issue, context)),
535
- context.repo
536
- )
537
- );
538
- }
539
- var backlog_pool = {
540
- classify_standalone,
541
- cross_epic_cycles,
542
- running_set,
543
- settle_standalone,
544
- standalone_keys,
545
- drop_excluded,
546
- epic_classification,
547
- merge_classifications,
548
- opted_in_epics,
549
- read_epics,
550
- standalone_rows,
551
- to_child,
552
- to_children,
553
- trusted_graphs
554
- };
555
-
556
- // scripts/backlog/backlog-gate-scope.ts
557
- var IDLE = { kind: "idle" };
558
- function standalone_keys2(context) {
559
- return backlog_pool.standalone_keys(context.opted_in.issues, {
560
- tracked: epic_index.withheld_children(context.tracking.index, context.opted_in.issues),
561
- exclude: context.exclude,
562
- repo: context.repo
563
- });
564
- }
565
- function yielded_keys(context, directory) {
566
- const yielded = context.opted_in.issues.filter(
567
- (issue) => lane_plan.is_yielded(issue.number, directory)
568
- );
569
- return new Set(yielded.map(({ number }) => epic_graph.key_of({ number, repo: context.repo })));
570
- }
571
- async function gate_scope(context, read2 = IDLE) {
572
- const { issues } = context.opted_in;
573
- const directory = process.cwd();
574
- const declared = await backlog_plan_comment.declared_of(issues, directory);
575
- const holders = backlog_overlap.running_numbers(read2);
576
- return {
577
- standalone: standalone_keys2(context),
578
- declared: lane_plan.with_holder_plans(declared, holders, directory),
579
- lanes: await lane_state.read_states(issues.map((issue) => String(issue.number))),
580
- yielded: yielded_keys(context, directory)
581
- };
582
- }
583
- var backlog_gate_scope = { gate_scope };
584
-
585
- // scripts/issue/issue-cap-files.ts
586
- import path from "node:path";
587
- var PERCENT = 100;
588
- var CAP_PERCENT = 90;
589
- var CAP_FRACTION = CAP_PERCENT / PERCENT;
590
- var NO_LINES_PREFIX = issue_body_keys.prefix("no_lines");
591
- var REFACTOR_PREFIX = issue_body_keys.prefix("refactor_first");
592
- var ISSUE_REFERENCE = /^#\d+$/u;
593
- var REFACTOR_GUIDE = "prompts/refactoring.md";
594
- var CODE_FILE = /\.(?:[cm]?[jt]sx?|svelte)$/u;
595
- function counted_paths(body, project_root) {
596
- return run_prep_locate.names_of(body).filter((name) => CODE_FILE.test(name)).filter((name) => line_budget.is_lintable_path(path.resolve(project_root, name)));
597
- }
598
- function is_near_cap(budget) {
599
- if (budget === void 0) return false;
600
- return budget.code_lines >= Math.ceil(budget.limit * CAP_FRACTION);
601
- }
602
- function is_declared(body) {
603
- if ((size_estimate.declared(body, NO_LINES_PREFIX) ?? "") !== "") return true;
604
- return ISSUE_REFERENCE.test(size_estimate.declared(body, REFACTOR_PREFIX) ?? "");
605
- }
606
- function near_of(named, budgets) {
607
- const near = budgets.filter((entry) => is_near_cap(entry.budget));
608
- return named.map((paths) => near.filter((entry) => paths.includes(entry.file_path)));
609
- }
610
- async function near_cap_by_body(bodies, project_root) {
611
- const named = bodies.map((body) => is_declared(body) ? [] : counted_paths(body, project_root));
612
- const paths = [...new Set(named.flat())];
613
- if (paths.length === 0) return named.map(() => []);
614
- return near_of(named, await line_budget.budgets_for(paths, project_root));
615
- }
616
- async function near_cap(body, project_root) {
617
- const [near] = await near_cap_by_body([body], project_root);
618
- return near ?? [];
619
- }
620
- function described(entry) {
621
- const { budget } = entry;
622
- return budget === void 0 ? entry.file_path : `${entry.file_path} (${line_budget.describe(budget)})`;
623
- }
624
- function named_line(near) {
625
- return `names ${near.map((entry) => described(entry)).join(", ")}, at or past ${String(CAP_PERCENT)}% of the code-line limit`;
626
- }
627
- function problem(near) {
628
- if (near.length === 0) return void 0;
629
- return `${named_line(near)} \u2014 file a refactor Issue that splits it first (${REFACTOR_GUIDE}), refile this one declaring \`${REFACTOR_PREFIX} #<refactor>\`, then \`pnpm josh backlog:triage --apply <N> --blocked-by <refactor> --reason "<why>"\`; or declare \`${NO_LINES_PREFIX} <\u7406\u7531>\` when the change adds no lines to it`;
630
- }
631
- function note(near) {
632
- if (near.length === 0) return void 0;
633
- return `${named_line(near)} with no \`${NO_LINES_PREFIX}\` \u2014 split it first (${REFACTOR_GUIDE})`;
634
- }
635
- var issue_cap_files = {
636
- NO_LINES_PREFIX,
637
- REFACTOR_PREFIX,
638
- near_cap,
639
- near_cap_by_body,
640
- note,
641
- problem
642
- };
643
-
644
- // scripts/backlog/backlog-next-size.ts
645
- function remedy_of(route) {
646
- return route === SPLIT_ROUTE_LABEL ? `on a \`${SPLIT_ROUTE_LABEL}\` child \u2014 split it further` : `with no \`${split_assess.REASON_PREFIX}\``;
647
- }
648
- function limit_note(body, route, rate, growth) {
649
- const capped = size_estimate.over_cap(body, route, rate, growth);
650
- return capped === void 0 ? size_estimate.budget_note(body, rate, growth) : size_estimate.capped(capped, rate, growth);
651
- }
652
- function guide_note(body, route, rate, growth) {
653
- const guide = size_estimate.over_guide(body, route, rate, growth) ?? size_estimate.split_over_guide(body, route, rate, growth);
654
- return guide === void 0 ? void 0 : `${size_estimate.exceeded(guide, rate, growth)} ${remedy_of(route)}`;
655
- }
656
- function size_note(row, context) {
657
- const route = size_estimate.route_of(row.labels);
658
- const body = row.body ?? "";
659
- const { implement_rate, growth } = context;
660
- return limit_note(body, route, implement_rate, growth) ?? guide_note(body, route, implement_rate, growth);
661
- }
662
- function note_of(row, context) {
663
- const note2 = size_note(row, context);
664
- if (note2 === void 0) return void 0;
665
- const cited2 = session_cite.issue(row.number, void 0, row.repo);
666
- return `${cited2} ${note2} \u2014 split-assessment.md \u2192 "${split_assess.QUESTION_SECTION}"`;
667
- }
668
- function cap_note_of(row, near = []) {
669
- const note2 = issue_cap_files.note(near);
670
- return note2 === void 0 ? void 0 : `${session_cite.issue(row.number, void 0, row.repo)} ${note2}`;
671
- }
672
- async function warn_over_guide(offered, context) {
673
- const bodies = offered.map((row) => row.body ?? "");
674
- const near = await issue_cap_files.near_cap_by_body(bodies, process.cwd());
675
- const notes = offered.flatMap((row, index) => [
676
- note_of(row, context),
677
- cap_note_of(row, near[index])
678
- ]);
679
- for (const note2 of notes) if (note2 !== void 0) console.error(note2);
680
- }
681
- var backlog_next_size = { warn_over_guide };
682
-
683
- // scripts/backlog/backlog-wait-cause.ts
684
- var CAUSES = ["chain", "gate", "lane"];
685
- var MARKS = {
686
- chain: "Waiting on a dependency chain:",
687
- gate: "Waiting on a start condition:",
688
- lane: "Waiting on a running lane:"
689
- };
690
- var TAG_SEPARATOR = "+";
691
- var ISSUE_PATTERN = /#(\d+)/gu;
692
- var DEADLINE_MARK = "Next start time: ";
693
- var RESOLVED_VERDICT = "resolved";
694
- function has_pending_blocker(child) {
695
- return child.blocked_by.some(
696
- (blocker) => epic_cross_repo.resolve_cross_repo(
697
- { ...blocker, state: blocker.state ?? "OPEN", labels: [], blocked_by: [] },
698
- child
699
- ) !== RESOLVED_VERDICT
700
- );
701
- }
702
- function cause_of(child) {
703
- if (has_label_name(child.labels, IN_PROGRESS_LABEL)) return void 0;
704
- if (!issue_not_before.is_due(child.body)) return "gate";
705
- return has_pending_blocker(child) ? "chain" : "lane";
706
- }
707
- function deadline_of(children) {
708
- const dates = children.filter((child) => cause_of(child) === "gate").map((child) => issue_not_before.waiting_ms(child.body)).filter((date) => date !== void 0);
709
- return dates.length === 0 ? {} : { not_before_ms: Math.min(...dates) };
710
- }
711
- function numbers_with(children, cause) {
712
- return children.filter((child) => cause_of(child) === cause).map((child) => child.number);
713
- }
714
- function classify(children, repo) {
715
- const here2 = children.filter((child) => child.repo === repo);
716
- return {
717
- chain: numbers_with(here2, "chain"),
718
- gate: numbers_with(here2, "gate"),
719
- lane: numbers_with(here2, "lane"),
720
- ...deadline_of(here2)
721
- };
722
- }
723
- function cited(numbers) {
724
- return numbers.map((number) => issue_cite.plain_for("program", number)).join(" ");
725
- }
726
- function lines_of(causes) {
727
- const lines = CAUSES.filter((cause) => causes[cause].length > 0).map(
728
- (cause) => `${MARKS[cause]} ${cited(causes[cause])}`
729
- );
730
- return causes.not_before_ms === void 0 ? lines : [...lines, `${DEADLINE_MARK}${String(causes.not_before_ms)}`];
731
- }
732
- function numbers_on(text, cause) {
733
- const line = text.split("\n").find((candidate) => candidate.startsWith(MARKS[cause]));
734
- return [...(line ?? "").matchAll(ISSUE_PATTERN)].map((match) => Number(match[1]));
735
- }
736
- function parse(text) {
737
- const deadline = text.split("\n").find((line) => line.startsWith(DEADLINE_MARK));
738
- const not_before_ms = Number(deadline?.slice(DEADLINE_MARK.length));
739
- return {
740
- chain: numbers_on(text, "chain"),
741
- gate: numbers_on(text, "gate"),
742
- lane: numbers_on(text, "lane"),
743
- ...Number.isFinite(not_before_ms) && { not_before_ms }
744
- };
745
- }
746
- function tag_of(causes) {
747
- const present = CAUSES.filter((cause) => causes[cause].length > 0);
748
- return present.length > 0 ? present.join(TAG_SEPARATOR) : void 0;
749
- }
750
- function causes_of_tag(tag) {
751
- const parts = tag.split(TAG_SEPARATOR);
752
- const causes = CAUSES.filter((cause) => parts.includes(cause));
753
- return causes.length === parts.length ? causes : void 0;
754
- }
755
- function numbers_of(causes) {
756
- return CAUSES.flatMap((cause) => causes[cause]);
757
- }
758
- var backlog_wait_cause = {
759
- cause_of,
760
- causes_of_tag,
761
- classify,
762
- lines_of,
763
- numbers_of,
764
- parse,
765
- tag_of
766
- };
767
-
768
- // scripts/backlog/backlog-next-report.ts
769
- var SUCCESS_EXIT_CODE = 0;
770
- var RETRY_MESSAGE = "GitHub did not answer, so a child of the dependency graph could not be read. This is a transport failure and not an unusable graph \u2014 the listings this command already read prove `gh` and the credentials work. Ask again after a short wait.";
771
- var VERDICT_TOKENS = {
772
- complete: auto_ok_cli.NONE_TOKEN,
773
- error: "error",
774
- retry: "retry",
775
- run: "run",
776
- stop: "stop",
777
- triage: epic_triage.TRIAGE_VERDICT,
778
- wait: "wait"
779
- };
780
- function tokens_of(result, repo) {
781
- if (result.verdict !== "run") return [VERDICT_TOKENS[result.verdict]];
782
- const here2 = epic_report.candidates_for_repo(result, repo);
783
- if (here2.length === 0) return [VERDICT_TOKENS.wait];
784
- return here2.map((child) => String(child.number));
785
- }
786
- function offered_of(result, repo) {
787
- return result.verdict === "run" ? epic_report.candidates_for_repo(result, repo) : [];
788
- }
789
- function warn_epic_gap(context) {
790
- const epics = epic_bundle_gaps.epic_gap(context.tracking.cutoff, auto_ok_cli.LISTING_LIMIT);
791
- if (epics !== void 0) console.error(epics);
792
- }
793
- function warn_gaps(context, has_answer) {
794
- const listing = auto_ok_cli.truncation_note(context.opted_in.cutoff, has_answer);
795
- if (listing !== void 0) console.error(listing);
796
- warn_epic_gap(context);
797
- }
798
- function warn_not_before(context) {
799
- for (const issue of context.opted_in.issues) {
800
- const reason = issue_not_before.waiting_reason(issue.body);
801
- if (reason === void 0) continue;
802
- const cited2 = session_cite.issue(issue.number, void 0, context.repo);
803
- console.error(`${cited2} ${issue_citation.linkify(reason, context.repo)}`);
804
- }
805
- }
806
- function warn_wait_causes(result, context) {
807
- const causes = backlog_wait_cause.classify(result.waiting, context.repo);
808
- for (const line of backlog_wait_cause.lines_of(causes)) {
809
- console.error(issue_citation.linkify(line, context.repo));
810
- }
811
- }
812
- async function report(result, context) {
813
- warn_gaps(context, result.verdict === "run");
814
- const explanation = epic_report.format_result(result, context.repo);
815
- console.error(issue_citation.linkify(explanation, context.repo));
816
- warn_not_before(context);
817
- const tokens = tokens_of(result, context.repo);
818
- if (tokens[0] === VERDICT_TOKENS.wait) warn_wait_causes(result, context);
819
- await backlog_next_size.warn_over_guide(offered_of(result, context.repo), context);
820
- for (const token of tokens) console.info(token);
821
- return SUCCESS_EXIT_CODE;
822
- }
823
- function report_retry(context) {
824
- warn_epic_gap(context);
825
- console.error(RETRY_MESSAGE);
826
- console.info(VERDICT_TOKENS.retry);
827
- return SUCCESS_EXIT_CODE;
828
- }
829
- function report_triage(context, untriaged) {
830
- warn_epic_gap(context);
831
- console.error(epic_triage.message(untriaged, context.repo));
832
- console.info(VERDICT_TOKENS.triage);
833
- return SUCCESS_EXIT_CODE;
834
- }
835
- function without_untriaged(result, repo) {
836
- const candidates = result.candidates.map(
837
- (bucket) => bucket.repo === repo ? { ...bucket, children: bucket.children.filter((child) => epic_triage.is_triaged(child)) } : bucket
838
- );
839
- return { ...result, candidates };
840
- }
841
- function has_offer(result, repo) {
842
- return result.verdict === "run" && epic_report.candidates_for_repo(result, repo).length > 0;
843
- }
844
- async function report_held(gated, context, untriaged) {
845
- if (!has_offer(gated, context.repo)) return report_triage(context, untriaged);
846
- await report(gated, context);
847
- console.error(epic_triage.held_message(untriaged, context.repo));
848
- console.info(VERDICT_TOKENS.triage);
849
- return SUCCESS_EXIT_CODE;
850
- }
851
- function report_none() {
852
- console.error(auto_ok_cli.NONE_OPTED_IN_MESSAGE);
853
- console.info(auto_ok_cli.NONE_TOKEN);
854
- return SUCCESS_EXIT_CODE;
855
- }
856
- var backlog_next_report = {
857
- RETRY_MESSAGE,
858
- VERDICT_TOKENS,
859
- offered_of,
860
- report,
861
- report_retry,
862
- tokens_of,
863
- without_untriaged,
864
- report_held,
865
- report_none
866
- };
867
-
868
- // scripts/backlog/backlog-next-offer.ts
869
- var { VERDICT_TOKENS: VERDICT_TOKENS2 } = backlog_next_report;
870
- var EXCLUDE_REASON = "exclude";
871
- var TRIAGE_REASON = "triage";
872
- var PERSON_REASON = "person";
873
- var WAIT_REASON = "wait";
874
- var SOLO_REASON = "solo";
875
- function base_of(opted_in, verdict) {
876
- return {
877
- verdict,
878
- seen: opted_in.issues.map((issue) => issue.number),
879
- started: [],
880
- excluded: [],
881
- is_unchanged: opted_in.is_unchanged === true
882
- };
883
- }
884
- function excluded_by_request(context) {
885
- return context.exclude.map((issue) => ({ issue, reason: EXCLUDE_REASON }));
886
- }
887
- function here(children, repo) {
888
- return children.filter((child) => child.repo === repo);
889
- }
890
- function numbers_of2(children) {
891
- return new Set(children.map((child) => child.number));
892
- }
893
- function withheld_of(outcome, repo) {
894
- const after = numbers_of2(backlog_next_report.offered_of(outcome.gated, repo));
895
- return numbers_of2(
896
- backlog_next_report.offered_of(outcome.pre_gate, repo).filter((child) => !after.has(child.number))
897
- );
898
- }
899
- function waiting_reason(child, withheld) {
900
- if (withheld.has(child.number)) return SOLO_REASON;
901
- return backlog_wait_cause.cause_of(child) ?? WAIT_REASON;
902
- }
903
- function excluded_of(context, outcome, untriaged) {
904
- const { repo } = context;
905
- const result = outcome.gated;
906
- const withheld = withheld_of(outcome, repo);
907
- return [
908
- ...excluded_by_request(context),
909
- ...untriaged.map((child) => ({ issue: child.number, reason: TRIAGE_REASON })),
910
- ...here(result.waiting, repo).map((child) => ({
911
- issue: child.number,
912
- reason: waiting_reason(child, withheld)
913
- })),
914
- ...here(result.blocked_on_people, repo).map((child) => ({
915
- issue: child.number,
916
- reason: PERSON_REASON
917
- }))
918
- ];
919
- }
920
- function verdict_of(result, repo, untriaged, started) {
921
- if (started.length > 0) return VERDICT_TOKENS2.run;
922
- if (untriaged.length > 0) return VERDICT_TOKENS2.triage;
923
- return backlog_next_report.tokens_of(result, repo).join(",");
924
- }
925
- async function record_answer(context, outcome, untriaged) {
926
- const { gated } = outcome;
927
- const started = backlog_next_report.offered_of(gated, context.repo).map((child) => child.number);
928
- await lane_ledger_write.record_offer({
929
- ...base_of(context.opted_in, verdict_of(gated, context.repo, untriaged, started)),
930
- started,
931
- excluded: excluded_of(context, outcome, untriaged)
932
- });
933
- }
934
- async function record_retry(context) {
935
- await lane_ledger_write.record_offer({
936
- ...base_of(context.opted_in, VERDICT_TOKENS2.retry),
937
- excluded: excluded_by_request(context)
938
- });
939
- }
940
- async function record_none(opted_in) {
941
- await lane_ledger_write.record_offer(base_of(opted_in, VERDICT_TOKENS2.complete));
942
- }
943
- var backlog_next_offer = { record_answer, record_none, record_retry };
944
-
945
- // scripts/backlog/backlog-rank.ts
946
- function everything_in(result) {
947
- const candidates = result.candidates.flatMap((bundle) => bundle.children);
948
- return [...candidates, ...result.waiting, ...result.blocked_on_people];
949
- }
950
- var { rank } = epic_rank;
951
- function reorder_repo(result, repo, order) {
952
- if (result.verdict !== "run") return result;
953
- return {
954
- ...result,
955
- candidates: result.candidates.map(
956
- (bundle) => bundle.repo === repo ? { ...bundle, children: order(bundle.children) } : bundle
957
- )
958
- };
959
- }
960
- function rank_result(result, repo) {
961
- const pool = everything_in(result);
962
- return reorder_repo(result, repo, (children) => rank(children, pool));
963
- }
964
- function overflow_of(offered, standalone, limit) {
965
- const keys = offered.map((child) => epic_graph.key_of(child)).filter((key) => standalone.has(key));
966
- return new Set(keys.slice(limit));
967
- }
968
- function is_in(child, keys) {
969
- return keys.has(epic_graph.key_of(child));
970
- }
971
- function cap(selection, standalone, limit) {
972
- const overflow = overflow_of(selection.offered, standalone, limit);
973
- if (overflow.size === 0) return selection;
974
- return {
975
- ...selection,
976
- offered: selection.offered.filter((child) => !is_in(child, overflow)),
977
- withheld: [
978
- ...selection.offered.filter((child) => is_in(child, overflow)),
979
- ...selection.withheld
980
- ]
981
- };
982
- }
983
- function yielded_first(ranked, yielded) {
984
- return [
985
- ...ranked.filter((child) => is_in(child, yielded)),
986
- ...ranked.filter((child) => !is_in(child, yielded))
987
- ];
988
- }
989
- function offer_order(result, repo, yielded = /* @__PURE__ */ new Set()) {
990
- return reorder_repo(result, repo, (children) => yielded_first(children, yielded));
991
- }
992
- function select(input) {
993
- const ranked = yielded_first(rank(input.candidates, input.pool), input.yielded ?? /* @__PURE__ */ new Set());
994
- const { read: read2, repo, lanes } = input;
995
- const gated = epic_solo.select(ranked, read2, repo);
996
- const separated = backlog_overlap.separate(gated, input.declared ?? /* @__PURE__ */ new Map(), {
997
- read: read2,
998
- repo,
999
- lanes
1000
- });
1001
- return cap(separated, input.standalone, input.limit ?? git_next_issues.DISPLAY_LIMIT);
1002
- }
1003
- function gate(result, read2, repo, scope) {
1004
- const pool = everything_in(result);
1005
- return epic_solo.gate(
1006
- result,
1007
- read2,
1008
- repo,
1009
- (candidates) => select({ candidates, pool, read: read2, repo, ...scope })
1010
- );
1011
- }
1012
- var backlog_rank = { everything_in, gate, offer_order, rank_result, select };
1013
-
1014
- // scripts/run/pause/run-pause-comment.ts
1015
- import { z as z2 } from "zod";
1016
- var comment_schema = z2.object({ body: z2.string().nullish() });
1017
- async function has_comment(request) {
1018
- const json = await git_gh_issue_read.issue_list_comments(request.issue);
1019
- const rows = json === void 0 ? void 0 : parse_json_array_or_undefined(json, comment_schema);
1020
- if (rows === void 0) {
1021
- throw new Error(`the comments on ${session_cite.issue(request.issue)} could not be read`);
1022
- }
1023
- return rows.some((row) => row.body?.includes(request.marker) === true);
1024
- }
1025
- function marker_of(issue) {
1026
- return `<!-- josh:run-pause ${issue_cite.plain_for("program", issue)} for `;
1027
- }
1028
- async function is_paused(issue) {
1029
- return await has_comment({ issue, marker: marker_of(issue) });
1030
- }
1031
- var run_pause_comment = { has_comment, marker_of, is_paused };
1032
-
1033
- // scripts/backlog/backlog-resume-reads.ts
1034
- import { z as z3 } from "zod";
1035
- var COMMENTS_WINDOW = 100;
1036
- var LINE_SEPARATOR = "\n";
1037
- var OPEN_PULLS_QUERY = "/pulls?state=open&per_page=100";
1038
- var PULL_FILTER = '.[] | {body: (.body // "")}';
1039
- var ALIAS_PREFIX = "i";
1040
- var pull_schema = z3.object({ body: z3.string() });
1041
- var comment_schema2 = z3.looseObject({ body: z3.string().nullish() });
1042
- var page_info_schema = z3.looseObject({ hasPreviousPage: z3.boolean() });
1043
- var comments_schema = z3.looseObject({
1044
- pageInfo: page_info_schema,
1045
- nodes: z3.array(comment_schema2)
1046
- });
1047
- var issue_node_schema = z3.looseObject({ comments: comments_schema }).nullable();
1048
- var repository_schema = z3.record(z3.string(), issue_node_schema);
1049
- var response_schema = z3.looseObject({ data: z3.looseObject({ repository: repository_schema }) });
1050
- function referenced_issues_of(line, repo) {
1051
- const pull = parse_json_object_or_undefined(line, pull_schema);
1052
- if (pull === void 0) {
1053
- throw new Error("the open pull request listing contains an unreadable row");
1054
- }
1055
- return epic_audit_logic.parse_references(pull.body, repo).map(String);
1056
- }
1057
- async function open_pr_issues(repo) {
1058
- const raw = await git_gh_exec.exec_gh_api({
1059
- path: `${git_gh_api_path.repo_api_path(repo)}${OPEN_PULLS_QUERY}`,
1060
- should_paginate: true,
1061
- jq_filter: PULL_FILTER
1062
- });
1063
- return new Set(
1064
- raw.split(LINE_SEPARATOR).filter((line) => line.trim() !== "").flatMap((line) => referenced_issues_of(line, repo))
1065
- );
1066
- }
1067
- function alias_of(issue) {
1068
- return `${ALIAS_PREFIX}${issue}`;
1069
- }
1070
- function comments_query(issues) {
1071
- const fields = issues.map(
1072
- (issue) => `${alias_of(issue)}: issue(number: ${issue}) { comments(last: ${String(COMMENTS_WINDOW)}) { pageInfo { hasPreviousPage } nodes { body } } }`
1073
- );
1074
- return `query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { ${fields.join(" ")} } }`;
1075
- }
1076
- async function read_windows(issues, repo) {
1077
- const separator = repo.indexOf("/");
1078
- const owner = repo.slice(0, separator);
1079
- const name = repo.slice(separator + 1);
1080
- try {
1081
- const json = await git_gh_exec.exec_gh_api({
1082
- path: GRAPHQL_PATH,
1083
- body: JSON.stringify({ query: comments_query(issues), variables: { owner, name } })
1084
- });
1085
- return parse_json_object_or_undefined(json, response_schema)?.data.repository ?? {};
1086
- } catch {
1087
- return {};
1088
- }
1089
- }
1090
- function window_verdict(issue, node) {
1091
- if (node === void 0 || node === null) return void 0;
1092
- const marker = run_pause_comment.marker_of(issue);
1093
- if (node.comments.nodes.some((comment) => comment.body?.includes(marker) === true)) return true;
1094
- return node.comments.pageInfo.hasPreviousPage ? void 0 : false;
1095
- }
1096
- async function paused_issues(issues, repo) {
1097
- if (issues.length === 0) return /* @__PURE__ */ new Set();
1098
- const windows = await read_windows(issues, repo);
1099
- const verdicts = await Promise.all(
1100
- issues.map(
1101
- async (issue) => window_verdict(issue, windows[alias_of(issue)]) ?? await run_pause_comment.is_paused(issue)
1102
- )
1103
- );
1104
- return new Set(issues.filter((_issue, index) => verdicts[index] === true));
1105
- }
1106
- var backlog_resume_reads = { open_pr_issues, paused_issues };
1107
-
1108
- // scripts/backlog/backlog-resumable.ts
1109
- var NO_ISSUES = /* @__PURE__ */ new Set();
1110
- function is_resumable(issue, signals) {
1111
- return signals.stashed.has(issue) || signals.paused.has(issue) || signals.open_pr.has(issue);
1112
- }
1113
- function enrich_children(children, repo, signals) {
1114
- return children.map(
1115
- (child) => child.repo === repo ? { ...child, is_resumable: is_resumable(String(child.number), signals) } : child
1116
- );
1117
- }
1118
- function local_issues(result, repo) {
1119
- const children = [...result.candidates.flatMap((bundle) => bundle.children), ...result.waiting];
1120
- const local = children.filter((child) => child.repo === repo);
1121
- return [...new Set(local.map((child) => String(child.number)))];
1122
- }
1123
- async function read_signals(result, repo) {
1124
- const stashed = new Set(stash_orphans.issues_of(await git_stash.list()));
1125
- const unstashed = local_issues(result, repo).filter((issue) => !stashed.has(issue));
1126
- if (unstashed.length === 0) return { stashed, paused: NO_ISSUES, open_pr: NO_ISSUES };
1127
- const [paused, open_pr] = await Promise.all([
1128
- backlog_resume_reads.paused_issues(unstashed, repo),
1129
- backlog_resume_reads.open_pr_issues(repo)
1130
- ]);
1131
- return { stashed, paused, open_pr };
1132
- }
1133
- async function read(result, repo) {
1134
- if (result.verdict !== "run") return result;
1135
- const signals = await read_signals(result, repo);
1136
- const candidates = result.candidates.map((bundle) => ({
1137
- ...bundle,
1138
- children: enrich_children(bundle.children, repo, signals)
1139
- }));
1140
- return { ...result, candidates, waiting: enrich_children(result.waiting, repo, signals) };
1141
- }
1142
- var backlog_resumable = { read };
1143
-
1144
- // scripts/backlog/backlog-next.ts
1145
- var FAILURE_EXIT_CODE = 1;
1146
- var USAGE = "Usage: josh backlog:next [--exclude <issue-number>[,<issue-number>...]]...";
1147
- var REPO_UNREADABLE_MESSAGE = 'Could not read this repository from `gh`, so an epic child could not be told from an issue elsewhere. That is not "nothing is runnable" \u2014 check `gh auth status` and ask again.';
1148
- var READ_FAILURES = {
1149
- blockers_unreadable: auto_ok_cli.BLOCKERS_UNREADABLE_MESSAGE,
1150
- unexpected_shape: auto_ok_cli.UNEXPECTED_SHAPE_MESSAGE,
1151
- unreadable: auto_ok_cli.UNREADABLE_MESSAGE
1152
- };
1153
- function running_of(views, graphs, context) {
1154
- return views[0]?.running ?? backlog_pool.running_set(graphs, context.opted_in.issues, context, context.tracking.index);
1155
- }
1156
- function epic_half(views, context, untrusted) {
1157
- return backlog_pool.drop_excluded(
1158
- backlog_pool.epic_classification(views, untrusted),
1159
- context.exclude,
1160
- context.repo
1161
- );
1162
- }
1163
- function combine(views, context, untrusted) {
1164
- const graphs = views.map((view) => view.snapshot.children);
1165
- const standalone = backlog_pool.standalone_rows(context.opted_in.issues);
1166
- const from_epics = epic_half(views, context, untrusted);
1167
- const from_standalone = backlog_pool.classify_standalone(standalone, {
1168
- ...context,
1169
- tracked: epic_index.withheld_children(context.tracking.index, context.opted_in.issues),
1170
- running: running_of(views, graphs, context)
1171
- });
1172
- return epic_report.build_result(
1173
- backlog_pool.merge_classifications(from_epics, from_standalone),
1174
- [
1175
- ...views.flatMap((view) => view.result.anomalies),
1176
- ...backlog_pool.cross_epic_cycles(graphs, backlog_pool.to_children(standalone, context.repo))
1177
- ],
1178
- repo_discovery.discover_repositories(PROJECT_ROOT)
1179
- );
1180
- }
1181
- function settled_views(reads, running, context) {
1182
- const views = epic_next.views_of(reads, running);
1183
- const settled = backlog_pool.settle_standalone(
1184
- views[0]?.running ?? running,
1185
- context.opted_in.issues,
1186
- context,
1187
- context.tracking.index
1188
- );
1189
- return settled.size === running.size ? views : settled_views(reads, settled, context);
1190
- }
1191
- function views_from(reads, context, untrusted) {
1192
- if (reads.length === 0) return [];
1193
- const graphs = backlog_pool.trusted_graphs(
1194
- reads.map((read2) => read2.snapshot.children),
1195
- untrusted
1196
- );
1197
- return settled_views(
1198
- reads,
1199
- backlog_pool.running_set(graphs, context.opted_in.issues, context, context.tracking.index),
1200
- context
1201
- );
1202
- }
1203
- async function resolve(context) {
1204
- const { reads, notices, refusal } = await backlog_pool.read_epics(context);
1205
- for (const notice of notices) console.error(notice);
1206
- if (refusal !== void 0) {
1207
- console.error(refusal);
1208
- return void 0;
1209
- }
1210
- const children = reads.flatMap((read2) => read2.snapshot.children);
1211
- const untrusted = await auto_ok_author.untrusted_child_keys(children, context.repo);
1212
- const ordered = await backlog_defect_priority.prioritize(
1213
- combine(views_from(reads, context, untrusted), context, untrusted),
1214
- context.repo
1215
- );
1216
- return backlog_rank.rank_result(await backlog_resumable.read(ordered, context.repo), context.repo);
1217
- }
1218
- function is_transport_failure(result) {
1219
- if (result.verdict !== "error") return false;
1220
- return result.anomalies.some((anomaly) => anomaly.is_unreachable === true);
1221
- }
1222
- async function gate_solo(result, context) {
1223
- if (result.verdict !== "run") return result;
1224
- const { repo } = context;
1225
- const { read: read2, notice } = await epic_solo_stale.release(
1226
- await epic_busy.read_repository(repo),
1227
- repo
1228
- );
1229
- if (notice !== void 0) console.error(notice);
1230
- const scope = await backlog_gate_scope.gate_scope(context, read2);
1231
- const gated = backlog_rank.gate(result, read2, repo, scope);
1232
- if (gated.notice !== void 0) console.error(gated.notice);
1233
- return gated.result;
1234
- }
1235
- async function answer_held(result, context, untriaged) {
1236
- const pre_gate = backlog_next_report.without_untriaged(result, context.repo);
1237
- const gated = await gate_solo(pre_gate, context);
1238
- await backlog_next_offer.record_answer(context, { pre_gate, gated }, untriaged);
1239
- return await backlog_next_report.report_held(gated, context, untriaged);
1240
- }
1241
- async function answer_pool(context) {
1242
- const resolved = await resolve(context);
1243
- if (resolved === void 0) return FAILURE_EXIT_CODE;
1244
- if (is_transport_failure(resolved)) {
1245
- await backlog_next_offer.record_retry(context);
1246
- return backlog_next_report.report_retry(context);
1247
- }
1248
- const { result, untriaged } = await backlog_auto_triage.untriaged_of(resolved, context.repo);
1249
- if (untriaged.length > 0) return await answer_held(result, context, untriaged);
1250
- const gated = await gate_solo(result, context);
1251
- await backlog_next_offer.record_answer(context, { pre_gate: result, gated }, []);
1252
- return await backlog_next_report.report(gated, context);
1253
- }
1254
- async function context_of(opted_in, exclude) {
1255
- const tracking = await auto_ok_cli.fetch_tracking(opted_in.issues.length);
1256
- if (tracking.kind !== "read") {
1257
- console.error(auto_ok_cli.EPICS_UNREADABLE_MESSAGE);
1258
- return void 0;
1259
- }
1260
- const repo = await git_gh_command.repo_get_name_with_owner();
1261
- if (repo === void 0) {
1262
- console.error(REPO_UNREADABLE_MESSAGE);
1263
- return void 0;
1264
- }
1265
- return { opted_in, tracking, repo, exclude, ...await lane_net_read.measurements() };
1266
- }
1267
- async function answer(opted_in, exclude) {
1268
- await issue_not_before_label.sweep(opted_in.issues);
1269
- if (opted_in.issues.length === 0) {
1270
- await backlog_next_offer.record_none(opted_in);
1271
- return backlog_next_report.report_none();
1272
- }
1273
- const context = await context_of(opted_in, exclude);
1274
- if (context === void 0) return FAILURE_EXIT_CODE;
1275
- return await answer_pool(context);
1276
- }
1277
- async function run(argv) {
1278
- const options = auto_ok_cli.parse_options(argv, USAGE);
1279
- if (options.usage !== void 0) {
1280
- console.error(options.usage);
1281
- return FAILURE_EXIT_CODE;
1282
- }
1283
- const opted_in = await auto_ok_cli.fetch_opted_in();
1284
- if (opted_in.kind !== "read") {
1285
- console.error(READ_FAILURES[opted_in.kind]);
1286
- return FAILURE_EXIT_CODE;
1287
- }
1288
- return await answer(opted_in, options.exclude ?? []);
1289
- }
1290
- var backlog_next = {
1291
- USAGE,
1292
- REPO_UNREADABLE_MESSAGE,
1293
- RETRY_MESSAGE: backlog_next_report.RETRY_MESSAGE,
1294
- READ_FAILURES,
1295
- VERDICT_TOKENS: backlog_next_report.VERDICT_TOKENS,
1296
- resolve,
1297
- context_of,
1298
- run
1299
- };
1300
-
1301
- export {
1302
- issue_not_before_label,
1303
- backlog_auto_triage,
1304
- backlog_gate_scope,
1305
- issue_cap_files,
1306
- backlog_wait_cause,
1307
- backlog_rank,
1308
- run_pause_comment,
1309
- backlog_next
1310
- };