@joshuafolkken/kit 1.3041.0 → 1.3092.0

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