@joshuafolkken/kit 1.3044.0 → 1.3092.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1236) hide show
  1. package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
  2. package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
  3. package/.claude/skills/workflow-commands/halfrun.md +3 -2
  4. package/.claude/skills/workflow-commands/kickoff.md +9 -2
  5. package/.claude/skills/workflow-commands/prerequisite.md +2 -0
  6. package/.claude/skills/workflow-commands/retrospective.md +2 -1
  7. package/.claude/skills/workflow-commands/split-assessment.md +4 -0
  8. package/.github/workflows/ci.yml +0 -20
  9. package/.github/workflows/pr-classification.yml +0 -5
  10. package/.github/workflows/publish.yml +0 -1
  11. package/.github/workflows/sonar-qube.yml +0 -5
  12. package/README.md +2 -0
  13. package/SECURITY.md +2 -1
  14. package/dist/.inputs-verified.json +1 -1
  15. package/dist/commands/adopt.js +29 -20
  16. package/dist/commands/auto-ok-judge-cli.js +43 -33
  17. package/dist/commands/auto-ok-main.js +73 -74
  18. package/dist/commands/backlog-budget-main.js +5 -6
  19. package/dist/commands/backlog-drive-cli.js +286 -305
  20. package/dist/commands/backlog-next-main.js +111 -108
  21. package/dist/commands/backlog-offer-main.js +148 -112
  22. package/dist/commands/backlog-plan-cli.js +123 -120
  23. package/dist/commands/backlog-triage-cli.js +131 -128
  24. package/dist/commands/backlogrun-cli.js +273 -264
  25. package/dist/commands/behavior-cli.js +23 -26
  26. package/dist/commands/bytes-command.js +56 -59
  27. package/dist/commands/cases-cli.js +4 -5
  28. package/dist/commands/check-commit-message-main.js +3 -4
  29. package/dist/commands/check-related.js +125 -119
  30. package/dist/commands/chunk-26JL4UU4.js +365 -0
  31. package/dist/commands/chunk-2BIVHPCA.js +85 -0
  32. package/dist/commands/chunk-2CKJODCK.js +245 -0
  33. package/dist/commands/chunk-2E6PSONB.js +46 -0
  34. package/dist/commands/chunk-2GA4775H.js +77 -0
  35. package/dist/commands/chunk-2O64H5UJ.js +462 -0
  36. package/dist/commands/chunk-2OEXY4GM.js +252 -0
  37. package/dist/commands/chunk-2OMIHPPE.js +51 -0
  38. package/dist/commands/chunk-2ONSHOAY.js +46 -0
  39. package/dist/commands/chunk-2Q7MGFYB.js +1208 -0
  40. package/dist/commands/chunk-2SA3W4JF.js +41 -0
  41. package/dist/commands/chunk-2VY7CJ2R.js +212 -0
  42. package/dist/commands/chunk-2WRDAQPJ.js +74 -0
  43. package/dist/commands/chunk-2XLR7R6E.js +541 -0
  44. package/dist/commands/chunk-2XZF3YFY.js +47 -0
  45. package/dist/commands/chunk-33TAOZUE.js +29 -0
  46. package/dist/commands/chunk-374XGAWD.js +158 -0
  47. package/dist/commands/chunk-3CJNQU7P.js +179 -0
  48. package/dist/commands/chunk-3D5T6KMW.js +59 -0
  49. package/dist/commands/chunk-3EW5LTN3.js +114 -0
  50. package/dist/commands/chunk-3F3RNIG2.js +128 -0
  51. package/dist/commands/chunk-3FLTEJZY.js +74 -0
  52. package/dist/commands/chunk-3JWPTRNI.js +60 -0
  53. package/dist/commands/chunk-3MQTOUXT.js +94 -0
  54. package/dist/commands/chunk-3PCUERXE.js +19 -0
  55. package/dist/commands/chunk-3U6A5WON.js +173 -0
  56. package/dist/commands/chunk-3YT3RCSI.js +140 -0
  57. package/dist/commands/chunk-43DU7DYZ.js +540 -0
  58. package/dist/commands/chunk-43H725LG.js +132 -0
  59. package/dist/commands/chunk-46STCE6Q.js +48 -0
  60. package/dist/commands/chunk-46WEC6HZ.js +82 -0
  61. package/dist/commands/chunk-47J4KOZP.js +46 -0
  62. package/dist/commands/chunk-47W7PF4T.js +22 -0
  63. package/dist/commands/chunk-4F4KARQN.js +229 -0
  64. package/dist/commands/chunk-4GUGC4IW.js +338 -0
  65. package/dist/commands/chunk-4HB7NWXP.js +263 -0
  66. package/dist/commands/chunk-4HOTJAO6.js +89 -0
  67. package/dist/commands/chunk-4I5AA4P5.js +237 -0
  68. package/dist/commands/chunk-4IDINPBE.js +525 -0
  69. package/dist/commands/chunk-4K7KLR7L.js +69 -0
  70. package/dist/commands/chunk-4MGTNY2L.js +347 -0
  71. package/dist/commands/chunk-4NSIW3UB.js +104 -0
  72. package/dist/commands/chunk-4YTKV6WV.js +37 -0
  73. package/dist/commands/chunk-5ARNFMQK.js +1263 -0
  74. package/dist/commands/chunk-5AZTSESD.js +114 -0
  75. package/dist/commands/chunk-5FUI2MLY.js +89 -0
  76. package/dist/commands/chunk-5GI5GLC4.js +214 -0
  77. package/dist/commands/chunk-5IHEBIPD.js +333 -0
  78. package/dist/commands/chunk-5KAW5GPF.js +44 -0
  79. package/dist/commands/chunk-5KSJEWXR.js +77 -0
  80. package/dist/commands/chunk-5OF2B4BF.js +35 -0
  81. package/dist/commands/chunk-5PLJ7R3D.js +126 -0
  82. package/dist/commands/chunk-5PPWXOCF.js +64 -0
  83. package/dist/commands/chunk-5VQCL33M.js +46 -0
  84. package/dist/commands/chunk-5Y7FOJLX.js +186 -0
  85. package/dist/commands/chunk-5YTEMF4O.js +110 -0
  86. package/dist/commands/chunk-62NYXZCC.js +241 -0
  87. package/dist/commands/chunk-6KUA7MRG.js +64 -0
  88. package/dist/commands/chunk-6LDEZFYR.js +88 -0
  89. package/dist/commands/chunk-6NXIZMIK.js +122 -0
  90. package/dist/commands/chunk-6O45F6YI.js +86 -0
  91. package/dist/commands/chunk-6OHJBQDE.js +184 -0
  92. package/dist/commands/chunk-6WDCCG3M.js +1249 -0
  93. package/dist/commands/chunk-6ZHXEQAI.js +715 -0
  94. package/dist/commands/chunk-736NECRD.js +16 -0
  95. package/dist/commands/chunk-77LEKVEE.js +32 -0
  96. package/dist/commands/chunk-7CX5VYOL.js +50 -0
  97. package/dist/commands/chunk-7DGHFBU7.js +247 -0
  98. package/dist/commands/chunk-7E43YW53.js +128 -0
  99. package/dist/commands/chunk-7EAYFMDN.js +235 -0
  100. package/dist/commands/chunk-7HP3FQGQ.js +51 -0
  101. package/dist/commands/chunk-7JOOMFDI.js +155 -0
  102. package/dist/commands/chunk-7OEBSPPU.js +321 -0
  103. package/dist/commands/chunk-A3JYZWBS.js +803 -0
  104. package/dist/commands/chunk-A3LCN4KA.js +84 -0
  105. package/dist/commands/chunk-ABLXBG6C.js +98 -0
  106. package/dist/commands/chunk-AN7BFVHU.js +244 -0
  107. package/dist/commands/chunk-AQCVEQSM.js +99 -0
  108. package/dist/commands/chunk-AT46EY7H.js +393 -0
  109. package/dist/commands/chunk-AU563VKH.js +75 -0
  110. package/dist/commands/chunk-AUTD5FV2.js +1077 -0
  111. package/dist/commands/chunk-AV26CMY6.js +304 -0
  112. package/dist/commands/chunk-B2PJEV3S.js +246 -0
  113. package/dist/commands/chunk-B545ENGY.js +214 -0
  114. package/dist/commands/chunk-B5HP6T4L.js +170 -0
  115. package/dist/commands/chunk-B5XYAWNN.js +37 -0
  116. package/dist/commands/chunk-B73IIRMS.js +207 -0
  117. package/dist/commands/chunk-BAEDHPXW.js +160 -0
  118. package/dist/commands/chunk-BDSG6JKH.js +977 -0
  119. package/dist/commands/chunk-BE6F4YK2.js +769 -0
  120. package/dist/commands/chunk-BFKTUD3V.js +33 -0
  121. package/dist/commands/chunk-BLRXHK2V.js +17 -0
  122. package/dist/commands/chunk-BLUAO4QW.js +173 -0
  123. package/dist/commands/chunk-BML6MEUB.js +326 -0
  124. package/dist/commands/chunk-BPDNGJXY.js +63 -0
  125. package/dist/commands/chunk-BQLKWGGC.js +118 -0
  126. package/dist/commands/chunk-BRMJVCP7.js +167 -0
  127. package/dist/commands/chunk-BRWR5YKU.js +268 -0
  128. package/dist/commands/chunk-BUZAYEBD.js +319 -0
  129. package/dist/commands/chunk-BVUL57IX.js +139 -0
  130. package/dist/commands/chunk-CC4BIGCA.js +20 -0
  131. package/dist/commands/chunk-CCHJZEF5.js +4220 -0
  132. package/dist/commands/chunk-CDK7QZWG.js +44 -0
  133. package/dist/commands/chunk-CDYFUCDC.js +72 -0
  134. package/dist/commands/chunk-CEADAQIL.js +170 -0
  135. package/dist/commands/chunk-CNL3SLM6.js +116 -0
  136. package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
  137. package/dist/commands/chunk-CTXJVMHW.js +48 -0
  138. package/dist/commands/chunk-CUWT6UQO.js +13 -0
  139. package/dist/commands/chunk-CVRDJCOE.js +125 -0
  140. package/dist/commands/chunk-D6CF5QGM.js +80 -0
  141. package/dist/commands/chunk-DACNQAXC.js +20 -0
  142. package/dist/commands/chunk-DDOS32JU.js +74 -0
  143. package/dist/commands/chunk-DDZVMXZD.js +481 -0
  144. package/dist/commands/chunk-DF6QD4AF.js +52 -0
  145. package/dist/commands/chunk-DFEXNB44.js +159 -0
  146. package/dist/commands/chunk-DHDKG5HZ.js +151 -0
  147. package/dist/commands/chunk-DHJRFBKO.js +223 -0
  148. package/dist/commands/chunk-DKDWOE3C.js +78 -0
  149. package/dist/commands/chunk-DKO5VTEH.js +65 -0
  150. package/dist/commands/chunk-DLHH3MLS.js +85 -0
  151. package/dist/commands/chunk-DOYNK72G.js +81 -0
  152. package/dist/commands/chunk-DS53UUDH.js +679 -0
  153. package/dist/commands/chunk-DUA4E4ES.js +230 -0
  154. package/dist/commands/chunk-DURHGVRC.js +33 -0
  155. package/dist/commands/chunk-DVCMQMRN.js +191 -0
  156. package/dist/commands/chunk-E3YKMCCJ.js +108 -0
  157. package/dist/commands/chunk-E4F2RTKC.js +272 -0
  158. package/dist/commands/chunk-E4PFCTXN.js +127 -0
  159. package/dist/commands/chunk-EAOTR2WL.js +24 -0
  160. package/dist/commands/chunk-EE4VOZJP.js +167 -0
  161. package/dist/commands/chunk-EHVEWJQ4.js +33 -0
  162. package/dist/commands/chunk-EMFSPPMH.js +98 -0
  163. package/dist/commands/chunk-EN65ZS3S.js +73 -0
  164. package/dist/commands/chunk-ES42XPAD.js +123 -0
  165. package/dist/commands/chunk-ESUY7KTZ.js +137 -0
  166. package/dist/commands/chunk-ET6IRQ3L.js +330 -0
  167. package/dist/commands/chunk-EWCUT7U2.js +1314 -0
  168. package/dist/commands/chunk-EWXXEGXL.js +149 -0
  169. package/dist/commands/chunk-EZYW54OQ.js +7569 -0
  170. package/dist/commands/chunk-F2RDEF2J.js +205 -0
  171. package/dist/commands/chunk-F2U46HAE.js +52 -0
  172. package/dist/commands/chunk-F2VYWU6Z.js +653 -0
  173. package/dist/commands/chunk-F4SGOTUF.js +36 -0
  174. package/dist/commands/chunk-F4YMLVWN.js +183 -0
  175. package/dist/commands/chunk-F5N2QIFD.js +213 -0
  176. package/dist/commands/chunk-F7B4ESZE.js +80 -0
  177. package/dist/commands/chunk-FJM2HWKW.js +299 -0
  178. package/dist/commands/chunk-FJMXUDEY.js +3985 -0
  179. package/dist/commands/chunk-FM7VVAK6.js +426 -0
  180. package/dist/commands/chunk-FQWRM5FC.js +67 -0
  181. package/dist/commands/chunk-FT33ZCSB.js +298 -0
  182. package/dist/commands/chunk-G2DNS74C.js +53 -0
  183. package/dist/commands/chunk-G75GWNNY.js +101 -0
  184. package/dist/commands/chunk-GA2YSPFH.js +32 -0
  185. package/dist/commands/chunk-GAVSK6P6.js +230 -0
  186. package/dist/commands/chunk-GB2BRQVL.js +300 -0
  187. package/dist/commands/chunk-GBMZXFFC.js +44 -0
  188. package/dist/commands/chunk-GDP7QXYE.js +76 -0
  189. package/dist/commands/chunk-GGWXF7RJ.js +70 -0
  190. package/dist/commands/chunk-GHOTKHI4.js +30 -0
  191. package/dist/commands/chunk-GMVN6ZP2.js +48 -0
  192. package/dist/commands/chunk-GNTTGRCX.js +133 -0
  193. package/dist/commands/chunk-GOY5JECO.js +130 -0
  194. package/dist/commands/chunk-GVDRRBHZ.js +507 -0
  195. package/dist/commands/chunk-GWTBIGYC.js +550 -0
  196. package/dist/commands/chunk-GZL6ISVM.js +72 -0
  197. package/dist/commands/chunk-HALHQILI.js +51 -0
  198. package/dist/commands/chunk-HAT7AFBF.js +85 -0
  199. package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
  200. package/dist/commands/chunk-HE3GOMR7.js +88 -0
  201. package/dist/commands/chunk-HEFUC4ZW.js +65 -0
  202. package/dist/commands/chunk-HESWKELD.js +60 -0
  203. package/dist/commands/chunk-HNFBEB4L.js +77 -0
  204. package/dist/commands/chunk-HRN73FQJ.js +77 -0
  205. package/dist/commands/chunk-HYE3MBAN.js +113 -0
  206. package/dist/commands/chunk-IAB6LCJL.js +18 -0
  207. package/dist/commands/chunk-IAGENI2U.js +42 -0
  208. package/dist/commands/chunk-ICPVBHIX.js +48 -0
  209. package/dist/commands/chunk-IEKW3ON6.js +161 -0
  210. package/dist/commands/chunk-IOKOHB7P.js +109 -0
  211. package/dist/commands/chunk-IONGJJYM.js +179 -0
  212. package/dist/commands/chunk-IP23WOWP.js +126 -0
  213. package/dist/commands/chunk-IPS7EBE5.js +140 -0
  214. package/dist/commands/chunk-IXZZSST7.js +459 -0
  215. package/dist/commands/chunk-J4XHEOOW.js +156 -0
  216. package/dist/commands/chunk-JDHLHYJJ.js +208 -0
  217. package/dist/commands/chunk-JEYITIWB.js +423 -0
  218. package/dist/commands/chunk-JGX7JIW4.js +126 -0
  219. package/dist/commands/chunk-JHIGDFBS.js +59 -0
  220. package/dist/commands/chunk-JI2EGXZX.js +53 -0
  221. package/dist/commands/chunk-JNV3VRK2.js +47 -0
  222. package/dist/commands/chunk-JPMAW2VZ.js +91 -0
  223. package/dist/commands/chunk-JQEY6KDP.js +90 -0
  224. package/dist/commands/chunk-JSJDIEGZ.js +88 -0
  225. package/dist/commands/chunk-JT5ICRFF.js +44 -0
  226. package/dist/commands/chunk-JUCJ4Y42.js +77 -0
  227. package/dist/commands/chunk-K3OZBV3L.js +49 -0
  228. package/dist/commands/chunk-K5H3CLZZ.js +430 -0
  229. package/dist/commands/chunk-K6P5PISC.js +114 -0
  230. package/dist/commands/chunk-KD3SEAMV.js +402 -0
  231. package/dist/commands/chunk-KDCHY7XO.js +88 -0
  232. package/dist/commands/chunk-KDGX3JTV.js +51 -0
  233. package/dist/commands/chunk-KGSEWOKI.js +353 -0
  234. package/dist/commands/chunk-KHGDZQRG.js +271 -0
  235. package/dist/commands/chunk-KIS7JFNP.js +217 -0
  236. package/dist/commands/chunk-KKHD3C2P.js +114 -0
  237. package/dist/commands/chunk-KKIIY5I5.js +67 -0
  238. package/dist/commands/chunk-KN46UC77.js +114 -0
  239. package/dist/commands/chunk-KP2BVAS5.js +125 -0
  240. package/dist/commands/chunk-KPAJBJXG.js +63 -0
  241. package/dist/commands/chunk-KPMAJP6D.js +145 -0
  242. package/dist/commands/chunk-KR6WUAJM.js +122 -0
  243. package/dist/commands/chunk-KWLNK2NJ.js +391 -0
  244. package/dist/commands/chunk-L2CLCNXW.js +144 -0
  245. package/dist/commands/chunk-L7MDU6D7.js +155 -0
  246. package/dist/commands/chunk-L7VD4MLF.js +78 -0
  247. package/dist/commands/chunk-LBMAJDGN.js +124 -0
  248. package/dist/commands/chunk-LBVYFW3I.js +38 -0
  249. package/dist/commands/chunk-LE3M42CF.js +350 -0
  250. package/dist/commands/chunk-LIPUSINQ.js +140 -0
  251. package/dist/commands/chunk-LJVZWE3A.js +1885 -0
  252. package/dist/commands/chunk-LKSSQVDA.js +49 -0
  253. package/dist/commands/chunk-LL6G34MF.js +93 -0
  254. package/dist/commands/chunk-LNQOL2CL.js +321 -0
  255. package/dist/commands/chunk-LS7P324N.js +72 -0
  256. package/dist/commands/chunk-LU5EOGFQ.js +50 -0
  257. package/dist/commands/chunk-LX2ENXHZ.js +197 -0
  258. package/dist/commands/chunk-M32UPB2D.js +110 -0
  259. package/dist/commands/chunk-M3UGRNNB.js +103 -0
  260. package/dist/commands/chunk-M4WG74Q7.js +260 -0
  261. package/dist/commands/chunk-M5HA2ZCG.js +105 -0
  262. package/dist/commands/chunk-MDGPJOLK.js +351 -0
  263. package/dist/commands/chunk-MDKRTUE4.js +288 -0
  264. package/dist/commands/chunk-MFZVRWRS.js +34 -0
  265. package/dist/commands/chunk-MHXIJKGP.js +304 -0
  266. package/dist/commands/chunk-MK4CARBI.js +90 -0
  267. package/dist/commands/chunk-MLJDW7YN.js +64 -0
  268. package/dist/commands/chunk-MNLHYAJO.js +80 -0
  269. package/dist/commands/chunk-MOD3FG4V.js +419 -0
  270. package/dist/commands/chunk-MRAEJLXL.js +83 -0
  271. package/dist/commands/chunk-MRW2WYJS.js +68 -0
  272. package/dist/commands/chunk-MXPCEZL5.js +23 -0
  273. package/dist/commands/chunk-N2XH7QBY.js +103 -0
  274. package/dist/commands/chunk-N2ZF6T4E.js +332 -0
  275. package/dist/commands/chunk-N36NZMAL.js +79 -0
  276. package/dist/commands/chunk-N4EMFHQ6.js +114 -0
  277. package/dist/commands/chunk-N4P64UIH.js +211 -0
  278. package/dist/commands/chunk-NABSSY4P.js +204 -0
  279. package/dist/commands/chunk-NDQIJBRQ.js +100 -0
  280. package/dist/commands/chunk-NDR4PCVG.js +29 -0
  281. package/dist/commands/chunk-NEOCCN6D.js +302 -0
  282. package/dist/commands/chunk-NFKWFOFM.js +45 -0
  283. package/dist/commands/chunk-NFUPJBBG.js +516 -0
  284. package/dist/commands/chunk-NHEBKL7X.js +170 -0
  285. package/dist/commands/chunk-NHTEC5U4.js +99 -0
  286. package/dist/commands/chunk-NOSG3RUP.js +84 -0
  287. package/dist/commands/chunk-NOSODWWK.js +1132 -0
  288. package/dist/commands/chunk-NPXXYG6Z.js +580 -0
  289. package/dist/commands/chunk-NR2JDBPV.js +75 -0
  290. package/dist/commands/chunk-NRULNBYI.js +1153 -0
  291. package/dist/commands/chunk-NTGF5N3N.js +110 -0
  292. package/dist/commands/chunk-NTIVNQKF.js +73 -0
  293. package/dist/commands/chunk-NUCFIYZL.js +119 -0
  294. package/dist/commands/chunk-NVMV7BYX.js +88 -0
  295. package/dist/commands/chunk-NYWPTYGL.js +169 -0
  296. package/dist/commands/chunk-NZ45KOLL.js +104 -0
  297. package/dist/commands/chunk-O45BX4EL.js +39 -0
  298. package/dist/commands/chunk-O46T4ANI.js +229 -0
  299. package/dist/commands/chunk-O5JGV7NA.js +245 -0
  300. package/dist/commands/chunk-O7ESC4HL.js +566 -0
  301. package/dist/commands/chunk-OBYLXHCH.js +86 -0
  302. package/dist/commands/chunk-OKN63ZH5.js +109 -0
  303. package/dist/commands/chunk-ON4IKRGS.js +469 -0
  304. package/dist/commands/chunk-OT74RSQO.js +82 -0
  305. package/dist/commands/chunk-OVCVINYW.js +143 -0
  306. package/dist/commands/chunk-OZKLVTYI.js +342 -0
  307. package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
  308. package/dist/commands/chunk-P43GWYR6.js +185 -0
  309. package/dist/commands/chunk-P6ASP2DY.js +132 -0
  310. package/dist/commands/chunk-PBAEJ5PT.js +38 -0
  311. package/dist/commands/chunk-PCZROH3R.js +100 -0
  312. package/dist/commands/chunk-PF3PMT2Q.js +46 -0
  313. package/dist/commands/chunk-PILH72AV.js +170 -0
  314. package/dist/commands/chunk-PJYTUUTH.js +34 -0
  315. package/dist/commands/chunk-PKXTISWR.js +58 -0
  316. package/dist/commands/chunk-PSGLUBSB.js +74 -0
  317. package/dist/commands/chunk-PUQA7F6Y.js +186 -0
  318. package/dist/commands/chunk-PVRDJU2B.js +126 -0
  319. package/dist/commands/chunk-Q3HM2BEH.js +45 -0
  320. package/dist/commands/chunk-Q42NF2TL.js +47 -0
  321. package/dist/commands/chunk-Q4ULMZAS.js +106 -0
  322. package/dist/commands/chunk-QCRUPRQ2.js +207 -0
  323. package/dist/commands/chunk-QFIKPGMC.js +280 -0
  324. package/dist/commands/chunk-QSBYULSS.js +100 -0
  325. package/dist/commands/chunk-QSJCZATC.js +18 -0
  326. package/dist/commands/chunk-QTJPCXEW.js +23 -0
  327. package/dist/commands/chunk-QTQAI2M2.js +179 -0
  328. package/dist/commands/chunk-QTVVFV4Q.js +127 -0
  329. package/dist/commands/chunk-QX2EMUXV.js +102 -0
  330. package/dist/commands/chunk-QXBOECGL.js +272 -0
  331. package/dist/commands/chunk-QXCG3SG4.js +88 -0
  332. package/dist/commands/chunk-QZVMGAWV.js +307 -0
  333. package/dist/commands/chunk-R36VZIKU.js +53 -0
  334. package/dist/commands/chunk-R3F7F3TX.js +94 -0
  335. package/dist/commands/chunk-R5AABJZJ.js +1062 -0
  336. package/dist/commands/chunk-R7PYR4HW.js +389 -0
  337. package/dist/commands/chunk-RDUFVQVJ.js +997 -0
  338. package/dist/commands/chunk-RESNXNDG.js +54 -0
  339. package/dist/commands/chunk-RFIOZTXY.js +305 -0
  340. package/dist/commands/chunk-RFWB2KAV.js +102 -0
  341. package/dist/commands/chunk-RFXON3FK.js +25 -0
  342. package/dist/commands/chunk-RGEB5L37.js +66 -0
  343. package/dist/commands/chunk-RGRLLF2J.js +119 -0
  344. package/dist/commands/chunk-RLRIMYXM.js +178 -0
  345. package/dist/commands/chunk-RNB3DQOZ.js +70 -0
  346. package/dist/commands/chunk-RO4QEZJO.js +172 -0
  347. package/dist/commands/chunk-RS5HBJY6.js +161 -0
  348. package/dist/commands/chunk-RV7EQIE4.js +202 -0
  349. package/dist/commands/chunk-RWPCK3CO.js +41 -0
  350. package/dist/commands/chunk-RWYSVFIA.js +250 -0
  351. package/dist/commands/chunk-RYKK75YT.js +289 -0
  352. package/dist/commands/chunk-S4JE63QE.js +704 -0
  353. package/dist/commands/chunk-S4OZJIXD.js +134 -0
  354. package/dist/commands/chunk-SD4EX75H.js +177 -0
  355. package/dist/commands/chunk-SJITWFNY.js +480 -0
  356. package/dist/commands/chunk-SKGDMAIA.js +33 -0
  357. package/dist/commands/chunk-SNSZ25XZ.js +393 -0
  358. package/dist/commands/chunk-SQZZHK6X.js +119 -0
  359. package/dist/commands/chunk-SRTEE34O.js +93 -0
  360. package/dist/commands/chunk-SYTCTLMD.js +285 -0
  361. package/dist/commands/chunk-T6JUDQMW.js +181 -0
  362. package/dist/commands/chunk-T6OUNP7E.js +426 -0
  363. package/dist/commands/chunk-TEXUEBGE.js +208 -0
  364. package/dist/commands/chunk-TFDVTU6O.js +910 -0
  365. package/dist/commands/chunk-TFYYXETQ.js +472 -0
  366. package/dist/commands/chunk-TMFKVJUW.js +121 -0
  367. package/dist/commands/chunk-TNJU4CXD.js +32 -0
  368. package/dist/commands/chunk-TRHWBUWE.js +61 -0
  369. package/dist/commands/chunk-TROCFVCU.js +45 -0
  370. package/dist/commands/chunk-TTTZZN7F.js +269 -0
  371. package/dist/commands/chunk-TUBBESHU.js +85 -0
  372. package/dist/commands/chunk-TVZIFZZN.js +62 -0
  373. package/dist/commands/chunk-TXRWAL63.js +144 -0
  374. package/dist/commands/chunk-U46YTYJQ.js +92 -0
  375. package/dist/commands/chunk-U5EO4QEV.js +48 -0
  376. package/dist/commands/chunk-UCO333EX.js +47 -0
  377. package/dist/commands/chunk-UIXQ4IYT.js +445 -0
  378. package/dist/commands/chunk-UJGNYPMD.js +716 -0
  379. package/dist/commands/chunk-URZ4RDC4.js +220 -0
  380. package/dist/commands/chunk-UUH3DE77.js +57 -0
  381. package/dist/commands/chunk-UVY5ODCM.js +60 -0
  382. package/dist/commands/chunk-UWMB6EOU.js +45 -0
  383. package/dist/commands/chunk-UX3HCPLX.js +449 -0
  384. package/dist/commands/chunk-UY62WJV6.js +120 -0
  385. package/dist/commands/chunk-V2T5DP3B.js +224 -0
  386. package/dist/commands/chunk-VAHQ4AFM.js +585 -0
  387. package/dist/commands/chunk-VCWNMRH7.js +71 -0
  388. package/dist/commands/chunk-VHLDQ3PH.js +30 -0
  389. package/dist/commands/chunk-VL5I2IOD.js +332 -0
  390. package/dist/commands/chunk-VLN6TSPJ.js +139 -0
  391. package/dist/commands/chunk-VMG3QB6C.js +81 -0
  392. package/dist/commands/chunk-VO25PMGS.js +58 -0
  393. package/dist/commands/chunk-VTLWODJ2.js +133 -0
  394. package/dist/commands/chunk-VXE3V3OC.js +335 -0
  395. package/dist/commands/chunk-VY7ZJMDT.js +469 -0
  396. package/dist/commands/chunk-W3MDLQZF.js +137 -0
  397. package/dist/commands/chunk-W4BR6QNU.js +1241 -0
  398. package/dist/commands/chunk-WCYRNNKF.js +76 -0
  399. package/dist/commands/chunk-WEUUJIWQ.js +84 -0
  400. package/dist/commands/chunk-WNBJK6QE.js +84 -0
  401. package/dist/commands/chunk-WR5PKCQW.js +61 -0
  402. package/dist/commands/chunk-WR73HTRG.js +121 -0
  403. package/dist/commands/chunk-WRNMUQTD.js +95 -0
  404. package/dist/commands/chunk-WROJTXWZ.js +138 -0
  405. package/dist/commands/chunk-WTIPX5NG.js +43 -0
  406. package/dist/commands/chunk-WWLCQREY.js +225 -0
  407. package/dist/commands/chunk-WXLW7S4M.js +71 -0
  408. package/dist/commands/chunk-WXXLJQBO.js +67 -0
  409. package/dist/commands/chunk-X4LYH6Q4.js +56 -0
  410. package/dist/commands/chunk-XAEL24EG.js +66 -0
  411. package/dist/commands/chunk-XCCT6GKA.js +74 -0
  412. package/dist/commands/chunk-XDR2BRDL.js +216 -0
  413. package/dist/commands/chunk-XRQMVAB4.js +85 -0
  414. package/dist/commands/chunk-XSKJAG72.js +91 -0
  415. package/dist/commands/chunk-XTJA34ND.js +492 -0
  416. package/dist/commands/chunk-XUXCFPDK.js +218 -0
  417. package/dist/commands/chunk-XXPDFJRI.js +48 -0
  418. package/dist/commands/chunk-Y6OGDG5I.js +49 -0
  419. package/dist/commands/chunk-YEAE46TS.js +98 -0
  420. package/dist/commands/chunk-YEQFAEVW.js +112 -0
  421. package/dist/commands/chunk-YJZAD4Z5.js +103 -0
  422. package/dist/commands/chunk-YMAEYY5R.js +278 -0
  423. package/dist/commands/chunk-YNCF66RK.js +1052 -0
  424. package/dist/commands/chunk-YOA25SII.js +210 -0
  425. package/dist/commands/chunk-YOZTZMAT.js +38 -0
  426. package/dist/commands/chunk-YSGRHVZG.js +897 -0
  427. package/dist/commands/chunk-YSLGWRQN.js +646 -0
  428. package/dist/commands/chunk-YTXCLGGL.js +168 -0
  429. package/dist/commands/chunk-YVHJN2HS.js +74 -0
  430. package/dist/commands/chunk-YY7XVVSB.js +43 -0
  431. package/dist/commands/chunk-Z5GZV4DV.js +16 -0
  432. package/dist/commands/chunk-Z6QLFPFB.js +907 -0
  433. package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
  434. package/dist/commands/chunk-ZCD4AV2P.js +73 -0
  435. package/dist/commands/chunk-ZCHZU6NX.js +799 -0
  436. package/dist/commands/chunk-ZEH2B3DF.js +239 -0
  437. package/dist/commands/chunk-ZEUKX3RZ.js +245 -0
  438. package/dist/commands/chunk-ZGANVZCA.js +92 -0
  439. package/dist/commands/chunk-ZGBXUY7R.js +198 -0
  440. package/dist/commands/chunk-ZGEUWHFF.js +297 -0
  441. package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
  442. package/dist/commands/chunk-ZIIUBGON.js +773 -0
  443. package/dist/commands/chunk-ZJ5S4VFD.js +258 -0
  444. package/dist/commands/chunk-ZNIIA275.js +59 -0
  445. package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
  446. package/dist/commands/ci-timing-cli.js +22 -3
  447. package/dist/commands/code-symbol-cli.js +21 -7
  448. package/dist/commands/codex-hook-adapter.js +124 -119
  449. package/dist/commands/command-derive.js +9 -11
  450. package/dist/commands/cost-audit-main.js +118 -119
  451. package/dist/commands/cost-main.js +5 -7
  452. package/dist/commands/cspell-cached.js +55 -57
  453. package/dist/commands/defect-origin-main.js +42 -37
  454. package/dist/commands/defect-report-main.js +33 -25
  455. package/dist/commands/diff-summary-cli.js +3 -4
  456. package/dist/commands/disposition-cli.js +117 -118
  457. package/dist/commands/doctor.js +24 -11
  458. package/dist/commands/document-read-cli.js +50 -53
  459. package/dist/commands/document-section-main.js +50 -53
  460. package/dist/commands/dogfood-commit-cli.js +19 -4
  461. package/dist/commands/effect-audit-cli.js +40 -41
  462. package/dist/commands/epic-audit-main.js +88 -86
  463. package/dist/commands/epic-bundle-main.js +122 -119
  464. package/dist/commands/epic-check.js +37 -31
  465. package/dist/commands/epic-main.js +129 -126
  466. package/dist/commands/epic-next-main.js +85 -83
  467. package/dist/commands/eval-run.js +6 -7
  468. package/dist/commands/format-edited-cli.js +71 -46
  469. package/dist/commands/format.js +41 -56
  470. package/dist/commands/fresh-machine-cli.js +24 -7
  471. package/dist/commands/gh-usage-cli.js +22 -22
  472. package/dist/commands/git-followup-workflow.js +158 -158
  473. package/dist/commands/git-gh-checks-failed-main.js +23 -15
  474. package/dist/commands/git-workflow.js +52 -53
  475. package/dist/commands/github-release-cli.js +3 -3
  476. package/dist/commands/hook-ledger-cli.js +93 -94
  477. package/dist/commands/init-main.js +40 -40
  478. package/dist/commands/inputs.json +2020 -1980
  479. package/dist/commands/issue-ack-cli.js +28 -21
  480. package/dist/commands/issue-already-done-cli.js +107 -110
  481. package/dist/commands/issue-body-cli.js +71 -73
  482. package/dist/commands/issue-cite-main.js +35 -28
  483. package/dist/commands/issue-comment-main.js +36 -30
  484. package/dist/commands/issue-consolidate-cli.js +54 -54
  485. package/dist/commands/issue-file-main.js +274 -148
  486. package/dist/commands/issue-fold-existing-cli.js +126 -123
  487. package/dist/commands/issue-fold-main.js +57 -60
  488. package/dist/commands/issue-lint-main.js +59 -61
  489. package/dist/commands/issue-measured-cli.js +108 -110
  490. package/dist/commands/issue-plan-cli.js +156 -155
  491. package/dist/commands/issue-premise-unmet-cli.js +111 -113
  492. package/dist/commands/issue-priority-cli.js +38 -32
  493. package/dist/commands/issue-read-main.js +38 -33
  494. package/dist/commands/issue-release-class-cli.js +37 -31
  495. package/dist/commands/issue-release-main.js +35 -29
  496. package/dist/commands/issue-scout-main.js +123 -120
  497. package/dist/commands/issue-spill-main.js +149 -144
  498. package/dist/commands/issue-state-main.js +36 -31
  499. package/dist/commands/issue-tick-cli.js +37 -31
  500. package/dist/commands/josh-completion.js +21 -24
  501. package/dist/commands/lane-adopt-cli.js +53 -55
  502. package/dist/commands/lane-breakdown-cli.js +193 -172
  503. package/dist/commands/lane-cli.js +199 -180
  504. package/dist/commands/lane-launch-main.js +106 -56
  505. package/dist/commands/lane-limit-cli.js +119 -116
  506. package/dist/commands/lane-measure-cli.js +408 -245
  507. package/dist/commands/lane-pause-cli.js +51 -54
  508. package/dist/commands/lane-plan-cli.js +148 -147
  509. package/dist/commands/lane-resolve-cli.js +48 -50
  510. package/dist/commands/lane-restart-cli.js +185 -168
  511. package/dist/commands/lane-why-cli.js +121 -122
  512. package/dist/commands/lane-withdraw-cli.js +84 -86
  513. package/dist/commands/latest-corepack.js +3 -2
  514. package/dist/commands/latest-if-required-cli.js +12 -15
  515. package/dist/commands/latest-lane-guard-main.js +2 -3
  516. package/dist/commands/latest-scope-main.js +5 -7
  517. package/dist/commands/latest-update.js +3 -2
  518. package/dist/commands/lines-command.js +8 -10
  519. package/dist/commands/lint-parallel-main.js +65 -67
  520. package/dist/commands/lint-related.js +149 -133
  521. package/dist/commands/lint-rule.js +64 -66
  522. package/dist/commands/lockfile-policy.js +29 -32
  523. package/dist/commands/main-merge-main.js +23 -25
  524. package/dist/commands/main-sync-main.js +23 -24
  525. package/dist/commands/managed-config-scope-cli.js +11 -10
  526. package/dist/commands/measure-rerun-cli.js +31 -26
  527. package/dist/commands/metrics-command.js +97 -100
  528. package/dist/commands/observation-record-cli.js +24 -14
  529. package/dist/commands/observations-flush-cli.js +50 -52
  530. package/dist/commands/overrides-check.js +1 -1
  531. package/dist/commands/package-scout-cli.js +70 -73
  532. package/dist/commands/pin-verify-cli.js +21 -2
  533. package/dist/commands/plan-consumers-main.js +3 -4
  534. package/dist/commands/plan-scaffold-cli.js +145 -146
  535. package/dist/commands/pr-classification-main.js +22 -3
  536. package/dist/commands/pre-commit-lint.js +30 -34
  537. package/dist/commands/pre-commit-type-check.js +55 -55
  538. package/dist/commands/pre-push-unit.js +69 -70
  539. package/dist/commands/pretool-guard-cli.js +111 -113
  540. package/dist/commands/prevent-main-commit.js +2 -3
  541. package/dist/commands/project-profile-cli.js +24 -9
  542. package/dist/commands/propagate.js +31 -23
  543. package/dist/commands/prose-stale-cli.js +48 -42
  544. package/dist/commands/publishable-range-check.js +3 -3
  545. package/dist/commands/read-set-cli.js +58 -61
  546. package/dist/commands/refactor-scan-cli.js +8 -9
  547. package/dist/commands/release-cli.js +57 -57
  548. package/dist/commands/release-scope-main.js +41 -36
  549. package/dist/commands/rename-cli.js +64 -36
  550. package/dist/commands/repo-party-cli.js +3 -4
  551. package/dist/commands/report-template-cli.js +4 -5
  552. package/dist/commands/reserved-run.js +17 -20
  553. package/dist/commands/retrospective-cli.js +126 -127
  554. package/dist/commands/review-attest-cli.js +28 -20
  555. package/dist/commands/review-brief-main.js +184 -167
  556. package/dist/commands/review-findings-cli.js +23 -13
  557. package/dist/commands/review-pair-cli.js +180 -156
  558. package/dist/commands/review-record-main.js +171 -147
  559. package/dist/commands/review-round2-cli.js +89 -91
  560. package/dist/commands/review-stops-cli.js +51 -54
  561. package/dist/commands/review-submit-cli.js +184 -167
  562. package/dist/commands/rule-list.js +78 -80
  563. package/dist/commands/rule-value-cli.js +115 -116
  564. package/dist/commands/ruleset-check-cli.js +23 -6
  565. package/dist/commands/run-add-cli.js +115 -75
  566. package/dist/commands/run-board-main.js +172 -169
  567. package/dist/commands/run-carry-cli.js +182 -174
  568. package/dist/commands/run-chain-cli.js +184 -160
  569. package/dist/commands/run-cut-cli.js +206 -168
  570. package/dist/commands/run-ending-cli.js +51 -54
  571. package/dist/commands/run-entry-cli.js +230 -283
  572. package/dist/commands/run-event-cli.js +18 -21
  573. package/dist/commands/run-handoff-cli.js +75 -78
  574. package/dist/commands/run-handoff-lanes-cli.js +48 -51
  575. package/dist/commands/run-hold-main.js +105 -107
  576. package/dist/commands/run-liveness-cli.js +47 -49
  577. package/dist/commands/run-merge-main.js +159 -151
  578. package/dist/commands/run-next-cli.js +128 -129
  579. package/dist/commands/run-park-cli.js +137 -140
  580. package/dist/commands/run-pause-cli.js +190 -186
  581. package/dist/commands/run-pickup-cli.js +49 -52
  582. package/dist/commands/run-prep-main.js +124 -125
  583. package/dist/commands/run-prime-cli.js +175 -147
  584. package/dist/commands/run-progress-main.js +149 -146
  585. package/dist/commands/run-report-cli.js +60 -60
  586. package/dist/commands/run-review-cli.js +229 -214
  587. package/dist/commands/run-ship-cli.js +258 -252
  588. package/dist/commands/run-ship-evidence-cli.js +71 -72
  589. package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
  590. package/dist/commands/run-ship-wait-main.js +83 -85
  591. package/dist/commands/run-split-cli.js +176 -172
  592. package/dist/commands/run-stale-main.js +72 -75
  593. package/dist/commands/run-status-cli.js +44 -44
  594. package/dist/commands/run-step-cli.js +213 -211
  595. package/dist/commands/run-tail-cli.js +23 -18
  596. package/dist/commands/run-tidy-main.js +67 -69
  597. package/dist/commands/run-wake-main.js +206 -187
  598. package/dist/commands/run-watcher-guard-cli.js +63 -66
  599. package/dist/commands/security-audit-main.js +21 -24
  600. package/dist/commands/security-audit-provision-main.js +9 -11
  601. package/dist/commands/selfcheck-cli.js +63 -57
  602. package/dist/commands/session-language-main.js +70 -73
  603. package/dist/commands/sonar-hotspots-cli.js +9 -8
  604. package/dist/commands/sonar-new-code-cli.js +3 -4
  605. package/dist/commands/split-assess-cli.js +55 -58
  606. package/dist/commands/split-child-recover-cli.js +38 -39
  607. package/dist/commands/start.js +64 -64
  608. package/dist/commands/stash-pop-main.js +4 -5
  609. package/dist/commands/stash-push-main.js +7 -9
  610. package/dist/commands/stop-guard.js +180 -176
  611. package/dist/commands/sync-main.js +30 -15
  612. package/dist/commands/telegram-test-main.js +29 -22
  613. package/dist/commands/test-declared.js +29 -15
  614. package/dist/commands/test-e2e-guard.js +54 -54
  615. package/dist/commands/test-pinned-main.js +57 -56
  616. package/dist/commands/test-reach-cli.js +40 -32
  617. package/dist/commands/test-red-main.js +12 -14
  618. package/dist/commands/test-related-Z6YY2GFH.js +113 -0
  619. package/dist/commands/test-related-main.js +89 -89
  620. package/dist/commands/test-unit-guard-main.js +37 -37
  621. package/dist/commands/time-cli.js +54 -57
  622. package/dist/commands/time-density-cli.js +26 -29
  623. package/dist/commands/tree-status-cli.js +6 -8
  624. package/dist/commands/type-check-command.js +26 -11
  625. package/dist/commands/ui-routes-cli.js +5 -6
  626. package/dist/commands/ui-shot-cli.js +1 -1
  627. package/dist/commands/uninstall.js +44 -43
  628. package/dist/commands/unused-members-KVKZDTXD.js +329 -0
  629. package/dist/commands/unused-members-cli.js +27 -12
  630. package/dist/commands/upstream-interrupt-main.js +159 -151
  631. package/dist/commands/verification-gate.js +85 -86
  632. package/dist/commands/version-check.js +25 -8
  633. package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
  634. package/dist/hooks/chunk-46PTTMGE.js +1625 -0
  635. package/dist/hooks/chunk-5NIBRHWG.js +77 -0
  636. package/dist/hooks/chunk-76QKN2K3.js +258 -0
  637. package/dist/hooks/chunk-CHEKMGFP.js +321 -0
  638. package/dist/hooks/chunk-DCILEVDR.js +5173 -0
  639. package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
  640. package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
  641. package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
  642. package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
  643. package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
  644. package/dist/hooks/codex-hook-adapter.js +11 -12
  645. package/dist/hooks/daemon.js +2140 -1387
  646. package/dist/hooks/format-edited.js +6 -6
  647. package/dist/hooks/inputs.json +521 -497
  648. package/dist/hooks/pretool-guard.js +8 -8
  649. package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
  650. package/dist/hooks/session-lang.js +9 -7
  651. package/dist/hooks/stop-guard.js +962 -669
  652. package/dist/inputs.json +63 -54
  653. package/dist/josh.js +1029 -577
  654. package/dist/registry-migrate.mjs +33938 -0
  655. package/dist/version/index.js +4251 -175
  656. package/package.json +4 -1
  657. package/prompts/collaboration-workflow/principles.md +4 -1
  658. package/prompts/collaboration-workflow/rule-delivery.md +1 -1
  659. package/scripts/agent/codex-launch-identity.ts +70 -0
  660. package/scripts/auto-ok/auto-ok-cli.ts +2 -0
  661. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
  662. package/scripts/auto-ok/auto-ok-judge.ts +3 -1
  663. package/scripts/backlog/backlog-arrival.ts +1 -1
  664. package/scripts/backlog/backlog-budget.ts +5 -2
  665. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  666. package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
  667. package/scripts/backlog/backlog-drain-flush.ts +38 -3
  668. package/scripts/backlog/backlog-drive-cli.ts +1 -1
  669. package/scripts/backlog/backlog-drive-hold.ts +28 -5
  670. package/scripts/backlog/backlog-drive-launch.ts +37 -15
  671. package/scripts/backlog/backlog-drive-listing.ts +39 -23
  672. package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
  673. package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
  674. package/scripts/backlog/backlog-hold-codes.ts +7 -0
  675. package/scripts/backlog/backlog-hold-text.ts +14 -1
  676. package/scripts/backlog/backlog-measure-close.ts +6 -0
  677. package/scripts/backlog/backlog-next-shared.ts +20 -2
  678. package/scripts/backlog/backlog-next.ts +24 -3
  679. package/scripts/backlog/backlog-offer-cli.ts +69 -16
  680. package/scripts/build/build-migration.ts +25 -0
  681. package/scripts/build/build.ts +2 -0
  682. package/scripts/epic/epic-classify.ts +6 -1
  683. package/scripts/epic/epic-live.ts +46 -0
  684. package/scripts/followup/followup-failed-tests.ts +71 -10
  685. package/scripts/followup/followup-job-rerun.ts +2 -2
  686. package/scripts/gate/change-scope-action.integration.test.ts +88 -0
  687. package/scripts/gate/change-scope-action.ts +2 -0
  688. package/scripts/gate/check-related-order.ts +6 -7
  689. package/scripts/gate/check-related.ts +18 -8
  690. package/scripts/gate/core-admission.ts +17 -30
  691. package/scripts/gate/core-budget-poll.ts +183 -0
  692. package/scripts/gate/core-budget-timing.ts +1 -1
  693. package/scripts/gate/core-budget.ts +24 -112
  694. package/scripts/gate/core-wait-record.ts +52 -7
  695. package/scripts/gate/machine-capacity.ts +6 -2
  696. package/scripts/gate/metrics-totals.ts +11 -0
  697. package/scripts/gate/path-glob.test.ts +18 -0
  698. package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
  699. package/scripts/gh/fix-gh-packages-logic.ts +22 -15
  700. package/scripts/gh/gh-request-tally.ts +4 -0
  701. package/scripts/hooks/bash-revert.ts +79 -31
  702. package/scripts/hooks/format-edited-file.ts +6 -8
  703. package/scripts/hooks/implementation-shell.ts +3 -2
  704. package/scripts/init/distributed-paths.ts +18 -5
  705. package/scripts/init/init-actions.ts +16 -1
  706. package/scripts/init/init-bootstrap.ts +2 -0
  707. package/scripts/init/init-logic.ts +40 -8
  708. package/scripts/init/init.ts +11 -3
  709. package/scripts/issue/defect-rate-cli.ts +19 -13
  710. package/scripts/issue/issue-file-batch.ts +7 -3
  711. package/scripts/issue/issue-file-cli.ts +19 -6
  712. package/scripts/issue/issue-file-main.ts +6 -1
  713. package/scripts/issue/issue-file-pass.ts +17 -0
  714. package/scripts/issue/issue-file.ts +3 -0
  715. package/scripts/issue/issue-not-before.ts +9 -2
  716. package/scripts/issue/issue-observation-gate.ts +141 -0
  717. package/scripts/issue/issue-observation-prime.ts +83 -0
  718. package/scripts/issue/issue-publication-state.ts +61 -0
  719. package/scripts/issue/issue-publication.ts +144 -0
  720. package/scripts/issue/issue-sample-prime.ts +2 -0
  721. package/scripts/issue/issue-search-count.ts +26 -0
  722. package/scripts/issue/issue-search.ts +128 -3
  723. package/scripts/issue/issue-spill-cli.ts +4 -0
  724. package/scripts/issue/upstream-interrupt-cli.ts +21 -5
  725. package/scripts/josh/josh-commands-ai.ts +1 -1
  726. package/scripts/josh/josh-commands-development.ts +1 -1
  727. package/scripts/josh/josh-commands-issue-write.ts +9 -0
  728. package/scripts/josh/josh-commands-run.ts +6 -1
  729. package/scripts/josh/josh-commands-ship.ts +5 -5
  730. package/scripts/josh/josh-run.ts +5 -2
  731. package/scripts/josh/shared-cache.ts +16 -1
  732. package/scripts/lane/lane-await.ts +15 -0
  733. package/scripts/lane/lane-cli.ts +2 -0
  734. package/scripts/lane/lane-dispatch-dependency.ts +102 -0
  735. package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
  736. package/scripts/lane/lane-dispatch.ts +44 -5
  737. package/scripts/lane/lane-early-push-count.ts +21 -0
  738. package/scripts/lane/lane-install.ts +15 -5
  739. package/scripts/lane/lane-launch-cli.ts +35 -14
  740. package/scripts/lane/lane-ledger-kind.ts +2 -0
  741. package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
  742. package/scripts/lane/lane-ledger-schema.ts +15 -1
  743. package/scripts/lane/lane-ledger-write.ts +4 -1
  744. package/scripts/lane/lane-relaunch.ts +25 -2
  745. package/scripts/lane/lane-state-record.ts +2 -0
  746. package/scripts/lane/lane-state.ts +8 -1
  747. package/scripts/lane/lane-stats-tables.ts +2 -0
  748. package/scripts/lane/openai-lane-supervisor.ts +16 -1
  749. package/scripts/lib/inherited-scope.ts +48 -0
  750. package/scripts/lint/format-steps.ts +93 -0
  751. package/scripts/lint/format.ts +6 -49
  752. package/scripts/lint/lint-related-fix.ts +35 -0
  753. package/scripts/lint/lint-related.ts +22 -35
  754. package/scripts/propagate/propagate-steps.ts +9 -4
  755. package/scripts/registry-migration/migrate-cli.ts +50 -0
  756. package/scripts/registry-migration/migrate-files.ts +154 -0
  757. package/scripts/registry-migration/migrate-lock.ts +147 -0
  758. package/scripts/registry-migration/migrate.ts +235 -0
  759. package/scripts/registry-migration/npm-acquisition.ts +118 -0
  760. package/scripts/review/review-record-cli.ts +27 -13
  761. package/scripts/review/review-record-pinned.ts +15 -6
  762. package/scripts/run/add/run-add-cli.ts +21 -3
  763. package/scripts/run/add/run-add.ts +26 -9
  764. package/scripts/run/board/run-board-layout.ts +2 -2
  765. package/scripts/run/board/run-board-reason.ts +12 -0
  766. package/scripts/run/board/run-board-retry-wait.ts +35 -0
  767. package/scripts/run/board/run-board-seat.ts +9 -2
  768. package/scripts/run/board/run-board-setup.ts +6 -4
  769. package/scripts/run/carry/run-carry-reclaim.ts +12 -2
  770. package/scripts/run/carry/run-carry-session.ts +48 -0
  771. package/scripts/run/carry/run-carry.ts +21 -14
  772. package/scripts/run/cut/run-cut-resume.ts +15 -3
  773. package/scripts/run/cut/run-cut.ts +1 -1
  774. package/scripts/run/detached-launch.ts +14 -5
  775. package/scripts/run/early-push-record.ts +6 -2
  776. package/scripts/run/event/run-event-setup.ts +2 -0
  777. package/scripts/run/event/run-event-stream-emit.ts +27 -7
  778. package/scripts/run/hold/run-hold-cli.ts +40 -5
  779. package/scripts/run/merge/run-merge-cut-release.ts +17 -0
  780. package/scripts/run/merge/run-merge-human-review.ts +6 -0
  781. package/scripts/run/merge/run-merge-steps.ts +4 -57
  782. package/scripts/run/merge/run-merge-waits.ts +54 -0
  783. package/scripts/run/prime/run-prime-cli.ts +16 -2
  784. package/scripts/run/review/run-review-cli.ts +5 -7
  785. package/scripts/run/review/run-review-early-push.ts +19 -8
  786. package/scripts/run/review/run-review-join-read.ts +33 -6
  787. package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
  788. package/scripts/run/review/run-review-pinned-steps.ts +7 -1
  789. package/scripts/run/run-halfrun-resume.ts +49 -6
  790. package/scripts/run/run-headless.ts +3 -0
  791. package/scripts/run/run-pr-return.ts +14 -5
  792. package/scripts/run/run-repair-attempt.ts +219 -0
  793. package/scripts/run/ship/run-ship-lap.ts +5 -17
  794. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
  795. package/scripts/run/ship/run-ship-scoped.ts +66 -30
  796. package/scripts/run/startup/run-startup-schema.ts +31 -0
  797. package/scripts/run/startup/run-startup-store.ts +130 -0
  798. package/scripts/run/startup/run-startup.ts +119 -0
  799. package/scripts/run/wake/run-wake-codex.ts +144 -0
  800. package/scripts/run/wake/run-wake-driver.ts +32 -7
  801. package/scripts/run/wake/run-wake-handoff.ts +9 -8
  802. package/scripts/run/wake/run-wake-loop.ts +23 -3
  803. package/scripts/run/wake/run-wake-ports.ts +17 -3
  804. package/scripts/run/wake/run-wake-takeover.ts +6 -3
  805. package/scripts/run/wake/run-wake-window.ts +4 -1
  806. package/scripts/run/wake/run-wake.ts +5 -0
  807. package/scripts/sync/sync-ai-files.ts +17 -0
  808. package/scripts/sync/sync-configs.ts +11 -1
  809. package/scripts/sync/sync.ts +5 -1
  810. package/scripts/test/test-related-cap.ts +7 -3
  811. package/scripts/test/test-related-imports.ts +92 -0
  812. package/scripts/test/vitest-failure-summary.ts +7 -0
  813. package/scripts/version/npm-registry.ts +45 -7
  814. package/scripts/version/upgrade-shell-command.ts +34 -2
  815. package/templates/workflows/ci.yml +0 -15
  816. package/templates/workflows/github-release.yml +0 -5
  817. package/dist/commands/chunk-23GH6B3D.js +0 -333
  818. package/dist/commands/chunk-24OATKOF.js +0 -7534
  819. package/dist/commands/chunk-24ZDAWML.js +0 -48
  820. package/dist/commands/chunk-2BB5ZR2F.js +0 -128
  821. package/dist/commands/chunk-2BJJUTZA.js +0 -59
  822. package/dist/commands/chunk-2CXT6MBR.js +0 -51
  823. package/dist/commands/chunk-2DJLAUYB.js +0 -109
  824. package/dist/commands/chunk-2EZTYLO4.js +0 -179
  825. package/dist/commands/chunk-2FJJYCBD.js +0 -149
  826. package/dist/commands/chunk-2PHOLX62.js +0 -43
  827. package/dist/commands/chunk-2QM72JCJ.js +0 -338
  828. package/dist/commands/chunk-2VRITY55.js +0 -41
  829. package/dist/commands/chunk-2XAH3MHV.js +0 -23
  830. package/dist/commands/chunk-34KZDKQJ.js +0 -304
  831. package/dist/commands/chunk-352KLSFX.js +0 -67
  832. package/dist/commands/chunk-36LOGVJ7.js +0 -38
  833. package/dist/commands/chunk-3AEDZZNL.js +0 -223
  834. package/dist/commands/chunk-3B2HEFNO.js +0 -51
  835. package/dist/commands/chunk-3PEXBHRN.js +0 -33
  836. package/dist/commands/chunk-3Z425MM3.js +0 -61
  837. package/dist/commands/chunk-3ZOX4G4U.js +0 -88
  838. package/dist/commands/chunk-452HWOJ7.js +0 -395
  839. package/dist/commands/chunk-475EFIJV.js +0 -178
  840. package/dist/commands/chunk-47UZB54M.js +0 -73
  841. package/dist/commands/chunk-4DN4XVPL.js +0 -716
  842. package/dist/commands/chunk-4DVM57T7.js +0 -86
  843. package/dist/commands/chunk-4EADHJVC.js +0 -247
  844. package/dist/commands/chunk-4HERA2GY.js +0 -95
  845. package/dist/commands/chunk-4JI35CVO.js +0 -70
  846. package/dist/commands/chunk-4L4LNWZ7.js +0 -143
  847. package/dist/commands/chunk-4N32QKJZ.js +0 -170
  848. package/dist/commands/chunk-4NRSFLG7.js +0 -185
  849. package/dist/commands/chunk-4OKRPAUT.js +0 -98
  850. package/dist/commands/chunk-4PUKDAXL.js +0 -42
  851. package/dist/commands/chunk-4Q64PG46.js +0 -478
  852. package/dist/commands/chunk-4UDTQVDD.js +0 -278
  853. package/dist/commands/chunk-4WR2LEZL.js +0 -123
  854. package/dist/commands/chunk-4ZJOC6OK.js +0 -298
  855. package/dist/commands/chunk-4ZQM4I7R.js +0 -533
  856. package/dist/commands/chunk-54X37JEJ.js +0 -170
  857. package/dist/commands/chunk-56KW5EOK.js +0 -85
  858. package/dist/commands/chunk-5CG3XU3O.js +0 -74
  859. package/dist/commands/chunk-5ESZLHDZ.js +0 -514
  860. package/dist/commands/chunk-5FBRMARM.js +0 -578
  861. package/dist/commands/chunk-5RG4S66L.js +0 -47
  862. package/dist/commands/chunk-5UJGACVN.js +0 -137
  863. package/dist/commands/chunk-5Y7B7FDL.js +0 -44
  864. package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
  865. package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
  866. package/dist/commands/chunk-5ZTQX7OS.js +0 -125
  867. package/dist/commands/chunk-66NX6EXR.js +0 -29
  868. package/dist/commands/chunk-66TGK5XL.js +0 -84
  869. package/dist/commands/chunk-6CFHLMKM.js +0 -555
  870. package/dist/commands/chunk-6DDK5XWK.js +0 -74
  871. package/dist/commands/chunk-6GQX752S.js +0 -145
  872. package/dist/commands/chunk-6HRRZANN.js +0 -55
  873. package/dist/commands/chunk-6MAZ55GF.js +0 -1241
  874. package/dist/commands/chunk-6OP63TBT.js +0 -78
  875. package/dist/commands/chunk-6Q3XUCLM.js +0 -204
  876. package/dist/commands/chunk-6RUWU2SB.js +0 -45
  877. package/dist/commands/chunk-6UCWAFQY.js +0 -245
  878. package/dist/commands/chunk-6WKJ3GDA.js +0 -408
  879. package/dist/commands/chunk-6YURRFRU.js +0 -461
  880. package/dist/commands/chunk-6YVURZAJ.js +0 -350
  881. package/dist/commands/chunk-6Z4YZG7P.js +0 -169
  882. package/dist/commands/chunk-77BIN247.js +0 -122
  883. package/dist/commands/chunk-7ABHNNY3.js +0 -529
  884. package/dist/commands/chunk-7C7FOKJK.js +0 -115
  885. package/dist/commands/chunk-7HAGC6SW.js +0 -1062
  886. package/dist/commands/chunk-7KKUFLH5.js +0 -56
  887. package/dist/commands/chunk-7LJQMM2K.js +0 -102
  888. package/dist/commands/chunk-7MJYLUF4.js +0 -99
  889. package/dist/commands/chunk-7NHZCI5Y.js +0 -704
  890. package/dist/commands/chunk-7OQ56DVW.js +0 -239
  891. package/dist/commands/chunk-7VWPGTZO.js +0 -260
  892. package/dist/commands/chunk-7YZXS3AK.js +0 -30
  893. package/dist/commands/chunk-A4HOQKOG.js +0 -85
  894. package/dist/commands/chunk-A6T2N7VC.js +0 -159
  895. package/dist/commands/chunk-AAUDI7WJ.js +0 -250
  896. package/dist/commands/chunk-AC26ZUG5.js +0 -259
  897. package/dist/commands/chunk-ACZ52JPI.js +0 -140
  898. package/dist/commands/chunk-AJ65WNJB.js +0 -230
  899. package/dist/commands/chunk-AK7SEO4Y.js +0 -177
  900. package/dist/commands/chunk-AKK56GNX.js +0 -205
  901. package/dist/commands/chunk-AKQYYHP2.js +0 -461
  902. package/dist/commands/chunk-ALDAS2WG.js +0 -137
  903. package/dist/commands/chunk-ANUTT56I.js +0 -85
  904. package/dist/commands/chunk-AVVMDVGO.js +0 -68
  905. package/dist/commands/chunk-B3M5WSGN.js +0 -72
  906. package/dist/commands/chunk-B7ZNIEDV.js +0 -351
  907. package/dist/commands/chunk-BCUDQWYK.js +0 -77
  908. package/dist/commands/chunk-BF6YX4HE.js +0 -70
  909. package/dist/commands/chunk-BHRS7HAM.js +0 -272
  910. package/dist/commands/chunk-BIKGPT52.js +0 -29
  911. package/dist/commands/chunk-BJA5U4Q7.js +0 -75
  912. package/dist/commands/chunk-BMKWSWWE.js +0 -126
  913. package/dist/commands/chunk-BMTYUJNT.js +0 -59
  914. package/dist/commands/chunk-BRHPRDDV.js +0 -127
  915. package/dist/commands/chunk-BRUBX64M.js +0 -33
  916. package/dist/commands/chunk-BTZJDHQT.js +0 -46
  917. package/dist/commands/chunk-BYFC6MD2.js +0 -72
  918. package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
  919. package/dist/commands/chunk-C2SEDMZ3.js +0 -238
  920. package/dist/commands/chunk-C54QXJD6.js +0 -4208
  921. package/dist/commands/chunk-C6QSVO5K.js +0 -56
  922. package/dist/commands/chunk-CBAKBWSZ.js +0 -332
  923. package/dist/commands/chunk-CFHRNTE5.js +0 -326
  924. package/dist/commands/chunk-CGLLAEKZ.js +0 -110
  925. package/dist/commands/chunk-CHKYPF5O.js +0 -82
  926. package/dist/commands/chunk-CJBW6BWG.js +0 -800
  927. package/dist/commands/chunk-CJKPF5DJ.js +0 -156
  928. package/dist/commands/chunk-CKUKK7JG.js +0 -252
  929. package/dist/commands/chunk-CMHGDCGN.js +0 -263
  930. package/dist/commands/chunk-CNGTHSUS.js +0 -750
  931. package/dist/commands/chunk-CP2J4RV2.js +0 -3987
  932. package/dist/commands/chunk-CQZI7RIK.js +0 -72
  933. package/dist/commands/chunk-CWCKCZS6.js +0 -188
  934. package/dist/commands/chunk-D5HIP4HT.js +0 -289
  935. package/dist/commands/chunk-D6D6WQR6.js +0 -125
  936. package/dist/commands/chunk-D7JRJI44.js +0 -297
  937. package/dist/commands/chunk-D7OAU32Z.js +0 -119
  938. package/dist/commands/chunk-DAAX7XDS.js +0 -1208
  939. package/dist/commands/chunk-DBKTFB5V.js +0 -18
  940. package/dist/commands/chunk-DEZF7QZZ.js +0 -184
  941. package/dist/commands/chunk-DMD74E3F.js +0 -39
  942. package/dist/commands/chunk-DPJVKTO4.js +0 -41
  943. package/dist/commands/chunk-DXJQHJQ4.js +0 -73
  944. package/dist/commands/chunk-DYZOOWVW.js +0 -912
  945. package/dist/commands/chunk-EBI2BAKQ.js +0 -47
  946. package/dist/commands/chunk-EDKOSZ3K.js +0 -88
  947. package/dist/commands/chunk-EFDVE5P5.js +0 -121
  948. package/dist/commands/chunk-EGIHAEMT.js +0 -72
  949. package/dist/commands/chunk-EKLU6QR7.js +0 -507
  950. package/dist/commands/chunk-ELY76WAR.js +0 -65
  951. package/dist/commands/chunk-EM3HAZF6.js +0 -52
  952. package/dist/commands/chunk-EMTZAGT5.js +0 -51
  953. package/dist/commands/chunk-ENKFCOVY.js +0 -472
  954. package/dist/commands/chunk-ERG4QRNG.js +0 -224
  955. package/dist/commands/chunk-EUGNQCYK.js +0 -139
  956. package/dist/commands/chunk-EW4NPUMQ.js +0 -363
  957. package/dist/commands/chunk-EWVR5AEX.js +0 -140
  958. package/dist/commands/chunk-EXDFKKMH.js +0 -113
  959. package/dist/commands/chunk-EXWB34R2.js +0 -238
  960. package/dist/commands/chunk-EYMPBHDN.js +0 -61
  961. package/dist/commands/chunk-EZ7IPKIH.js +0 -20
  962. package/dist/commands/chunk-EZSO25UZ.js +0 -80
  963. package/dist/commands/chunk-F6IQHZYY.js +0 -94
  964. package/dist/commands/chunk-FDS65XOJ.js +0 -212
  965. package/dist/commands/chunk-FFHEGWPK.js +0 -91
  966. package/dist/commands/chunk-FGL6DBZU.js +0 -71
  967. package/dist/commands/chunk-FHFWNNUC.js +0 -144
  968. package/dist/commands/chunk-FIUCHMCF.js +0 -32
  969. package/dist/commands/chunk-FJX7AENO.js +0 -74
  970. package/dist/commands/chunk-FKZ5E4JD.js +0 -97
  971. package/dist/commands/chunk-FMZWRDKH.js +0 -302
  972. package/dist/commands/chunk-FOKCRIAN.js +0 -67
  973. package/dist/commands/chunk-FQGWO2ZH.js +0 -43
  974. package/dist/commands/chunk-FROACLVU.js +0 -525
  975. package/dist/commands/chunk-FURNDIT3.js +0 -34
  976. package/dist/commands/chunk-FVDQNMP6.js +0 -93
  977. package/dist/commands/chunk-FVVZIJUC.js +0 -425
  978. package/dist/commands/chunk-FWU3H4TX.js +0 -17
  979. package/dist/commands/chunk-G3HBYHFA.js +0 -16
  980. package/dist/commands/chunk-G4E4M2P4.js +0 -299
  981. package/dist/commands/chunk-G5KSL2Q2.js +0 -151
  982. package/dist/commands/chunk-G6XC7V6Y.js +0 -58
  983. package/dist/commands/chunk-GCPP5XIG.js +0 -90
  984. package/dist/commands/chunk-GITT5A5A.js +0 -198
  985. package/dist/commands/chunk-GJYMI2CM.js +0 -48
  986. package/dist/commands/chunk-GLC47H7I.js +0 -285
  987. package/dist/commands/chunk-GUR54ELE.js +0 -328
  988. package/dist/commands/chunk-GW4UWR3O.js +0 -126
  989. package/dist/commands/chunk-GY4DMCKS.js +0 -306
  990. package/dist/commands/chunk-H6JQRHDC.js +0 -80
  991. package/dist/commands/chunk-HATKF6VX.js +0 -173
  992. package/dist/commands/chunk-HG2NZQD5.js +0 -135
  993. package/dist/commands/chunk-HH3CVIFU.js +0 -93
  994. package/dist/commands/chunk-HHMMGDMP.js +0 -469
  995. package/dist/commands/chunk-HI5WPM6C.js +0 -127
  996. package/dist/commands/chunk-HQGNXR6I.js +0 -245
  997. package/dist/commands/chunk-HTIDHEEN.js +0 -108
  998. package/dist/commands/chunk-HVCQYZVD.js +0 -38
  999. package/dist/commands/chunk-HWEZRNPL.js +0 -66
  1000. package/dist/commands/chunk-HX3FFIO5.js +0 -74
  1001. package/dist/commands/chunk-HXDTA5VU.js +0 -208
  1002. package/dist/commands/chunk-I2KCGKJI.js +0 -107
  1003. package/dist/commands/chunk-I63RNFFR.js +0 -213
  1004. package/dist/commands/chunk-IAD4WLLI.js +0 -98
  1005. package/dist/commands/chunk-IB5TT73I.js +0 -177
  1006. package/dist/commands/chunk-IBAYXCMU.js +0 -156
  1007. package/dist/commands/chunk-IGDJNXX2.js +0 -49
  1008. package/dist/commands/chunk-ILGPZ47M.js +0 -33
  1009. package/dist/commands/chunk-IYJEBWW5.js +0 -44
  1010. package/dist/commands/chunk-J22PSIXR.js +0 -418
  1011. package/dist/commands/chunk-J66YBAAM.js +0 -161
  1012. package/dist/commands/chunk-J6WKZRV2.js +0 -391
  1013. package/dist/commands/chunk-J7IO3AYH.js +0 -179
  1014. package/dist/commands/chunk-JAKC2BHX.js +0 -88
  1015. package/dist/commands/chunk-JCAQ7B6J.js +0 -124
  1016. package/dist/commands/chunk-JHN6RCE6.js +0 -123
  1017. package/dist/commands/chunk-JIGBNCDR.js +0 -88
  1018. package/dist/commands/chunk-JJHWTFWQ.js +0 -76
  1019. package/dist/commands/chunk-JJRKTWLK.js +0 -64
  1020. package/dist/commands/chunk-JKOGWGQM.js +0 -92
  1021. package/dist/commands/chunk-JM6EVOFN.js +0 -172
  1022. package/dist/commands/chunk-JQXPLMCO.js +0 -81
  1023. package/dist/commands/chunk-JV24VP2O.js +0 -81
  1024. package/dist/commands/chunk-JVKXJ763.js +0 -45
  1025. package/dist/commands/chunk-K275REYP.js +0 -37
  1026. package/dist/commands/chunk-K4G3HOKS.js +0 -105
  1027. package/dist/commands/chunk-K64EIHD2.js +0 -138
  1028. package/dist/commands/chunk-KB3OQWDT.js +0 -71
  1029. package/dist/commands/chunk-KCFOP5RI.js +0 -1310
  1030. package/dist/commands/chunk-KGE4AS2Y.js +0 -134
  1031. package/dist/commands/chunk-KIILCKQR.js +0 -220
  1032. package/dist/commands/chunk-KK2SL42W.js +0 -241
  1033. package/dist/commands/chunk-KKIMVXAP.js +0 -280
  1034. package/dist/commands/chunk-KODXWMBX.js +0 -77
  1035. package/dist/commands/chunk-KPSKWTOS.js +0 -208
  1036. package/dist/commands/chunk-KVHNQHX3.js +0 -100
  1037. package/dist/commands/chunk-KWYQR5MK.js +0 -269
  1038. package/dist/commands/chunk-KXHXMERX.js +0 -214
  1039. package/dist/commands/chunk-KZ5BBBMO.js +0 -271
  1040. package/dist/commands/chunk-KZ7HD37E.js +0 -121
  1041. package/dist/commands/chunk-KZSM5M5P.js +0 -89
  1042. package/dist/commands/chunk-KZZWPUJW.js +0 -25
  1043. package/dist/commands/chunk-L7DAL54N.js +0 -347
  1044. package/dist/commands/chunk-LAR76BFA.js +0 -114
  1045. package/dist/commands/chunk-LB557AHJ.js +0 -192
  1046. package/dist/commands/chunk-LJXKVLYI.js +0 -229
  1047. package/dist/commands/chunk-LOOFYHUM.js +0 -773
  1048. package/dist/commands/chunk-LQXFVZTS.js +0 -13
  1049. package/dist/commands/chunk-LT7QSHR4.js +0 -995
  1050. package/dist/commands/chunk-LUXWDMKI.js +0 -426
  1051. package/dist/commands/chunk-LWAXXZPS.js +0 -118
  1052. package/dist/commands/chunk-LX7TIEMI.js +0 -1612
  1053. package/dist/commands/chunk-LZ5QXE5N.js +0 -244
  1054. package/dist/commands/chunk-LZPPSOTP.js +0 -122
  1055. package/dist/commands/chunk-M4UV3BEV.js +0 -313
  1056. package/dist/commands/chunk-M6JDU5EK.js +0 -133
  1057. package/dist/commands/chunk-MDLOETXL.js +0 -211
  1058. package/dist/commands/chunk-MFBNNTBM.js +0 -44
  1059. package/dist/commands/chunk-MGF64OHV.js +0 -32
  1060. package/dist/commands/chunk-MI2OS6TL.js +0 -132
  1061. package/dist/commands/chunk-MLW4S35K.js +0 -389
  1062. package/dist/commands/chunk-MN425CU6.js +0 -63
  1063. package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
  1064. package/dist/commands/chunk-MRORPFSO.js +0 -402
  1065. package/dist/commands/chunk-MUGTOJUL.js +0 -319
  1066. package/dist/commands/chunk-MVHPRYHE.js +0 -91
  1067. package/dist/commands/chunk-MWO6FOSZ.js +0 -393
  1068. package/dist/commands/chunk-MXC4IBZ7.js +0 -104
  1069. package/dist/commands/chunk-N7QTMTST.js +0 -210
  1070. package/dist/commands/chunk-NDBX7LSS.js +0 -32
  1071. package/dist/commands/chunk-NEGJ77RV.js +0 -173
  1072. package/dist/commands/chunk-NEGRE5VW.js +0 -101
  1073. package/dist/commands/chunk-NFPD2P3V.js +0 -53
  1074. package/dist/commands/chunk-NHIW7JE6.js +0 -335
  1075. package/dist/commands/chunk-NILSN7A4.js +0 -158
  1076. package/dist/commands/chunk-NOLFSPOB.js +0 -74
  1077. package/dist/commands/chunk-NSAVEXVR.js +0 -353
  1078. package/dist/commands/chunk-NT67QTZO.js +0 -65
  1079. package/dist/commands/chunk-NU7W6QGT.js +0 -155
  1080. package/dist/commands/chunk-NYWGJLBU.js +0 -19
  1081. package/dist/commands/chunk-OAAVY2JK.js +0 -49
  1082. package/dist/commands/chunk-OGS2DK7I.js +0 -47
  1083. package/dist/commands/chunk-OHNP3QL2.js +0 -186
  1084. package/dist/commands/chunk-OIPV3PWW.js +0 -870
  1085. package/dist/commands/chunk-OIX2363L.js +0 -16
  1086. package/dist/commands/chunk-OJ65BZBV.js +0 -646
  1087. package/dist/commands/chunk-OKZWEVR4.js +0 -352
  1088. package/dist/commands/chunk-OL6IF4JC.js +0 -20
  1089. package/dist/commands/chunk-OMPRILFH.js +0 -29
  1090. package/dist/commands/chunk-OOWGH2RG.js +0 -85
  1091. package/dist/commands/chunk-OP2RFVLS.js +0 -102
  1092. package/dist/commands/chunk-ORKVN2LO.js +0 -56
  1093. package/dist/commands/chunk-OSBWXZJ4.js +0 -492
  1094. package/dist/commands/chunk-OT3UMEWK.js +0 -47
  1095. package/dist/commands/chunk-OVWPZDWP.js +0 -64
  1096. package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
  1097. package/dist/commands/chunk-OX3VQLV2.js +0 -488
  1098. package/dist/commands/chunk-OZJP77UM.js +0 -103
  1099. package/dist/commands/chunk-OZZWRJQI.js +0 -246
  1100. package/dist/commands/chunk-P3H3DKTE.js +0 -69
  1101. package/dist/commands/chunk-P4D5RESF.js +0 -88
  1102. package/dist/commands/chunk-P4KIQRSL.js +0 -119
  1103. package/dist/commands/chunk-P5SOYWH2.js +0 -37
  1104. package/dist/commands/chunk-P7FPXAHP.js +0 -29
  1105. package/dist/commands/chunk-PE7B7242.js +0 -84
  1106. package/dist/commands/chunk-PFO7EYAP.js +0 -45
  1107. package/dist/commands/chunk-PHLOTUB7.js +0 -366
  1108. package/dist/commands/chunk-PTNQCCIB.js +0 -41
  1109. package/dist/commands/chunk-PTZEFQUX.js +0 -211
  1110. package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
  1111. package/dist/commands/chunk-Q7EEIOAD.js +0 -120
  1112. package/dist/commands/chunk-QABRNGQV.js +0 -88
  1113. package/dist/commands/chunk-QAHFPCFR.js +0 -50
  1114. package/dist/commands/chunk-QDFVVRQP.js +0 -92
  1115. package/dist/commands/chunk-QGAERR7D.js +0 -99
  1116. package/dist/commands/chunk-QHWJJ6X5.js +0 -53
  1117. package/dist/commands/chunk-QJRVDE7T.js +0 -307
  1118. package/dist/commands/chunk-QMDKDQKW.js +0 -114
  1119. package/dist/commands/chunk-QOSC5RKD.js +0 -18
  1120. package/dist/commands/chunk-QQ4CIYMF.js +0 -132
  1121. package/dist/commands/chunk-QV5FKMOU.js +0 -80
  1122. package/dist/commands/chunk-QWWTC3XR.js +0 -109
  1123. package/dist/commands/chunk-QXQ56E56.js +0 -27
  1124. package/dist/commands/chunk-R54Z2Z3X.js +0 -114
  1125. package/dist/commands/chunk-R6QE5VJG.js +0 -46
  1126. package/dist/commands/chunk-RG53UFNW.js +0 -418
  1127. package/dist/commands/chunk-RGGEQM6G.js +0 -140
  1128. package/dist/commands/chunk-RH6ZWJOA.js +0 -77
  1129. package/dist/commands/chunk-RHKCWJQX.js +0 -62
  1130. package/dist/commands/chunk-RKIAX4DZ.js +0 -191
  1131. package/dist/commands/chunk-RLBFEHHC.js +0 -300
  1132. package/dist/commands/chunk-RN2YDNLF.js +0 -229
  1133. package/dist/commands/chunk-RRAIRS2T.js +0 -54
  1134. package/dist/commands/chunk-RS764ZMU.js +0 -46
  1135. package/dist/commands/chunk-RUIBQMOV.js +0 -38
  1136. package/dist/commands/chunk-RUQY5TS3.js +0 -83
  1137. package/dist/commands/chunk-RVUJ6F5L.js +0 -181
  1138. package/dist/commands/chunk-RW64VHEB.js +0 -130
  1139. package/dist/commands/chunk-RXYMJPJB.js +0 -114
  1140. package/dist/commands/chunk-S4M6UWR2.js +0 -103
  1141. package/dist/commands/chunk-SASX3W2M.js +0 -99
  1142. package/dist/commands/chunk-SFNBUB6D.js +0 -110
  1143. package/dist/commands/chunk-SJ2ZN575.js +0 -90
  1144. package/dist/commands/chunk-SP7DKYGU.js +0 -1263
  1145. package/dist/commands/chunk-SSL6A3Y4.js +0 -165
  1146. package/dist/commands/chunk-SVAKCXZ7.js +0 -44
  1147. package/dist/commands/chunk-SYOXIKB7.js +0 -705
  1148. package/dist/commands/chunk-SZG5HDNP.js +0 -321
  1149. package/dist/commands/chunk-T25S4QHL.js +0 -52
  1150. package/dist/commands/chunk-T4F33UKZ.js +0 -114
  1151. package/dist/commands/chunk-T4UYEHWG.js +0 -50
  1152. package/dist/commands/chunk-TAEGXID2.js +0 -58
  1153. package/dist/commands/chunk-TCBUX52E.js +0 -701
  1154. package/dist/commands/chunk-TEPYEUYG.js +0 -585
  1155. package/dist/commands/chunk-TFLHYC2F.js +0 -141
  1156. package/dist/commands/chunk-TJKM56WJ.js +0 -109
  1157. package/dist/commands/chunk-TLAB552K.js +0 -445
  1158. package/dist/commands/chunk-TP6L4W3W.js +0 -82
  1159. package/dist/commands/chunk-TR7WWYD5.js +0 -60
  1160. package/dist/commands/chunk-TVZXG4Y4.js +0 -197
  1161. package/dist/commands/chunk-TYNH2R66.js +0 -1150
  1162. package/dist/commands/chunk-U3IVVR4W.js +0 -33
  1163. package/dist/commands/chunk-U5P6G3UV.js +0 -77
  1164. package/dist/commands/chunk-U7XU5RG3.js +0 -86
  1165. package/dist/commands/chunk-UKBBWMLE.js +0 -1189
  1166. package/dist/commands/chunk-ULVVGGTY.js +0 -64
  1167. package/dist/commands/chunk-UNMSZGSG.js +0 -269
  1168. package/dist/commands/chunk-URDT2O2K.js +0 -36
  1169. package/dist/commands/chunk-UTHUX7VU.js +0 -88
  1170. package/dist/commands/chunk-V4Z7G4UH.js +0 -73
  1171. package/dist/commands/chunk-V5FD7DVV.js +0 -48
  1172. package/dist/commands/chunk-VCPGFBMN.js +0 -655
  1173. package/dist/commands/chunk-VGPIQNDB.js +0 -24
  1174. package/dist/commands/chunk-VJE3RJAX.js +0 -23
  1175. package/dist/commands/chunk-VK6D5CWA.js +0 -161
  1176. package/dist/commands/chunk-VOF3N4WO.js +0 -114
  1177. package/dist/commands/chunk-VQVPAVQ3.js +0 -45
  1178. package/dist/commands/chunk-VV4TQYGD.js +0 -38
  1179. package/dist/commands/chunk-W3FX7FYN.js +0 -84
  1180. package/dist/commands/chunk-W7DRUOF7.js +0 -122
  1181. package/dist/commands/chunk-WAEN2RTT.js +0 -161
  1182. package/dist/commands/chunk-WCEUMOKK.js +0 -84
  1183. package/dist/commands/chunk-WJ4NEDNI.js +0 -288
  1184. package/dist/commands/chunk-WMMGXJXP.js +0 -92
  1185. package/dist/commands/chunk-WOFLW2LX.js +0 -26
  1186. package/dist/commands/chunk-WTH6NTXU.js +0 -128
  1187. package/dist/commands/chunk-WWVYEHQT.js +0 -272
  1188. package/dist/commands/chunk-X3TNPALI.js +0 -213
  1189. package/dist/commands/chunk-XC6GG5JR.js +0 -78
  1190. package/dist/commands/chunk-XDF25GSU.js +0 -536
  1191. package/dist/commands/chunk-XFPEUYDV.js +0 -67
  1192. package/dist/commands/chunk-XFWI6WHH.js +0 -60
  1193. package/dist/commands/chunk-XGMRAKSL.js +0 -85
  1194. package/dist/commands/chunk-XHGWMD3L.js +0 -104
  1195. package/dist/commands/chunk-XKSUBUIH.js +0 -116
  1196. package/dist/commands/chunk-XPBF5DG3.js +0 -419
  1197. package/dist/commands/chunk-XUMYPESL.js +0 -160
  1198. package/dist/commands/chunk-XXC32PVL.js +0 -541
  1199. package/dist/commands/chunk-XXN2EZBY.js +0 -133
  1200. package/dist/commands/chunk-XXNEY4B3.js +0 -110
  1201. package/dist/commands/chunk-Y27PTXXI.js +0 -258
  1202. package/dist/commands/chunk-Y4EBUI6M.js +0 -237
  1203. package/dist/commands/chunk-YAU3LYNF.js +0 -60
  1204. package/dist/commands/chunk-YDURQICF.js +0 -204
  1205. package/dist/commands/chunk-YGFOGA7C.js +0 -1153
  1206. package/dist/commands/chunk-YHJ2AJMA.js +0 -66
  1207. package/dist/commands/chunk-YIA6FC3K.js +0 -78
  1208. package/dist/commands/chunk-YM77CF4D.js +0 -183
  1209. package/dist/commands/chunk-YNPRJCEO.js +0 -81
  1210. package/dist/commands/chunk-YTBQAD5W.js +0 -170
  1211. package/dist/commands/chunk-YVH2OLDS.js +0 -104
  1212. package/dist/commands/chunk-ZAAHZY2A.js +0 -19
  1213. package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
  1214. package/dist/commands/chunk-ZLRUHSOP.js +0 -48
  1215. package/dist/commands/chunk-ZNR75OXP.js +0 -444
  1216. package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
  1217. package/dist/commands/chunk-ZVAIIHBE.js +0 -63
  1218. package/dist/commands/chunk-ZYFHYQA7.js +0 -51
  1219. package/dist/commands/chunk-ZZFFSQF4.js +0 -218
  1220. package/dist/commands/chunk-ZZULXNC2.js +0 -47
  1221. package/dist/commands/chunk-ZZXO6TFH.js +0 -232
  1222. package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
  1223. package/dist/commands/test-related-ZCNC46MS.js +0 -113
  1224. package/dist/commands/unused-members-STULPRBU.js +0 -331
  1225. package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
  1226. package/dist/hooks/chunk-5R5YFQR5.js +0 -931
  1227. package/dist/hooks/chunk-6RLY27FT.js +0 -232
  1228. package/dist/hooks/chunk-6YGMIODI.js +0 -86
  1229. package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
  1230. package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
  1231. package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
  1232. package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
  1233. package/dist/hooks/chunk-IURJANNZ.js +0 -1082
  1234. package/dist/hooks/chunk-OV22V63P.js +0 -10980
  1235. package/dist/hooks/chunk-SXABK6UV.js +0 -321
  1236. package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
@@ -0,0 +1,997 @@
1
+ import {
2
+ test_related_touched,
3
+ test_related_verdict
4
+ } from "./chunk-BAEDHPXW.js";
5
+ import {
6
+ test_related_cap
7
+ } from "./chunk-EE4VOZJP.js";
8
+ import {
9
+ related_heavy_tests
10
+ } from "./chunk-MNLHYAJO.js";
11
+ import {
12
+ direct_importers
13
+ } from "./chunk-N4EMFHQ6.js";
14
+ import {
15
+ test_pinned_reach
16
+ } from "./chunk-ET6IRQ3L.js";
17
+ import {
18
+ pure_files_entries,
19
+ related_scope
20
+ } from "./chunk-ZEUKX3RZ.js";
21
+ import {
22
+ whole_suite_files
23
+ } from "./chunk-WEUUJIWQ.js";
24
+ import {
25
+ scoped_green
26
+ } from "./chunk-7E43YW53.js";
27
+ import {
28
+ test_unit_guard
29
+ } from "./chunk-KWLNK2NJ.js";
30
+ import {
31
+ vitest_failure_summary
32
+ } from "./chunk-GDP7QXYE.js";
33
+ import {
34
+ since_green
35
+ } from "./chunk-4K7KLR7L.js";
36
+ import {
37
+ moved_paths
38
+ } from "./chunk-PBAEJ5PT.js";
39
+ import {
40
+ test_read_map
41
+ } from "./chunk-B2PJEV3S.js";
42
+ import {
43
+ review_stamps
44
+ } from "./chunk-XSKJAG72.js";
45
+ import {
46
+ gate_tree
47
+ } from "./chunk-R36VZIKU.js";
48
+ import {
49
+ file_map_stamp
50
+ } from "./chunk-M32UPB2D.js";
51
+ import {
52
+ import_graph
53
+ } from "./chunk-4IDINPBE.js";
54
+ import {
55
+ input_fingerprint
56
+ } from "./chunk-GA2YSPFH.js";
57
+ import {
58
+ changed_file_scope
59
+ } from "./chunk-QX2EMUXV.js";
60
+ import {
61
+ project_checks
62
+ } from "./chunk-RO4QEZJO.js";
63
+ import {
64
+ test_declared_logic
65
+ } from "./chunk-7HCPRVMB.js";
66
+ import {
67
+ gate_plan
68
+ } from "./chunk-2CKJODCK.js";
69
+ import {
70
+ core_budget
71
+ } from "./chunk-ZCHZU6NX.js";
72
+ import {
73
+ repo_discovery
74
+ } from "./chunk-MDKDJF2K.js";
75
+ import {
76
+ gate_labels
77
+ } from "./chunk-WQ6FS544.js";
78
+ import {
79
+ lane_ledger_write
80
+ } from "./chunk-KIS7JFNP.js";
81
+ import {
82
+ lane_paths
83
+ } from "./chunk-G75GWNNY.js";
84
+ import {
85
+ changed_paths
86
+ } from "./chunk-U5EO4QEV.js";
87
+ import {
88
+ git_command
89
+ } from "./chunk-IXZZSST7.js";
90
+ import {
91
+ git_location_environment
92
+ } from "./chunk-B77ZMVHS.js";
93
+ import {
94
+ json_value
95
+ } from "./chunk-HIU2WXB6.js";
96
+
97
+ // scripts/test/test-related.ts
98
+ import { existsSync as existsSync4 } from "node:fs";
99
+ import path5 from "node:path";
100
+
101
+ // scripts/test/test-no-base.ts
102
+ import { readFileSync } from "node:fs";
103
+
104
+ // scripts/git/no-base-checkout.ts
105
+ import {
106
+ copyFileSync,
107
+ existsSync,
108
+ mkdirSync,
109
+ mkdtempSync,
110
+ rmSync,
111
+ statSync,
112
+ symlinkSync,
113
+ writeFileSync
114
+ } from "node:fs";
115
+ import { tmpdir } from "node:os";
116
+ import path from "node:path";
117
+ import { execa } from "execa";
118
+ var CHECKOUT_PREFIX = "josh-no-base-";
119
+ var NODE_MODULES = "node_modules";
120
+ var ORIGIN_URL_KEY = "remote.origin.url";
121
+ async function git(cwd, arguments_) {
122
+ const { stdout } = await execa("git", arguments_, {
123
+ cwd,
124
+ env: git_location_environment.location_free_environment(),
125
+ extendEnv: true
126
+ });
127
+ return stdout.trim();
128
+ }
129
+ function copy_work(root, directory, file) {
130
+ const source = path.join(root, file);
131
+ const target = path.join(directory, file);
132
+ if (!existsSync(source)) {
133
+ rmSync(target, { force: true });
134
+ return;
135
+ }
136
+ if (statSync(source).isDirectory()) return;
137
+ mkdirSync(path.dirname(target), { recursive: true });
138
+ copyFileSync(source, target);
139
+ }
140
+ async function borrow_objects(root, directory) {
141
+ const common = await git(root, ["rev-parse", "--path-format=absolute", "--git-common-dir"]);
142
+ const alternates = path.join(directory, ".git", "objects", "info", "alternates");
143
+ writeFileSync(alternates, `${path.join(common, "objects")}
144
+ `);
145
+ }
146
+ async function add_origin(root, directory) {
147
+ const origin_url = repo_discovery.read_origin_url(root);
148
+ if (origin_url !== void 0) await git(directory, ["config", ORIGIN_URL_KEY, origin_url]);
149
+ }
150
+ function link_dependencies(root, directory) {
151
+ const source = path.join(root, NODE_MODULES);
152
+ if (existsSync(source)) symlinkSync(source, path.join(directory, NODE_MODULES));
153
+ }
154
+ async function check_out(root, directory, head) {
155
+ await git(directory, ["init", "--quiet"]);
156
+ await add_origin(root, directory);
157
+ await borrow_objects(root, directory);
158
+ await git(directory, ["checkout", "--quiet", "--detach", head]);
159
+ writeFileSync(path.join(directory, ".git", "shallow"), `${head}
160
+ `);
161
+ }
162
+ async function fill(root, directory) {
163
+ const head = await git_command.head_commit();
164
+ await check_out(root, directory, head);
165
+ link_dependencies(root, directory);
166
+ const work = await changed_paths.read_changed_since(head);
167
+ for (const file of work) copy_work(root, directory, file);
168
+ }
169
+ function remove(directory) {
170
+ rmSync(directory, { force: true, recursive: true });
171
+ }
172
+ async function create(root) {
173
+ const directory = mkdtempSync(path.join(tmpdir(), CHECKOUT_PREFIX));
174
+ try {
175
+ await fill(root, directory);
176
+ } catch (error) {
177
+ remove(directory);
178
+ throw error;
179
+ }
180
+ return directory;
181
+ }
182
+ var no_base_checkout = { create, remove };
183
+
184
+ // scripts/test/test-related-claim.ts
185
+ async function claim_weight(files) {
186
+ const tests = files === void 0 ? void 0 : await test_pinned_reach.reached_test_count(files);
187
+ return tests === void 0 ? gate_plan.direct_unit_weight() : gate_plan.scoped_unit_weight(tests);
188
+ }
189
+ async function with_unit_claim(files, run) {
190
+ if (core_budget.is_covered()) return await run();
191
+ const weight = await claim_weight(files);
192
+ return await core_budget.with_command_reservation(weight, run, {
193
+ memory_mb: gate_plan.unit_memory(weight),
194
+ command: related_scope.COMMAND_NAME,
195
+ is_unit: true
196
+ });
197
+ }
198
+ var test_related_claim = { with_unit_claim };
199
+
200
+ // scripts/test/test-no-base.ts
201
+ var BASE_ROOTS = /* @__PURE__ */ new Set([
202
+ "scripts/git/change-base",
203
+ "scripts/git/git-diff-reads"
204
+ ]);
205
+ var BASE_MODULES = /* @__PURE__ */ new Set([
206
+ ...BASE_ROOTS,
207
+ "scripts/git/changed-file-scope",
208
+ "scripts/git/changed-paths",
209
+ "scripts/git/changed-paths-sync"
210
+ ]);
211
+ var TYPE_ONLY_IMPORT = /^import type (?!from )[^"']*["'][^"']*["']/gmu;
212
+ function text_of(file_path) {
213
+ try {
214
+ return readFileSync(file_path, "utf8");
215
+ } catch {
216
+ return "";
217
+ }
218
+ }
219
+ function names_any(text, names) {
220
+ return names.some((name) => text.includes(name));
221
+ }
222
+ function imports_base(source, file, imports) {
223
+ const runtime = source.replaceAll(TYPE_ONLY_IMPORT, "");
224
+ return direct_importers.names_any(runtime, file, BASE_ROOTS, imports);
225
+ }
226
+ function touches_base(file, reader) {
227
+ if (!related_scope.is_relatable(file)) return false;
228
+ if (BASE_MODULES.has(direct_importers.module_key(file))) return true;
229
+ const source = reader.read_source(file);
230
+ return source !== void 0 && imports_base(source, file, reader.imports);
231
+ }
232
+ function touching(root, changed) {
233
+ const reader = direct_importers.source_reader(root);
234
+ return changed.filter((file) => touches_base(file, reader));
235
+ }
236
+ async function run_in_checkout(root, files, flags2) {
237
+ const directory = await no_base_checkout.create(root);
238
+ try {
239
+ return await test_unit_guard.run_vitest_in(directory, ["related", ...files, "--run", ...flags2]);
240
+ } finally {
241
+ no_base_checkout.remove(directory);
242
+ }
243
+ }
244
+ async function run_if_touched(root, changed, flags2) {
245
+ const files = project_checks.is_kit_repository(root) ? touching(root, changed) : [];
246
+ if (files.length === 0) return 0;
247
+ process.stdout.write(
248
+ `josh test:related: ${String(files.length)} changed file(s) touch the base branch's resolution \u2014 their related tests run again in a checkout with no local main, as CI's has none
249
+ `
250
+ );
251
+ return await test_related_claim.with_unit_claim(
252
+ files,
253
+ async () => await run_in_checkout(root, files, flags2)
254
+ );
255
+ }
256
+ var test_no_base = { imports_base, names_any, run_if_touched, text_of, touching };
257
+
258
+ // scripts/test/test-related-synced.ts
259
+ import { existsSync as existsSync2 } from "node:fs";
260
+ import path2 from "node:path";
261
+ var NOTHING_LEFT = { left: [], shared: [], meeting: [] };
262
+ var UNRESOLVED_EXTENSION = ".svelte";
263
+ var FAILURE = {
264
+ OWN_UNREAD: "the branch's change is not one the graph can vouch for",
265
+ NOTHING_VOUCHED: "no synced module is one the graph can vouch for",
266
+ NO_GRAPH: "no import graph could be built",
267
+ UNRESOLVED: "the work tree holds a file TypeScript does not resolve",
268
+ THREW: "building or walking the graph failed"
269
+ };
270
+ function failed(failure) {
271
+ return { ...NOTHING_LEFT, failure };
272
+ }
273
+ function threw(error) {
274
+ return failed(`${FAILURE.THREW}: ${error instanceof Error ? error.message : String(error)}`);
275
+ }
276
+ function is_unresolved(file) {
277
+ return path2.extname(file) === UNRESOLVED_EXTENSION;
278
+ }
279
+ function is_beyond_graph(file) {
280
+ return whole_suite_files.WHOLE_SUITE_FILES.has(path2.normalize(file)) || is_unresolved(file);
281
+ }
282
+ function is_vouched(root, file) {
283
+ if (!related_scope.is_relatable(file) || is_beyond_graph(file)) return false;
284
+ return existsSync2(path2.join(root, file));
285
+ }
286
+ function own_of(branch, map) {
287
+ if (branch === void 0 || map === void 0) return void 0;
288
+ const data = branch.filter((file) => !related_scope.is_relatable(file));
289
+ const readers = data.flatMap((file) => test_read_map.readers_of(map, file));
290
+ const code = branch.filter((file) => related_scope.is_relatable(file));
291
+ return branch.some((file) => is_beyond_graph(file)) ? void 0 : [...code, ...readers];
292
+ }
293
+ function split_with(graph, inputs) {
294
+ const { root, main_only, own, universe } = inputs;
295
+ const from_branch = graph.runtime_importers(own, universe);
296
+ const meeting = [...graph.runtime_importers(main_only, universe)].filter((file) => from_branch.has(file)).map((file) => path2.relative(root, file));
297
+ const shared = meeting.filter((file) => test_declared_logic.is_test_file(file));
298
+ return { left: main_only.map((file) => path2.relative(root, file)), shared, meeting };
299
+ }
300
+ function absolute_in(root, files) {
301
+ return files.map((file) => path2.join(root, file));
302
+ }
303
+ async function split_by_graph(root, main_only, own) {
304
+ const graph = await import_graph.create(root);
305
+ if (graph === void 0) return failed(FAILURE.NO_GRAPH);
306
+ const universe = await test_pinned_reach.code_universe();
307
+ const unresolved = universe.find((file) => is_unresolved(file));
308
+ if (unresolved !== void 0) {
309
+ return failed(`${FAILURE.UNRESOLVED}: ${path2.relative(root, unresolved)}`);
310
+ }
311
+ return split_with(graph, {
312
+ root,
313
+ main_only: absolute_in(root, main_only),
314
+ own: absolute_in(root, own),
315
+ universe
316
+ });
317
+ }
318
+ async function split(root, synced, branch, map) {
319
+ const own = own_of(branch, map);
320
+ if (own === void 0) return failed(FAILURE.OWN_UNREAD);
321
+ const main_only = synced.filter((file) => !own.includes(file) && is_vouched(root, file));
322
+ if (main_only.length === 0) return failed(FAILURE.NOTHING_VOUCHED);
323
+ try {
324
+ return await split_by_graph(root, main_only, own);
325
+ } catch (error) {
326
+ return threw(error);
327
+ }
328
+ }
329
+ var test_related_synced = { FAILURE, own_of, split, split_with };
330
+
331
+ // scripts/test/test-related-moved.ts
332
+ function is_whole_suite(file) {
333
+ return whole_suite_files.WHOLE_SUITE_FILES.has(file);
334
+ }
335
+ function synced_data(synced, branch) {
336
+ const data = synced.filter((file) => !related_scope.is_relatable(file) || is_whole_suite(file));
337
+ return data.filter((file) => !(branch ?? data).includes(file));
338
+ }
339
+ function without_own_tests(since_map, branch) {
340
+ return since_map.filter(
341
+ (file) => !test_declared_logic.is_test_file(file) || branch?.includes(file) === false
342
+ );
343
+ }
344
+ function narrowed_moved(moved, split2, branch, map) {
345
+ const kept = moved.filter((file) => !split2.left.includes(file));
346
+ const own = split2.shared.length === 0 ? [] : test_related_synced.own_of(branch, map);
347
+ return [.../* @__PURE__ */ new Set([...kept, ...own ?? []])];
348
+ }
349
+ function moved_reading(change, parts, branch, split2) {
350
+ const since_map = [
351
+ ...without_own_tests(change.since_map ?? [], branch),
352
+ ...synced_data(parts.synced, branch),
353
+ ...split2.left
354
+ ];
355
+ const changed = [.../* @__PURE__ */ new Set([...change.changed ?? [], ...split2.left])];
356
+ return { ...change, changed, since_map: [...new Set(since_map)], synced: parts.synced, branch };
357
+ }
358
+ var test_related_moved = { is_whole_suite, moved_reading, narrowed_moved };
359
+
360
+ // scripts/test/test-related-record.ts
361
+ import { mkdtempSync as mkdtempSync2, rmSync as rmSync2 } from "node:fs";
362
+ import { tmpdir as tmpdir2 } from "node:os";
363
+ import path3 from "node:path";
364
+
365
+ // scripts/test/unit-count-file.ts
366
+ import { readFileSync as readFileSync2 } from "node:fs";
367
+ import { writeFile } from "node:fs/promises";
368
+ var COUNT_FILE_ENVIRONMENT = "JOSH_UNIT_COUNT_FILE";
369
+ async function write_count(count, target) {
370
+ if (target === void 0 || target === "") return;
371
+ try {
372
+ await writeFile(target, String(count));
373
+ } catch {
374
+ }
375
+ }
376
+ function read_count(file) {
377
+ try {
378
+ const text = readFileSync2(file, "utf8").trim();
379
+ const count = Number(text);
380
+ return text !== "" && Number.isSafeInteger(count) ? count : void 0;
381
+ } catch {
382
+ return void 0;
383
+ }
384
+ }
385
+ async function write_files(files, target) {
386
+ if (target === void 0 || target === "") return;
387
+ try {
388
+ await writeFile(`${target}.files`, JSON.stringify(files));
389
+ } catch {
390
+ }
391
+ }
392
+ function read_files(target) {
393
+ try {
394
+ const value = json_value.parse_or_undefined(readFileSync2(`${target}.files`, "utf8"));
395
+ return Array.isArray(value) && value.every((file) => typeof file === "string") ? value : [];
396
+ } catch {
397
+ return [];
398
+ }
399
+ }
400
+ var unit_count_file = { COUNT_FILE_ENVIRONMENT, read_count, read_files, write_count, write_files };
401
+
402
+ // scripts/test/test-related-record.ts
403
+ var COUNT_FILE_NAME = "count";
404
+ function set_count_target(target) {
405
+ const { COUNT_FILE_ENVIRONMENT: COUNT_FILE_ENVIRONMENT2 } = unit_count_file;
406
+ if (target === void 0) Reflect.deleteProperty(process.env, COUNT_FILE_ENVIRONMENT2);
407
+ else process.env[COUNT_FILE_ENVIRONMENT2] = target;
408
+ }
409
+ function count_directory() {
410
+ try {
411
+ return mkdtempSync2(path3.join(tmpdir2(), "josh-test-related-"));
412
+ } catch {
413
+ return void 0;
414
+ }
415
+ }
416
+ async function with_test_count(run) {
417
+ const directory = count_directory();
418
+ if (directory === void 0) return { exit_code: await run(), test_files: void 0 };
419
+ const file = path3.join(directory, COUNT_FILE_NAME);
420
+ const previous = process.env[unit_count_file.COUNT_FILE_ENVIRONMENT];
421
+ set_count_target(file);
422
+ try {
423
+ const exit_code = await run();
424
+ return {
425
+ exit_code,
426
+ test_files: unit_count_file.read_count(file),
427
+ passed: unit_count_file.read_files(file)
428
+ };
429
+ } finally {
430
+ set_count_target(previous);
431
+ rmSync2(directory, { recursive: true, force: true });
432
+ }
433
+ }
434
+ function readers_of(input, counted) {
435
+ if (input.scope.mode !== "related") return 0;
436
+ return input.scope.files.filter((file) => !counted.has(path3.relative(input.root, file))).length;
437
+ }
438
+ function triggers_of(input) {
439
+ if (input.scope.mode !== "all" || input.scope.files.length === 0) return {};
440
+ return { trigger_files: input.scope.files.map((file) => path3.relative(input.root, file)) };
441
+ }
442
+ function own_of2(input) {
443
+ const { changed = [], branch, synced = [], since_map = [] } = input;
444
+ const joined = /* @__PURE__ */ new Set([...synced, ...since_map]);
445
+ return changed.filter((file) => branch?.includes(file) ?? !joined.has(file));
446
+ }
447
+ function parts_of(input) {
448
+ const own = own_of2(input);
449
+ const rest = (input.changed ?? []).filter((file) => !own.includes(file));
450
+ return {
451
+ own,
452
+ synced: rest.filter((file) => input.synced.includes(file)),
453
+ since_map: rest.filter(
454
+ (file) => input.since_map.includes(file) && !input.synced.includes(file)
455
+ )
456
+ };
457
+ }
458
+ function reuse_record(reuse) {
459
+ if (reuse === void 0) return {};
460
+ return {
461
+ reused: reuse.reused,
462
+ reuse_missed: reuse.missed,
463
+ reuse_reason: reuse.reason,
464
+ reuse_elapsed_ms: Math.round(reuse.elapsed_ms)
465
+ };
466
+ }
467
+ function select_record(select_elapsed_ms) {
468
+ return select_elapsed_ms === void 0 ? {} : { select_elapsed_ms: Math.round(select_elapsed_ms) };
469
+ }
470
+ function over_cap_record(over_cap, own) {
471
+ if (over_cap === void 0) return {};
472
+ const hub = test_related_cap.hub_of(over_cap, own);
473
+ const count = { over_cap: over_cap.length };
474
+ return hub === void 0 ? count : { ...count, over_cap_hub: hub };
475
+ }
476
+ function branch_parts_record(parts, own) {
477
+ if (parts === void 0) return {};
478
+ const branch = /* @__PURE__ */ new Set([...parts.tracked, ...parts.untracked]);
479
+ const in_branch = own.filter((file) => branch.has(file)).length;
480
+ return {
481
+ branch_tracked: parts.tracked.length,
482
+ branch_untracked: parts.untracked.length,
483
+ branch_base: parts.base,
484
+ changed_in_branch: in_branch,
485
+ changed_off_branch: own.length - in_branch
486
+ };
487
+ }
488
+ function record_of(input, result) {
489
+ const { own, synced, since_map } = parts_of(input);
490
+ const record = {
491
+ ...reuse_record(input.reuse),
492
+ ...branch_parts_record(input.branch_parts, own),
493
+ scope: input.kind ?? related_scope.scope_kind(input.scope),
494
+ changed: own.length,
495
+ synced: synced.length,
496
+ since_map: since_map.length,
497
+ readers: readers_of(input, /* @__PURE__ */ new Set([...own, ...synced, ...since_map])),
498
+ ...triggers_of(input),
499
+ ...over_cap_record(input.over_cap, own),
500
+ ...select_record(input.select_elapsed_ms),
501
+ elapsed_ms: Math.round(result.elapsed_ms)
502
+ };
503
+ return result.test_files === void 0 ? record : { ...record, test_files: result.test_files };
504
+ }
505
+ async function record_run(input, result, ledger) {
506
+ const issue = lane_paths.issue_here();
507
+ await lane_ledger_write.record_test_related({ ...record_of(input, result), issue }, ledger);
508
+ }
509
+ var test_related_record = { own_of: own_of2, record_of, record_run, with_test_count };
510
+
511
+ // scripts/test/test-related-red.ts
512
+ import { existsSync as existsSync3, readFileSync as readFileSync3, statSync as statSync2 } from "node:fs";
513
+ import { stripVTControlCharacters } from "node:util";
514
+ var FAILED_MARK = "failed";
515
+ var OWED_MARK = "no-base";
516
+ var FAILED_FILE_COUNT = /Test Files\s+(?<count>\d+) failed/u;
517
+ function marked(blobs2, mark) {
518
+ return Object.entries(blobs2).filter(([, value]) => value === mark).map(([file]) => file);
519
+ }
520
+ function reading_of(parts, marks) {
521
+ return parts === void 0 ? void 0 : { parts, moved: moved_paths.union_of(parts), ...marks };
522
+ }
523
+ function marks_on(before) {
524
+ const record = review_stamps.test_related_red_stamp.read();
525
+ if (record === void 0 || !file_map_stamp.describes_base(record, before.base)) return {};
526
+ return record.blobs ?? {};
527
+ }
528
+ async function read_red(before) {
529
+ if (before === void 0) return void 0;
530
+ const blobs2 = marks_on(before);
531
+ const failed2 = marked(blobs2, FAILED_MARK);
532
+ if (failed2.length === 0) return void 0;
533
+ const stamp = review_stamps.test_related_red_stamp;
534
+ const parts = await since_green.read_moved_parts(stamp, gate_labels.UNIT_LABEL, void 0, before);
535
+ return reading_of(parts, { failed: failed2, owed: marked(blobs2, OWED_MARK) });
536
+ }
537
+ function green_fallback(fallback) {
538
+ return review_stamps.test_related_red_stamp.read() === void 0 ? fallback : since_green.FALLBACK.AFTER_RED;
539
+ }
540
+ async function narrowing(red) {
541
+ if (red !== void 0) return red;
542
+ const verdict = await since_green.read_verdict(
543
+ review_stamps.test_related_stamp,
544
+ gate_labels.UNIT_LABEL
545
+ );
546
+ if ("fallback" in verdict) return { fallback: green_fallback(verdict.fallback) };
547
+ return { parts: verdict.parts, moved: moved_paths.union_of(verdict.parts), failed: [], owed: [] };
548
+ }
549
+ function is_accounted(output, failed2) {
550
+ const text = stripVTControlCharacters(output);
551
+ if (text.includes("Unhandled Error")) return false;
552
+ const groups = FAILED_FILE_COUNT.exec(text)?.groups ?? {};
553
+ const { count } = groups;
554
+ return count === String(failed2.length);
555
+ }
556
+ function failed_of(scope, started_ms) {
557
+ const log = vitest_failure_summary.unit_log_path(related_scope.vitest_arguments(scope));
558
+ if (!existsSync3(log) || statSync2(log).mtimeMs < started_ms) return [];
559
+ const { failed_files, failed_tests } = vitest_failure_summary;
560
+ const output = readFileSync3(log, "utf8");
561
+ const failed2 = failed_files(failed_tests(output));
562
+ return is_accounted(output, failed2) ? failed2 : [];
563
+ }
564
+ function blobs_of(failed2, owed) {
565
+ const entries = [
566
+ ...owed.map((file) => [file, OWED_MARK]),
567
+ ...failed2.map((file) => [file, FAILED_MARK])
568
+ ];
569
+ return Object.fromEntries(entries);
570
+ }
571
+ function clear() {
572
+ try {
573
+ review_stamps.test_related_red_stamp.remove();
574
+ } catch {
575
+ }
576
+ }
577
+ function write(before, failed2, owed) {
578
+ try {
579
+ review_stamps.test_related_red_stamp.write(
580
+ before.files,
581
+ void 0,
582
+ before.base,
583
+ blobs_of(failed2, owed)
584
+ );
585
+ } catch {
586
+ clear();
587
+ }
588
+ }
589
+ function failed_in(run) {
590
+ return run.first_exit === 0 ? [] : failed_of(run.scope, run.started_ms);
591
+ }
592
+ async function record_red(run) {
593
+ const { before } = run;
594
+ if (before === void 0) return;
595
+ const failed2 = failed_in(run);
596
+ const is_vouched2 = failed2.length > 0 && scoped_green.is_unmoved(before, await gate_tree.read_gate_tree());
597
+ if (is_vouched2) write(before, failed2, run.owed);
598
+ else clear();
599
+ }
600
+ function no_base_files(input) {
601
+ const joined = /* @__PURE__ */ new Set([...input.since_map, ...input.synced]);
602
+ const own = (input.changed ?? []).filter((file) => !joined.has(file));
603
+ return [.../* @__PURE__ */ new Set([...own, ...input.owed])];
604
+ }
605
+ function describe(reading) {
606
+ const { failed: failed2, moved } = reading;
607
+ const label = related_scope.COMMAND_LABEL;
608
+ if (failed2.length === 0) return since_green.describe(label, moved);
609
+ return `${label}: reading only the ${String(failed2.length)} test file(s) that failed in its last run and the ${String(moved.length)} file(s) changed since.`;
610
+ }
611
+ var test_related_red = { describe, narrowing, no_base_files, read_red, record_red };
612
+
613
+ // scripts/test/test-related-reuse.ts
614
+ import path4 from "node:path";
615
+ var NO_RECORD = "no-comparable-green";
616
+ function digest_of(graph, file) {
617
+ const inputs = graph.test_inputs?.(file);
618
+ return inputs === void 0 ? void 0 : input_fingerprint.of_entries(
619
+ inputs.toSorted((left, right) => left.localeCompare(right)).map((input) => `${input}:${input_fingerprint.of_file(input)}`)
620
+ );
621
+ }
622
+ function empty(reason) {
623
+ return { excluded: [], reused: 0, missed: 0, reason };
624
+ }
625
+ function select(graph, tests, green) {
626
+ const excluded = tests.filter((file) => {
627
+ const digest = digest_of(graph, file);
628
+ return digest !== void 0 && green[file] === digest;
629
+ });
630
+ return {
631
+ excluded,
632
+ reused: excluded.length,
633
+ missed: tests.length - excluded.length,
634
+ reason: "closed-inputs-unchanged"
635
+ };
636
+ }
637
+ async function select_scope(root, scope) {
638
+ const recorded = review_stamps.test_related_stamp.read()?.blobs ?? {};
639
+ if (Object.keys(recorded).length === 0) return empty("no-individual-green");
640
+ const graph = await import_graph.create(root);
641
+ if (graph === void 0) return empty("unknown-graph");
642
+ const universe = await test_pinned_reach.code_universe();
643
+ const tests = [...graph.runtime_importers(scope.files, universe)].filter(
644
+ (file) => test_declared_logic.is_test_file(file)
645
+ );
646
+ const green = Object.fromEntries(
647
+ Object.entries(recorded).map(([file, digest]) => [path4.join(root, file), digest])
648
+ );
649
+ return select(graph, tests, green);
650
+ }
651
+ async function compare(root, scope, tree) {
652
+ const parts = await since_green.read_moved_parts(
653
+ review_stamps.test_related_stamp,
654
+ gate_labels.UNIT_LABEL,
655
+ void 0,
656
+ tree
657
+ );
658
+ if (parts === void 0 || parts.synced.length === 0) return empty(NO_RECORD);
659
+ const moved = moved_paths.union_of(parts);
660
+ if (moved.some((file) => whole_suite_files.WHOLE_SUITE_FILES.has(file))) {
661
+ return empty("whole-suite-input");
662
+ }
663
+ return await select_scope(root, scope);
664
+ }
665
+ async function blobs(root, files) {
666
+ if (files.length === 0) return {};
667
+ try {
668
+ const graph = await import_graph.create(root);
669
+ if (graph === void 0) return {};
670
+ return Object.fromEntries(
671
+ files.flatMap((file) => {
672
+ const absolute = path4.resolve(root, file);
673
+ const digest = digest_of(graph, absolute);
674
+ return digest === void 0 ? [] : [[path4.relative(root, absolute), digest]];
675
+ })
676
+ );
677
+ } catch {
678
+ return {};
679
+ }
680
+ }
681
+ async function read(root, scope, tree) {
682
+ const started = performance.now();
683
+ try {
684
+ const result = tree === void 0 || scope.mode !== "related" ? empty(NO_RECORD) : await compare(root, scope, tree);
685
+ return { ...result, elapsed_ms: performance.now() - started };
686
+ } catch {
687
+ return { ...empty("unreadable-inputs"), elapsed_ms: performance.now() - started };
688
+ }
689
+ }
690
+ async function retained(root, tree) {
691
+ const parts = await since_green.read_moved_parts(
692
+ review_stamps.test_related_stamp,
693
+ gate_labels.UNIT_LABEL,
694
+ void 0,
695
+ tree
696
+ );
697
+ if (parts === void 0 || moved_paths.union_of(parts).length > 0) return [];
698
+ const recorded = review_stamps.test_related_stamp.read()?.blobs ?? {};
699
+ const current = await blobs(root, Object.keys(recorded));
700
+ return Object.keys(recorded).filter((file) => current[file] === recorded[file]);
701
+ }
702
+ function flags(reuse) {
703
+ if (reuse === void 0 || reuse.excluded.length === 0) return [];
704
+ return ["--passWithNoTests", ...reuse.excluded.flatMap((file) => ["--exclude", file])];
705
+ }
706
+ var test_related_reuse = { blobs, flags, read, retained };
707
+
708
+ // scripts/test/test-related-run.ts
709
+ function conclusive_tree(before) {
710
+ if (before === void 0) return void 0;
711
+ return test_unit_guard.is_running(process.cwd()) ? before : void 0;
712
+ }
713
+ async function run_vitest(scope, args, description) {
714
+ return await test_related_claim.with_unit_claim(
715
+ scope.mode === "related" ? scope.files : void 0,
716
+ async () => await test_unit_guard.run_guarded_vitest(
717
+ process.cwd(),
718
+ args,
719
+ related_scope.COMMAND_NAME,
720
+ description
721
+ )
722
+ );
723
+ }
724
+ async function run_scope(scope, root, command_arguments, reuse) {
725
+ const description = related_scope.describe_scope(scope, root);
726
+ if (scope.mode === "none") {
727
+ process.stdout.write(`${description}
728
+ `);
729
+ return 0;
730
+ }
731
+ const vitest_arguments = related_scope.vitest_arguments(scope, [
732
+ ...changed_file_scope.flags_of(command_arguments),
733
+ ...related_heavy_tests.exclude_flags(scope, root),
734
+ ...test_related_reuse.flags(reuse)
735
+ ]);
736
+ return await run_vitest(scope, vitest_arguments, description);
737
+ }
738
+ async function run_and_record(input, command_arguments) {
739
+ const started = performance.now();
740
+ const { exit_code, test_files, passed } = await test_related_record.with_test_count(
741
+ async () => await run_scope(input.scope, input.root, command_arguments, input.reuse)
742
+ );
743
+ input.passed = passed ?? [];
744
+ await test_related_record.record_run(input, {
745
+ elapsed_ms: performance.now() - started,
746
+ test_files
747
+ });
748
+ return exit_code;
749
+ }
750
+ async function with_no_base_pass(input, command_arguments, exit_code) {
751
+ if (exit_code !== 0) return exit_code;
752
+ const flags2 = changed_file_scope.flags_of(command_arguments);
753
+ return await test_no_base.run_if_touched(input.root, test_related_red.no_base_files(input), flags2);
754
+ }
755
+ function proven_files(input) {
756
+ return [...input.passed ?? [], ...input.reuse?.excluded ?? []];
757
+ }
758
+ async function record_green(input, tree, exit_code) {
759
+ if (exit_code !== 0 || tree === void 0) {
760
+ await scoped_green.record_if_green(review_stamps.test_related_stamp, {
761
+ before: tree,
762
+ exit_code
763
+ });
764
+ return;
765
+ }
766
+ const files = [...proven_files(input), ...await test_related_reuse.retained(input.root, tree)];
767
+ const blobs2 = await test_related_reuse.blobs(input.root, files);
768
+ await scoped_green.record_if_green(review_stamps.test_related_stamp, {
769
+ before: tree,
770
+ exit_code,
771
+ ...Object.keys(blobs2).length > 0 && { blobs: blobs2 }
772
+ });
773
+ }
774
+ async function run_and_vouch(input, command_arguments, before) {
775
+ const started_ms = Date.now();
776
+ const first_exit = await run_and_record(input, command_arguments);
777
+ const exit_code = await with_no_base_pass(input, command_arguments, first_exit);
778
+ const tree = conclusive_tree(before);
779
+ await record_green(input, tree, exit_code);
780
+ await test_related_red.record_red({
781
+ before: tree,
782
+ scope: input.scope,
783
+ first_exit,
784
+ started_ms,
785
+ owed: test_related_red.no_base_files(input)
786
+ });
787
+ return exit_code;
788
+ }
789
+ var test_related_run = { run_and_record, run_and_vouch };
790
+
791
+ // scripts/test/test-related-whole.ts
792
+ function is_whole_suite_kept(given, root, environment = process.env) {
793
+ if (!given.includes(gate_labels.KEEP_WHOLE_SUITE_FLAG)) return false;
794
+ return lane_paths.lane_issue_of(root, environment) === void 0;
795
+ }
796
+ var test_related_whole = { is_whole_suite_kept };
797
+
798
+ // scripts/test/test-related.ts
799
+ async function read_or_undefined(read2) {
800
+ try {
801
+ return await read2();
802
+ } catch {
803
+ return void 0;
804
+ }
805
+ }
806
+ async function branch_change() {
807
+ return await read_or_undefined(async () => await changed_paths.read_changed_paths(false));
808
+ }
809
+ async function change_since(root, map) {
810
+ const since = await read_or_undefined(
811
+ async () => await changed_paths.read_changed_since(map.commit)
812
+ );
813
+ if (since === void 0) return void 0;
814
+ return test_read_map.changed_since_tree(
815
+ map,
816
+ since,
817
+ input_fingerprint.of_files(root, Object.keys(map.dirty))
818
+ );
819
+ }
820
+ async function map_change(root, map) {
821
+ const changed = await change_since(root, map);
822
+ if (changed === void 0) return { changed: await branch_change(), map: void 0 };
823
+ const branch = await branch_change();
824
+ if (branch === void 0) return { changed, map };
825
+ return { changed, map, since_map: changed.filter((file) => !branch.includes(file)) };
826
+ }
827
+ async function explicit_change(root, explicit, map) {
828
+ const since = map === void 0 ? void 0 : await change_since(root, map);
829
+ if (since === void 0) return { changed: explicit, map: void 0 };
830
+ const named = new Set(explicit);
831
+ const since_map = since.filter((file) => !named.has(file));
832
+ return { changed: [...named, ...since_map], map, since_map };
833
+ }
834
+ async function is_green_narrowable(is_whole) {
835
+ if (!is_whole) return true;
836
+ return direct_importers.every_test_imports_of(await branch_change() ?? []).length === 0;
837
+ }
838
+ async function since_green_change(root, map, is_whole, red) {
839
+ const reading = await is_green_narrowable(is_whole) ? await test_related_red.narrowing(red) : { fallback: since_green.FALLBACK.HUB };
840
+ if ("fallback" in reading) return reading.fallback;
841
+ const { parts, moved, failed: failed2 } = reading;
842
+ if (moved.length + failed2.length === 0) return { changed: [], map, is_unmoved: true };
843
+ const branch = await branch_change();
844
+ const split2 = await test_related_synced.split(root, parts.synced, branch, map);
845
+ const change = await explicit_change(
846
+ root,
847
+ [...test_related_moved.narrowed_moved(moved, split2, branch, map), ...failed2],
848
+ map
849
+ );
850
+ if (change.map === void 0) return since_green.FALLBACK.NO_READ_MAP;
851
+ process.stdout.write(`${test_related_red.describe(reading)}
852
+ `);
853
+ return test_related_moved.moved_reading(change, parts, branch, split2);
854
+ }
855
+ async function whole_change(root, map, is_whole, red) {
856
+ const since = await since_green_change(root, map, is_whole, red);
857
+ if (typeof since !== "string") return since;
858
+ process.stdout.write(`${since_green.fallback_line(gate_labels.UNIT_LABEL, since)}
859
+ `);
860
+ return map === void 0 ? { changed: await branch_change(), map } : await map_change(root, map);
861
+ }
862
+ function explicit_files(root, command_arguments) {
863
+ return command_arguments.filter((argument) => !changed_file_scope.is_flag(argument)).map((file) => path5.relative(root, path5.resolve(file)));
864
+ }
865
+ async function read_change(root, command_arguments, is_whole, red) {
866
+ const map = test_read_map.read_map(root);
867
+ const explicit = explicit_files(root, command_arguments);
868
+ return explicit.length > 0 ? await explicit_change(root, explicit, map) : await whole_change(root, map, is_whole, red);
869
+ }
870
+ async function recorded_files(change) {
871
+ const { changed, map } = change;
872
+ if (changed === void 0 || map === void 0) return /* @__PURE__ */ new Set();
873
+ const dirty = new Set(Object.keys(map.dirty));
874
+ const candidates = changed.filter((file) => !related_scope.is_relatable(file) && !dirty.has(file));
875
+ return new Set(
876
+ await read_or_undefined(async () => await changed_paths.read_held_at(map.commit, candidates))
877
+ );
878
+ }
879
+ function naming_moved(root, change) {
880
+ const { changed = [], since_map = [], branch = changed } = change;
881
+ const names = changed.filter((file) => !since_map.includes(file) && branch.includes(file)).map((file) => path5.basename(file));
882
+ const code = since_map.filter(
883
+ (file) => related_scope.is_relatable(file) && !test_related_moved.is_whole_suite(file)
884
+ );
885
+ return new Set(
886
+ code.filter(
887
+ (file) => test_no_base.names_any(test_no_base.text_of(path5.join(root, file)), names)
888
+ )
889
+ );
890
+ }
891
+ async function scope_of(root, change, capped) {
892
+ const recorded = await recorded_files(change);
893
+ const naming = naming_moved(root, change);
894
+ const pure_entries = await pure_files_entries.read_moved(root, change.changed);
895
+ return related_scope.resolve_scope({
896
+ root,
897
+ ...change,
898
+ recorded,
899
+ naming_moved: naming,
900
+ pure_entries,
901
+ every_test_importers: capped.importers,
902
+ is_present: existsSync4
903
+ });
904
+ }
905
+ function report_capped(capped, change) {
906
+ test_related_cap.report_over_cap(capped, test_related_record.own_of(change));
907
+ }
908
+ async function capped_of(root, change, is_whole) {
909
+ const files = change.is_unmoved === true ? [] : change.changed ?? [];
910
+ const started_ms = performance.now();
911
+ const capped = await test_related_cap.capped_importers(root, files, is_whole);
912
+ const select_elapsed_ms = performance.now() - started_ms;
913
+ report_capped(capped, change);
914
+ return { capped, select_elapsed_ms };
915
+ }
916
+ async function reaches_tests(root, paths) {
917
+ if (paths.length === 0) return false;
918
+ const change = await explicit_change(root, paths, test_read_map.read_map(root));
919
+ if (change.map === void 0) return true;
920
+ const scope = await scope_of(root, change, test_related_cap.NO_CAP);
921
+ return scope.mode !== "none";
922
+ }
923
+ async function resolve_change(root, change, capped) {
924
+ const { UNMOVED_REASON } = related_scope;
925
+ if (change.is_unmoved === true) return { mode: "none", files: [], reason: UNMOVED_REASON };
926
+ return await scope_of(root, change, capped);
927
+ }
928
+ function owed_of(red) {
929
+ return red?.owed ?? [];
930
+ }
931
+ async function read_run_input(root, command_arguments, is_whole, before) {
932
+ const red = await test_related_red.read_red(before);
933
+ const change = await read_change(root, command_arguments, is_whole, red);
934
+ const { capped, select_elapsed_ms } = await capped_of(root, change, is_whole);
935
+ const { changed, synced = [], since_map = [], branch } = change;
936
+ const scope = await resolve_change(root, change, capped);
937
+ const reuse = await test_related_reuse.read(root, scope, red === void 0 ? before : void 0);
938
+ return {
939
+ scope,
940
+ root,
941
+ changed,
942
+ synced,
943
+ since_map,
944
+ branch,
945
+ owed: owed_of(red),
946
+ reuse,
947
+ over_cap: capped.over_cap,
948
+ select_elapsed_ms
949
+ };
950
+ }
951
+ function is_narrowed_argument(root, argument, over_cap) {
952
+ if (direct_importers.is_every_test_import(root, argument)) return true;
953
+ return over_cap.includes(path5.relative(root, path5.resolve(argument)));
954
+ }
955
+ function report_unhanded(root, command_arguments, input) {
956
+ const over_cap = input.over_cap ?? [];
957
+ changed_file_scope.report_unusable_arguments(
958
+ command_arguments.filter(
959
+ (argument) => related_scope.is_relatable(argument) && !is_narrowed_argument(root, argument, over_cap)
960
+ ),
961
+ input.scope,
962
+ related_scope.COMMAND_LABEL
963
+ );
964
+ }
965
+ async function run_touched(given) {
966
+ const { TOUCHED_FLAG, TOUCHED_KIND } = test_related_touched;
967
+ const command_arguments = given.filter((argument) => argument !== TOUCHED_FLAG);
968
+ const root = await changed_file_scope.repository_root_or_cwd();
969
+ const explicit = explicit_files(root, command_arguments);
970
+ const changed = explicit.length > 0 ? explicit : await branch_change();
971
+ const scope = await test_related_touched.read_scope(root, changed);
972
+ const input = { scope, root, changed, synced: [], since_map: [], kind: TOUCHED_KIND };
973
+ return await test_related_run.run_and_record(input, command_arguments);
974
+ }
975
+ async function run_fresh(given, tree) {
976
+ const { KEEP_WHOLE_SUITE_FLAG } = gate_labels;
977
+ const command_arguments = given.filter((argument) => argument !== KEEP_WHOLE_SUITE_FLAG);
978
+ const root = await changed_file_scope.repository_root_or_cwd();
979
+ const before = command_arguments.length === 0 ? tree : void 0;
980
+ const is_whole = test_related_whole.is_whole_suite_kept(given, root);
981
+ const input = await read_run_input(root, command_arguments, is_whole, before);
982
+ const branch_parts = await read_or_undefined(changed_paths.read_changed_parts);
983
+ report_unhanded(root, command_arguments, input);
984
+ return await test_related_run.run_and_vouch({ ...input, branch_parts }, command_arguments, before);
985
+ }
986
+ async function run_related_tests(given) {
987
+ return await test_related_verdict.run(
988
+ given,
989
+ async (before) => given.includes(test_related_touched.TOUCHED_FLAG) ? await run_touched(given) : await run_fresh(given, before)
990
+ );
991
+ }
992
+ var test_related = { reaches_tests, run_related_tests };
993
+
994
+ export {
995
+ test_related_synced,
996
+ test_related
997
+ };