@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,1381 @@
1
+ import {
2
+ core_weights,
3
+ package_version_schema,
4
+ project_checks,
5
+ resolve_local_bin,
6
+ resolve_package_bin,
7
+ unit_worker_share
8
+ } from "./chunk-L6IZZ2IL.js";
9
+ import {
10
+ ESLINT_RELATED_CACHE_FILE,
11
+ ESLINT_RELATED_CACHE_FLAGS,
12
+ PRETTIER_RELATED_CACHE_FLAGS,
13
+ changed_paths,
14
+ find_package_directory,
15
+ package_manifest,
16
+ poll,
17
+ process_owner_schema
18
+ } from "./chunk-UZXMFOVK.js";
19
+ import {
20
+ lane_ledger_write,
21
+ lane_paths,
22
+ process_identity
23
+ } from "./chunk-YRKS5ZKE.js";
24
+ import {
25
+ MS_PER_SECOND,
26
+ PLATFORM_TEMP_ROOT,
27
+ PROBE_TIMEOUT_MS,
28
+ execa,
29
+ external_exports,
30
+ git_command,
31
+ json_value,
32
+ stamp_file
33
+ } from "./chunk-CY3ADSDR.js";
34
+
35
+ // scripts/gate/toolchain-inputs.ts
36
+ import { createHash } from "node:crypto";
37
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
38
+ import path from "node:path";
39
+ var PACKAGE_FILES = [
40
+ "package.json",
41
+ "pnpm-lock.yaml",
42
+ "pnpm-workspace.yaml",
43
+ "package-lock.json",
44
+ "yarn.lock",
45
+ "bun.lock",
46
+ "bun.lockb",
47
+ ".npmrc",
48
+ "node_modules/.modules.yaml"
49
+ ];
50
+ var CONFIG_ENTRIES = [
51
+ /^eslint\.config\.[cm]?[jt]s$/u,
52
+ /^tsconfig(?:\.[\w-]+)?\.json$/u
53
+ ];
54
+ var CONFIG_DIRECTORIES = /* @__PURE__ */ new Set(["eslint", "tsconfig"]);
55
+ var TEST_MARKER = ".test.";
56
+ var SEPARATOR = "/";
57
+ var DIGEST_ALGORITHM = "sha256";
58
+ function by_code_unit(left, right) {
59
+ if (left === right) return 0;
60
+ return left < right ? -1 : 1;
61
+ }
62
+ function to_posix(relative) {
63
+ return relative.split(path.sep).join(SEPARATOR);
64
+ }
65
+ function is_config_entry(name) {
66
+ return CONFIG_ENTRIES.some((entry) => entry.test(name));
67
+ }
68
+ function is_config_module(relative) {
69
+ const [top = ""] = relative.split(SEPARATOR, 1);
70
+ return CONFIG_DIRECTORIES.has(top) && !path.basename(relative).includes(TEST_MARKER);
71
+ }
72
+ function is_input(relative) {
73
+ const posix = to_posix(relative);
74
+ if (PACKAGE_FILES.includes(posix)) return true;
75
+ return is_config_entry(posix) || is_config_module(posix);
76
+ }
77
+ function modules_under(root, directory) {
78
+ const absolute = path.join(root, directory);
79
+ if (!existsSync(absolute)) return [];
80
+ return readdirSync(absolute, { recursive: true, withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => to_posix(path.relative(root, path.join(entry.parentPath, entry.name)))).filter((relative) => is_config_module(relative));
81
+ }
82
+ function paths(root) {
83
+ const present = PACKAGE_FILES.filter((relative) => existsSync(path.join(root, relative)));
84
+ const entries = readdirSync(root).filter((name) => is_config_entry(name));
85
+ const modules = [...CONFIG_DIRECTORIES].flatMap((directory) => modules_under(root, directory));
86
+ return [...present, ...entries, ...modules].toSorted(by_code_unit);
87
+ }
88
+ function read_or_empty(file) {
89
+ try {
90
+ return readFileSync(file);
91
+ } catch {
92
+ return new Uint8Array();
93
+ }
94
+ }
95
+ function digest(root) {
96
+ const hash = createHash(DIGEST_ALGORITHM);
97
+ for (const relative of paths(root)) {
98
+ hash.update(`${relative}\0`).update(read_or_empty(path.join(root, relative))).update("\0");
99
+ }
100
+ return hash.digest("hex");
101
+ }
102
+ var toolchain_inputs = { digest, is_input, PACKAGE_FILES, paths };
103
+
104
+ // scripts/run/board/run-board-usage-rusage.ts
105
+ var PROC_LIBRARY = "/usr/lib/libproc.dylib";
106
+ var SYSTEM_LIBRARY = "/usr/lib/libSystem.B.dylib";
107
+ var RUSAGE_INFO_V2 = 2;
108
+ var RUSAGE_INFO_V2_BYTES = 160;
109
+ var USER_TIME_OFFSET = 16;
110
+ var SYSTEM_TIME_OFFSET = 24;
111
+ var CHILD_USER_TIME_OFFSET = 96;
112
+ var CHILD_SYSTEM_TIME_OFFSET = 104;
113
+ var PHYS_FOOTPRINT_OFFSET = 72;
114
+ var TIME_OFFSETS = [
115
+ USER_TIME_OFFSET,
116
+ SYSTEM_TIME_OFFSET,
117
+ CHILD_USER_TIME_OFFSET,
118
+ CHILD_SYSTEM_TIME_OFFSET
119
+ ];
120
+ var TIMEBASE_BYTES = 8;
121
+ var DENOM_OFFSET = 4;
122
+ var NS_PER_MS = 1e6;
123
+ var EXPERIMENTAL_WARNING = "ExperimentalWarning";
124
+ var DARWIN = "darwin";
125
+ var PROC_PID_RUSAGE = {
126
+ proc_pid_rusage: { arguments: ["int32", "int32", "buffer"], return: "int32" }
127
+ };
128
+ var MACH_TIMEBASE_INFO = {
129
+ mach_timebase_info: { arguments: ["buffer"], return: "int32" }
130
+ };
131
+ function cpu_ms_of(buffer, timebase) {
132
+ const ticks = TIME_OFFSETS.reduce(
133
+ (sum, offset) => sum + Number(buffer.readBigUInt64LE(offset)),
134
+ 0
135
+ );
136
+ return ticks * timebase.numer / timebase.denom / NS_PER_MS;
137
+ }
138
+ function quiet_ffi(load) {
139
+ const emit_warning = process.emitWarning;
140
+ process.emitWarning = function quiet(warning, ...rest) {
141
+ if (rest[0] !== EXPERIMENTAL_WARNING) Reflect.apply(emit_warning, process, [warning, ...rest]);
142
+ };
143
+ try {
144
+ return load("node:ffi");
145
+ } finally {
146
+ process.emitWarning = emit_warning;
147
+ }
148
+ }
149
+ function timebase_of(ffi) {
150
+ const buffer = Buffer.alloc(TIMEBASE_BYTES);
151
+ ffi.dlopen(SYSTEM_LIBRARY, MACH_TIMEBASE_INFO).functions.mach_timebase_info(buffer);
152
+ return { numer: buffer.readUInt32LE(0), denom: buffer.readUInt32LE(DENOM_OFFSET) };
153
+ }
154
+ function reader_of(ffi) {
155
+ const timebase = timebase_of(ffi);
156
+ const { proc_pid_rusage } = ffi.dlopen(PROC_LIBRARY, PROC_PID_RUSAGE).functions;
157
+ const buffer = Buffer.alloc(RUSAGE_INFO_V2_BYTES);
158
+ return function read(pid) {
159
+ if (proc_pid_rusage(pid, RUSAGE_INFO_V2, buffer) !== 0) return void 0;
160
+ const footprint_bytes = Number(buffer.readBigUInt64LE(PHYS_FOOTPRINT_OFFSET));
161
+ return { cpu_ms: cpu_ms_of(buffer, timebase), footprint_bytes };
162
+ };
163
+ }
164
+ function load_builtin(id) {
165
+ return process.getBuiltinModule(id);
166
+ }
167
+ function rusage_reader(platform, load) {
168
+ if (platform !== DARWIN) return void 0;
169
+ try {
170
+ const ffi = quiet_ffi(load);
171
+ return ffi === void 0 ? void 0 : reader_of(ffi);
172
+ } catch {
173
+ return void 0;
174
+ }
175
+ }
176
+ var run_board_usage_rusage = { cpu_ms_of, load_builtin, quiet_ffi, rusage_reader };
177
+
178
+ // scripts/lint/lint-related-scope.ts
179
+ import path3 from "node:path";
180
+
181
+ // scripts/git/changed-file-scope.ts
182
+ import path2 from "node:path";
183
+ var UNREADABLE_REASON = "the changed files could not be read";
184
+ var LISTED_FILE_LIMIT = 10;
185
+ async function repository_root_or_cwd() {
186
+ try {
187
+ return await git_command.repository_root();
188
+ } catch {
189
+ return process.cwd();
190
+ }
191
+ }
192
+ async function read_changed_files(root) {
193
+ try {
194
+ const relative_paths = await changed_paths.read_changed_paths(false);
195
+ return relative_paths.map((relative) => path2.join(root, relative));
196
+ } catch {
197
+ return void 0;
198
+ }
199
+ }
200
+ function select_files(paths2, inputs) {
201
+ return paths2.filter(
202
+ (file_path) => inputs.is_selectable(file_path) && inputs.is_present(file_path)
203
+ );
204
+ }
205
+ function all_scope(reason) {
206
+ return { mode: "all", files: [], reason };
207
+ }
208
+ function resolve_scope(paths2, inputs) {
209
+ if (paths2 === void 0) return all_scope(UNREADABLE_REASON);
210
+ const files = select_files(paths2, inputs);
211
+ if (files.length === 0) return all_scope(inputs.nothing_reason);
212
+ return { mode: "related", files, reason: `${String(files.length)} changed file(s)` };
213
+ }
214
+ function format_file_list(files, root) {
215
+ const listed = files.slice(0, LISTED_FILE_LIMIT).map((file) => ` - ${path2.relative(root, file)}`);
216
+ const hidden = files.length - listed.length;
217
+ if (hidden > 0) listed.push(` \u2026 and ${String(hidden)} more`);
218
+ return listed.join("\n");
219
+ }
220
+ function describe_scope(scope, root, vocabulary) {
221
+ if (scope.mode === "all") {
222
+ return `${vocabulary.label}: ${scope.reason} \u2014 ${vocabulary.fallback_suffix}.`;
223
+ }
224
+ return `${vocabulary.label}: ${scope.reason} \u2014 ${vocabulary.narrowed_suffix}.
225
+ ${format_file_list(scope.files, root)}`;
226
+ }
227
+ var ARGV_START = 2;
228
+ var FLAG_PREFIX = "-";
229
+ function is_flag(argument) {
230
+ return argument.startsWith(FLAG_PREFIX);
231
+ }
232
+ function explicit_files_of(command_arguments) {
233
+ return command_arguments.filter((argument) => !is_flag(argument));
234
+ }
235
+ function flags_of(command_arguments) {
236
+ return command_arguments.filter((argument) => is_flag(argument));
237
+ }
238
+ async function resolve_command_scope(request) {
239
+ const explicit_files = explicit_files_of(request.command_arguments);
240
+ if (explicit_files.length === 0) {
241
+ return resolve_scope(await read_changed_files(request.root), request.inputs);
242
+ }
243
+ return resolve_scope(
244
+ explicit_files.map((file) => path2.resolve(file)),
245
+ request.inputs
246
+ );
247
+ }
248
+ function report_unusable_arguments(command_arguments, scope, label) {
249
+ const narrowed = new Set(scope.files);
250
+ const unusable = explicit_files_of(command_arguments).filter(
251
+ (file) => !narrowed.has(path2.resolve(file))
252
+ );
253
+ if (unusable.length === 0) return;
254
+ process.stdout.write(`${label}: ignored \u2014 not a file this check reads: ${unusable.join(" ")}
255
+ `);
256
+ }
257
+ var changed_file_scope = {
258
+ ARGV_START,
259
+ LISTED_FILE_LIMIT,
260
+ UNREADABLE_REASON,
261
+ describe_scope,
262
+ flags_of,
263
+ format_file_list,
264
+ is_flag,
265
+ read_changed_files,
266
+ report_unusable_arguments,
267
+ repository_root_or_cwd,
268
+ resolve_command_scope,
269
+ resolve_scope,
270
+ select_files
271
+ };
272
+
273
+ // scripts/lint/lint-related-scope.ts
274
+ var LINTABLE_EXTENSIONS = /* @__PURE__ */ new Set([
275
+ ".ts",
276
+ ".tsx",
277
+ ".mts",
278
+ ".cts",
279
+ ".js",
280
+ ".jsx",
281
+ ".mjs",
282
+ ".cjs",
283
+ ".svelte",
284
+ ".vue",
285
+ ".md",
286
+ ".mdx",
287
+ ".json",
288
+ ".jsonc",
289
+ ".json5",
290
+ ".yaml",
291
+ ".yml",
292
+ ".css",
293
+ ".scss",
294
+ ".less",
295
+ ".html",
296
+ ".graphql",
297
+ ".gql"
298
+ ]);
299
+ var NOTHING_LINTABLE_REASON = "no changed file is one prettier or eslint reads";
300
+ var COMMAND_NAME = "lint:related";
301
+ var COMMAND_LABEL = `josh ${COMMAND_NAME}`;
302
+ var VOCABULARY = {
303
+ label: COMMAND_LABEL,
304
+ fallback_suffix: "checking the whole tree instead",
305
+ narrowed_suffix: "checking only them"
306
+ };
307
+ var PRETTIER_ARGS = ["exec", "prettier", "--check", "--ignore-unknown"];
308
+ var ESLINT_ARGS = ["exec", "eslint"];
309
+ var ESLINT_SCOPED_FLAGS = ["--no-warn-ignored"];
310
+ function is_lintable(file_path) {
311
+ return LINTABLE_EXTENSIONS.has(path3.extname(file_path));
312
+ }
313
+ function scope_inputs(is_present) {
314
+ return { is_present, is_selectable: is_lintable, nothing_reason: NOTHING_LINTABLE_REASON };
315
+ }
316
+ function describe_scope2(scope, root) {
317
+ return changed_file_scope.describe_scope(scope, root, VOCABULARY);
318
+ }
319
+ var RELATED_CACHES = {
320
+ eslint_file: ESLINT_RELATED_CACHE_FILE,
321
+ eslint_flags: ESLINT_RELATED_CACHE_FLAGS,
322
+ prettier_flags: PRETTIER_RELATED_CACHE_FLAGS
323
+ };
324
+ function prettier_arguments(files, caches = RELATED_CACHES, directory = process.cwd()) {
325
+ const targets = project_checks.prettier_targets(directory, files);
326
+ return [...PRETTIER_ARGS, ...targets, ...caches.prettier_flags];
327
+ }
328
+ function eslint_arguments(files, caches = RELATED_CACHES) {
329
+ return [...ESLINT_ARGS, ...files, ...caches.eslint_flags, ...ESLINT_SCOPED_FLAGS];
330
+ }
331
+ var lint_related_scope = {
332
+ COMMAND_LABEL,
333
+ NOTHING_LINTABLE_REASON,
334
+ RELATED_CACHES,
335
+ describe_scope: describe_scope2,
336
+ eslint_arguments,
337
+ is_lintable,
338
+ prettier_arguments,
339
+ scope_inputs
340
+ };
341
+
342
+ // scripts/josh/josh-logic.ts
343
+ import { existsSync as existsSync3 } from "node:fs";
344
+ import path8 from "node:path";
345
+ import { fileURLToPath } from "node:url";
346
+
347
+ // scripts/gate/core-budget.ts
348
+ import { randomUUID } from "node:crypto";
349
+ import { readdirSync as readdirSync2 } from "node:fs";
350
+ import { availableParallelism as availableParallelism2 } from "node:os";
351
+ import path5 from "node:path";
352
+
353
+ // scripts/gate/core-budget-timing.ts
354
+ var POLL_INTERVAL_MS = 50;
355
+ var WAIT_CAP_MS = 12e4;
356
+ var EASE_WINDOW_MS = 3e4;
357
+ async function default_sleep(ms) {
358
+ await new Promise((resolve) => {
359
+ setTimeout(resolve, ms);
360
+ });
361
+ }
362
+ function resolve_cadence(options) {
363
+ return {
364
+ poll_interval_ms: options.poll_interval_ms ?? POLL_INTERVAL_MS,
365
+ wait_cap_ms: options.wait_cap_ms ?? WAIT_CAP_MS,
366
+ ease_window_ms: options.ease_window_ms ?? EASE_WINDOW_MS
367
+ };
368
+ }
369
+ function resolve_timing(options) {
370
+ return {
371
+ now: options.now ?? Date.now,
372
+ sleep: options.sleep ?? default_sleep,
373
+ ...resolve_cadence(options)
374
+ };
375
+ }
376
+ var core_budget_timing = { WAIT_CAP_MS, resolve_timing };
377
+
378
+ // scripts/gate/core-admission.ts
379
+ var RAMP_UP_MS = 3e4;
380
+ var BYPASS_WINDOW_MS = 3e4;
381
+ var WAIT_CAP_SHARE = 0.5;
382
+ var HEAVIER_BYPASS_WINDOW_MS = core_budget_timing.WAIT_CAP_MS * WAIT_CAP_SHARE;
383
+ var MIN_GRANT = 1;
384
+ var NARROW_DIVISOR = 2;
385
+ function priority_rank(reservation) {
386
+ return reservation.is_priority === true ? 0 : 1;
387
+ }
388
+ function compare_claim(left, right) {
389
+ const by_priority = priority_rank(left.reservation) - priority_rank(right.reservation);
390
+ if (by_priority !== 0) return by_priority;
391
+ const by_time = left.reservation.claimed_at - right.reservation.claimed_at;
392
+ return by_time === 0 ? left.key.localeCompare(right.key) : by_time;
393
+ }
394
+ function add_load(totals, reservation) {
395
+ totals.cores += reservation.granted ?? reservation.weight;
396
+ totals.memory_mb += reservation.memory_mb ?? 0;
397
+ }
398
+ function exceeds(totals, budget) {
399
+ return totals.cores > budget.cores || totals.memory_mb > budget.memory_mb;
400
+ }
401
+ function sum_load(reservations) {
402
+ const load = { cores: 0, memory_mb: 0 };
403
+ for (const entry of reservations) add_load(load, entry.reservation);
404
+ return load;
405
+ }
406
+ function is_waiting(entry) {
407
+ return entry.reservation.admitted_at === void 0;
408
+ }
409
+ function fits(entries, limit) {
410
+ return !exceeds(sum_load(entries), limit);
411
+ }
412
+ function place(key, reservations) {
413
+ const ordered = reservations.toSorted(compare_claim);
414
+ const index = ordered.findIndex((entry) => entry.key === key);
415
+ const own = ordered[index];
416
+ if (own === void 0) return void 0;
417
+ return {
418
+ own,
419
+ is_oldest: index === 0,
420
+ ahead: ordered.slice(0, index).filter((entry) => is_waiting(entry)),
421
+ running: ordered.filter((entry) => entry.key !== key && !is_waiting(entry))
422
+ };
423
+ }
424
+ function first_waiter_limit(budget) {
425
+ if (budget.is_overloaded === true) return budget;
426
+ return { cores: budget.cores + (budget.busy_excess ?? 0), memory_mb: budget.memory_mb };
427
+ }
428
+ function may_pass_waiter(own, waiter) {
429
+ const since_ms = own.claimed_at - waiter.claimed_at;
430
+ if (priority_rank(waiter) < priority_rank(own)) return false;
431
+ if (since_ms < BYPASS_WINDOW_MS) return true;
432
+ return waiter.weight > own.weight && since_ms < HEAVIER_BYPASS_WINDOW_MS;
433
+ }
434
+ function may_pass({ own, ahead, running }, budget) {
435
+ const is_passable = ahead.every((entry) => may_pass_waiter(own.reservation, entry.reservation));
436
+ return is_passable && fits([...running, own], budget);
437
+ }
438
+ function fits_in_order({ own, ahead, running }, budget) {
439
+ const limit = ahead.length === 0 ? first_waiter_limit(budget) : budget;
440
+ return fits([...running, ...ahead, own], limit);
441
+ }
442
+ function is_memory_held(key, reservations, budget) {
443
+ const placement = place(key, reservations);
444
+ if (placement === void 0) return false;
445
+ if (placement.own.reservation.is_unit === true && budget.memory_pressured !== true) return false;
446
+ return !fits([...placement.running, placement.own], {
447
+ cores: Infinity,
448
+ memory_mb: budget.memory_mb
449
+ });
450
+ }
451
+ function runs_alone(placement, budget) {
452
+ if (!placement.is_oldest || placement.running.length > 0 || placement.own.reservation.is_strict_admission === true) {
453
+ return false;
454
+ }
455
+ return budget.is_overloaded !== true;
456
+ }
457
+ function is_admitted(key, reservations, budget) {
458
+ const placement = place(key, reservations);
459
+ if (placement === void 0 || is_memory_held(key, reservations, budget)) return false;
460
+ if (runs_alone(placement, budget)) return true;
461
+ return fits_in_order(placement, budget) || may_pass(placement, budget);
462
+ }
463
+ function mark_admitted(entries, key) {
464
+ const index = entries.findIndex((entry2) => entry2.key === key);
465
+ const entry = entries[index];
466
+ if (entry === void 0) return;
467
+ entries[index] = {
468
+ ...entry,
469
+ reservation: { ...entry.reservation, admitted_at: entry.reservation.claimed_at }
470
+ };
471
+ }
472
+ function admitted_keys(reservations, budget, memory_budget = Infinity) {
473
+ const limit = { cores: budget, memory_mb: memory_budget };
474
+ const ledger = [...reservations];
475
+ const admitted = /* @__PURE__ */ new Set();
476
+ for (const { key } of reservations.toSorted(compare_claim)) {
477
+ if (!is_admitted(key, ledger, limit)) continue;
478
+ admitted.add(key);
479
+ mark_admitted(ledger, key);
480
+ }
481
+ return admitted;
482
+ }
483
+ function is_ramped(reservation, now) {
484
+ const { admitted_at } = reservation;
485
+ return reservation.is_memory_pending !== true && admitted_at !== void 0 && now - admitted_at >= RAMP_UP_MS;
486
+ }
487
+ function ledger_load(reservations, now) {
488
+ const admitted = reservations.filter((entry) => entry.reservation.admitted_at !== void 0);
489
+ const ramped = admitted.filter((entry) => is_ramped(entry.reservation, now));
490
+ return { cores: sum_load(admitted).cores, memory_mb: sum_load(ramped).memory_mb };
491
+ }
492
+ function total_weight(reservations) {
493
+ return sum_load(reservations).cores;
494
+ }
495
+ function narrowed_weight(key, reservations, budget) {
496
+ const own = reservations.find((entry) => entry.key === key)?.reservation;
497
+ if (own?.is_unit !== true) return void 0;
498
+ const others = reservations.filter(
499
+ (entry) => entry.key !== key && entry.reservation.admitted_at !== void 0
500
+ );
501
+ const room = Math.max(MIN_GRANT, Math.floor(budget - total_weight(others)));
502
+ return room >= own.weight ? void 0 : room;
503
+ }
504
+ function is_too_narrow(key, reservations, granted) {
505
+ if (granted === void 0) return false;
506
+ const own = reservations.find((entry) => entry.key === key)?.reservation;
507
+ return own !== void 0 && granted * NARROW_DIVISOR < own.weight;
508
+ }
509
+ function with_grant(key, reservations, granted) {
510
+ if (granted === void 0) return [...reservations];
511
+ return reservations.map(
512
+ (entry) => entry.key === key ? { ...entry, reservation: { ...entry.reservation, granted } } : entry
513
+ );
514
+ }
515
+ function admitted_load(reservations, budget) {
516
+ const admitted = admitted_keys(reservations, budget);
517
+ return total_weight(reservations.filter((entry) => admitted.has(entry.key)));
518
+ }
519
+ function describe_memory(ledger, budget) {
520
+ if (!Number.isFinite(budget.memory_mb)) return "";
521
+ return ` and ${String(Math.round(ledger.memory_mb))} MB of memory against ${String(Math.round(budget.memory_mb))} MB`;
522
+ }
523
+ function describe_overflow(admission) {
524
+ const { overflow } = admission;
525
+ if (overflow === void 0) return void 0;
526
+ const { ledger, budget } = overflow;
527
+ const waited = String(Math.round(overflow.waited_ms / MS_PER_SECOND));
528
+ const cores = `the ledger held ${String(ledger.cores)} cores against a budget of ${String(budget.cores)}`;
529
+ return `started past the core budget after ${waited}s \u2014 ${cores}${describe_memory(ledger, budget)}`;
530
+ }
531
+ var core_admission = {
532
+ BYPASS_WINDOW_MS,
533
+ HEAVIER_BYPASS_WINDOW_MS,
534
+ RAMP_UP_MS,
535
+ admitted_keys,
536
+ admitted_load,
537
+ compare_claim,
538
+ describe_overflow,
539
+ is_admitted,
540
+ is_memory_held,
541
+ is_too_narrow,
542
+ ledger_load,
543
+ narrowed_weight,
544
+ sum_load,
545
+ with_grant
546
+ };
547
+
548
+ // scripts/gate/busy-average.ts
549
+ var AVERAGE_WINDOW_MS = 3e3;
550
+ function with_reading(samples, reading, ledger_cores, now) {
551
+ const kept = samples.filter((sample) => now - sample.at < AVERAGE_WINDOW_MS);
552
+ const { busy_cores } = reading;
553
+ if (busy_cores === void 0) return kept;
554
+ return [...kept, { at: now, external_cores: Math.max(0, busy_cores - ledger_cores), busy_cores }];
555
+ }
556
+ function mean_busy(samples) {
557
+ if (samples.length === 0) return void 0;
558
+ let total = 0;
559
+ for (const sample of samples) total += sample.busy_cores;
560
+ return total / samples.length;
561
+ }
562
+ function averaged(reading, samples, ledger_cores) {
563
+ if (reading.busy_cores === void 0 || samples.length === 0) return reading;
564
+ let total = 0;
565
+ for (const sample of samples) total += sample.external_cores;
566
+ return { ...reading, busy_cores: ledger_cores + total / samples.length };
567
+ }
568
+ var EASE_CORES = 1;
569
+ function with_ease(ease, busy_cores, now) {
570
+ if (busy_cores === void 0) return ease;
571
+ if (ease === void 0 || busy_cores <= ease.level - EASE_CORES) {
572
+ return { level: busy_cores, eased_at: now };
573
+ }
574
+ return ease;
575
+ }
576
+ function is_unrelieved(ease, now, window_ms) {
577
+ return ease !== void 0 && now - ease.eased_at >= window_ms;
578
+ }
579
+ var busy_average = {
580
+ AVERAGE_WINDOW_MS,
581
+ averaged,
582
+ is_unrelieved,
583
+ mean_busy,
584
+ with_ease,
585
+ with_reading
586
+ };
587
+
588
+ // scripts/gate/core-priority.ts
589
+ var PRIORITY_KEY = "JOSH_CORE_PRIORITY";
590
+ var PRIORITY_VALUE = "1";
591
+ var PRIORITY_ENVIRONMENT = { [PRIORITY_KEY]: PRIORITY_VALUE };
592
+ var UNMARKED_ENVIRONMENT = { [PRIORITY_KEY]: void 0 };
593
+ function marker_field({ is_unit, is_suite }) {
594
+ const is_marked = process.env[PRIORITY_KEY] === PRIORITY_VALUE;
595
+ return is_marked && is_unit !== true && is_suite !== true ? true : void 0;
596
+ }
597
+ var core_priority = { PRIORITY_ENVIRONMENT, PRIORITY_KEY, UNMARKED_ENVIRONMENT, marker_field };
598
+
599
+ // scripts/gate/core-wait.ts
600
+ import path4 from "node:path";
601
+ var WAIT_REASONS = ["cores", "cpu", "memory", "pressure"];
602
+ var REASON_TEXT = {
603
+ cores: "not enough free cores",
604
+ cpu: "CPU saturated",
605
+ memory: "not enough free memory",
606
+ pressure: "memory under pressure"
607
+ };
608
+ function core_reason(key, reservations, budget) {
609
+ const declared = { cores: budget.cores + (budget.busy_excess ?? 0), memory_mb: Infinity };
610
+ return core_admission.is_admitted(key, reservations, declared) ? "cpu" : "cores";
611
+ }
612
+ function wait_reason(key, reservations, budget) {
613
+ const cores_only = { ...budget, memory_mb: Infinity };
614
+ if (!core_admission.is_admitted(key, reservations, cores_only)) {
615
+ return core_reason(key, reservations, budget);
616
+ }
617
+ return budget.memory_pressured === true ? "pressure" : "memory";
618
+ }
619
+ function hold_reason(key, reservations, budget, granted) {
620
+ if (!core_admission.is_admitted(key, reservations, budget)) {
621
+ return wait_reason(key, reservations, budget);
622
+ }
623
+ return core_admission.is_too_narrow(key, reservations, granted) ? "cpu" : void 0;
624
+ }
625
+ function is_outside_held(key, reservations, budget) {
626
+ const unloaded = {
627
+ ...budget,
628
+ cores: budget.cores + (budget.busy_excess ?? 0),
629
+ busy_excess: 0,
630
+ is_overloaded: false
631
+ };
632
+ const granted = core_admission.narrowed_weight(key, reservations, unloaded.cores);
633
+ return hold_reason(key, reservations, unloaded, granted) === void 0;
634
+ }
635
+ var SMALL_CLAIM_CORES = core_weights.CORE_WEIGHTS.lint;
636
+ function unseen_cores(own, reservations, now) {
637
+ const fresh = reservations.filter((entry) => {
638
+ const { admitted_at } = entry.reservation;
639
+ if (admitted_at === void 0) return core_admission.compare_claim(entry, own) < 0;
640
+ return now - admitted_at < busy_average.AVERAGE_WINDOW_MS;
641
+ });
642
+ return core_admission.sum_load(fresh).cores;
643
+ }
644
+ function has_room(weight, budget, room, unseen) {
645
+ if (weight > SMALL_CLAIM_CORES || budget.is_overloaded === true) return false;
646
+ return room.busy_cores !== void 0 && room.busy_cores + unseen + weight <= room.cores;
647
+ }
648
+ function is_ledger_held_small(key, reservations, budget, room) {
649
+ const own = reservations.find((entry) => entry.key === key);
650
+ if (own === void 0) return false;
651
+ const unseen = unseen_cores(own, reservations, room.now);
652
+ if (!has_room(own.reservation.weight, budget, room, unseen)) return false;
653
+ return core_admission.is_admitted(key, reservations, { ...budget, cores: Infinity });
654
+ }
655
+ function is_held_in_vain(key, reservations, budget, room) {
656
+ if (is_outside_held(key, reservations, budget)) return true;
657
+ return is_ledger_held_small(key, reservations, budget, room);
658
+ }
659
+ function wait_line(command, reason) {
660
+ return `\u23F3 ${command ?? "a step"} waits for the core budget \u2014 ${REASON_TEXT[reason]}`;
661
+ }
662
+ function where_of(checkout) {
663
+ return {
664
+ checkout,
665
+ lane: lane_paths.lane_issue_of(checkout),
666
+ lanes_root: lane_paths.lanes_root_of(checkout)
667
+ };
668
+ }
669
+ function place_of(marker, home_root) {
670
+ const { checkout, lane, lanes_root } = marker;
671
+ if (checkout === void 0 || lanes_root === void 0 || lanes_root === home_root) {
672
+ return { lane, elsewhere: void 0 };
673
+ }
674
+ const name = lane === void 0 ? path4.basename(checkout) : `${path4.basename(lanes_root)}/${lane}`;
675
+ return { lane: void 0, elsewhere: name };
676
+ }
677
+ function wait_of(marker, now, home_root) {
678
+ const { command, wait_reason: reason } = marker;
679
+ if (reason === void 0 || marker.admitted_at !== void 0) return [];
680
+ return [{ command, ...place_of(marker, home_root), waited_ms: now - marker.claimed_at, reason }];
681
+ }
682
+ function waits_of(entries, now, home) {
683
+ const home_root = lane_paths.lanes_root_of(home);
684
+ return entries.flatMap((entry) => wait_of(entry.reservation, now, home_root)).toSorted((left, right) => right.waited_ms - left.waited_ms);
685
+ }
686
+ var core_wait = {
687
+ WAIT_REASONS,
688
+ hold_reason,
689
+ is_held_in_vain,
690
+ is_outside_held,
691
+ wait_line,
692
+ wait_reason,
693
+ waits_of,
694
+ where_of
695
+ };
696
+
697
+ // scripts/gate/core-reservation.ts
698
+ var reservation_schema = process_owner_schema.extend({
699
+ weight: external_exports.number(),
700
+ claimed_at: external_exports.number(),
701
+ memory_mb: external_exports.number().optional(),
702
+ admitted_at: external_exports.number().optional(),
703
+ is_unit: external_exports.boolean().optional(),
704
+ is_strict_admission: external_exports.boolean().optional(),
705
+ is_memory_pending: external_exports.boolean().optional(),
706
+ is_priority: external_exports.boolean().optional(),
707
+ granted: external_exports.number().optional(),
708
+ command: external_exports.string().optional(),
709
+ checkout: external_exports.string().optional(),
710
+ lane: external_exports.string().optional(),
711
+ lanes_root: external_exports.string().optional(),
712
+ wait_reason: external_exports.enum(core_wait.WAIT_REASONS).optional()
713
+ });
714
+ function claim_fields(weight, claimed_at, options) {
715
+ const { memory_mb, command, is_unit, is_strict_admission, is_memory_pending } = options;
716
+ return {
717
+ weight,
718
+ claimed_at,
719
+ memory_mb,
720
+ command,
721
+ is_unit,
722
+ is_strict_admission,
723
+ is_memory_pending,
724
+ is_priority: core_priority.marker_field(options),
725
+ ...core_wait.where_of(options.checkout ?? process.cwd())
726
+ };
727
+ }
728
+ function read_reservation(source) {
729
+ const raw = stamp_file.read_stamp_text(source);
730
+ return raw === void 0 ? void 0 : json_value.parse_with(raw, reservation_schema);
731
+ }
732
+ function write_reservation(target, fields) {
733
+ stamp_file.replace_stamp(target, { ...process_identity.own_fields(), ...fields });
734
+ }
735
+ function transfer(handle, pid) {
736
+ const reservation = read_reservation(handle.target);
737
+ if (reservation === void 0) {
738
+ throw new Error("The admitted reservation disappeared before transfer");
739
+ }
740
+ stamp_file.replace_stamp(handle.target, {
741
+ ...reservation,
742
+ pid,
743
+ process_start: process_identity.read_start(pid),
744
+ is_memory_pending: false,
745
+ admitted_at: Date.now()
746
+ });
747
+ }
748
+ var core_reservation = { claim_fields, read_reservation, transfer, write_reservation };
749
+
750
+ // scripts/gate/machine-capacity.ts
751
+ import { readFile } from "node:fs/promises";
752
+ import { availableParallelism, cpus, loadavg, totalmem } from "node:os";
753
+ var SAMPLE_WINDOW_MS = 250;
754
+ var OVERLOAD_FACTOR = 2;
755
+ var BYTES_PER_MB = 1048576;
756
+ var KB_PER_MB = 1024;
757
+ var PERCENT = 100;
758
+ var MEMINFO_PATH = "/proc/meminfo";
759
+ var VMSTAT_PATH = "/proc/vmstat";
760
+ var LINUX_AVAILABLE = /^MemAvailable:\s+(?<kb>\d+) kB/mu;
761
+ var LINUX_SWAP_IN = /^pswpin (?<pages>\d+)$/mu;
762
+ var LINUX_SWAP_OUT = /^pswpout (?<pages>\d+)$/mu;
763
+ var PAGE_SIZE_ARGUMENTS = ["PAGESIZE"];
764
+ var LEVEL_NAME = "kern.memorystatus_level";
765
+ var SWAP_IN_NAME = "vm.compressor.swapper.swapins_total";
766
+ var SWAP_OUT_NAME = "vm.compressor.swapper.swapouts_total";
767
+ var COMPRESSED_NAME = "vm.compressor_input_bytes";
768
+ var PAGE_SIZE_NAME = "hw.pagesize";
769
+ var PRESSURE_NAME = "kern.memorystatus_vm_pressure_level";
770
+ var PRESSURE_HOLD = 4;
771
+ var SWAP_PRESSURE_MB = 16;
772
+ var COMPRESSION_PRESSURE_MB = 64;
773
+ var SYSCTL_ARGUMENTS = [
774
+ LEVEL_NAME,
775
+ SWAP_IN_NAME,
776
+ SWAP_OUT_NAME,
777
+ COMPRESSED_NAME,
778
+ PAGE_SIZE_NAME,
779
+ PRESSURE_NAME
780
+ ];
781
+ var SYSCTL_LINE = /^(?<name>[\w.]+): (?<value>\d+)$/gmu;
782
+ function cpu_times() {
783
+ let busy = 0;
784
+ let idle = 0;
785
+ for (const { times } of cpus()) {
786
+ busy += times.user + times.nice + times.sys + times.irq;
787
+ idle += times.idle;
788
+ }
789
+ return { busy, total: busy + idle };
790
+ }
791
+ function busy_share_between(before, after) {
792
+ const total = after.total - before.total;
793
+ if (total <= 0) return void 0;
794
+ return (after.busy - before.busy) / total;
795
+ }
796
+ function busy_cores_between(before, after, cores) {
797
+ const share = busy_share_between(before, after);
798
+ return share === void 0 ? void 0 : share * cores;
799
+ }
800
+ function sysctl_values(output) {
801
+ const values = [...output.matchAll(SYSCTL_LINE)].map(
802
+ (match) => [match.groups?.["name"] ?? "", Number(match.groups?.["value"])]
803
+ );
804
+ return new Map(values);
805
+ }
806
+ function swapped_pages(pages_in, pages_out) {
807
+ return pages_in === void 0 || pages_out === void 0 ? void 0 : pages_in + pages_out;
808
+ }
809
+ function mb_of(units, unit_bytes) {
810
+ if (units === void 0 || unit_bytes === void 0) return void 0;
811
+ return units * unit_bytes / BYTES_PER_MB;
812
+ }
813
+ function swapped_between(from, to) {
814
+ if (from === void 0 || to === void 0) return void 0;
815
+ return Math.max(0, to - from);
816
+ }
817
+ function parse_darwin_memory(output, total_bytes) {
818
+ const values = sysctl_values(output);
819
+ const level = values.get(LEVEL_NAME);
820
+ return {
821
+ available_mb: level === void 0 ? void 0 : level / PERCENT * (total_bytes / BYTES_PER_MB),
822
+ swapped_mb: mb_of(
823
+ swapped_pages(values.get(SWAP_IN_NAME), values.get(SWAP_OUT_NAME)),
824
+ values.get(PAGE_SIZE_NAME)
825
+ ),
826
+ pressure_level: values.get(PRESSURE_NAME),
827
+ compressed_mb: mb_of(values.get(COMPRESSED_NAME), 1)
828
+ };
829
+ }
830
+ function parse_linux_available(meminfo) {
831
+ const kb = LINUX_AVAILABLE.exec(meminfo)?.groups?.["kb"];
832
+ return kb === void 0 ? void 0 : Number(kb) / KB_PER_MB;
833
+ }
834
+ function pages_of(pattern, vmstat) {
835
+ const pages = pattern.exec(vmstat)?.groups?.["pages"];
836
+ return pages === void 0 ? void 0 : Number(pages);
837
+ }
838
+ function parse_linux_swapped(vmstat, page_bytes) {
839
+ const pages = swapped_pages(pages_of(LINUX_SWAP_IN, vmstat), pages_of(LINUX_SWAP_OUT, vmstat));
840
+ return mb_of(pages, page_bytes);
841
+ }
842
+ async function settled(read) {
843
+ try {
844
+ return await read();
845
+ } catch {
846
+ return void 0;
847
+ }
848
+ }
849
+ async function read_darwin_memory() {
850
+ const { stdout } = await execa("sysctl", SYSCTL_ARGUMENTS, {
851
+ reject: false,
852
+ timeout: PROBE_TIMEOUT_MS
853
+ });
854
+ return parse_darwin_memory(stdout, totalmem());
855
+ }
856
+ async function read_page_size() {
857
+ const { stdout } = await execa("getconf", PAGE_SIZE_ARGUMENTS, { timeout: PROBE_TIMEOUT_MS });
858
+ return stdout;
859
+ }
860
+ async function read_linux_memory() {
861
+ const [meminfo, vmstat, page_size] = await Promise.all([
862
+ settled(async () => await readFile(MEMINFO_PATH, "utf8")),
863
+ settled(async () => await readFile(VMSTAT_PATH, "utf8")),
864
+ settled(read_page_size)
865
+ ]);
866
+ const page_bytes = page_size === void 0 ? void 0 : Number(page_size);
867
+ return {
868
+ available_mb: meminfo === void 0 ? void 0 : parse_linux_available(meminfo),
869
+ swapped_mb: vmstat === void 0 || page_bytes === void 0 ? void 0 : parse_linux_swapped(vmstat, page_bytes),
870
+ pressure_level: void 0
871
+ };
872
+ }
873
+ var UNREAD_MEMORY = {
874
+ available_mb: void 0,
875
+ swapped_mb: void 0,
876
+ pressure_level: void 0
877
+ };
878
+ async function read_memory() {
879
+ if (process.platform === "darwin") return await settled(read_darwin_memory) ?? UNREAD_MEMORY;
880
+ return process.platform === "linux" ? await read_linux_memory() : UNREAD_MEMORY;
881
+ }
882
+ function is_unquoted() {
883
+ return cpus().length > 0 && cpus().length === availableParallelism();
884
+ }
885
+ async function default_sleep2(ms) {
886
+ await new Promise((resolve) => {
887
+ setTimeout(resolve, ms);
888
+ });
889
+ }
890
+ function moved_over(from, to, limit) {
891
+ return (swapped_between(from, to) ?? 0) > limit;
892
+ }
893
+ function is_swapping(before, after) {
894
+ return moved_over(before?.swapped_mb, after.swapped_mb, SWAP_PRESSURE_MB);
895
+ }
896
+ function is_pressured(before, after) {
897
+ return (after.pressure_level ?? 0) >= PRESSURE_HOLD || is_swapping(before, after) || moved_over(before.compressed_mb, after.compressed_mb, COMPRESSION_PRESSURE_MB);
898
+ }
899
+ function pressured_available(after, before) {
900
+ if (after.available_mb === void 0) return void 0;
901
+ if (is_swapping(before, after)) return 0;
902
+ return (after.pressure_level ?? 0) >= PRESSURE_HOLD ? 0 : after.available_mb;
903
+ }
904
+ async function read_machine(sleep = default_sleep2) {
905
+ const before = cpu_times();
906
+ const [memory_before] = await Promise.all([read_memory(), sleep(SAMPLE_WINDOW_MS)]);
907
+ const memory_after = await read_memory();
908
+ const is_host = is_unquoted();
909
+ const busy_cores = is_host ? busy_cores_between(before, cpu_times(), cpus().length) : void 0;
910
+ return {
911
+ busy_cores,
912
+ run_queue: is_host ? loadavg()[0] : void 0,
913
+ available_mb: pressured_available(memory_after, memory_before),
914
+ memory_pressured: is_pressured(memory_before, memory_after),
915
+ memory_supported: process.platform === "darwin" || process.platform === "linux",
916
+ total_mb: totalmem() / BYTES_PER_MB
917
+ };
918
+ }
919
+ async function read_sample() {
920
+ return { cpu: cpu_times(), memory: await read_memory(), total_mb: totalmem() / BYTES_PER_MB };
921
+ }
922
+ function external_cores(busy_cores, ledger_cores) {
923
+ if (busy_cores === void 0) return 0;
924
+ return Math.floor(Math.max(0, busy_cores - ledger_cores));
925
+ }
926
+ function is_overloaded(run_queue, ledger_cores, cores) {
927
+ if (run_queue === void 0) return false;
928
+ return run_queue - ledger_cores > cores * OVERLOAD_FACTOR;
929
+ }
930
+ function machine_budget(cores, reading, ledger) {
931
+ const busy_excess = external_cores(reading.busy_cores, ledger.cores);
932
+ return {
933
+ cores: Math.max(0, cores - busy_excess),
934
+ memory_mb: reading.available_mb === void 0 ? Infinity : reading.available_mb + ledger.memory_mb,
935
+ memory_pressured: reading.memory_pressured,
936
+ busy_excess,
937
+ is_overloaded: is_overloaded(reading.run_queue, ledger.cores, cores)
938
+ };
939
+ }
940
+ var machine_capacity = {
941
+ busy_cores_between,
942
+ busy_share_between,
943
+ COMPRESSION_PRESSURE_MB,
944
+ external_cores,
945
+ machine_budget,
946
+ parse_darwin_memory,
947
+ parse_linux_available,
948
+ parse_linux_swapped,
949
+ PRESSURE_HOLD,
950
+ pressured_available,
951
+ read_machine,
952
+ read_memory,
953
+ read_sample,
954
+ SWAP_PRESSURE_MB,
955
+ swapped_between
956
+ };
957
+
958
+ // scripts/gate/core-budget-poll.ts
959
+ function check_measurement(command, reading) {
960
+ if (reading.memory_supported === true && !Number.isFinite(reading.available_mb)) {
961
+ throw new Error(`${command}: memory measurement failed; admission refused`);
962
+ }
963
+ }
964
+ function check_capacity(command, requested, total_mb) {
965
+ if (total_mb === void 0) return;
966
+ if (requested > total_mb) {
967
+ throw new Error(
968
+ `${command}: requested ${String(requested)} MB exceeds physical memory ${String(total_mb)} MB`
969
+ );
970
+ }
971
+ }
972
+ function check_memory(context, reading) {
973
+ const requested = context.fields.memory_mb ?? 0;
974
+ if (requested === 0) return;
975
+ const command = context.fields.command ?? "a step";
976
+ const minimum = context.fields.is_unit === true ? requested / Math.max(1, context.fields.weight) : requested;
977
+ check_measurement(command, reading);
978
+ check_capacity(command, minimum, reading.total_mb);
979
+ }
980
+ async function current_reading(context, reservations) {
981
+ const reading = await context.read_machine();
982
+ const ledger = core_admission.ledger_load(reservations, context.now());
983
+ check_memory(context, reading);
984
+ context.busy_samples = busy_average.with_reading(
985
+ context.busy_samples,
986
+ reading,
987
+ ledger.cores,
988
+ context.now()
989
+ );
990
+ const mean = busy_average.averaged(reading, context.busy_samples, ledger.cores);
991
+ context.ease = busy_average.with_ease(context.ease, mean.busy_cores, context.now());
992
+ return { budget: machine_capacity.machine_budget(context.budget, mean, ledger), reading };
993
+ }
994
+ function admit(context, decision) {
995
+ const admitted_at = context.now();
996
+ const { granted, overflow, reason, budget, reading } = decision;
997
+ core_reservation.write_reservation(context.target, { ...context.fields, admitted_at, granted });
998
+ return {
999
+ overflow,
1000
+ granted,
1001
+ waited_ms: admitted_at - context.fields.claimed_at,
1002
+ decision: { reason, budget, reading }
1003
+ };
1004
+ }
1005
+ function mark_waiting(context, reason) {
1006
+ const previous = context.fields.wait_reason;
1007
+ if (previous === reason) return;
1008
+ context.fields = { ...context.fields, wait_reason: reason };
1009
+ core_reservation.write_reservation(context.target, context.fields);
1010
+ if (previous === void 0) context.report(core_wait.wait_line(context.fields.command, reason));
1011
+ }
1012
+ function spent_reason(context, reservations, budget) {
1013
+ const now = context.now();
1014
+ if (now >= context.deadline) return "cpu-deadline";
1015
+ const busy_cores = busy_average.mean_busy(context.busy_samples);
1016
+ const room = { busy_cores, cores: context.budget, now };
1017
+ return busy_average.is_unrelieved(context.ease, now, context.ease_window_ms) && core_wait.is_held_in_vain(context.key, reservations, budget, room) ? "cpu-unrelieved" : void 0;
1018
+ }
1019
+ function overflow_reason(context, reservations, budget) {
1020
+ if (context.fields.is_strict_admission === true || core_admission.is_memory_held(context.key, reservations, budget)) {
1021
+ return void 0;
1022
+ }
1023
+ return spent_reason(context, reservations, budget);
1024
+ }
1025
+ function overflow_of(context, reservations, decision) {
1026
+ const held = core_admission.with_grant(context.key, reservations, decision.granted);
1027
+ const overflow = {
1028
+ waited_ms: context.now() - context.fields.claimed_at,
1029
+ ledger: core_admission.sum_load(held),
1030
+ budget: decision.budget
1031
+ };
1032
+ return admit(context, { ...decision, overflow });
1033
+ }
1034
+ function fit_reason(context, reservations, budget) {
1035
+ const requested = context.fields.memory_mb ?? 0;
1036
+ if (context.fields.is_unit === true && requested > budget.memory_mb) {
1037
+ return "unit-memory-narrowing";
1038
+ }
1039
+ const strict = { ...budget, busy_excess: 0, is_overloaded: true };
1040
+ return core_admission.is_admitted(context.key, reservations, strict) ? "budget-fit" : "cpu-first-waiter";
1041
+ }
1042
+ async function poll_admission(context, reservations) {
1043
+ const { budget, reading } = await current_reading(context, reservations);
1044
+ const granted = core_admission.narrowed_weight(context.key, reservations, budget.cores);
1045
+ const reason = core_wait.hold_reason(context.key, reservations, budget, granted);
1046
+ if (reason === void 0) {
1047
+ return admit(context, {
1048
+ budget,
1049
+ reading,
1050
+ granted,
1051
+ reason: fit_reason(context, reservations, budget)
1052
+ });
1053
+ }
1054
+ const overflow = overflow_reason(context, reservations, budget);
1055
+ if (overflow !== void 0) {
1056
+ return overflow_of(context, reservations, { budget, reading, granted, reason: overflow });
1057
+ }
1058
+ mark_waiting(context, reason);
1059
+ return void 0;
1060
+ }
1061
+ var core_budget_poll = { poll_admission };
1062
+
1063
+ // scripts/gate/core-wait-record.ts
1064
+ var UNNAMED_COMMAND = "a step";
1065
+ async function to_ledger(wait) {
1066
+ await lane_ledger_write.record_core_wait(wait);
1067
+ }
1068
+ function request_fields(claim2, admission) {
1069
+ return {
1070
+ requested_cores: claim2.weight,
1071
+ granted_cores: admission?.granted ?? claim2.weight,
1072
+ memory_mb: claim2.memory_mb ?? 0,
1073
+ wait_reason: claim2.wait_reason,
1074
+ admission_waited_ms: admission?.waited_ms
1075
+ };
1076
+ }
1077
+ function admission_fields(claim2, admission) {
1078
+ const decision = admission?.decision;
1079
+ if (decision === void 0) return {};
1080
+ return {
1081
+ ...request_fields(claim2, admission),
1082
+ admission_reason: decision.reason,
1083
+ overflow: admission?.overflow !== void 0,
1084
+ budget_cores: decision.budget.cores,
1085
+ budget_memory_mb: Number.isFinite(decision.budget.memory_mb) ? decision.budget.memory_mb : void 0,
1086
+ available_mb: decision.reading.available_mb,
1087
+ busy_cores: decision.reading.busy_cores,
1088
+ memory_pressured: decision.reading.memory_pressured
1089
+ };
1090
+ }
1091
+ function should_record(claim2, admission) {
1092
+ return claim2.wait_reason !== void 0 || admission?.decision !== void 0;
1093
+ }
1094
+ function wait_of2(claim2, now, admission) {
1095
+ if (!should_record(claim2, admission)) return void 0;
1096
+ const waited_ms = claim2.wait_reason === void 0 ? 0 : now - claim2.claimed_at;
1097
+ const wait = {
1098
+ command: claim2.command ?? UNNAMED_COMMAND,
1099
+ waited_ms,
1100
+ ...admission_fields(claim2, admission)
1101
+ };
1102
+ return claim2.lane === void 0 ? wait : { ...wait, issue: Number(claim2.lane) };
1103
+ }
1104
+ async function record_admitted(claim2, now, sink = to_ledger, admission) {
1105
+ const wait = wait_of2(claim2, now, admission);
1106
+ if (wait !== void 0) await sink(wait);
1107
+ }
1108
+ var core_wait_record = { record_admitted, wait_of: wait_of2 };
1109
+
1110
+ // scripts/gate/held-mark.ts
1111
+ var HELD_KEY = "JOSH_CORE_RESERVED";
1112
+ var HELD_VALUE = "1";
1113
+ var HELD_RESERVATION_KEY = "JOSH_CORE_RESERVATION";
1114
+ function is_held() {
1115
+ return process.env[HELD_KEY] === HELD_VALUE;
1116
+ }
1117
+ function held_reservation() {
1118
+ const key = process.env[HELD_RESERVATION_KEY] ?? "";
1119
+ return key === "" ? void 0 : key;
1120
+ }
1121
+ function set_held_mark(value, reservation) {
1122
+ process.env[HELD_KEY] = value;
1123
+ process.env[HELD_RESERVATION_KEY] = reservation;
1124
+ }
1125
+ async function with_held_mark(run, reservation = "") {
1126
+ const previous = process.env[HELD_KEY] ?? "";
1127
+ const previous_reservation = process.env[HELD_RESERVATION_KEY] ?? "";
1128
+ set_held_mark(HELD_VALUE, reservation);
1129
+ try {
1130
+ return await run();
1131
+ } finally {
1132
+ set_held_mark(previous, previous_reservation);
1133
+ }
1134
+ }
1135
+ var held_mark = {
1136
+ HELD_KEY,
1137
+ HELD_RESERVATION_KEY,
1138
+ HELD_VALUE,
1139
+ held_reservation,
1140
+ is_held,
1141
+ with_held_mark
1142
+ };
1143
+
1144
+ // scripts/gate/core-budget.ts
1145
+ var RESERVED_PREFIX = "josh-core-reserved-";
1146
+ var RESERVED_SUFFIX = ".json";
1147
+ var MIN_BUDGET = 1;
1148
+ var { claim_fields: claim_fields2, read_reservation: read_reservation2, write_reservation: write_reservation2 } = core_reservation;
1149
+ function marker_name(key) {
1150
+ return `${RESERVED_PREFIX}${key}${RESERVED_SUFFIX}`;
1151
+ }
1152
+ function is_running(reservation) {
1153
+ return process_identity.is_same_process(reservation.pid, reservation.process_start) !== false;
1154
+ }
1155
+ function sweep_marker(source) {
1156
+ try {
1157
+ stamp_file.remove_stamp(source);
1158
+ } catch {
1159
+ }
1160
+ }
1161
+ function live_reservation(source) {
1162
+ const reservation = read_reservation2(source);
1163
+ if (reservation === void 0) return void 0;
1164
+ if (is_running(reservation)) return reservation;
1165
+ sweep_marker(source);
1166
+ return void 0;
1167
+ }
1168
+ function marker_files(directory) {
1169
+ try {
1170
+ return readdirSync2(directory).filter(
1171
+ (name) => name.startsWith(RESERVED_PREFIX) && name.endsWith(RESERVED_SUFFIX)
1172
+ );
1173
+ } catch {
1174
+ return [];
1175
+ }
1176
+ }
1177
+ function live_reservations(directory = PLATFORM_TEMP_ROOT) {
1178
+ return marker_files(directory).flatMap((name) => {
1179
+ const reservation = live_reservation(path5.join(directory, name));
1180
+ return reservation === void 0 ? [] : { key: name, reservation };
1181
+ });
1182
+ }
1183
+ function normalize_budget(budget) {
1184
+ return Number.isFinite(budget) ? Math.max(MIN_BUDGET, Math.floor(budget)) : MIN_BUDGET;
1185
+ }
1186
+ function report_wait(line) {
1187
+ process.stderr.write(`${line}
1188
+ `);
1189
+ }
1190
+ async function poll_admission2(context) {
1191
+ try {
1192
+ return await core_budget_poll.poll_admission(context, live_reservations(context.directory));
1193
+ } catch (error) {
1194
+ sweep_marker(context.target);
1195
+ throw error;
1196
+ }
1197
+ }
1198
+ async function await_admission(context) {
1199
+ const admission = await poll.wait_for(async () => await poll_admission2(context), {
1200
+ interval_ms: context.poll_interval_ms,
1201
+ sleeper: context.sleep
1202
+ });
1203
+ await core_wait_record.record_admitted(
1204
+ context.fields,
1205
+ context.now(),
1206
+ context.record_wait,
1207
+ admission
1208
+ );
1209
+ return admission;
1210
+ }
1211
+ function resolve_ports(options) {
1212
+ return {
1213
+ read_machine: options.read_machine ?? machine_capacity.read_machine,
1214
+ report: options.report ?? report_wait,
1215
+ record_wait: options.record_wait
1216
+ };
1217
+ }
1218
+ function claim(weight, options = {}) {
1219
+ const timing = core_budget_timing.resolve_timing(options);
1220
+ const directory = options.directory ?? PLATFORM_TEMP_ROOT;
1221
+ const claimed_at = timing.now();
1222
+ const name = marker_name(randomUUID());
1223
+ const target = path5.join(directory, name);
1224
+ const fields = claim_fields2(weight, claimed_at, options);
1225
+ write_reservation2(target, fields);
1226
+ return {
1227
+ ...timing,
1228
+ key: name,
1229
+ target,
1230
+ directory,
1231
+ budget: normalize_budget(options.budget ?? availableParallelism2()),
1232
+ deadline: claimed_at + timing.wait_cap_ms,
1233
+ fields,
1234
+ busy_samples: [],
1235
+ ...resolve_ports(options)
1236
+ };
1237
+ }
1238
+ async function reserve(weight, options = {}) {
1239
+ const context = claim(weight, options);
1240
+ const admission = await await_admission(context);
1241
+ return { target: context.target, admission };
1242
+ }
1243
+ async function poll_claim(context) {
1244
+ const admission = await poll_admission2(context);
1245
+ if (admission === void 0) return void 0;
1246
+ await core_wait_record.record_admitted(
1247
+ context.fields,
1248
+ context.now(),
1249
+ context.record_wait,
1250
+ admission
1251
+ );
1252
+ return { target: context.target, admission };
1253
+ }
1254
+ function budget_waits(directory = PLATFORM_TEMP_ROOT, now = Date.now(), home = process.cwd()) {
1255
+ return core_wait.waits_of(live_reservations(directory), now, home);
1256
+ }
1257
+ function release(handle) {
1258
+ sweep_marker(handle.target);
1259
+ }
1260
+ async function with_core_reservation(weight, run, options = {}) {
1261
+ const handle = await reserve(weight, options);
1262
+ try {
1263
+ return await run(handle.admission, path5.basename(handle.target));
1264
+ } finally {
1265
+ release(handle);
1266
+ }
1267
+ }
1268
+ function is_covered() {
1269
+ return held_mark.is_held() || unit_worker_share.is_nested_run();
1270
+ }
1271
+ async function with_command_reservation(weight, run, options = {}) {
1272
+ if (is_covered()) return await run();
1273
+ return await with_core_reservation(
1274
+ weight,
1275
+ async (_admission, key) => await held_mark.with_held_mark(run, key),
1276
+ options
1277
+ );
1278
+ }
1279
+ function held_unit_claim(directory = PLATFORM_TEMP_ROOT) {
1280
+ const key = held_mark.held_reservation();
1281
+ if (key === void 0) return void 0;
1282
+ const held = live_reservations(directory).find((entry) => entry.key === key);
1283
+ return held?.reservation.is_unit === true ? held.reservation : void 0;
1284
+ }
1285
+ var core_budget = {
1286
+ CORE_WEIGHTS: core_weights.CORE_WEIGHTS,
1287
+ HELD_KEY: held_mark.HELD_KEY,
1288
+ HELD_VALUE: held_mark.HELD_VALUE,
1289
+ MEMORY_MB: core_weights.MEMORY_MB,
1290
+ RESERVED_PREFIX,
1291
+ admitted_keys: core_admission.admitted_keys,
1292
+ admitted_load: core_admission.admitted_load,
1293
+ budget_waits,
1294
+ claim,
1295
+ describe_overflow: core_admission.describe_overflow,
1296
+ held_unit_claim,
1297
+ is_covered,
1298
+ is_held: held_mark.is_held,
1299
+ live_reservations,
1300
+ poll_claim,
1301
+ release,
1302
+ reserve,
1303
+ transfer: core_reservation.transfer,
1304
+ with_command_reservation,
1305
+ with_core_reservation,
1306
+ with_held_mark: held_mark.with_held_mark
1307
+ };
1308
+
1309
+ // scripts/josh/josh-in-process.ts
1310
+ import { realpathSync } from "node:fs";
1311
+ import path6 from "node:path";
1312
+ import { pathToFileURL } from "node:url";
1313
+ var BUNDLED_COMMAND_DIRECTORY = path6.join("dist", "commands");
1314
+
1315
+ // scripts/josh/run-github-prerequisite.ts
1316
+ import { existsSync as existsSync2 } from "node:fs";
1317
+ import path7 from "node:path";
1318
+
1319
+ // scripts/josh/josh-logic.ts
1320
+ var TSX_BIN = "tsx";
1321
+ var TSX_PACKAGE = "tsx";
1322
+ var PACKAGE_DIR = find_package_directory(path8.dirname(fileURLToPath(import.meta.url)));
1323
+ function resolve_tsx_executable() {
1324
+ const candidates = [
1325
+ resolve_local_bin(PACKAGE_DIR, TSX_BIN),
1326
+ resolve_local_bin(process.cwd(), TSX_BIN)
1327
+ ];
1328
+ return candidates.find(existsSync3) ?? TSX_BIN;
1329
+ }
1330
+ function resolve_tsx_cli_entry() {
1331
+ for (const base_directory of [PACKAGE_DIR, process.cwd()]) {
1332
+ const cli_entry = resolve_package_bin(base_directory, TSX_PACKAGE, TSX_BIN);
1333
+ if (cli_entry !== void 0) return cli_entry;
1334
+ }
1335
+ return void 0;
1336
+ }
1337
+ function resolve_tsx_runner() {
1338
+ const cli_entry = resolve_tsx_cli_entry();
1339
+ if (cli_entry !== void 0) {
1340
+ return { executable: process.execPath, leading_arguments: [cli_entry] };
1341
+ }
1342
+ return { executable: resolve_tsx_executable(), leading_arguments: [] };
1343
+ }
1344
+ function read_package_version() {
1345
+ return package_manifest.read_manifest(PACKAGE_DIR, package_version_schema).version;
1346
+ }
1347
+ var HEADER = `josh v${read_package_version()} \u2014 Joshua Folkken's dev toolkit`;
1348
+
1349
+ // scripts/gate/input-fingerprint.ts
1350
+ import { readFileSync as readFileSync2 } from "node:fs";
1351
+ import path9 from "node:path";
1352
+ var ABSENT = "absent";
1353
+ function of_content(content) {
1354
+ return stamp_file.digest(content);
1355
+ }
1356
+ function of_entries(entries) {
1357
+ return of_content([...entries].toSorted((left, right) => left.localeCompare(right)).join("\n"));
1358
+ }
1359
+ function of_file(file_path) {
1360
+ try {
1361
+ return of_content(readFileSync2(file_path));
1362
+ } catch {
1363
+ return ABSENT;
1364
+ }
1365
+ }
1366
+ function of_files(root, relatives) {
1367
+ const sorted = [...new Set(relatives)].toSorted((left, right) => left.localeCompare(right));
1368
+ return Object.fromEntries(
1369
+ sorted.map((relative) => [relative, of_file(path9.join(root, relative))])
1370
+ );
1371
+ }
1372
+ var input_fingerprint = { ABSENT, of_entries, of_file, of_files };
1373
+
1374
+ export {
1375
+ toolchain_inputs,
1376
+ run_board_usage_rusage,
1377
+ machine_capacity,
1378
+ resolve_tsx_runner,
1379
+ input_fingerprint,
1380
+ lint_related_scope
1381
+ };