@joshuafolkken/kit 1.3101.0 → 1.3125.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 (1118) hide show
  1. package/.claude/skills/workflow-commands/split-assessment.md +2 -3
  2. package/dist/.inputs-verified.json +1 -1
  3. package/dist/commands/adopt.js +20 -20
  4. package/dist/commands/auto-ok-judge-cli.js +30 -30
  5. package/dist/commands/auto-ok-main.js +64 -63
  6. package/dist/commands/backlog-budget-main.js +5 -5
  7. package/dist/commands/backlog-drive-cli.js +220 -203
  8. package/dist/commands/backlog-next-main.js +157 -101
  9. package/dist/commands/backlog-offer-main.js +168 -120
  10. package/dist/commands/backlog-plan-cli.js +159 -110
  11. package/dist/commands/backlog-triage-cli.js +171 -115
  12. package/dist/commands/backlogrun-cli.js +255 -245
  13. package/dist/commands/behavior-cli.js +16 -15
  14. package/dist/commands/bytes-command.js +41 -41
  15. package/dist/commands/cases-cli.js +3 -3
  16. package/dist/commands/check-commit-message-main.js +3 -3
  17. package/dist/commands/check-related.js +93 -93
  18. package/dist/commands/chunk-23PU6FAC.js +140 -0
  19. package/dist/commands/chunk-23TWJOAI.js +172 -0
  20. package/dist/commands/chunk-24MXEDSJ.js +81 -0
  21. package/dist/commands/chunk-25LVQDOF.js +183 -0
  22. package/dist/commands/chunk-25LYH5QR.js +85 -0
  23. package/dist/commands/chunk-2AH73ZTW.js +84 -0
  24. package/dist/commands/chunk-2BNLPPP4.js +42 -0
  25. package/dist/commands/chunk-2FD3N3OX.js +119 -0
  26. package/dist/commands/chunk-2GJ3WJVT.js +117 -0
  27. package/dist/commands/chunk-2JGOKYJQ.js +426 -0
  28. package/dist/commands/chunk-2MDLCJZ4.js +389 -0
  29. package/dist/commands/chunk-2ROVUERM.js +99 -0
  30. package/dist/commands/chunk-2TI22UNK.js +137 -0
  31. package/dist/commands/chunk-2TUA6V4F.js +191 -0
  32. package/dist/commands/chunk-2UXSF5YF.js +49 -0
  33. package/dist/commands/chunk-2ZDVX64H.js +66 -0
  34. package/dist/commands/chunk-33N7SBIU.js +18 -0
  35. package/dist/commands/chunk-373P5MM2.js +353 -0
  36. package/dist/commands/chunk-37RULO76.js +220 -0
  37. package/dist/commands/chunk-3EYRE3GI.js +173 -0
  38. package/dist/commands/chunk-3IXIYDC3.js +179 -0
  39. package/dist/commands/chunk-3OFJCJN4.js +30 -0
  40. package/dist/commands/chunk-3OSUM6DM.js +53 -0
  41. package/dist/commands/chunk-3PGB2RKZ.js +333 -0
  42. package/dist/commands/chunk-3QNEEG5O.js +117 -0
  43. package/dist/commands/chunk-3TN76RWK.js +156 -0
  44. package/dist/commands/chunk-3W2TJZMD.js +77 -0
  45. package/dist/commands/chunk-3Y32BYLU.js +1244 -0
  46. package/dist/commands/chunk-3ZQOMI5A.js +245 -0
  47. package/dist/commands/chunk-42W6WARP.js +263 -0
  48. package/dist/commands/chunk-44UIURBQ.js +130 -0
  49. package/dist/commands/chunk-45RCSJGE.js +321 -0
  50. package/dist/commands/chunk-4DNAAFF4.js +159 -0
  51. package/dist/commands/chunk-4E5WBWG7.js +70 -0
  52. package/dist/commands/chunk-4MRBLCDB.js +96 -0
  53. package/dist/commands/chunk-4NIHTEGD.js +332 -0
  54. package/dist/commands/chunk-4ODXKJJT.js +566 -0
  55. package/dist/commands/chunk-4P5F7CLB.js +47 -0
  56. package/dist/commands/chunk-52CGT2IN.js +119 -0
  57. package/dist/commands/chunk-54ZLBLLE.js +74 -0
  58. package/dist/commands/chunk-56344LLX.js +114 -0
  59. package/dist/commands/chunk-56GR7L5L.js +36 -0
  60. package/dist/commands/chunk-5ADJDGFT.js +126 -0
  61. package/dist/commands/chunk-5CMXAHCL.js +161 -0
  62. package/dist/commands/chunk-5DMFMP4V.js +121 -0
  63. package/dist/commands/chunk-5I3M4B3H.js +185 -0
  64. package/dist/commands/chunk-5JIMCETI.js +104 -0
  65. package/dist/commands/chunk-5KEESWMC.js +138 -0
  66. package/dist/commands/chunk-5LNRVX2R.js +214 -0
  67. package/dist/commands/chunk-5PLKHUQD.js +492 -0
  68. package/dist/commands/chunk-5QICRFVL.js +167 -0
  69. package/dist/commands/chunk-5RCBXYYD.js +101 -0
  70. package/dist/commands/chunk-5SOU366I.js +252 -0
  71. package/dist/commands/chunk-5VUHAXPI.js +77 -0
  72. package/dist/commands/chunk-5XJUUZ6U.js +773 -0
  73. package/dist/commands/chunk-5ZMVRU3U.js +46 -0
  74. package/dist/commands/chunk-5ZWU2B7T.js +507 -0
  75. package/dist/commands/chunk-5ZXR36N7.js +67 -0
  76. package/dist/commands/chunk-623LFKFM.js +60 -0
  77. package/dist/commands/chunk-64II6P7B.js +81 -0
  78. package/dist/commands/chunk-6DJT64DN.js +342 -0
  79. package/dist/commands/chunk-6HJ5CJSJ.js +121 -0
  80. package/dist/commands/chunk-6LGMEJRN.js +67 -0
  81. package/dist/commands/chunk-6LHMR3CR.js +126 -0
  82. package/dist/commands/chunk-6NXTP5JT.js +114 -0
  83. package/dist/commands/chunk-6OKVY2E3.js +128 -0
  84. package/dist/commands/chunk-6OUQZC6V.js +1153 -0
  85. package/dist/commands/chunk-6PL2AK3C.js +204 -0
  86. package/dist/commands/chunk-6PLIQCBG.js +326 -0
  87. package/dist/commands/chunk-6QVDEMGB.js +118 -0
  88. package/dist/commands/chunk-6T67GZMJ.js +60 -0
  89. package/dist/commands/chunk-6TC2ZMNB.js +64 -0
  90. package/dist/commands/chunk-6TOHJZ4J.js +224 -0
  91. package/dist/commands/chunk-6TOWGIY2.js +127 -0
  92. package/dist/commands/chunk-6TPGDOOD.js +48 -0
  93. package/dist/commands/chunk-6XXEW3NQ.js +159 -0
  94. package/dist/commands/chunk-72HZ2APA.js +229 -0
  95. package/dist/commands/chunk-72LAYP5S.js +46 -0
  96. package/dist/commands/chunk-72Y7PXUJ.js +83 -0
  97. package/dist/commands/chunk-77R6JEET.js +128 -0
  98. package/dist/commands/chunk-7GICNM73.js +137 -0
  99. package/dist/commands/chunk-7OZT74HR.js +78 -0
  100. package/dist/commands/chunk-7QAYL2RH.js +555 -0
  101. package/dist/commands/chunk-7T7GIZYW.js +92 -0
  102. package/dist/commands/chunk-7VXSMXVE.js +79 -0
  103. package/dist/commands/chunk-7WTVADW4.js +33 -0
  104. package/dist/commands/chunk-7YXCOW3X.js +114 -0
  105. package/dist/commands/chunk-7YYI3OX6.js +104 -0
  106. package/dist/commands/chunk-7Z25RNTV.js +516 -0
  107. package/dist/commands/chunk-A73RWSHJ.js +126 -0
  108. package/dist/commands/chunk-AAIZ2H66.js +58 -0
  109. package/dist/commands/chunk-AFGEGGIF.js +17 -0
  110. package/dist/commands/chunk-AJTXSSRD.js +29 -0
  111. package/dist/commands/chunk-AKM3BHVJ.js +48 -0
  112. package/dist/commands/chunk-AL2H63BP.js +48 -0
  113. package/dist/commands/chunk-AMQNHTDN.js +60 -0
  114. package/dist/commands/chunk-AQGVQMWF.js +168 -0
  115. package/dist/commands/chunk-B4OZF4XL.js +89 -0
  116. package/dist/commands/chunk-B4W77FVS.js +704 -0
  117. package/dist/commands/chunk-B4YBGU2C.js +580 -0
  118. package/dist/commands/chunk-B636LL4X.js +239 -0
  119. package/dist/commands/chunk-B762PNT6.js +66 -0
  120. package/dist/commands/chunk-B7UY7EOD.js +72 -0
  121. package/dist/commands/chunk-BAJABWKW.js +43 -0
  122. package/dist/commands/chunk-BAQRD3TC.js +105 -0
  123. package/dist/commands/chunk-BBPESBU3.js +85 -0
  124. package/dist/commands/chunk-BGKUZJT7.js +25 -0
  125. package/dist/commands/chunk-BIVM6OTE.js +19 -0
  126. package/dist/commands/chunk-BJQDQAQU.js +167 -0
  127. package/dist/commands/chunk-BU3WIUDD.js +230 -0
  128. package/dist/commands/chunk-C2WXQPF3.js +34 -0
  129. package/dist/commands/chunk-C3V6H6TW.js +183 -0
  130. package/dist/commands/chunk-C3Y42PHX.js +229 -0
  131. package/dist/commands/chunk-C7CDGSMW.js +112 -0
  132. package/dist/commands/chunk-C7JEMYPV.js +102 -0
  133. package/dist/commands/chunk-CCAVK7HN.js +4221 -0
  134. package/dist/commands/chunk-CFLCZ2WO.js +63 -0
  135. package/dist/commands/chunk-CGA2K3XV.js +137 -0
  136. package/dist/commands/chunk-CHQQ3VTL.js +184 -0
  137. package/dist/commands/chunk-CKD2G35M.js +86 -0
  138. package/dist/commands/chunk-CMTTDS7F.js +77 -0
  139. package/dist/commands/chunk-CRCQOA4Z.js +77 -0
  140. package/dist/commands/chunk-CT773QBI.js +161 -0
  141. package/dist/commands/chunk-CVZXDKCV.js +525 -0
  142. package/dist/commands/chunk-CXFN5W7O.js +116 -0
  143. package/dist/commands/chunk-CXVNQ7DS.js +88 -0
  144. package/dist/commands/chunk-CYYJLRIW.js +85 -0
  145. package/dist/commands/chunk-D6UXGFJ7.js +44 -0
  146. package/dist/commands/chunk-DIXUXHZ2.js +207 -0
  147. package/dist/commands/chunk-DM6I4PYD.js +110 -0
  148. package/dist/commands/chunk-DOM6HJL3.js +769 -0
  149. package/dist/commands/chunk-DVIOBFU7.js +210 -0
  150. package/dist/commands/chunk-E5CGA7FC.js +114 -0
  151. package/dist/commands/chunk-EG44IWNI.js +88 -0
  152. package/dist/commands/chunk-EHVFQQO6.js +45 -0
  153. package/dist/commands/chunk-EJG5ZJKD.js +1629 -0
  154. package/dist/commands/chunk-EKKUHXFD.js +241 -0
  155. package/dist/commands/chunk-ELCYNBZO.js +430 -0
  156. package/dist/commands/chunk-ELZQL6M3.js +100 -0
  157. package/dist/commands/chunk-EOPRRSCY.js +1891 -0
  158. package/dist/commands/chunk-EQTDNFPF.js +123 -0
  159. package/dist/commands/chunk-ERAABGU7.js +93 -0
  160. package/dist/commands/chunk-ESMIFITZ.js +715 -0
  161. package/dist/commands/chunk-EWBEYTVS.js +50 -0
  162. package/dist/commands/chunk-EYR2X5MZ.js +53 -0
  163. package/dist/commands/chunk-F546BPG3.js +74 -0
  164. package/dist/commands/chunk-F7SAHNGR.js +34 -0
  165. package/dist/commands/chunk-FBWNL3UA.js +209 -0
  166. package/dist/commands/chunk-FBZD6LOK.js +225 -0
  167. package/dist/commands/chunk-FDSSBZC7.js +75 -0
  168. package/dist/commands/chunk-FFLZPLWC.js +59 -0
  169. package/dist/commands/chunk-FHLV5BII.js +170 -0
  170. package/dist/commands/chunk-FITTCICF.js +247 -0
  171. package/dist/commands/chunk-FJ622XHY.js +179 -0
  172. package/dist/commands/chunk-FQPL6T66.js +80 -0
  173. package/dist/commands/chunk-FSM3WPTR.js +73 -0
  174. package/dist/commands/chunk-FSZA4DME.js +268 -0
  175. package/dist/commands/chunk-FVPRBMHE.js +38 -0
  176. package/dist/commands/chunk-FZ62KJXP.js +75 -0
  177. package/dist/commands/chunk-FZNYKSQS.js +335 -0
  178. package/dist/commands/chunk-FZYFGHRY.js +72 -0
  179. package/dist/commands/chunk-G4UVY3TO.js +90 -0
  180. package/dist/commands/chunk-G6H2TOAA.js +18 -0
  181. package/dist/commands/chunk-GC73YEU7.js +119 -0
  182. package/dist/commands/chunk-GHVL6IJA.js +653 -0
  183. package/dist/commands/chunk-GIGXVOKR.js +208 -0
  184. package/dist/commands/chunk-GL2DZXYD.js +103 -0
  185. package/dist/commands/chunk-GL3VOBWB.js +170 -0
  186. package/dist/commands/chunk-GLXOLYZE.js +64 -0
  187. package/dist/commands/chunk-GNRTFRSL.js +41 -0
  188. package/dist/commands/chunk-GX5XHW2F.js +132 -0
  189. package/dist/commands/chunk-GXXWRH6F.js +98 -0
  190. package/dist/commands/chunk-GY6O2WYG.js +120 -0
  191. package/dist/commands/chunk-H4IDKP55.js +37 -0
  192. package/dist/commands/chunk-H5WWD3TX.js +719 -0
  193. package/dist/commands/chunk-H6MHUR2Y.js +114 -0
  194. package/dist/commands/chunk-H6TBBVC2.js +73 -0
  195. package/dist/commands/chunk-HF52YP56.js +178 -0
  196. package/dist/commands/chunk-HKHGX7TW.js +173 -0
  197. package/dist/commands/chunk-HLQVLQEB.js +177 -0
  198. package/dist/commands/chunk-HN3EGYAI.js +169 -0
  199. package/dist/commands/chunk-HNZLKGKJ.js +43 -0
  200. package/dist/commands/chunk-HQ5U6OZR.js +315 -0
  201. package/dist/commands/chunk-HUCOQ4PI.js +161 -0
  202. package/dist/commands/chunk-HXAVYXUS.js +307 -0
  203. package/dist/commands/chunk-HXM26K3O.js +67 -0
  204. package/dist/commands/chunk-HYQ5Q6AE.js +304 -0
  205. package/dist/commands/chunk-HYVAEK6M.js +155 -0
  206. package/dist/commands/chunk-I2HHXZVG.js +46 -0
  207. package/dist/commands/chunk-I2RBOH4F.js +469 -0
  208. package/dist/commands/chunk-I36PDO6I.js +258 -0
  209. package/dist/commands/chunk-IAA73DWD.js +212 -0
  210. package/dist/commands/chunk-IBOCPSPK.js +103 -0
  211. package/dist/commands/chunk-IC5XLIE2.js +68 -0
  212. package/dist/commands/chunk-ICKP5W3Q.js +41 -0
  213. package/dist/commands/chunk-IHQHHNYR.js +1314 -0
  214. package/dist/commands/chunk-ILQU26IF.js +408 -0
  215. package/dist/commands/chunk-INOXSDDC.js +7712 -0
  216. package/dist/commands/chunk-IQMMYORJ.js +554 -0
  217. package/dist/commands/chunk-ISNZX75X.js +168 -0
  218. package/dist/commands/chunk-ISY5TFYT.js +80 -0
  219. package/dist/commands/chunk-IT2O5MOW.js +37 -0
  220. package/dist/commands/chunk-IV6ETHVB.js +155 -0
  221. package/dist/commands/chunk-IZPMBGAI.js +202 -0
  222. package/dist/commands/chunk-J56TYLAL.js +77 -0
  223. package/dist/commands/chunk-JGC4B5JR.js +94 -0
  224. package/dist/commands/chunk-JKPYLZ6T.js +198 -0
  225. package/dist/commands/chunk-JM3EJYA3.js +65 -0
  226. package/dist/commands/chunk-JN7IG7HT.js +426 -0
  227. package/dist/commands/chunk-JSJS3OT7.js +679 -0
  228. package/dist/commands/chunk-JUQN3OXG.js +351 -0
  229. package/dist/commands/chunk-JUXKVN77.js +100 -0
  230. package/dist/commands/chunk-JZZURWZH.js +33 -0
  231. package/dist/commands/chunk-K2FXMBIU.js +95 -0
  232. package/dist/commands/chunk-K2VIKG5M.js +34 -0
  233. package/dist/commands/chunk-K3LHBJDY.js +1223 -0
  234. package/dist/commands/chunk-K3TPIV56.js +480 -0
  235. package/dist/commands/chunk-K6QAQSCJ.js +98 -0
  236. package/dist/commands/chunk-KJ2ZIDQP.js +92 -0
  237. package/dist/commands/chunk-KMED24C4.js +459 -0
  238. package/dist/commands/chunk-KMVJKK43.js +88 -0
  239. package/dist/commands/chunk-KXZR7UAE.js +302 -0
  240. package/dist/commands/chunk-L7GYJHDX.js +223 -0
  241. package/dist/commands/chunk-LAQZJX5C.js +49 -0
  242. package/dist/commands/chunk-LAUKNN57.js +530 -0
  243. package/dist/commands/chunk-LDYDRXOY.js +88 -0
  244. package/dist/commands/chunk-LZNACCHR.js +174 -0
  245. package/dist/commands/chunk-MEJ2CQK2.js +102 -0
  246. package/dist/commands/chunk-MHTKSRAH.js +278 -0
  247. package/dist/commands/chunk-MI4NHZWO.js +65 -0
  248. package/dist/commands/chunk-MIDWHXJZ.js +46 -0
  249. package/dist/commands/chunk-MIZLGSHI.js +419 -0
  250. package/dist/commands/chunk-MKIHWQ65.js +218 -0
  251. package/dist/commands/chunk-MOAPWO34.js +292 -0
  252. package/dist/commands/chunk-MOLXF5KO.js +51 -0
  253. package/dist/commands/chunk-MQNKIKJ6.js +288 -0
  254. package/dist/commands/chunk-MT6TRLFD.js +91 -0
  255. package/dist/commands/chunk-MTPFNRYF.js +213 -0
  256. package/dist/commands/chunk-N2EE7MMH.js +305 -0
  257. package/dist/commands/chunk-N5FT5LYP.js +272 -0
  258. package/dist/commands/chunk-N5YPDLZM.js +114 -0
  259. package/dist/commands/chunk-NASUAXRJ.js +45 -0
  260. package/dist/commands/chunk-NAZ753DE.js +540 -0
  261. package/dist/commands/chunk-NDPR5U4U.js +897 -0
  262. package/dist/commands/chunk-NFRDCRDI.js +285 -0
  263. package/dist/commands/chunk-NHXMWRBI.js +16 -0
  264. package/dist/commands/chunk-NMG65AFQ.js +20 -0
  265. package/dist/commands/chunk-NQ4D2XZY.js +213 -0
  266. package/dist/commands/chunk-NQFQVSHV.js +56 -0
  267. package/dist/commands/chunk-NR4BD5DD.js +38 -0
  268. package/dist/commands/chunk-NV6Y4U37.js +338 -0
  269. package/dist/commands/chunk-NWMY2QJJ.js +133 -0
  270. package/dist/commands/chunk-NXWVWI4U.js +1062 -0
  271. package/dist/commands/chunk-NZ2UKIY5.js +445 -0
  272. package/dist/commands/chunk-OB3WF3DW.js +24 -0
  273. package/dist/commands/chunk-OBMXXG5D.js +181 -0
  274. package/dist/commands/chunk-OHZ6GLEJ.js +74 -0
  275. package/dist/commands/chunk-OJO5AADO.js +322 -0
  276. package/dist/commands/chunk-ORFXTHXU.js +108 -0
  277. package/dist/commands/chunk-OTCWA4QE.js +910 -0
  278. package/dist/commands/chunk-OYGNL5RO.js +290 -0
  279. package/dist/commands/chunk-OYZP5ANC.js +48 -0
  280. package/dist/commands/chunk-P35FFJXA.js +73 -0
  281. package/dist/commands/chunk-P3UODIMZ.js +272 -0
  282. package/dist/commands/chunk-PF2HZHJG.js +94 -0
  283. package/dist/commands/chunk-PIAVFPYB.js +52 -0
  284. package/dist/commands/chunk-PLE3MBGO.js +85 -0
  285. package/dist/commands/chunk-PM3YCN46.js +39 -0
  286. package/dist/commands/chunk-PMC2N6JK.js +91 -0
  287. package/dist/commands/chunk-PTJ6X3QK.js +330 -0
  288. package/dist/commands/chunk-PTRK3NBC.js +211 -0
  289. package/dist/commands/chunk-Q2VV3WT7.js +120 -0
  290. package/dist/commands/chunk-Q67SPFHV.js +44 -0
  291. package/dist/commands/chunk-Q7GMTDMG.js +44 -0
  292. package/dist/commands/chunk-QA44M56F.js +333 -0
  293. package/dist/commands/chunk-QDUWBRQC.js +61 -0
  294. package/dist/commands/chunk-QGTLTPXT.js +58 -0
  295. package/dist/commands/chunk-QHWQJCV5.js +250 -0
  296. package/dist/commands/chunk-QI72D6NY.js +54 -0
  297. package/dist/commands/chunk-QN3FWRDW.js +122 -0
  298. package/dist/commands/chunk-QQ2JKDSV.js +144 -0
  299. package/dist/commands/chunk-QRY55H5U.js +48 -0
  300. package/dist/commands/chunk-QUO5B2JH.js +260 -0
  301. package/dist/commands/chunk-QY7RITZQ.js +99 -0
  302. package/dist/commands/chunk-R4GZWGIN.js +160 -0
  303. package/dist/commands/chunk-RETTGONB.js +84 -0
  304. package/dist/commands/chunk-RH4LJ4D6.js +69 -0
  305. package/dist/commands/chunk-RKCENL5P.js +271 -0
  306. package/dist/commands/chunk-RLWK2CP3.js +82 -0
  307. package/dist/commands/chunk-RMDQQKXD.js +179 -0
  308. package/dist/commands/chunk-RRNC3QEB.js +449 -0
  309. package/dist/commands/chunk-RUCV7UYK.js +341 -0
  310. package/dist/commands/chunk-RVFE7JDZ.js +126 -0
  311. package/dist/commands/chunk-RVKFX3FD.js +70 -0
  312. package/dist/commands/chunk-RW7OILP7.js +71 -0
  313. package/dist/commands/chunk-S23MUFND.js +122 -0
  314. package/dist/commands/chunk-S3DRNZRT.js +74 -0
  315. package/dist/commands/chunk-SB3R6E3R.js +49 -0
  316. package/dist/commands/chunk-SCCUBRDO.js +237 -0
  317. package/dist/commands/chunk-SIPHEZXP.js +72 -0
  318. package/dist/commands/chunk-SK3GDQOI.js +20 -0
  319. package/dist/commands/chunk-SNXSRNFI.js +1052 -0
  320. package/dist/commands/chunk-SWHN7TNT.js +59 -0
  321. package/dist/commands/chunk-T5D3BW3D.js +85 -0
  322. package/dist/commands/chunk-T76CS2AQ.js +307 -0
  323. package/dist/commands/chunk-TBIX42IT.js +144 -0
  324. package/dist/commands/chunk-TGCIRQG5.js +109 -0
  325. package/dist/commands/chunk-TJAGKUS2.js +84 -0
  326. package/dist/commands/chunk-TKRUZZXG.js +103 -0
  327. package/dist/commands/chunk-TLCFZAL4.js +63 -0
  328. package/dist/commands/chunk-TNPFVNKX.js +585 -0
  329. package/dist/commands/chunk-TNU3IEAP.js +151 -0
  330. package/dist/commands/chunk-TQ6M5ICK.js +49 -0
  331. package/dist/commands/chunk-TR6NTNWR.js +128 -0
  332. package/dist/commands/chunk-TSS2RKBC.js +271 -0
  333. package/dist/commands/chunk-TWI7UTVE.js +799 -0
  334. package/dist/commands/chunk-TXXEXJAV.js +390 -0
  335. package/dist/commands/chunk-U6SMBYTN.js +472 -0
  336. package/dist/commands/chunk-U7JJGYYY.js +30 -0
  337. package/dist/commands/chunk-UACWDTJ5.js +106 -0
  338. package/dist/commands/chunk-UBWYGOEC.js +86 -0
  339. package/dist/commands/chunk-UC5ZOPKX.js +3983 -0
  340. package/dist/commands/chunk-UJFEMO6X.js +153 -0
  341. package/dist/commands/chunk-ULL3OIAG.js +59 -0
  342. package/dist/commands/chunk-UN6BPKQ5.js +922 -0
  343. package/dist/commands/chunk-UW3KES66.js +32 -0
  344. package/dist/commands/chunk-UWLANGIR.js +817 -0
  345. package/dist/commands/chunk-UYHREBT7.js +99 -0
  346. package/dist/commands/chunk-V2KHY4UQ.js +393 -0
  347. package/dist/commands/chunk-V36OV7AP.js +191 -0
  348. package/dist/commands/chunk-V37AWEYE.js +62 -0
  349. package/dist/commands/chunk-V4D4YV4B.js +110 -0
  350. package/dist/commands/chunk-V56NLG7I.js +217 -0
  351. package/dist/commands/chunk-V6WHDQAZ.js +74 -0
  352. package/dist/commands/chunk-V6WWW6HX.js +140 -0
  353. package/dist/commands/chunk-V7QOC5NV.js +51 -0
  354. package/dist/commands/chunk-VA4M733Q.js +127 -0
  355. package/dist/commands/chunk-VBZ47BVH.js +64 -0
  356. package/dist/commands/chunk-VD4ELMDA.js +158 -0
  357. package/dist/commands/chunk-VFW6XZH7.js +469 -0
  358. package/dist/commands/chunk-VHSGVCRM.js +244 -0
  359. package/dist/commands/chunk-VJNE7W7O.js +1153 -0
  360. package/dist/commands/chunk-VLDPUHGE.js +134 -0
  361. package/dist/commands/chunk-VMMNYTET.js +61 -0
  362. package/dist/commands/chunk-VO2GSW5P.js +99 -0
  363. package/dist/commands/chunk-VP3P7FLJ.js +168 -0
  364. package/dist/commands/chunk-VRS252GW.js +88 -0
  365. package/dist/commands/chunk-VWNVKWLV.js +298 -0
  366. package/dist/commands/chunk-VXWGPQJX.js +140 -0
  367. package/dist/commands/chunk-W4R6ZBLO.js +197 -0
  368. package/dist/commands/chunk-WE2UMZXX.js +47 -0
  369. package/dist/commands/chunk-WEEJU3EH.js +109 -0
  370. package/dist/commands/chunk-WHXGUOYP.js +48 -0
  371. package/dist/commands/chunk-WHYYBPIC.js +113 -0
  372. package/dist/commands/chunk-WKXMY7MW.js +84 -0
  373. package/dist/commands/chunk-WPSCCUTE.js +119 -0
  374. package/dist/commands/chunk-WQ3O7IKL.js +289 -0
  375. package/dist/commands/chunk-WSTNBBR3.js +22 -0
  376. package/dist/commands/chunk-WX3HQXBK.js +124 -0
  377. package/dist/commands/chunk-WYAY6CQI.js +541 -0
  378. package/dist/commands/chunk-XBXY3R4K.js +74 -0
  379. package/dist/commands/chunk-XDWCF4XH.js +347 -0
  380. package/dist/commands/chunk-XHLSJPV7.js +69 -0
  381. package/dist/commands/chunk-XHR7O2DE.js +52 -0
  382. package/dist/commands/chunk-XIV3UDHV.js +119 -0
  383. package/dist/commands/chunk-XMNPU3J5.js +469 -0
  384. package/dist/commands/chunk-XMZJB7JP.js +100 -0
  385. package/dist/commands/chunk-XO7S2BTY.js +365 -0
  386. package/dist/commands/chunk-XQDG56LP.js +47 -0
  387. package/dist/commands/chunk-XSBLCTDI.js +143 -0
  388. package/dist/commands/chunk-XT3W32DO.js +977 -0
  389. package/dist/commands/chunk-XUA7QZET.js +1263 -0
  390. package/dist/commands/chunk-XZQHP4JR.js +145 -0
  391. package/dist/commands/chunk-YDVFQL3G.js +23 -0
  392. package/dist/commands/chunk-YFD46GB2.js +45 -0
  393. package/dist/commands/chunk-YJMOFRL7.js +269 -0
  394. package/dist/commands/chunk-YPCMBQYP.js +88 -0
  395. package/dist/commands/chunk-YR5RS4YT.js +38 -0
  396. package/dist/commands/chunk-YSBLGTDZ.js +339 -0
  397. package/dist/commands/chunk-YSDBY2G7.js +186 -0
  398. package/dist/commands/chunk-YSL43R4Y.js +149 -0
  399. package/dist/commands/chunk-YUAIWKOM.js +132 -0
  400. package/dist/commands/chunk-YVNYX4UA.js +74 -0
  401. package/dist/commands/chunk-Z2GZIWAU.js +33 -0
  402. package/dist/commands/chunk-Z3XNSXQH.js +47 -0
  403. package/dist/commands/chunk-Z4E7V7YJ.js +18 -0
  404. package/dist/commands/chunk-Z7C2O5JC.js +299 -0
  405. package/dist/commands/chunk-Z7R6JWN7.js +1077 -0
  406. package/dist/commands/chunk-ZB25RO3U.js +208 -0
  407. package/dist/commands/chunk-ZBRUCKLP.js +133 -0
  408. package/dist/commands/chunk-ZCWBZOBM.js +61 -0
  409. package/dist/commands/chunk-ZDP6SKBK.js +246 -0
  410. package/dist/commands/chunk-ZEVI2ZGI.js +145 -0
  411. package/dist/commands/chunk-ZF3SZQRJ.js +44 -0
  412. package/dist/commands/chunk-ZHEUK3ZX.js +16 -0
  413. package/dist/commands/chunk-ZJ5C6KVM.js +1072 -0
  414. package/dist/commands/chunk-ZMDHJ6QF.js +42 -0
  415. package/dist/commands/chunk-ZMS3EFW3.js +1250 -0
  416. package/dist/commands/chunk-ZMWL7LZM.js +210 -0
  417. package/dist/commands/chunk-ZNFVJETO.js +263 -0
  418. package/dist/commands/chunk-ZQEKIMBV.js +82 -0
  419. package/dist/commands/chunk-ZW6DLYS4.js +646 -0
  420. package/dist/commands/ci-timing-cli.js +10 -10
  421. package/dist/commands/code-symbol-cli.js +11 -11
  422. package/dist/commands/codex-hook-adapter.js +105 -106
  423. package/dist/commands/command-derive.js +5 -5
  424. package/dist/commands/cost-audit-main.js +139 -99
  425. package/dist/commands/cspell-cached.js +38 -37
  426. package/dist/commands/defect-origin-main.js +32 -32
  427. package/dist/commands/defect-report-main.js +29 -29
  428. package/dist/commands/diff-summary-cli.js +3 -3
  429. package/dist/commands/disposition-cli.js +108 -96
  430. package/dist/commands/doctor.js +13 -13
  431. package/dist/commands/document-read-cli.js +35 -35
  432. package/dist/commands/document-section-main.js +35 -35
  433. package/dist/commands/dogfood-commit-cli.js +11 -11
  434. package/dist/commands/effect-audit-cli.js +41 -35
  435. package/dist/commands/epic-audit-main.js +77 -76
  436. package/dist/commands/epic-bundle-main.js +167 -111
  437. package/dist/commands/epic-check.js +29 -29
  438. package/dist/commands/epic-main.js +170 -117
  439. package/dist/commands/epic-next-main.js +73 -72
  440. package/dist/commands/format-edited-cli.js +43 -43
  441. package/dist/commands/format.js +21 -21
  442. package/dist/commands/fresh-machine-cli.js +9 -9
  443. package/dist/commands/gh-usage-cli.js +13 -13
  444. package/dist/commands/git-followup-workflow.js +130 -130
  445. package/dist/commands/git-gh-checks-failed-main.js +16 -16
  446. package/dist/commands/git-workflow.js +47 -47
  447. package/dist/commands/hook-ledger-cli.js +113 -74
  448. package/dist/commands/init-main.js +28 -28
  449. package/dist/commands/inputs.json +2050 -2040
  450. package/dist/commands/issue-ack-cli.js +17 -17
  451. package/dist/commands/issue-already-done-cli.js +88 -87
  452. package/dist/commands/issue-body-cli.js +78 -64
  453. package/dist/commands/issue-cite-main.js +26 -26
  454. package/dist/commands/issue-comment-main.js +29 -29
  455. package/dist/commands/issue-consolidate-cli.js +43 -43
  456. package/dist/commands/issue-file-main.js +181 -133
  457. package/dist/commands/issue-fold-existing-cli.js +169 -113
  458. package/dist/commands/issue-fold-main.js +44 -43
  459. package/dist/commands/issue-lint-main.js +55 -54
  460. package/dist/commands/issue-measured-cli.js +91 -90
  461. package/dist/commands/issue-plan-cli.js +136 -135
  462. package/dist/commands/issue-premise-unmet-cli.js +91 -90
  463. package/dist/commands/issue-priority-cli.js +28 -28
  464. package/dist/commands/issue-read-main.js +30 -30
  465. package/dist/commands/issue-release-class-cli.js +26 -26
  466. package/dist/commands/issue-release-main.js +28 -28
  467. package/dist/commands/issue-scout-main.js +168 -112
  468. package/dist/commands/issue-spill-main.js +194 -135
  469. package/dist/commands/issue-state-main.js +28 -28
  470. package/dist/commands/issue-tick-cli.js +28 -28
  471. package/dist/commands/josh-completion.js +12 -12
  472. package/dist/commands/lane-adopt-cli.js +38 -37
  473. package/dist/commands/lane-breakdown-cli.js +176 -166
  474. package/dist/commands/lane-cli.js +163 -163
  475. package/dist/commands/lane-launch-main.js +71 -70
  476. package/dist/commands/lane-limit-cli.js +162 -106
  477. package/dist/commands/lane-measure-cli.js +386 -254
  478. package/dist/commands/lane-pause-cli.js +33 -32
  479. package/dist/commands/lane-plan-cli.js +134 -133
  480. package/dist/commands/lane-resolve-cli.js +35 -35
  481. package/dist/commands/lane-restart-cli.js +157 -157
  482. package/dist/commands/lane-why-cli.js +131 -102
  483. package/dist/commands/lane-withdraw-cli.js +66 -65
  484. package/dist/commands/latest-if-required-cli.js +5 -5
  485. package/dist/commands/lines-command.js +3 -3
  486. package/dist/commands/lint-parallel-main.js +47 -46
  487. package/dist/commands/lint-related.js +86 -86
  488. package/dist/commands/lint-rule.js +46 -45
  489. package/dist/commands/lockfile-policy.js +18 -18
  490. package/dist/commands/main-merge-main.js +12 -12
  491. package/dist/commands/main-sync-main.js +12 -12
  492. package/dist/commands/managed-config-scope-cli.js +7 -7
  493. package/dist/commands/measure-rerun-cli.js +23 -23
  494. package/dist/commands/metrics-command.js +67 -67
  495. package/dist/commands/observation-record-cli.js +13 -13
  496. package/dist/commands/observations-flush-cli.js +41 -41
  497. package/dist/commands/package-scout-cli.js +52 -52
  498. package/dist/commands/pin-verify-cli.js +9 -9
  499. package/dist/commands/plan-consumers-main.js +6 -6
  500. package/dist/commands/plan-scaffold-cli.js +125 -125
  501. package/dist/commands/pr-classification-main.js +12 -12
  502. package/dist/commands/pre-commit-lint.js +14 -15
  503. package/dist/commands/pre-commit-type-check.js +46 -46
  504. package/dist/commands/pre-push-unit.js +51 -52
  505. package/dist/commands/pretool-guard-cli.js +94 -94
  506. package/dist/commands/prevent-main-commit.js +2 -2
  507. package/dist/commands/project-profile-cli.js +13 -13
  508. package/dist/commands/propagate.js +22 -22
  509. package/dist/commands/prose-stale-cli.js +32 -32
  510. package/dist/commands/read-set-cli.js +39 -39
  511. package/dist/commands/refactor-scan-cli.js +5 -5
  512. package/dist/commands/release-cli.js +95 -43
  513. package/dist/commands/release-scope-main.js +34 -34
  514. package/dist/commands/rename-cli.js +39 -38
  515. package/dist/commands/report-template-cli.js +3 -3
  516. package/dist/commands/reserved-run.js +10 -10
  517. package/dist/commands/retrospective-cli.js +141 -102
  518. package/dist/commands/review-attest-cli.js +19 -19
  519. package/dist/commands/review-brief-main.js +159 -159
  520. package/dist/commands/review-findings-cli.js +12 -12
  521. package/dist/commands/review-pair-cli.js +145 -145
  522. package/dist/commands/review-record-main.js +145 -145
  523. package/dist/commands/review-round2-cli.js +66 -65
  524. package/dist/commands/review-stops-cli.js +35 -34
  525. package/dist/commands/review-submit-cli.js +159 -159
  526. package/dist/commands/rule-list.js +59 -59
  527. package/dist/commands/rule-value-cli.js +129 -93
  528. package/dist/commands/ruleset-check-cli.js +12 -12
  529. package/dist/commands/run-add-cli.js +61 -61
  530. package/dist/commands/run-board-main.js +197 -156
  531. package/dist/commands/run-carry-cli.js +182 -150
  532. package/dist/commands/run-chain-cli.js +153 -153
  533. package/dist/commands/run-cut-cli.js +160 -160
  534. package/dist/commands/run-ending-cli.js +34 -34
  535. package/dist/commands/run-entry-cli.js +210 -201
  536. package/dist/commands/run-event-cli.js +9 -8
  537. package/dist/commands/run-handoff-cli.js +50 -50
  538. package/dist/commands/run-handoff-lanes-cli.js +34 -33
  539. package/dist/commands/run-hold-main.js +87 -86
  540. package/dist/commands/run-liveness-cli.js +31 -30
  541. package/dist/commands/run-merge-main.js +171 -139
  542. package/dist/commands/run-next-cli.js +110 -110
  543. package/dist/commands/run-park-cli.js +109 -109
  544. package/dist/commands/run-pause-cli.js +189 -165
  545. package/dist/commands/run-pickup-cli.js +34 -33
  546. package/dist/commands/run-prep-main.js +106 -106
  547. package/dist/commands/run-prime-cli.js +136 -136
  548. package/dist/commands/run-progress-main.js +174 -127
  549. package/dist/commands/run-report-cli.js +45 -44
  550. package/dist/commands/run-review-cli.js +188 -188
  551. package/dist/commands/run-ship-cli.js +239 -234
  552. package/dist/commands/run-ship-evidence-cli.js +53 -54
  553. package/dist/commands/run-ship-lap-DGUAMCPY.js +28 -0
  554. package/dist/commands/run-ship-wait-main.js +64 -63
  555. package/dist/commands/run-split-cli.js +183 -156
  556. package/dist/commands/run-stale-main.js +55 -54
  557. package/dist/commands/run-status-cli.js +28 -28
  558. package/dist/commands/run-step-cli.js +192 -190
  559. package/dist/commands/run-tail-cli.js +9 -9
  560. package/dist/commands/run-tidy-main.js +53 -52
  561. package/dist/commands/run-wake-main.js +178 -178
  562. package/dist/commands/run-watcher-guard-cli.js +51 -50
  563. package/dist/commands/security-audit-main.js +8 -8
  564. package/dist/commands/security-audit-provision-main.js +5 -5
  565. package/dist/commands/selfcheck-cli.js +47 -47
  566. package/dist/commands/session-language-main.js +51 -51
  567. package/dist/commands/sonar-hotspots-cli.js +5 -5
  568. package/dist/commands/sonar-new-code-cli.js +3 -3
  569. package/dist/commands/split-assess-cli.js +42 -41
  570. package/dist/commands/split-child-recover-cli.js +28 -28
  571. package/dist/commands/start.js +53 -53
  572. package/dist/commands/stash-pop-main.js +3 -3
  573. package/dist/commands/stash-push-main.js +4 -4
  574. package/dist/commands/stop-guard.js +183 -159
  575. package/dist/commands/sync-main.js +18 -18
  576. package/dist/commands/telegram-test-main.js +20 -20
  577. package/dist/commands/test-declared.js +15 -15
  578. package/dist/commands/test-e2e-guard.js +41 -41
  579. package/dist/commands/test-pinned-main.js +43 -43
  580. package/dist/commands/test-reach-cli.js +27 -27
  581. package/dist/commands/test-red-main.js +12 -12
  582. package/dist/commands/test-related-UHUIUC7X.js +112 -0
  583. package/dist/commands/test-related-main.js +75 -76
  584. package/dist/commands/test-unit-guard-main.js +21 -21
  585. package/dist/commands/time-cli.js +34 -34
  586. package/dist/commands/time-density-cli.js +13 -12
  587. package/dist/commands/tree-status-cli.js +4 -4
  588. package/dist/commands/type-check-command.js +14 -14
  589. package/dist/commands/ui-routes-cli.js +4 -4
  590. package/dist/commands/uninstall.js +30 -30
  591. package/dist/commands/unused-members-LOSERD3C.js +329 -0
  592. package/dist/commands/unused-members-cli.js +15 -15
  593. package/dist/commands/upstream-interrupt-main.js +183 -136
  594. package/dist/commands/verification-gate.js +71 -72
  595. package/dist/commands/version-check.js +12 -12
  596. package/dist/hooks/audit-provision.js +4 -4
  597. package/dist/hooks/chunk-2R62D5UU.js +12 -0
  598. package/dist/hooks/chunk-3J5M7SXZ.js +1059 -0
  599. package/dist/hooks/chunk-4UAA2YFC.js +258 -0
  600. package/dist/hooks/chunk-74D3EJGW.js +5204 -0
  601. package/dist/hooks/chunk-74FYAI2L.js +43 -0
  602. package/dist/hooks/chunk-ALY5AW75.js +1953 -0
  603. package/dist/hooks/chunk-FBDC6KVJ.js +77 -0
  604. package/dist/hooks/chunk-HKUR6WKR.js +6874 -0
  605. package/dist/hooks/chunk-NFTDYUN3.js +1915 -0
  606. package/dist/hooks/chunk-NP6BVTR3.js +9176 -0
  607. package/dist/hooks/chunk-OOEG63LD.js +321 -0
  608. package/dist/hooks/chunk-RWVA2SFN.js +28584 -0
  609. package/dist/hooks/chunk-U55QDXSC.js +32 -0
  610. package/dist/hooks/chunk-VWZOPSZX.js +5092 -0
  611. package/dist/hooks/chunk-Z6W64J64.js +11254 -0
  612. package/dist/hooks/codex-hook-adapter.js +12 -12
  613. package/dist/hooks/daemon.js +112 -40
  614. package/dist/hooks/format-edited.js +7 -7
  615. package/dist/hooks/inputs.json +515 -459
  616. package/dist/hooks/pretool-guard.js +10 -10
  617. package/dist/hooks/run-ship-lap-XDLXQIS3.js +8 -0
  618. package/dist/hooks/session-lang.js +7 -7
  619. package/dist/hooks/stop-guard.js +8396 -4497
  620. package/dist/inputs.json +73 -73
  621. package/dist/josh.js +31 -15
  622. package/dist/registry-migrate.mjs +32 -8
  623. package/dist/version/index.js +48 -19
  624. package/package.json +1 -1
  625. package/prompts/collaboration-workflow/issue-template.en.md +5 -0
  626. package/prompts/collaboration-workflow/issue-template.md +14 -1
  627. package/scripts/backlog/backlog-drive-cli.ts +2 -1
  628. package/scripts/backlog/backlog-drive-listing.ts +20 -6
  629. package/scripts/backlog/backlog-hold-text.ts +1 -0
  630. package/scripts/backlog/backlog-listing-trace.ts +35 -0
  631. package/scripts/backlog/backlog-offer-timing.ts +10 -2
  632. package/scripts/backlog/backlog-wait-cause.ts +10 -2
  633. package/scripts/document/document-byte-budget.ts +2 -2
  634. package/scripts/git/git-command.ts +7 -3
  635. package/scripts/git/git-pre-push-hook.ts +9 -5
  636. package/scripts/git/git-spawn.ts +20 -4
  637. package/scripts/hooks/implementation-shell-deny-git.ts +17 -3
  638. package/scripts/hooks/pre-push-related-switch.ts +3 -2
  639. package/scripts/hooks/pre-push-unit.ts +3 -1
  640. package/scripts/issue/effect-audit.ts +7 -0
  641. package/scripts/issue/issue-body-cli.ts +18 -2
  642. package/scripts/issue/issue-body-keys.ts +1 -0
  643. package/scripts/issue/issue-file-pass.ts +1 -0
  644. package/scripts/issue/issue-lint-cli.ts +16 -2
  645. package/scripts/issue/issue-lint.ts +16 -0
  646. package/scripts/issue/issue-publication-state.ts +82 -6
  647. package/scripts/issue/issue-spill.ts +18 -4
  648. package/scripts/issue/issue-template-section.ts +7 -1
  649. package/scripts/josh/josh-commands-ai.ts +3 -2
  650. package/scripts/lane/lane-chain-stop-stats.ts +19 -7
  651. package/scripts/lane/lane-concurrency-stats.ts +39 -14
  652. package/scripts/lane/lane-concurrency-wait.ts +64 -0
  653. package/scripts/lane/lane-core-wait-stats.ts +13 -4
  654. package/scripts/lane/lane-implement-read-calls.ts +123 -0
  655. package/scripts/lane/lane-implement-read.ts +8 -3
  656. package/scripts/lane/lane-implement-stats.ts +33 -6
  657. package/scripts/lane/lane-ledger-schema-ship.ts +17 -3
  658. package/scripts/lane/lane-measure-cli.ts +5 -3
  659. package/scripts/lane/lane-plan-size.ts +1 -1
  660. package/scripts/lane/lane-size-record.ts +4 -3
  661. package/scripts/lane/lane-size-stats.ts +21 -9
  662. package/scripts/lane/lane-stats-request.ts +12 -3
  663. package/scripts/lane/lane-stats-tables.ts +30 -9
  664. package/scripts/lane/lane-stop-stats.ts +10 -1
  665. package/scripts/lane/lane-table-rows.ts +26 -0
  666. package/scripts/lib/timeouts.ts +4 -3
  667. package/scripts/registry-migration/migrate-lock.ts +40 -8
  668. package/scripts/registry-migration/migrate.ts +6 -3
  669. package/scripts/release/release-publish.ts +23 -3
  670. package/scripts/release/release-step-time.ts +61 -0
  671. package/scripts/review/disposition-batch-filing.ts +13 -0
  672. package/scripts/rules/git-argv.ts +10 -3
  673. package/scripts/run/board/run-board-closed-pace.ts +76 -0
  674. package/scripts/run/board/run-board-github.ts +17 -28
  675. package/scripts/run/board/run-board-labels.ts +5 -2
  676. package/scripts/run/board/run-board-reason.ts +10 -0
  677. package/scripts/run/entry/run-entry-sync.ts +17 -5
  678. package/scripts/run/hold/run-hold-cli.ts +8 -2
  679. package/scripts/run/merge/run-merge-health.ts +9 -2
  680. package/scripts/run/review/run-review-pinned-accepted.ts +24 -1
  681. package/scripts/run/run-preflight.ts +81 -17
  682. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +14 -9
  683. package/scripts/run/ship/run-ship-pre-detach.ts +16 -7
  684. package/scripts/run/ship/run-ship-stop-cause.ts +13 -2
  685. package/scripts/run/ship/run-ship.ts +7 -1
  686. package/scripts/split/split-assess.ts +7 -22
  687. package/scripts/split/split-cap.ts +31 -0
  688. package/scripts/test/direct-importers.ts +46 -3
  689. package/scripts/test/lockfile-changed-packages.ts +155 -0
  690. package/scripts/test/package-version-only.ts +30 -0
  691. package/scripts/test/pure-files-entries.ts +1 -27
  692. package/scripts/test/test-related-scope.ts +30 -5
  693. package/scripts/test/test-related.ts +3 -3
  694. package/scripts/test/test-unit-guard.ts +9 -9
  695. package/scripts/test/unit-worker-share.ts +21 -0
  696. package/scripts/test/whole-suite-files.ts +23 -2
  697. package/scripts/test/whole-suite-narrowing.ts +108 -0
  698. package/dist/commands/chunk-26JL4UU4.js +0 -365
  699. package/dist/commands/chunk-2BC33QPY.js +0 -183
  700. package/dist/commands/chunk-2BIVHPCA.js +0 -85
  701. package/dist/commands/chunk-2CKJODCK.js +0 -245
  702. package/dist/commands/chunk-2CNVIA35.js +0 -335
  703. package/dist/commands/chunk-2E6PSONB.js +0 -46
  704. package/dist/commands/chunk-2GA4775H.js +0 -77
  705. package/dist/commands/chunk-2O64H5UJ.js +0 -462
  706. package/dist/commands/chunk-2OEXY4GM.js +0 -252
  707. package/dist/commands/chunk-2ONSHOAY.js +0 -46
  708. package/dist/commands/chunk-2SA3W4JF.js +0 -41
  709. package/dist/commands/chunk-2VY7CJ2R.js +0 -212
  710. package/dist/commands/chunk-2WRDAQPJ.js +0 -74
  711. package/dist/commands/chunk-2XLR7R6E.js +0 -541
  712. package/dist/commands/chunk-34JJYCIY.js +0 -117
  713. package/dist/commands/chunk-36XHHYNU.js +0 -158
  714. package/dist/commands/chunk-3CJNQU7P.js +0 -179
  715. package/dist/commands/chunk-3D5T6KMW.js +0 -59
  716. package/dist/commands/chunk-3EW5LTN3.js +0 -114
  717. package/dist/commands/chunk-3F3RNIG2.js +0 -128
  718. package/dist/commands/chunk-3FLTEJZY.js +0 -74
  719. package/dist/commands/chunk-3JWPTRNI.js +0 -60
  720. package/dist/commands/chunk-3LUPGBW4.js +0 -137
  721. package/dist/commands/chunk-3PCUERXE.js +0 -19
  722. package/dist/commands/chunk-3U6A5WON.js +0 -173
  723. package/dist/commands/chunk-3VLDFM5I.js +0 -426
  724. package/dist/commands/chunk-3YT3RCSI.js +0 -140
  725. package/dist/commands/chunk-43DU7DYZ.js +0 -540
  726. package/dist/commands/chunk-43H725LG.js +0 -132
  727. package/dist/commands/chunk-46STCE6Q.js +0 -48
  728. package/dist/commands/chunk-46WEC6HZ.js +0 -82
  729. package/dist/commands/chunk-47J4KOZP.js +0 -46
  730. package/dist/commands/chunk-47W7PF4T.js +0 -22
  731. package/dist/commands/chunk-4F4KARQN.js +0 -229
  732. package/dist/commands/chunk-4HB7NWXP.js +0 -263
  733. package/dist/commands/chunk-4I5AA4P5.js +0 -237
  734. package/dist/commands/chunk-4IDINPBE.js +0 -525
  735. package/dist/commands/chunk-4NSIW3UB.js +0 -104
  736. package/dist/commands/chunk-4YTKV6WV.js +0 -37
  737. package/dist/commands/chunk-5ARNFMQK.js +0 -1263
  738. package/dist/commands/chunk-5AZTSESD.js +0 -114
  739. package/dist/commands/chunk-5FUI2MLY.js +0 -89
  740. package/dist/commands/chunk-5IHEBIPD.js +0 -333
  741. package/dist/commands/chunk-5KAW5GPF.js +0 -44
  742. package/dist/commands/chunk-5KSJEWXR.js +0 -77
  743. package/dist/commands/chunk-5PCK53WP.js +0 -168
  744. package/dist/commands/chunk-5PPWXOCF.js +0 -64
  745. package/dist/commands/chunk-5Y7FOJLX.js +0 -186
  746. package/dist/commands/chunk-5YTEMF4O.js +0 -110
  747. package/dist/commands/chunk-6AHAY5VZ.js +0 -69
  748. package/dist/commands/chunk-6FN37DER.js +0 -330
  749. package/dist/commands/chunk-6JD4VNO4.js +0 -124
  750. package/dist/commands/chunk-6KUA7MRG.js +0 -64
  751. package/dist/commands/chunk-6LDEZFYR.js +0 -88
  752. package/dist/commands/chunk-6NXIZMIK.js +0 -122
  753. package/dist/commands/chunk-6O45F6YI.js +0 -86
  754. package/dist/commands/chunk-6OHJBQDE.js +0 -184
  755. package/dist/commands/chunk-6TIVDEKG.js +0 -34
  756. package/dist/commands/chunk-6WDCCG3M.js +0 -1249
  757. package/dist/commands/chunk-6ZHXEQAI.js +0 -715
  758. package/dist/commands/chunk-736NECRD.js +0 -16
  759. package/dist/commands/chunk-77LEKVEE.js +0 -32
  760. package/dist/commands/chunk-7DGHFBU7.js +0 -247
  761. package/dist/commands/chunk-7EAYFMDN.js +0 -235
  762. package/dist/commands/chunk-7HYYHCTN.js +0 -402
  763. package/dist/commands/chunk-7JOOMFDI.js +0 -155
  764. package/dist/commands/chunk-7K5ITPHR.js +0 -338
  765. package/dist/commands/chunk-7OEBSPPU.js +0 -321
  766. package/dist/commands/chunk-7ULYLGUK.js +0 -492
  767. package/dist/commands/chunk-A3JYZWBS.js +0 -803
  768. package/dist/commands/chunk-A3LCN4KA.js +0 -84
  769. package/dist/commands/chunk-ABLXBG6C.js +0 -98
  770. package/dist/commands/chunk-ABM2MZBF.js +0 -161
  771. package/dist/commands/chunk-AN7BFVHU.js +0 -244
  772. package/dist/commands/chunk-AQCVEQSM.js +0 -99
  773. package/dist/commands/chunk-AU563VKH.js +0 -75
  774. package/dist/commands/chunk-AUTD5FV2.js +0 -1077
  775. package/dist/commands/chunk-AV26CMY6.js +0 -304
  776. package/dist/commands/chunk-B2PJEV3S.js +0 -246
  777. package/dist/commands/chunk-B545ENGY.js +0 -214
  778. package/dist/commands/chunk-B5HP6T4L.js +0 -170
  779. package/dist/commands/chunk-B73IIRMS.js +0 -207
  780. package/dist/commands/chunk-BBLEC4YQ.js +0 -109
  781. package/dist/commands/chunk-BDSG6JKH.js +0 -977
  782. package/dist/commands/chunk-BFKTUD3V.js +0 -33
  783. package/dist/commands/chunk-BLRXHK2V.js +0 -17
  784. package/dist/commands/chunk-BML6MEUB.js +0 -326
  785. package/dist/commands/chunk-BMM4RHCG.js +0 -69
  786. package/dist/commands/chunk-BPDNGJXY.js +0 -63
  787. package/dist/commands/chunk-BQLKWGGC.js +0 -118
  788. package/dist/commands/chunk-BRMJVCP7.js +0 -167
  789. package/dist/commands/chunk-BRWR5YKU.js +0 -268
  790. package/dist/commands/chunk-BUZAYEBD.js +0 -319
  791. package/dist/commands/chunk-C7FGDZWP.js +0 -224
  792. package/dist/commands/chunk-CC4BIGCA.js +0 -20
  793. package/dist/commands/chunk-CCHJZEF5.js +0 -4220
  794. package/dist/commands/chunk-CDK7QZWG.js +0 -44
  795. package/dist/commands/chunk-CDYFUCDC.js +0 -72
  796. package/dist/commands/chunk-CEADAQIL.js +0 -170
  797. package/dist/commands/chunk-CNL3SLM6.js +0 -116
  798. package/dist/commands/chunk-CNQ7D2GZ.js +0 -104
  799. package/dist/commands/chunk-COGKULQH.js +0 -119
  800. package/dist/commands/chunk-CQUZ6TNQ.js +0 -120
  801. package/dist/commands/chunk-CTXJVMHW.js +0 -48
  802. package/dist/commands/chunk-CUWT6UQO.js +0 -13
  803. package/dist/commands/chunk-D6CF5QGM.js +0 -80
  804. package/dist/commands/chunk-DACNQAXC.js +0 -20
  805. package/dist/commands/chunk-DDOS32JU.js +0 -74
  806. package/dist/commands/chunk-DF6QD4AF.js +0 -52
  807. package/dist/commands/chunk-DFEXNB44.js +0 -159
  808. package/dist/commands/chunk-DHDKG5HZ.js +0 -151
  809. package/dist/commands/chunk-DHJRFBKO.js +0 -223
  810. package/dist/commands/chunk-DKO5VTEH.js +0 -65
  811. package/dist/commands/chunk-DLHH3MLS.js +0 -85
  812. package/dist/commands/chunk-DOYNK72G.js +0 -81
  813. package/dist/commands/chunk-DS53UUDH.js +0 -679
  814. package/dist/commands/chunk-DUA4E4ES.js +0 -230
  815. package/dist/commands/chunk-DVCMQMRN.js +0 -191
  816. package/dist/commands/chunk-E3YKMCCJ.js +0 -108
  817. package/dist/commands/chunk-E4F2RTKC.js +0 -272
  818. package/dist/commands/chunk-E4PFCTXN.js +0 -127
  819. package/dist/commands/chunk-EAOTR2WL.js +0 -24
  820. package/dist/commands/chunk-EHPTXSAT.js +0 -315
  821. package/dist/commands/chunk-EHVEWJQ4.js +0 -33
  822. package/dist/commands/chunk-EMFSPPMH.js +0 -98
  823. package/dist/commands/chunk-EPICTV2P.js +0 -46
  824. package/dist/commands/chunk-ES42XPAD.js +0 -123
  825. package/dist/commands/chunk-ESUY7KTZ.js +0 -137
  826. package/dist/commands/chunk-EVVQJJFV.js +0 -507
  827. package/dist/commands/chunk-EWXXEGXL.js +0 -149
  828. package/dist/commands/chunk-F2U46HAE.js +0 -52
  829. package/dist/commands/chunk-F2VYWU6Z.js +0 -653
  830. package/dist/commands/chunk-F4SGOTUF.js +0 -36
  831. package/dist/commands/chunk-F4YMLVWN.js +0 -183
  832. package/dist/commands/chunk-F57LACNC.js +0 -84
  833. package/dist/commands/chunk-F5N2QIFD.js +0 -213
  834. package/dist/commands/chunk-FA7CN75F.js +0 -160
  835. package/dist/commands/chunk-FDASVHZD.js +0 -241
  836. package/dist/commands/chunk-FEYZ575X.js +0 -278
  837. package/dist/commands/chunk-FJM2HWKW.js +0 -299
  838. package/dist/commands/chunk-FJMXUDEY.js +0 -3985
  839. package/dist/commands/chunk-FM7VVAK6.js +0 -426
  840. package/dist/commands/chunk-FQWRM5FC.js +0 -67
  841. package/dist/commands/chunk-FT33ZCSB.js +0 -298
  842. package/dist/commands/chunk-FTAWHAI7.js +0 -170
  843. package/dist/commands/chunk-G2DNS74C.js +0 -53
  844. package/dist/commands/chunk-G3BBCAAH.js +0 -90
  845. package/dist/commands/chunk-G6BXCWPH.js +0 -141
  846. package/dist/commands/chunk-GABDPTDK.js +0 -907
  847. package/dist/commands/chunk-GAVSK6P6.js +0 -230
  848. package/dist/commands/chunk-GB2BRQVL.js +0 -300
  849. package/dist/commands/chunk-GBMZXFFC.js +0 -44
  850. package/dist/commands/chunk-GGWXF7RJ.js +0 -70
  851. package/dist/commands/chunk-GHOTKHI4.js +0 -30
  852. package/dist/commands/chunk-GMVN6ZP2.js +0 -48
  853. package/dist/commands/chunk-GNTTGRCX.js +0 -133
  854. package/dist/commands/chunk-GOY5JECO.js +0 -130
  855. package/dist/commands/chunk-GZL6ISVM.js +0 -72
  856. package/dist/commands/chunk-HALHQILI.js +0 -51
  857. package/dist/commands/chunk-HAT7AFBF.js +0 -85
  858. package/dist/commands/chunk-HDVSZ6CZ.js +0 -292
  859. package/dist/commands/chunk-HE3GOMR7.js +0 -88
  860. package/dist/commands/chunk-HEFUC4ZW.js +0 -65
  861. package/dist/commands/chunk-HHS3LYLV.js +0 -30
  862. package/dist/commands/chunk-HQSWPRUF.js +0 -61
  863. package/dist/commands/chunk-HQZ65PJE.js +0 -167
  864. package/dist/commands/chunk-HRN73FQJ.js +0 -77
  865. package/dist/commands/chunk-HSZECERZ.js +0 -271
  866. package/dist/commands/chunk-HYE3MBAN.js +0 -113
  867. package/dist/commands/chunk-IAB6LCJL.js +0 -18
  868. package/dist/commands/chunk-IAGENI2U.js +0 -42
  869. package/dist/commands/chunk-ICPVBHIX.js +0 -48
  870. package/dist/commands/chunk-ILIITIMQ.js +0 -126
  871. package/dist/commands/chunk-IONGJJYM.js +0 -179
  872. package/dist/commands/chunk-IP23WOWP.js +0 -126
  873. package/dist/commands/chunk-IPS7EBE5.js +0 -140
  874. package/dist/commands/chunk-IXZZSST7.js +0 -459
  875. package/dist/commands/chunk-IY3DSDRW.js +0 -173
  876. package/dist/commands/chunk-J2RUI4KN.js +0 -47
  877. package/dist/commands/chunk-J3PCRUVY.js +0 -1223
  878. package/dist/commands/chunk-J4XHEOOW.js +0 -156
  879. package/dist/commands/chunk-JDHLHYJJ.js +0 -208
  880. package/dist/commands/chunk-JGX7JIW4.js +0 -126
  881. package/dist/commands/chunk-JHIGDFBS.js +0 -59
  882. package/dist/commands/chunk-JI2EGXZX.js +0 -53
  883. package/dist/commands/chunk-JNV3VRK2.js +0 -47
  884. package/dist/commands/chunk-JPMAW2VZ.js +0 -91
  885. package/dist/commands/chunk-JQEY6KDP.js +0 -90
  886. package/dist/commands/chunk-JSJDIEGZ.js +0 -88
  887. package/dist/commands/chunk-JT5ICRFF.js +0 -44
  888. package/dist/commands/chunk-JU2MAYQ3.js +0 -997
  889. package/dist/commands/chunk-JUCJ4Y42.js +0 -77
  890. package/dist/commands/chunk-JZK33TA5.js +0 -99
  891. package/dist/commands/chunk-K3OZBV3L.js +0 -49
  892. package/dist/commands/chunk-K6P5PISC.js +0 -114
  893. package/dist/commands/chunk-KDCHY7XO.js +0 -88
  894. package/dist/commands/chunk-KDGX3JTV.js +0 -51
  895. package/dist/commands/chunk-KGSEWOKI.js +0 -353
  896. package/dist/commands/chunk-KIS7JFNP.js +0 -217
  897. package/dist/commands/chunk-KJPZPTS4.js +0 -245
  898. package/dist/commands/chunk-KKHD3C2P.js +0 -114
  899. package/dist/commands/chunk-KKIIY5I5.js +0 -67
  900. package/dist/commands/chunk-KN46UC77.js +0 -114
  901. package/dist/commands/chunk-KP2BVAS5.js +0 -125
  902. package/dist/commands/chunk-KPAJBJXG.js +0 -63
  903. package/dist/commands/chunk-KPMAJP6D.js +0 -145
  904. package/dist/commands/chunk-KR6WUAJM.js +0 -122
  905. package/dist/commands/chunk-KWLNK2NJ.js +0 -391
  906. package/dist/commands/chunk-KXK2A2HB.js +0 -158
  907. package/dist/commands/chunk-L2CLCNXW.js +0 -144
  908. package/dist/commands/chunk-L7MDU6D7.js +0 -155
  909. package/dist/commands/chunk-L7VD4MLF.js +0 -78
  910. package/dist/commands/chunk-LBVYFW3I.js +0 -38
  911. package/dist/commands/chunk-LIPUSINQ.js +0 -140
  912. package/dist/commands/chunk-LJVZWE3A.js +0 -1885
  913. package/dist/commands/chunk-LKSSQVDA.js +0 -49
  914. package/dist/commands/chunk-LNQOL2CL.js +0 -321
  915. package/dist/commands/chunk-LS7P324N.js +0 -72
  916. package/dist/commands/chunk-LU5EOGFQ.js +0 -50
  917. package/dist/commands/chunk-LX2ENXHZ.js +0 -197
  918. package/dist/commands/chunk-M3UGRNNB.js +0 -103
  919. package/dist/commands/chunk-M3ZDYCUF.js +0 -117
  920. package/dist/commands/chunk-MDGPJOLK.js +0 -351
  921. package/dist/commands/chunk-MDKRTUE4.js +0 -288
  922. package/dist/commands/chunk-MFZVRWRS.js +0 -34
  923. package/dist/commands/chunk-MHF6BDQI.js +0 -128
  924. package/dist/commands/chunk-MLJDW7YN.js +0 -64
  925. package/dist/commands/chunk-MNLHYAJO.js +0 -80
  926. package/dist/commands/chunk-MOD3FG4V.js +0 -419
  927. package/dist/commands/chunk-MRAEJLXL.js +0 -83
  928. package/dist/commands/chunk-MRW2WYJS.js +0 -68
  929. package/dist/commands/chunk-N2XH7QBY.js +0 -103
  930. package/dist/commands/chunk-N2ZF6T4E.js +0 -332
  931. package/dist/commands/chunk-N36NZMAL.js +0 -79
  932. package/dist/commands/chunk-N4EMFHQ6.js +0 -114
  933. package/dist/commands/chunk-N4P64UIH.js +0 -211
  934. package/dist/commands/chunk-NABSSY4P.js +0 -204
  935. package/dist/commands/chunk-NDQIJBRQ.js +0 -100
  936. package/dist/commands/chunk-NDR4PCVG.js +0 -29
  937. package/dist/commands/chunk-NEOCCN6D.js +0 -302
  938. package/dist/commands/chunk-NFKWFOFM.js +0 -45
  939. package/dist/commands/chunk-NFUPJBBG.js +0 -516
  940. package/dist/commands/chunk-NHEBKL7X.js +0 -170
  941. package/dist/commands/chunk-NHTEC5U4.js +0 -99
  942. package/dist/commands/chunk-NOSODWWK.js +0 -1132
  943. package/dist/commands/chunk-NPXXYG6Z.js +0 -580
  944. package/dist/commands/chunk-NR2JDBPV.js +0 -75
  945. package/dist/commands/chunk-NRULNBYI.js +0 -1153
  946. package/dist/commands/chunk-NTGF5N3N.js +0 -110
  947. package/dist/commands/chunk-NTIVNQKF.js +0 -73
  948. package/dist/commands/chunk-NUCFIYZL.js +0 -119
  949. package/dist/commands/chunk-NVMV7BYX.js +0 -88
  950. package/dist/commands/chunk-NYWPTYGL.js +0 -169
  951. package/dist/commands/chunk-O45BX4EL.js +0 -39
  952. package/dist/commands/chunk-O46T4ANI.js +0 -229
  953. package/dist/commands/chunk-O7ESC4HL.js +0 -566
  954. package/dist/commands/chunk-OBYLXHCH.js +0 -86
  955. package/dist/commands/chunk-OHN3QARP.js +0 -769
  956. package/dist/commands/chunk-OKBZGLD5.js +0 -393
  957. package/dist/commands/chunk-OKN63ZH5.js +0 -109
  958. package/dist/commands/chunk-ON4IKRGS.js +0 -469
  959. package/dist/commands/chunk-OT74RSQO.js +0 -82
  960. package/dist/commands/chunk-OVCVINYW.js +0 -143
  961. package/dist/commands/chunk-OZKLVTYI.js +0 -342
  962. package/dist/commands/chunk-OZN4HOZT.js +0 -74
  963. package/dist/commands/chunk-P3LJ2Q4N.js +0 -555
  964. package/dist/commands/chunk-P43GWYR6.js +0 -185
  965. package/dist/commands/chunk-P6ASP2DY.js +0 -132
  966. package/dist/commands/chunk-PBAEJ5PT.js +0 -38
  967. package/dist/commands/chunk-PCZROH3R.js +0 -100
  968. package/dist/commands/chunk-PJYTUUTH.js +0 -34
  969. package/dist/commands/chunk-PKXTISWR.js +0 -58
  970. package/dist/commands/chunk-PSGLUBSB.js +0 -74
  971. package/dist/commands/chunk-PVRDJU2B.js +0 -126
  972. package/dist/commands/chunk-Q42NF2TL.js +0 -47
  973. package/dist/commands/chunk-Q4ULMZAS.js +0 -106
  974. package/dist/commands/chunk-QCRUPRQ2.js +0 -207
  975. package/dist/commands/chunk-QGATHT4S.js +0 -114
  976. package/dist/commands/chunk-QKTTKAXM.js +0 -119
  977. package/dist/commands/chunk-QSBYULSS.js +0 -100
  978. package/dist/commands/chunk-QSJCZATC.js +0 -18
  979. package/dist/commands/chunk-QTJPCXEW.js +0 -23
  980. package/dist/commands/chunk-QTQAI2M2.js +0 -179
  981. package/dist/commands/chunk-QTVVFV4Q.js +0 -127
  982. package/dist/commands/chunk-QVOFWFWC.js +0 -134
  983. package/dist/commands/chunk-QX2EMUXV.js +0 -102
  984. package/dist/commands/chunk-QXBOECGL.js +0 -272
  985. package/dist/commands/chunk-QXCG3SG4.js +0 -88
  986. package/dist/commands/chunk-QZVMGAWV.js +0 -307
  987. package/dist/commands/chunk-R2THGPI3.js +0 -99
  988. package/dist/commands/chunk-R36VZIKU.js +0 -53
  989. package/dist/commands/chunk-R3F7F3TX.js +0 -94
  990. package/dist/commands/chunk-R5AABJZJ.js +0 -1062
  991. package/dist/commands/chunk-R7PYR4HW.js +0 -389
  992. package/dist/commands/chunk-RAQ3E6OT.js +0 -258
  993. package/dist/commands/chunk-RESNXNDG.js +0 -54
  994. package/dist/commands/chunk-RFIOZTXY.js +0 -305
  995. package/dist/commands/chunk-RFWB2KAV.js +0 -102
  996. package/dist/commands/chunk-RFXON3FK.js +0 -25
  997. package/dist/commands/chunk-RGEB5L37.js +0 -66
  998. package/dist/commands/chunk-RGRLLF2J.js +0 -119
  999. package/dist/commands/chunk-RLRIMYXM.js +0 -178
  1000. package/dist/commands/chunk-RNB3DQOZ.js +0 -70
  1001. package/dist/commands/chunk-RO4QEZJO.js +0 -172
  1002. package/dist/commands/chunk-RS5HBJY6.js +0 -161
  1003. package/dist/commands/chunk-RV7EQIE4.js +0 -202
  1004. package/dist/commands/chunk-RWPCK3CO.js +0 -41
  1005. package/dist/commands/chunk-RWYSVFIA.js +0 -250
  1006. package/dist/commands/chunk-RYKK75YT.js +0 -289
  1007. package/dist/commands/chunk-S4JE63QE.js +0 -704
  1008. package/dist/commands/chunk-S5GX3H4P.js +0 -91
  1009. package/dist/commands/chunk-SC57VV6A.js +0 -60
  1010. package/dist/commands/chunk-SD4EX75H.js +0 -177
  1011. package/dist/commands/chunk-SJITWFNY.js +0 -480
  1012. package/dist/commands/chunk-SKGDMAIA.js +0 -33
  1013. package/dist/commands/chunk-SNSZ25XZ.js +0 -393
  1014. package/dist/commands/chunk-SOETJZWH.js +0 -7672
  1015. package/dist/commands/chunk-SQZZHK6X.js +0 -119
  1016. package/dist/commands/chunk-SRG6PKVS.js +0 -49
  1017. package/dist/commands/chunk-SRTEE34O.js +0 -93
  1018. package/dist/commands/chunk-SVTS7ACS.js +0 -18
  1019. package/dist/commands/chunk-SYTCTLMD.js +0 -285
  1020. package/dist/commands/chunk-T6JUDQMW.js +0 -181
  1021. package/dist/commands/chunk-TEXUEBGE.js +0 -208
  1022. package/dist/commands/chunk-TFDVTU6O.js +0 -910
  1023. package/dist/commands/chunk-TFYYXETQ.js +0 -472
  1024. package/dist/commands/chunk-TMFKVJUW.js +0 -121
  1025. package/dist/commands/chunk-TRHWBUWE.js +0 -61
  1026. package/dist/commands/chunk-TROCFVCU.js +0 -45
  1027. package/dist/commands/chunk-TUBBESHU.js +0 -85
  1028. package/dist/commands/chunk-TVZIFZZN.js +0 -62
  1029. package/dist/commands/chunk-TXRWAL63.js +0 -144
  1030. package/dist/commands/chunk-U46YTYJQ.js +0 -92
  1031. package/dist/commands/chunk-U5EO4QEV.js +0 -48
  1032. package/dist/commands/chunk-U7Y6RKLK.js +0 -168
  1033. package/dist/commands/chunk-UCO333EX.js +0 -47
  1034. package/dist/commands/chunk-UIXQ4IYT.js +0 -445
  1035. package/dist/commands/chunk-UJGNYPMD.js +0 -716
  1036. package/dist/commands/chunk-UREXZJDB.js +0 -210
  1037. package/dist/commands/chunk-URZ4RDC4.js +0 -220
  1038. package/dist/commands/chunk-UUA63LCI.js +0 -77
  1039. package/dist/commands/chunk-UVY5ODCM.js +0 -60
  1040. package/dist/commands/chunk-UWMB6EOU.js +0 -45
  1041. package/dist/commands/chunk-UY62WJV6.js +0 -120
  1042. package/dist/commands/chunk-UZDKCGDC.js +0 -198
  1043. package/dist/commands/chunk-VAHQ4AFM.js +0 -585
  1044. package/dist/commands/chunk-VL5I2IOD.js +0 -332
  1045. package/dist/commands/chunk-VMG3QB6C.js +0 -81
  1046. package/dist/commands/chunk-VO25PMGS.js +0 -58
  1047. package/dist/commands/chunk-VPRQFM2T.js +0 -37
  1048. package/dist/commands/chunk-VTLWODJ2.js +0 -133
  1049. package/dist/commands/chunk-VUCDGQ6Y.js +0 -260
  1050. package/dist/commands/chunk-VY7ZJMDT.js +0 -469
  1051. package/dist/commands/chunk-W4BR6QNU.js +0 -1241
  1052. package/dist/commands/chunk-W7X7MZZN.js +0 -449
  1053. package/dist/commands/chunk-WCYRNNKF.js +0 -76
  1054. package/dist/commands/chunk-WEUUJIWQ.js +0 -84
  1055. package/dist/commands/chunk-WNBJK6QE.js +0 -84
  1056. package/dist/commands/chunk-WORHUJ6T.js +0 -73
  1057. package/dist/commands/chunk-WR5PKCQW.js +0 -61
  1058. package/dist/commands/chunk-WR73HTRG.js +0 -121
  1059. package/dist/commands/chunk-WRNMUQTD.js +0 -95
  1060. package/dist/commands/chunk-WROJTXWZ.js +0 -138
  1061. package/dist/commands/chunk-WTIPX5NG.js +0 -43
  1062. package/dist/commands/chunk-WWLCQREY.js +0 -225
  1063. package/dist/commands/chunk-WXLW7S4M.js +0 -71
  1064. package/dist/commands/chunk-WXXLJQBO.js +0 -67
  1065. package/dist/commands/chunk-X4LYH6Q4.js +0 -56
  1066. package/dist/commands/chunk-XAEL24EG.js +0 -66
  1067. package/dist/commands/chunk-XI2ABCRX.js +0 -209
  1068. package/dist/commands/chunk-XRQMVAB4.js +0 -85
  1069. package/dist/commands/chunk-XUXCFPDK.js +0 -218
  1070. package/dist/commands/chunk-XZQWEVR3.js +0 -84
  1071. package/dist/commands/chunk-Y6OGDG5I.js +0 -49
  1072. package/dist/commands/chunk-YANDBVAT.js +0 -430
  1073. package/dist/commands/chunk-YD7XK2TX.js +0 -550
  1074. package/dist/commands/chunk-YEAE46TS.js +0 -98
  1075. package/dist/commands/chunk-YEQFAEVW.js +0 -112
  1076. package/dist/commands/chunk-YJZAD4Z5.js +0 -103
  1077. package/dist/commands/chunk-YNCF66RK.js +0 -1052
  1078. package/dist/commands/chunk-YOA25SII.js +0 -210
  1079. package/dist/commands/chunk-YOZTZMAT.js +0 -38
  1080. package/dist/commands/chunk-YSGRHVZG.js +0 -897
  1081. package/dist/commands/chunk-YSLGWRQN.js +0 -646
  1082. package/dist/commands/chunk-YT5JR2CB.js +0 -105
  1083. package/dist/commands/chunk-YTXCLGGL.js +0 -168
  1084. package/dist/commands/chunk-YVHJN2HS.js +0 -74
  1085. package/dist/commands/chunk-YY7XVVSB.js +0 -43
  1086. package/dist/commands/chunk-Z2NUK47W.js +0 -1314
  1087. package/dist/commands/chunk-Z5GZV4DV.js +0 -16
  1088. package/dist/commands/chunk-ZB52ZIEA.js +0 -1629
  1089. package/dist/commands/chunk-ZCD4AV2P.js +0 -73
  1090. package/dist/commands/chunk-ZCHZU6NX.js +0 -799
  1091. package/dist/commands/chunk-ZEH2B3DF.js +0 -239
  1092. package/dist/commands/chunk-ZGANVZCA.js +0 -92
  1093. package/dist/commands/chunk-ZGEUWHFF.js +0 -297
  1094. package/dist/commands/chunk-ZHSNQ2F7.js +0 -161
  1095. package/dist/commands/chunk-ZI3SABMH.js +0 -347
  1096. package/dist/commands/chunk-ZIIUBGON.js +0 -773
  1097. package/dist/commands/chunk-ZJJLROJY.js +0 -269
  1098. package/dist/commands/chunk-ZNIIA275.js +0 -59
  1099. package/dist/commands/chunk-ZV6BZZJ2.js +0 -271
  1100. package/dist/commands/run-ship-lap-W66LTXJJ.js +0 -28
  1101. package/dist/commands/test-related-XBDH2IOH.js +0 -113
  1102. package/dist/commands/unused-members-KVKZDTXD.js +0 -329
  1103. package/dist/hooks/chunk-3SA3FIQC.js +0 -6869
  1104. package/dist/hooks/chunk-46PTTMGE.js +0 -1625
  1105. package/dist/hooks/chunk-5NIBRHWG.js +0 -77
  1106. package/dist/hooks/chunk-76QKN2K3.js +0 -258
  1107. package/dist/hooks/chunk-CHEKMGFP.js +0 -321
  1108. package/dist/hooks/chunk-CY3ADSDR.js +0 -28580
  1109. package/dist/hooks/chunk-DCILEVDR.js +0 -5173
  1110. package/dist/hooks/chunk-HVNGIM5W.js +0 -5092
  1111. package/dist/hooks/chunk-L6IZZ2IL.js +0 -11219
  1112. package/dist/hooks/chunk-SAAPRHTK.js +0 -43
  1113. package/dist/hooks/chunk-U3ON2GBN.js +0 -12
  1114. package/dist/hooks/chunk-UZXMFOVK.js +0 -9170
  1115. package/dist/hooks/chunk-WCJ2GWYJ.js +0 -1381
  1116. package/dist/hooks/chunk-YEURBB4L.js +0 -32
  1117. package/dist/hooks/chunk-YRKS5ZKE.js +0 -1915
  1118. package/dist/hooks/run-ship-lap-P5555IG7.js +0 -8
@@ -0,0 +1,1953 @@
1
+ import {
2
+ core_weights,
3
+ direct_launch,
4
+ package_version_schema,
5
+ pnpm_reach,
6
+ project_checks,
7
+ resolve_local_bin,
8
+ resolve_package_bin,
9
+ unit_worker_share
10
+ } from "./chunk-Z6W64J64.js";
11
+ import {
12
+ ESLINT_RELATED_CACHE_FILE,
13
+ ESLINT_RELATED_CACHE_FLAGS,
14
+ PRETTIER_RELATED_CACHE_FLAGS,
15
+ changed_paths,
16
+ find_package_directory,
17
+ package_manifest,
18
+ poll,
19
+ process_owner_schema
20
+ } from "./chunk-NP6BVTR3.js";
21
+ import {
22
+ file_reader,
23
+ lane_ledger_write,
24
+ lane_paths,
25
+ process_identity
26
+ } from "./chunk-NFTDYUN3.js";
27
+ import {
28
+ MS_PER_SECOND,
29
+ PLATFORM_TEMP_ROOT,
30
+ PROBE_TIMEOUT_MS,
31
+ SUITE_TIMEOUT_MS,
32
+ atomic_write,
33
+ execa,
34
+ external_exports,
35
+ git_command,
36
+ git_common_directory,
37
+ json_value,
38
+ stamp_file
39
+ } from "./chunk-RWVA2SFN.js";
40
+
41
+ // scripts/gate/toolchain-inputs.ts
42
+ import { createHash } from "node:crypto";
43
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
44
+ import path from "node:path";
45
+ var PACKAGE_FILES = [
46
+ "package.json",
47
+ "pnpm-lock.yaml",
48
+ "pnpm-workspace.yaml",
49
+ "package-lock.json",
50
+ "yarn.lock",
51
+ "bun.lock",
52
+ "bun.lockb",
53
+ ".npmrc",
54
+ "node_modules/.modules.yaml"
55
+ ];
56
+ var CONFIG_ENTRIES = [
57
+ /^eslint\.config\.[cm]?[jt]s$/u,
58
+ /^tsconfig(?:\.[\w-]+)?\.json$/u
59
+ ];
60
+ var CONFIG_DIRECTORIES = /* @__PURE__ */ new Set(["eslint", "tsconfig"]);
61
+ var TEST_MARKER = ".test.";
62
+ var SEPARATOR = "/";
63
+ var DIGEST_ALGORITHM = "sha256";
64
+ function by_code_unit(left, right) {
65
+ if (left === right) return 0;
66
+ return left < right ? -1 : 1;
67
+ }
68
+ function to_posix(relative) {
69
+ return relative.split(path.sep).join(SEPARATOR);
70
+ }
71
+ function is_config_entry(name) {
72
+ return CONFIG_ENTRIES.some((entry) => entry.test(name));
73
+ }
74
+ function is_config_module(relative) {
75
+ const [top = ""] = relative.split(SEPARATOR, 1);
76
+ return CONFIG_DIRECTORIES.has(top) && !path.basename(relative).includes(TEST_MARKER);
77
+ }
78
+ function is_input(relative) {
79
+ const posix = to_posix(relative);
80
+ if (PACKAGE_FILES.includes(posix)) return true;
81
+ return is_config_entry(posix) || is_config_module(posix);
82
+ }
83
+ function modules_under(root, directory) {
84
+ const absolute = path.join(root, directory);
85
+ if (!existsSync(absolute)) return [];
86
+ 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));
87
+ }
88
+ function paths(root) {
89
+ const present = PACKAGE_FILES.filter((relative) => existsSync(path.join(root, relative)));
90
+ const entries = readdirSync(root).filter((name) => is_config_entry(name));
91
+ const modules = [...CONFIG_DIRECTORIES].flatMap((directory) => modules_under(root, directory));
92
+ return [...present, ...entries, ...modules].toSorted(by_code_unit);
93
+ }
94
+ function read_or_empty(file) {
95
+ try {
96
+ return readFileSync(file);
97
+ } catch {
98
+ return new Uint8Array();
99
+ }
100
+ }
101
+ function digest(root) {
102
+ const hash = createHash(DIGEST_ALGORITHM);
103
+ for (const relative of paths(root)) {
104
+ hash.update(`${relative}\0`).update(read_or_empty(path.join(root, relative))).update("\0");
105
+ }
106
+ return hash.digest("hex");
107
+ }
108
+ var toolchain_inputs = { digest, is_input, PACKAGE_FILES, paths };
109
+
110
+ // scripts/run/board/run-board-usage-rusage.ts
111
+ var PROC_LIBRARY = "/usr/lib/libproc.dylib";
112
+ var SYSTEM_LIBRARY = "/usr/lib/libSystem.B.dylib";
113
+ var RUSAGE_INFO_V2 = 2;
114
+ var RUSAGE_INFO_V2_BYTES = 160;
115
+ var USER_TIME_OFFSET = 16;
116
+ var SYSTEM_TIME_OFFSET = 24;
117
+ var CHILD_USER_TIME_OFFSET = 96;
118
+ var CHILD_SYSTEM_TIME_OFFSET = 104;
119
+ var PHYS_FOOTPRINT_OFFSET = 72;
120
+ var TIME_OFFSETS = [
121
+ USER_TIME_OFFSET,
122
+ SYSTEM_TIME_OFFSET,
123
+ CHILD_USER_TIME_OFFSET,
124
+ CHILD_SYSTEM_TIME_OFFSET
125
+ ];
126
+ var TIMEBASE_BYTES = 8;
127
+ var DENOM_OFFSET = 4;
128
+ var NS_PER_MS = 1e6;
129
+ var EXPERIMENTAL_WARNING = "ExperimentalWarning";
130
+ var DARWIN = "darwin";
131
+ var PROC_PID_RUSAGE = {
132
+ proc_pid_rusage: { arguments: ["int32", "int32", "buffer"], return: "int32" }
133
+ };
134
+ var MACH_TIMEBASE_INFO = {
135
+ mach_timebase_info: { arguments: ["buffer"], return: "int32" }
136
+ };
137
+ function cpu_ms_of(buffer, timebase) {
138
+ const ticks = TIME_OFFSETS.reduce(
139
+ (sum, offset) => sum + Number(buffer.readBigUInt64LE(offset)),
140
+ 0
141
+ );
142
+ return ticks * timebase.numer / timebase.denom / NS_PER_MS;
143
+ }
144
+ function quiet_ffi(load) {
145
+ const emit_warning = process.emitWarning;
146
+ process.emitWarning = function quiet(warning, ...rest) {
147
+ if (rest[0] !== EXPERIMENTAL_WARNING) Reflect.apply(emit_warning, process, [warning, ...rest]);
148
+ };
149
+ try {
150
+ return load("node:ffi");
151
+ } finally {
152
+ process.emitWarning = emit_warning;
153
+ }
154
+ }
155
+ function timebase_of(ffi) {
156
+ const buffer = Buffer.alloc(TIMEBASE_BYTES);
157
+ ffi.dlopen(SYSTEM_LIBRARY, MACH_TIMEBASE_INFO).functions.mach_timebase_info(buffer);
158
+ return { numer: buffer.readUInt32LE(0), denom: buffer.readUInt32LE(DENOM_OFFSET) };
159
+ }
160
+ function reader_of(ffi) {
161
+ const timebase = timebase_of(ffi);
162
+ const { proc_pid_rusage } = ffi.dlopen(PROC_LIBRARY, PROC_PID_RUSAGE).functions;
163
+ const buffer = Buffer.alloc(RUSAGE_INFO_V2_BYTES);
164
+ return function read(pid) {
165
+ if (proc_pid_rusage(pid, RUSAGE_INFO_V2, buffer) !== 0) return void 0;
166
+ const footprint_bytes = Number(buffer.readBigUInt64LE(PHYS_FOOTPRINT_OFFSET));
167
+ return { cpu_ms: cpu_ms_of(buffer, timebase), footprint_bytes };
168
+ };
169
+ }
170
+ function load_builtin(id) {
171
+ return process.getBuiltinModule(id);
172
+ }
173
+ function rusage_reader(platform, load) {
174
+ if (platform !== DARWIN) return void 0;
175
+ try {
176
+ const ffi = quiet_ffi(load);
177
+ return ffi === void 0 ? void 0 : reader_of(ffi);
178
+ } catch {
179
+ return void 0;
180
+ }
181
+ }
182
+ var run_board_usage_rusage = { cpu_ms_of, load_builtin, quiet_ffi, rusage_reader };
183
+
184
+ // scripts/lint/lint-related-scope.ts
185
+ import path3 from "node:path";
186
+
187
+ // scripts/git/changed-file-scope.ts
188
+ import path2 from "node:path";
189
+ var UNREADABLE_REASON = "the changed files could not be read";
190
+ var LISTED_FILE_LIMIT = 10;
191
+ async function repository_root_or_cwd() {
192
+ try {
193
+ return await git_command.repository_root();
194
+ } catch {
195
+ return process.cwd();
196
+ }
197
+ }
198
+ async function read_changed_files(root) {
199
+ try {
200
+ const relative_paths = await changed_paths.read_changed_paths(false);
201
+ return relative_paths.map((relative) => path2.join(root, relative));
202
+ } catch {
203
+ return void 0;
204
+ }
205
+ }
206
+ function select_files(paths2, inputs) {
207
+ return paths2.filter(
208
+ (file_path) => inputs.is_selectable(file_path) && inputs.is_present(file_path)
209
+ );
210
+ }
211
+ function all_scope(reason) {
212
+ return { mode: "all", files: [], reason };
213
+ }
214
+ function resolve_scope(paths2, inputs) {
215
+ if (paths2 === void 0) return all_scope(UNREADABLE_REASON);
216
+ const files = select_files(paths2, inputs);
217
+ if (files.length === 0) return all_scope(inputs.nothing_reason);
218
+ return { mode: "related", files, reason: `${String(files.length)} changed file(s)` };
219
+ }
220
+ function format_file_list(files, root) {
221
+ const listed = files.slice(0, LISTED_FILE_LIMIT).map((file) => ` - ${path2.relative(root, file)}`);
222
+ const hidden = files.length - listed.length;
223
+ if (hidden > 0) listed.push(` \u2026 and ${String(hidden)} more`);
224
+ return listed.join("\n");
225
+ }
226
+ function describe_scope(scope, root, vocabulary) {
227
+ if (scope.mode === "all") {
228
+ return `${vocabulary.label}: ${scope.reason} \u2014 ${vocabulary.fallback_suffix}.`;
229
+ }
230
+ return `${vocabulary.label}: ${scope.reason} \u2014 ${vocabulary.narrowed_suffix}.
231
+ ${format_file_list(scope.files, root)}`;
232
+ }
233
+ var ARGV_START = 2;
234
+ var FLAG_PREFIX = "-";
235
+ function is_flag(argument) {
236
+ return argument.startsWith(FLAG_PREFIX);
237
+ }
238
+ function explicit_files_of(command_arguments) {
239
+ return command_arguments.filter((argument) => !is_flag(argument));
240
+ }
241
+ function flags_of(command_arguments) {
242
+ return command_arguments.filter((argument) => is_flag(argument));
243
+ }
244
+ async function resolve_command_scope(request) {
245
+ const explicit_files = explicit_files_of(request.command_arguments);
246
+ if (explicit_files.length === 0) {
247
+ return resolve_scope(await read_changed_files(request.root), request.inputs);
248
+ }
249
+ return resolve_scope(
250
+ explicit_files.map((file) => path2.resolve(file)),
251
+ request.inputs
252
+ );
253
+ }
254
+ function report_unusable_arguments(command_arguments, scope, label) {
255
+ const narrowed = new Set(scope.files);
256
+ const unusable = explicit_files_of(command_arguments).filter(
257
+ (file) => !narrowed.has(path2.resolve(file))
258
+ );
259
+ if (unusable.length === 0) return;
260
+ process.stdout.write(`${label}: ignored \u2014 not a file this check reads: ${unusable.join(" ")}
261
+ `);
262
+ }
263
+ var changed_file_scope = {
264
+ ARGV_START,
265
+ LISTED_FILE_LIMIT,
266
+ UNREADABLE_REASON,
267
+ describe_scope,
268
+ flags_of,
269
+ format_file_list,
270
+ is_flag,
271
+ read_changed_files,
272
+ report_unusable_arguments,
273
+ repository_root_or_cwd,
274
+ resolve_command_scope,
275
+ resolve_scope,
276
+ select_files
277
+ };
278
+
279
+ // scripts/lint/lint-related-scope.ts
280
+ var LINTABLE_EXTENSIONS = /* @__PURE__ */ new Set([
281
+ ".ts",
282
+ ".tsx",
283
+ ".mts",
284
+ ".cts",
285
+ ".js",
286
+ ".jsx",
287
+ ".mjs",
288
+ ".cjs",
289
+ ".svelte",
290
+ ".vue",
291
+ ".md",
292
+ ".mdx",
293
+ ".json",
294
+ ".jsonc",
295
+ ".json5",
296
+ ".yaml",
297
+ ".yml",
298
+ ".css",
299
+ ".scss",
300
+ ".less",
301
+ ".html",
302
+ ".graphql",
303
+ ".gql"
304
+ ]);
305
+ var NOTHING_LINTABLE_REASON = "no changed file is one prettier or eslint reads";
306
+ var COMMAND_NAME = "lint:related";
307
+ var COMMAND_LABEL = `josh ${COMMAND_NAME}`;
308
+ var VOCABULARY = {
309
+ label: COMMAND_LABEL,
310
+ fallback_suffix: "checking the whole tree instead",
311
+ narrowed_suffix: "checking only them"
312
+ };
313
+ var PRETTIER_ARGS = ["exec", "prettier", "--check", "--ignore-unknown"];
314
+ var ESLINT_ARGS = ["exec", "eslint"];
315
+ var ESLINT_SCOPED_FLAGS = ["--no-warn-ignored"];
316
+ function is_lintable(file_path) {
317
+ return LINTABLE_EXTENSIONS.has(path3.extname(file_path));
318
+ }
319
+ function scope_inputs(is_present) {
320
+ return { is_present, is_selectable: is_lintable, nothing_reason: NOTHING_LINTABLE_REASON };
321
+ }
322
+ function describe_scope2(scope, root) {
323
+ return changed_file_scope.describe_scope(scope, root, VOCABULARY);
324
+ }
325
+ var RELATED_CACHES = {
326
+ eslint_file: ESLINT_RELATED_CACHE_FILE,
327
+ eslint_flags: ESLINT_RELATED_CACHE_FLAGS,
328
+ prettier_flags: PRETTIER_RELATED_CACHE_FLAGS
329
+ };
330
+ function prettier_arguments(files, caches = RELATED_CACHES, directory = process.cwd()) {
331
+ const targets = project_checks.prettier_targets(directory, files);
332
+ return [...PRETTIER_ARGS, ...targets, ...caches.prettier_flags];
333
+ }
334
+ function eslint_arguments(files, caches = RELATED_CACHES) {
335
+ return [...ESLINT_ARGS, ...files, ...caches.eslint_flags, ...ESLINT_SCOPED_FLAGS];
336
+ }
337
+ var lint_related_scope = {
338
+ COMMAND_LABEL,
339
+ NOTHING_LINTABLE_REASON,
340
+ RELATED_CACHES,
341
+ describe_scope: describe_scope2,
342
+ eslint_arguments,
343
+ is_lintable,
344
+ prettier_arguments,
345
+ scope_inputs
346
+ };
347
+
348
+ // scripts/lib/buffered-process.ts
349
+ import { existsSync as existsSync2 } from "node:fs";
350
+ var { PNPM } = pnpm_reach;
351
+ var FORCE_COLOR = "1";
352
+ function is_pnpm_missing(result, cwd) {
353
+ return pnpm_reach.is_not_found(result) && existsSync2(cwd ?? process.cwd());
354
+ }
355
+ function unfinished_reason(result, cwd) {
356
+ if (result.exitCode !== void 0) return [];
357
+ const reason = [result.shortMessage ?? ""];
358
+ if (is_pnpm_missing(result, cwd)) reason.push(pnpm_reach.NOT_ON_PATH_NOTICE);
359
+ return reason;
360
+ }
361
+ function collect_output(all, reason) {
362
+ return [all, ...reason].filter((part) => part !== "").join("\n");
363
+ }
364
+ function child_environment() {
365
+ const environment = { ...process.env };
366
+ if (environment["NO_COLOR"] === void 0) environment["FORCE_COLOR"] = FORCE_COLOR;
367
+ else delete environment["FORCE_COLOR"];
368
+ return environment;
369
+ }
370
+ async function run_buffered_launch(launch, options) {
371
+ const started_at = performance.now();
372
+ const result = await execa(launch.file, [...launch.args], {
373
+ env: options.environment ?? child_environment(),
374
+ extendEnv: false,
375
+ all: true,
376
+ reject: false,
377
+ ...options.cwd !== void 0 && { cwd: options.cwd },
378
+ timeout: options.timeout_ms ?? SUITE_TIMEOUT_MS
379
+ });
380
+ return {
381
+ output: collect_output(result.all, unfinished_reason(result, options.cwd)),
382
+ exit_code: result.exitCode,
383
+ elapsed_ms: performance.now() - started_at
384
+ };
385
+ }
386
+ async function run_buffered_process(command_args, options = {}) {
387
+ return await run_buffered_launch({ file: PNPM, args: command_args }, options);
388
+ }
389
+ async function run_buffered_direct(pnpm_arguments, options = {}) {
390
+ const launch = direct_launch(options.cwd ?? process.cwd(), pnpm_arguments);
391
+ return await run_buffered_launch(launch, options);
392
+ }
393
+ function is_process_failed(result) {
394
+ return result.exit_code !== 0;
395
+ }
396
+ var buffered_process = {
397
+ child_environment,
398
+ is_process_failed,
399
+ run_buffered_direct,
400
+ run_buffered_process
401
+ };
402
+
403
+ // scripts/josh/josh-logic.ts
404
+ import { existsSync as existsSync4 } from "node:fs";
405
+ import path8 from "node:path";
406
+ import { fileURLToPath } from "node:url";
407
+
408
+ // scripts/gate/core-budget.ts
409
+ import { randomUUID } from "node:crypto";
410
+ import { readdirSync as readdirSync2 } from "node:fs";
411
+ import { availableParallelism as availableParallelism2 } from "node:os";
412
+ import path5 from "node:path";
413
+
414
+ // scripts/gate/core-budget-timing.ts
415
+ var POLL_INTERVAL_MS = 50;
416
+ var WAIT_CAP_MS = 12e4;
417
+ var EASE_WINDOW_MS = 3e4;
418
+ async function default_sleep(ms) {
419
+ await new Promise((resolve) => {
420
+ setTimeout(resolve, ms);
421
+ });
422
+ }
423
+ function resolve_cadence(options) {
424
+ return {
425
+ poll_interval_ms: options.poll_interval_ms ?? POLL_INTERVAL_MS,
426
+ wait_cap_ms: options.wait_cap_ms ?? WAIT_CAP_MS,
427
+ ease_window_ms: options.ease_window_ms ?? EASE_WINDOW_MS
428
+ };
429
+ }
430
+ function resolve_timing(options) {
431
+ return {
432
+ now: options.now ?? Date.now,
433
+ sleep: options.sleep ?? default_sleep,
434
+ ...resolve_cadence(options)
435
+ };
436
+ }
437
+ var core_budget_timing = { WAIT_CAP_MS, resolve_timing };
438
+
439
+ // scripts/gate/core-admission.ts
440
+ var RAMP_UP_MS = 3e4;
441
+ var BYPASS_WINDOW_MS = 3e4;
442
+ var WAIT_CAP_SHARE = 0.5;
443
+ var HEAVIER_BYPASS_WINDOW_MS = core_budget_timing.WAIT_CAP_MS * WAIT_CAP_SHARE;
444
+ var MIN_GRANT = 1;
445
+ var NARROW_DIVISOR = 2;
446
+ function priority_rank(reservation) {
447
+ return reservation.is_priority === true ? 0 : 1;
448
+ }
449
+ function compare_claim(left, right) {
450
+ const by_priority = priority_rank(left.reservation) - priority_rank(right.reservation);
451
+ if (by_priority !== 0) return by_priority;
452
+ const by_time = left.reservation.claimed_at - right.reservation.claimed_at;
453
+ return by_time === 0 ? left.key.localeCompare(right.key) : by_time;
454
+ }
455
+ function add_load(totals, reservation) {
456
+ totals.cores += reservation.granted ?? reservation.weight;
457
+ totals.memory_mb += reservation.memory_mb ?? 0;
458
+ }
459
+ function exceeds(totals, budget) {
460
+ return totals.cores > budget.cores || totals.memory_mb > budget.memory_mb;
461
+ }
462
+ function sum_load(reservations) {
463
+ const load = { cores: 0, memory_mb: 0 };
464
+ for (const entry of reservations) add_load(load, entry.reservation);
465
+ return load;
466
+ }
467
+ function is_waiting(entry) {
468
+ return entry.reservation.admitted_at === void 0;
469
+ }
470
+ function fits(entries, limit) {
471
+ return !exceeds(sum_load(entries), limit);
472
+ }
473
+ function place(key, reservations) {
474
+ const ordered = reservations.toSorted(compare_claim);
475
+ const index = ordered.findIndex((entry) => entry.key === key);
476
+ const own = ordered[index];
477
+ if (own === void 0) return void 0;
478
+ return {
479
+ own,
480
+ is_oldest: index === 0,
481
+ ahead: ordered.slice(0, index).filter((entry) => is_waiting(entry)),
482
+ running: ordered.filter((entry) => entry.key !== key && !is_waiting(entry))
483
+ };
484
+ }
485
+ function first_waiter_limit(budget) {
486
+ if (budget.is_overloaded === true) return budget;
487
+ return { cores: budget.cores + (budget.busy_excess ?? 0), memory_mb: budget.memory_mb };
488
+ }
489
+ function may_pass_waiter(own, waiter) {
490
+ const since_ms = own.claimed_at - waiter.claimed_at;
491
+ if (priority_rank(waiter) < priority_rank(own)) return false;
492
+ if (since_ms < BYPASS_WINDOW_MS) return true;
493
+ return waiter.weight > own.weight && since_ms < HEAVIER_BYPASS_WINDOW_MS;
494
+ }
495
+ function may_pass({ own, ahead, running }, budget) {
496
+ const is_passable = ahead.every((entry) => may_pass_waiter(own.reservation, entry.reservation));
497
+ return is_passable && fits([...running, own], budget);
498
+ }
499
+ function fits_in_order({ own, ahead, running }, budget) {
500
+ const limit = ahead.length === 0 ? first_waiter_limit(budget) : budget;
501
+ return fits([...running, ...ahead, own], limit);
502
+ }
503
+ function is_memory_held(key, reservations, budget) {
504
+ const placement = place(key, reservations);
505
+ if (placement === void 0) return false;
506
+ if (placement.own.reservation.is_unit === true && budget.memory_pressured !== true) return false;
507
+ return !fits([...placement.running, placement.own], {
508
+ cores: Infinity,
509
+ memory_mb: budget.memory_mb
510
+ });
511
+ }
512
+ function runs_alone(placement, budget) {
513
+ if (!placement.is_oldest || placement.running.length > 0 || placement.own.reservation.is_strict_admission === true) {
514
+ return false;
515
+ }
516
+ return budget.is_overloaded !== true;
517
+ }
518
+ function is_admitted(key, reservations, budget) {
519
+ const placement = place(key, reservations);
520
+ if (placement === void 0 || is_memory_held(key, reservations, budget)) return false;
521
+ if (runs_alone(placement, budget)) return true;
522
+ return fits_in_order(placement, budget) || may_pass(placement, budget);
523
+ }
524
+ function mark_admitted(entries, key) {
525
+ const index = entries.findIndex((entry2) => entry2.key === key);
526
+ const entry = entries[index];
527
+ if (entry === void 0) return;
528
+ entries[index] = {
529
+ ...entry,
530
+ reservation: { ...entry.reservation, admitted_at: entry.reservation.claimed_at }
531
+ };
532
+ }
533
+ function admitted_keys(reservations, budget, memory_budget = Infinity) {
534
+ const limit = { cores: budget, memory_mb: memory_budget };
535
+ const ledger = [...reservations];
536
+ const admitted = /* @__PURE__ */ new Set();
537
+ for (const { key } of reservations.toSorted(compare_claim)) {
538
+ if (!is_admitted(key, ledger, limit)) continue;
539
+ admitted.add(key);
540
+ mark_admitted(ledger, key);
541
+ }
542
+ return admitted;
543
+ }
544
+ function is_ramped(reservation, now) {
545
+ const { admitted_at } = reservation;
546
+ return reservation.is_memory_pending !== true && admitted_at !== void 0 && now - admitted_at >= RAMP_UP_MS;
547
+ }
548
+ function ledger_load(reservations, now) {
549
+ const admitted = reservations.filter((entry) => entry.reservation.admitted_at !== void 0);
550
+ const ramped = admitted.filter((entry) => is_ramped(entry.reservation, now));
551
+ return { cores: sum_load(admitted).cores, memory_mb: sum_load(ramped).memory_mb };
552
+ }
553
+ function total_weight(reservations) {
554
+ return sum_load(reservations).cores;
555
+ }
556
+ function narrowed_weight(key, reservations, budget) {
557
+ const own = reservations.find((entry) => entry.key === key)?.reservation;
558
+ if (own?.is_unit !== true) return void 0;
559
+ const others = reservations.filter(
560
+ (entry) => entry.key !== key && entry.reservation.admitted_at !== void 0
561
+ );
562
+ const room = Math.max(MIN_GRANT, Math.floor(budget - total_weight(others)));
563
+ return room >= own.weight ? void 0 : room;
564
+ }
565
+ function is_too_narrow(key, reservations, granted) {
566
+ if (granted === void 0) return false;
567
+ const own = reservations.find((entry) => entry.key === key)?.reservation;
568
+ return own !== void 0 && granted * NARROW_DIVISOR < own.weight;
569
+ }
570
+ function with_grant(key, reservations, granted) {
571
+ if (granted === void 0) return [...reservations];
572
+ return reservations.map(
573
+ (entry) => entry.key === key ? { ...entry, reservation: { ...entry.reservation, granted } } : entry
574
+ );
575
+ }
576
+ function admitted_load(reservations, budget) {
577
+ const admitted = admitted_keys(reservations, budget);
578
+ return total_weight(reservations.filter((entry) => admitted.has(entry.key)));
579
+ }
580
+ function describe_memory(ledger, budget) {
581
+ if (!Number.isFinite(budget.memory_mb)) return "";
582
+ return ` and ${String(Math.round(ledger.memory_mb))} MB of memory against ${String(Math.round(budget.memory_mb))} MB`;
583
+ }
584
+ function describe_overflow(admission) {
585
+ const { overflow } = admission;
586
+ if (overflow === void 0) return void 0;
587
+ const { ledger, budget } = overflow;
588
+ const waited = String(Math.round(overflow.waited_ms / MS_PER_SECOND));
589
+ const cores = `the ledger held ${String(ledger.cores)} cores against a budget of ${String(budget.cores)}`;
590
+ return `started past the core budget after ${waited}s \u2014 ${cores}${describe_memory(ledger, budget)}`;
591
+ }
592
+ var core_admission = {
593
+ BYPASS_WINDOW_MS,
594
+ HEAVIER_BYPASS_WINDOW_MS,
595
+ RAMP_UP_MS,
596
+ admitted_keys,
597
+ admitted_load,
598
+ compare_claim,
599
+ describe_overflow,
600
+ is_admitted,
601
+ is_memory_held,
602
+ is_too_narrow,
603
+ ledger_load,
604
+ narrowed_weight,
605
+ sum_load,
606
+ with_grant
607
+ };
608
+
609
+ // scripts/gate/busy-average.ts
610
+ var AVERAGE_WINDOW_MS = 3e3;
611
+ function with_reading(samples, reading, ledger_cores, now) {
612
+ const kept = samples.filter((sample) => now - sample.at < AVERAGE_WINDOW_MS);
613
+ const { busy_cores } = reading;
614
+ if (busy_cores === void 0) return kept;
615
+ return [...kept, { at: now, external_cores: Math.max(0, busy_cores - ledger_cores), busy_cores }];
616
+ }
617
+ function mean_busy(samples) {
618
+ if (samples.length === 0) return void 0;
619
+ let total = 0;
620
+ for (const sample of samples) total += sample.busy_cores;
621
+ return total / samples.length;
622
+ }
623
+ function averaged(reading, samples, ledger_cores) {
624
+ if (reading.busy_cores === void 0 || samples.length === 0) return reading;
625
+ let total = 0;
626
+ for (const sample of samples) total += sample.external_cores;
627
+ return { ...reading, busy_cores: ledger_cores + total / samples.length };
628
+ }
629
+ var EASE_CORES = 1;
630
+ function with_ease(ease, busy_cores, now) {
631
+ if (busy_cores === void 0) return ease;
632
+ if (ease === void 0 || busy_cores <= ease.level - EASE_CORES) {
633
+ return { level: busy_cores, eased_at: now };
634
+ }
635
+ return ease;
636
+ }
637
+ function is_unrelieved(ease, now, window_ms) {
638
+ return ease !== void 0 && now - ease.eased_at >= window_ms;
639
+ }
640
+ var busy_average = {
641
+ AVERAGE_WINDOW_MS,
642
+ averaged,
643
+ is_unrelieved,
644
+ mean_busy,
645
+ with_ease,
646
+ with_reading
647
+ };
648
+
649
+ // scripts/gate/core-priority.ts
650
+ var PRIORITY_KEY = "JOSH_CORE_PRIORITY";
651
+ var PRIORITY_VALUE = "1";
652
+ var PRIORITY_ENVIRONMENT = { [PRIORITY_KEY]: PRIORITY_VALUE };
653
+ var UNMARKED_ENVIRONMENT = { [PRIORITY_KEY]: void 0 };
654
+ function marker_field({ is_unit, is_suite }) {
655
+ const is_marked = process.env[PRIORITY_KEY] === PRIORITY_VALUE;
656
+ return is_marked && is_unit !== true && is_suite !== true ? true : void 0;
657
+ }
658
+ var core_priority = { PRIORITY_ENVIRONMENT, PRIORITY_KEY, UNMARKED_ENVIRONMENT, marker_field };
659
+
660
+ // scripts/gate/core-wait.ts
661
+ import path4 from "node:path";
662
+ var WAIT_REASONS = ["cores", "cpu", "memory", "pressure"];
663
+ var REASON_TEXT = {
664
+ cores: "not enough free cores",
665
+ cpu: "CPU saturated",
666
+ memory: "not enough free memory",
667
+ pressure: "memory under pressure"
668
+ };
669
+ function core_reason(key, reservations, budget) {
670
+ const declared = { cores: budget.cores + (budget.busy_excess ?? 0), memory_mb: Infinity };
671
+ return core_admission.is_admitted(key, reservations, declared) ? "cpu" : "cores";
672
+ }
673
+ function wait_reason(key, reservations, budget) {
674
+ const cores_only = { ...budget, memory_mb: Infinity };
675
+ if (!core_admission.is_admitted(key, reservations, cores_only)) {
676
+ return core_reason(key, reservations, budget);
677
+ }
678
+ return budget.memory_pressured === true ? "pressure" : "memory";
679
+ }
680
+ function hold_reason(key, reservations, budget, granted) {
681
+ if (!core_admission.is_admitted(key, reservations, budget)) {
682
+ return wait_reason(key, reservations, budget);
683
+ }
684
+ return core_admission.is_too_narrow(key, reservations, granted) ? "cpu" : void 0;
685
+ }
686
+ function is_outside_held(key, reservations, budget) {
687
+ const unloaded = {
688
+ ...budget,
689
+ cores: budget.cores + (budget.busy_excess ?? 0),
690
+ busy_excess: 0,
691
+ is_overloaded: false
692
+ };
693
+ const granted = core_admission.narrowed_weight(key, reservations, unloaded.cores);
694
+ return hold_reason(key, reservations, unloaded, granted) === void 0;
695
+ }
696
+ var SMALL_CLAIM_CORES = core_weights.CORE_WEIGHTS.lint;
697
+ function unseen_cores(own, reservations, now) {
698
+ const fresh = reservations.filter((entry) => {
699
+ const { admitted_at } = entry.reservation;
700
+ if (admitted_at === void 0) return core_admission.compare_claim(entry, own) < 0;
701
+ return now - admitted_at < busy_average.AVERAGE_WINDOW_MS;
702
+ });
703
+ return core_admission.sum_load(fresh).cores;
704
+ }
705
+ function has_room(weight, budget, room, unseen) {
706
+ if (weight > SMALL_CLAIM_CORES || budget.is_overloaded === true) return false;
707
+ return room.busy_cores !== void 0 && room.busy_cores + unseen + weight <= room.cores;
708
+ }
709
+ function is_ledger_held_small(key, reservations, budget, room) {
710
+ const own = reservations.find((entry) => entry.key === key);
711
+ if (own === void 0) return false;
712
+ const unseen = unseen_cores(own, reservations, room.now);
713
+ if (!has_room(own.reservation.weight, budget, room, unseen)) return false;
714
+ return core_admission.is_admitted(key, reservations, { ...budget, cores: Infinity });
715
+ }
716
+ function is_held_in_vain(key, reservations, budget, room) {
717
+ if (is_outside_held(key, reservations, budget)) return true;
718
+ return is_ledger_held_small(key, reservations, budget, room);
719
+ }
720
+ function wait_line(command, reason) {
721
+ return `\u23F3 ${command ?? "a step"} waits for the core budget \u2014 ${REASON_TEXT[reason]}`;
722
+ }
723
+ function where_of(checkout) {
724
+ return {
725
+ checkout,
726
+ lane: lane_paths.lane_issue_of(checkout),
727
+ lanes_root: lane_paths.lanes_root_of(checkout)
728
+ };
729
+ }
730
+ function place_of(marker, home_root) {
731
+ const { checkout, lane, lanes_root } = marker;
732
+ if (checkout === void 0 || lanes_root === void 0 || lanes_root === home_root) {
733
+ return { lane, elsewhere: void 0 };
734
+ }
735
+ const name = lane === void 0 ? path4.basename(checkout) : `${path4.basename(lanes_root)}/${lane}`;
736
+ return { lane: void 0, elsewhere: name };
737
+ }
738
+ function wait_of(marker, now, home_root) {
739
+ const { command, wait_reason: reason } = marker;
740
+ if (reason === void 0 || marker.admitted_at !== void 0) return [];
741
+ return [{ command, ...place_of(marker, home_root), waited_ms: now - marker.claimed_at, reason }];
742
+ }
743
+ function waits_of(entries, now, home) {
744
+ const home_root = lane_paths.lanes_root_of(home);
745
+ return entries.flatMap((entry) => wait_of(entry.reservation, now, home_root)).toSorted((left, right) => right.waited_ms - left.waited_ms);
746
+ }
747
+ var core_wait = {
748
+ WAIT_REASONS,
749
+ hold_reason,
750
+ is_held_in_vain,
751
+ is_outside_held,
752
+ wait_line,
753
+ wait_reason,
754
+ waits_of,
755
+ where_of
756
+ };
757
+
758
+ // scripts/gate/core-reservation.ts
759
+ var reservation_schema = process_owner_schema.extend({
760
+ weight: external_exports.number(),
761
+ claimed_at: external_exports.number(),
762
+ memory_mb: external_exports.number().optional(),
763
+ admitted_at: external_exports.number().optional(),
764
+ is_unit: external_exports.boolean().optional(),
765
+ is_strict_admission: external_exports.boolean().optional(),
766
+ is_memory_pending: external_exports.boolean().optional(),
767
+ is_priority: external_exports.boolean().optional(),
768
+ granted: external_exports.number().optional(),
769
+ command: external_exports.string().optional(),
770
+ checkout: external_exports.string().optional(),
771
+ lane: external_exports.string().optional(),
772
+ lanes_root: external_exports.string().optional(),
773
+ wait_reason: external_exports.enum(core_wait.WAIT_REASONS).optional()
774
+ });
775
+ function claim_fields(weight, claimed_at, options) {
776
+ const { memory_mb, command, is_unit, is_strict_admission, is_memory_pending } = options;
777
+ return {
778
+ weight,
779
+ claimed_at,
780
+ memory_mb,
781
+ command,
782
+ is_unit,
783
+ is_strict_admission,
784
+ is_memory_pending,
785
+ is_priority: core_priority.marker_field(options),
786
+ ...core_wait.where_of(options.checkout ?? process.cwd())
787
+ };
788
+ }
789
+ function read_reservation(source) {
790
+ const raw = stamp_file.read_stamp_text(source);
791
+ return raw === void 0 ? void 0 : json_value.parse_with(raw, reservation_schema);
792
+ }
793
+ function write_reservation(target, fields) {
794
+ stamp_file.replace_stamp(target, { ...process_identity.own_fields(), ...fields });
795
+ }
796
+ function transfer(handle, pid) {
797
+ const reservation = read_reservation(handle.target);
798
+ if (reservation === void 0) {
799
+ throw new Error("The admitted reservation disappeared before transfer");
800
+ }
801
+ stamp_file.replace_stamp(handle.target, {
802
+ ...reservation,
803
+ pid,
804
+ process_start: process_identity.read_start(pid),
805
+ is_memory_pending: false,
806
+ admitted_at: Date.now()
807
+ });
808
+ }
809
+ var core_reservation = { claim_fields, read_reservation, transfer, write_reservation };
810
+
811
+ // scripts/gate/machine-capacity.ts
812
+ import { readFile } from "node:fs/promises";
813
+ import { availableParallelism, cpus, loadavg, totalmem } from "node:os";
814
+ var SAMPLE_WINDOW_MS = 250;
815
+ var OVERLOAD_FACTOR = 2;
816
+ var BYTES_PER_MB = 1048576;
817
+ var KB_PER_MB = 1024;
818
+ var PERCENT = 100;
819
+ var MEMINFO_PATH = "/proc/meminfo";
820
+ var VMSTAT_PATH = "/proc/vmstat";
821
+ var LINUX_AVAILABLE = /^MemAvailable:\s+(?<kb>\d+) kB/mu;
822
+ var LINUX_SWAP_IN = /^pswpin (?<pages>\d+)$/mu;
823
+ var LINUX_SWAP_OUT = /^pswpout (?<pages>\d+)$/mu;
824
+ var PAGE_SIZE_ARGUMENTS = ["PAGESIZE"];
825
+ var LEVEL_NAME = "kern.memorystatus_level";
826
+ var SWAP_IN_NAME = "vm.compressor.swapper.swapins_total";
827
+ var SWAP_OUT_NAME = "vm.compressor.swapper.swapouts_total";
828
+ var COMPRESSED_NAME = "vm.compressor_input_bytes";
829
+ var PAGE_SIZE_NAME = "hw.pagesize";
830
+ var PRESSURE_NAME = "kern.memorystatus_vm_pressure_level";
831
+ var PRESSURE_HOLD = 4;
832
+ var SWAP_PRESSURE_MB = 16;
833
+ var COMPRESSION_PRESSURE_MB = 64;
834
+ var SYSCTL_ARGUMENTS = [
835
+ LEVEL_NAME,
836
+ SWAP_IN_NAME,
837
+ SWAP_OUT_NAME,
838
+ COMPRESSED_NAME,
839
+ PAGE_SIZE_NAME,
840
+ PRESSURE_NAME
841
+ ];
842
+ var SYSCTL_LINE = /^(?<name>[\w.]+): (?<value>\d+)$/gmu;
843
+ function cpu_times() {
844
+ let busy = 0;
845
+ let idle = 0;
846
+ for (const { times } of cpus()) {
847
+ busy += times.user + times.nice + times.sys + times.irq;
848
+ idle += times.idle;
849
+ }
850
+ return { busy, total: busy + idle };
851
+ }
852
+ function busy_share_between(before, after) {
853
+ const total = after.total - before.total;
854
+ if (total <= 0) return void 0;
855
+ return (after.busy - before.busy) / total;
856
+ }
857
+ function busy_cores_between(before, after, cores) {
858
+ const share = busy_share_between(before, after);
859
+ return share === void 0 ? void 0 : share * cores;
860
+ }
861
+ function sysctl_values(output) {
862
+ const values = [...output.matchAll(SYSCTL_LINE)].map(
863
+ (match) => [match.groups?.["name"] ?? "", Number(match.groups?.["value"])]
864
+ );
865
+ return new Map(values);
866
+ }
867
+ function swapped_pages(pages_in, pages_out) {
868
+ return pages_in === void 0 || pages_out === void 0 ? void 0 : pages_in + pages_out;
869
+ }
870
+ function mb_of(units, unit_bytes) {
871
+ if (units === void 0 || unit_bytes === void 0) return void 0;
872
+ return units * unit_bytes / BYTES_PER_MB;
873
+ }
874
+ function swapped_between(from, to) {
875
+ if (from === void 0 || to === void 0) return void 0;
876
+ return Math.max(0, to - from);
877
+ }
878
+ function parse_darwin_memory(output, total_bytes) {
879
+ const values = sysctl_values(output);
880
+ const level = values.get(LEVEL_NAME);
881
+ return {
882
+ available_mb: level === void 0 ? void 0 : level / PERCENT * (total_bytes / BYTES_PER_MB),
883
+ swapped_mb: mb_of(
884
+ swapped_pages(values.get(SWAP_IN_NAME), values.get(SWAP_OUT_NAME)),
885
+ values.get(PAGE_SIZE_NAME)
886
+ ),
887
+ pressure_level: values.get(PRESSURE_NAME),
888
+ compressed_mb: mb_of(values.get(COMPRESSED_NAME), 1)
889
+ };
890
+ }
891
+ function parse_linux_available(meminfo) {
892
+ const kb = LINUX_AVAILABLE.exec(meminfo)?.groups?.["kb"];
893
+ return kb === void 0 ? void 0 : Number(kb) / KB_PER_MB;
894
+ }
895
+ function pages_of(pattern, vmstat) {
896
+ const pages = pattern.exec(vmstat)?.groups?.["pages"];
897
+ return pages === void 0 ? void 0 : Number(pages);
898
+ }
899
+ function parse_linux_swapped(vmstat, page_bytes) {
900
+ const pages = swapped_pages(pages_of(LINUX_SWAP_IN, vmstat), pages_of(LINUX_SWAP_OUT, vmstat));
901
+ return mb_of(pages, page_bytes);
902
+ }
903
+ async function settled(read) {
904
+ try {
905
+ return await read();
906
+ } catch {
907
+ return void 0;
908
+ }
909
+ }
910
+ async function read_darwin_memory() {
911
+ const { stdout } = await execa("sysctl", SYSCTL_ARGUMENTS, {
912
+ reject: false,
913
+ timeout: PROBE_TIMEOUT_MS
914
+ });
915
+ return parse_darwin_memory(stdout, totalmem());
916
+ }
917
+ async function read_page_size() {
918
+ const { stdout } = await execa("getconf", PAGE_SIZE_ARGUMENTS, { timeout: PROBE_TIMEOUT_MS });
919
+ return stdout;
920
+ }
921
+ async function read_linux_memory() {
922
+ const [meminfo, vmstat, page_size] = await Promise.all([
923
+ settled(async () => await readFile(MEMINFO_PATH, "utf8")),
924
+ settled(async () => await readFile(VMSTAT_PATH, "utf8")),
925
+ settled(read_page_size)
926
+ ]);
927
+ const page_bytes = page_size === void 0 ? void 0 : Number(page_size);
928
+ return {
929
+ available_mb: meminfo === void 0 ? void 0 : parse_linux_available(meminfo),
930
+ swapped_mb: vmstat === void 0 || page_bytes === void 0 ? void 0 : parse_linux_swapped(vmstat, page_bytes),
931
+ pressure_level: void 0
932
+ };
933
+ }
934
+ var UNREAD_MEMORY = {
935
+ available_mb: void 0,
936
+ swapped_mb: void 0,
937
+ pressure_level: void 0
938
+ };
939
+ async function read_memory() {
940
+ if (process.platform === "darwin") return await settled(read_darwin_memory) ?? UNREAD_MEMORY;
941
+ return process.platform === "linux" ? await read_linux_memory() : UNREAD_MEMORY;
942
+ }
943
+ function is_unquoted() {
944
+ return cpus().length > 0 && cpus().length === availableParallelism();
945
+ }
946
+ async function default_sleep2(ms) {
947
+ await new Promise((resolve) => {
948
+ setTimeout(resolve, ms);
949
+ });
950
+ }
951
+ function moved_over(from, to, limit) {
952
+ return (swapped_between(from, to) ?? 0) > limit;
953
+ }
954
+ function is_swapping(before, after) {
955
+ return moved_over(before?.swapped_mb, after.swapped_mb, SWAP_PRESSURE_MB);
956
+ }
957
+ function is_pressured(before, after) {
958
+ return (after.pressure_level ?? 0) >= PRESSURE_HOLD || is_swapping(before, after) || moved_over(before.compressed_mb, after.compressed_mb, COMPRESSION_PRESSURE_MB);
959
+ }
960
+ function pressured_available(after, before) {
961
+ if (after.available_mb === void 0) return void 0;
962
+ if (is_swapping(before, after)) return 0;
963
+ return (after.pressure_level ?? 0) >= PRESSURE_HOLD ? 0 : after.available_mb;
964
+ }
965
+ async function read_machine(sleep = default_sleep2) {
966
+ const before = cpu_times();
967
+ const [memory_before] = await Promise.all([read_memory(), sleep(SAMPLE_WINDOW_MS)]);
968
+ const memory_after = await read_memory();
969
+ const is_host = is_unquoted();
970
+ const busy_cores = is_host ? busy_cores_between(before, cpu_times(), cpus().length) : void 0;
971
+ return {
972
+ busy_cores,
973
+ run_queue: is_host ? loadavg()[0] : void 0,
974
+ available_mb: pressured_available(memory_after, memory_before),
975
+ memory_pressured: is_pressured(memory_before, memory_after),
976
+ memory_supported: process.platform === "darwin" || process.platform === "linux",
977
+ total_mb: totalmem() / BYTES_PER_MB
978
+ };
979
+ }
980
+ async function read_sample() {
981
+ return { cpu: cpu_times(), memory: await read_memory(), total_mb: totalmem() / BYTES_PER_MB };
982
+ }
983
+ function external_cores(busy_cores, ledger_cores) {
984
+ if (busy_cores === void 0) return 0;
985
+ return Math.floor(Math.max(0, busy_cores - ledger_cores));
986
+ }
987
+ function is_overloaded(run_queue, ledger_cores, cores) {
988
+ if (run_queue === void 0) return false;
989
+ return run_queue - ledger_cores > cores * OVERLOAD_FACTOR;
990
+ }
991
+ function machine_budget(cores, reading, ledger) {
992
+ const busy_excess = external_cores(reading.busy_cores, ledger.cores);
993
+ return {
994
+ cores: Math.max(0, cores - busy_excess),
995
+ memory_mb: reading.available_mb === void 0 ? Infinity : reading.available_mb + ledger.memory_mb,
996
+ memory_pressured: reading.memory_pressured,
997
+ busy_excess,
998
+ is_overloaded: is_overloaded(reading.run_queue, ledger.cores, cores)
999
+ };
1000
+ }
1001
+ var machine_capacity = {
1002
+ busy_cores_between,
1003
+ busy_share_between,
1004
+ COMPRESSION_PRESSURE_MB,
1005
+ external_cores,
1006
+ machine_budget,
1007
+ parse_darwin_memory,
1008
+ parse_linux_available,
1009
+ parse_linux_swapped,
1010
+ PRESSURE_HOLD,
1011
+ pressured_available,
1012
+ read_machine,
1013
+ read_memory,
1014
+ read_sample,
1015
+ SWAP_PRESSURE_MB,
1016
+ swapped_between
1017
+ };
1018
+
1019
+ // scripts/gate/core-budget-poll.ts
1020
+ function check_measurement(command, reading) {
1021
+ if (reading.memory_supported === true && !Number.isFinite(reading.available_mb)) {
1022
+ throw new Error(`${command}: memory measurement failed; admission refused`);
1023
+ }
1024
+ }
1025
+ function check_capacity(command, requested, total_mb) {
1026
+ if (total_mb === void 0) return;
1027
+ if (requested > total_mb) {
1028
+ throw new Error(
1029
+ `${command}: requested ${String(requested)} MB exceeds physical memory ${String(total_mb)} MB`
1030
+ );
1031
+ }
1032
+ }
1033
+ function check_memory(context, reading) {
1034
+ const requested = context.fields.memory_mb ?? 0;
1035
+ if (requested === 0) return;
1036
+ const command = context.fields.command ?? "a step";
1037
+ const minimum = context.fields.is_unit === true ? requested / Math.max(1, context.fields.weight) : requested;
1038
+ check_measurement(command, reading);
1039
+ check_capacity(command, minimum, reading.total_mb);
1040
+ }
1041
+ async function current_reading(context, reservations) {
1042
+ const reading = await context.read_machine();
1043
+ const ledger = core_admission.ledger_load(reservations, context.now());
1044
+ check_memory(context, reading);
1045
+ context.busy_samples = busy_average.with_reading(
1046
+ context.busy_samples,
1047
+ reading,
1048
+ ledger.cores,
1049
+ context.now()
1050
+ );
1051
+ const mean = busy_average.averaged(reading, context.busy_samples, ledger.cores);
1052
+ context.ease = busy_average.with_ease(context.ease, mean.busy_cores, context.now());
1053
+ return { budget: machine_capacity.machine_budget(context.budget, mean, ledger), reading };
1054
+ }
1055
+ function admit(context, decision) {
1056
+ const admitted_at = context.now();
1057
+ const { granted, overflow, reason, budget, reading } = decision;
1058
+ core_reservation.write_reservation(context.target, { ...context.fields, admitted_at, granted });
1059
+ return {
1060
+ overflow,
1061
+ granted,
1062
+ waited_ms: admitted_at - context.fields.claimed_at,
1063
+ decision: { reason, budget, reading }
1064
+ };
1065
+ }
1066
+ function mark_waiting(context, reason) {
1067
+ const previous = context.fields.wait_reason;
1068
+ if (previous === reason) return;
1069
+ context.fields = { ...context.fields, wait_reason: reason };
1070
+ core_reservation.write_reservation(context.target, context.fields);
1071
+ if (previous === void 0) context.report(core_wait.wait_line(context.fields.command, reason));
1072
+ }
1073
+ function spent_reason(context, reservations, budget) {
1074
+ const now = context.now();
1075
+ if (now >= context.deadline) return "cpu-deadline";
1076
+ const busy_cores = busy_average.mean_busy(context.busy_samples);
1077
+ const room = { busy_cores, cores: context.budget, now };
1078
+ 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;
1079
+ }
1080
+ function overflow_reason(context, reservations, budget) {
1081
+ if (context.fields.is_strict_admission === true || core_admission.is_memory_held(context.key, reservations, budget)) {
1082
+ return void 0;
1083
+ }
1084
+ return spent_reason(context, reservations, budget);
1085
+ }
1086
+ function overflow_of(context, reservations, decision) {
1087
+ const held = core_admission.with_grant(context.key, reservations, decision.granted);
1088
+ const overflow = {
1089
+ waited_ms: context.now() - context.fields.claimed_at,
1090
+ ledger: core_admission.sum_load(held),
1091
+ budget: decision.budget
1092
+ };
1093
+ return admit(context, { ...decision, overflow });
1094
+ }
1095
+ function fit_reason(context, reservations, budget) {
1096
+ const requested = context.fields.memory_mb ?? 0;
1097
+ if (context.fields.is_unit === true && requested > budget.memory_mb) {
1098
+ return "unit-memory-narrowing";
1099
+ }
1100
+ const strict = { ...budget, busy_excess: 0, is_overloaded: true };
1101
+ return core_admission.is_admitted(context.key, reservations, strict) ? "budget-fit" : "cpu-first-waiter";
1102
+ }
1103
+ async function poll_admission(context, reservations) {
1104
+ const { budget, reading } = await current_reading(context, reservations);
1105
+ const granted = core_admission.narrowed_weight(context.key, reservations, budget.cores);
1106
+ const reason = core_wait.hold_reason(context.key, reservations, budget, granted);
1107
+ if (reason === void 0) {
1108
+ return admit(context, {
1109
+ budget,
1110
+ reading,
1111
+ granted,
1112
+ reason: fit_reason(context, reservations, budget)
1113
+ });
1114
+ }
1115
+ const overflow = overflow_reason(context, reservations, budget);
1116
+ if (overflow !== void 0) {
1117
+ return overflow_of(context, reservations, { budget, reading, granted, reason: overflow });
1118
+ }
1119
+ mark_waiting(context, reason);
1120
+ return void 0;
1121
+ }
1122
+ var core_budget_poll = { poll_admission };
1123
+
1124
+ // scripts/gate/core-wait-record.ts
1125
+ var UNNAMED_COMMAND = "a step";
1126
+ async function to_ledger(wait) {
1127
+ await lane_ledger_write.record_core_wait(wait);
1128
+ }
1129
+ function request_fields(claim2, admission) {
1130
+ return {
1131
+ requested_cores: claim2.weight,
1132
+ granted_cores: admission?.granted ?? claim2.weight,
1133
+ memory_mb: claim2.memory_mb ?? 0,
1134
+ wait_reason: claim2.wait_reason,
1135
+ admission_waited_ms: admission?.waited_ms
1136
+ };
1137
+ }
1138
+ function admission_fields(claim2, admission) {
1139
+ const decision = admission?.decision;
1140
+ if (decision === void 0) return {};
1141
+ return {
1142
+ ...request_fields(claim2, admission),
1143
+ admission_reason: decision.reason,
1144
+ overflow: admission?.overflow !== void 0,
1145
+ budget_cores: decision.budget.cores,
1146
+ budget_memory_mb: Number.isFinite(decision.budget.memory_mb) ? decision.budget.memory_mb : void 0,
1147
+ available_mb: decision.reading.available_mb,
1148
+ busy_cores: decision.reading.busy_cores,
1149
+ memory_pressured: decision.reading.memory_pressured
1150
+ };
1151
+ }
1152
+ function should_record(claim2, admission) {
1153
+ return claim2.wait_reason !== void 0 || admission?.decision !== void 0;
1154
+ }
1155
+ function wait_of2(claim2, now, admission) {
1156
+ if (!should_record(claim2, admission)) return void 0;
1157
+ const waited_ms = claim2.wait_reason === void 0 ? 0 : now - claim2.claimed_at;
1158
+ const wait = {
1159
+ command: claim2.command ?? UNNAMED_COMMAND,
1160
+ waited_ms,
1161
+ ...admission_fields(claim2, admission)
1162
+ };
1163
+ return claim2.lane === void 0 ? wait : { ...wait, issue: Number(claim2.lane) };
1164
+ }
1165
+ async function record_admitted(claim2, now, sink = to_ledger, admission) {
1166
+ const wait = wait_of2(claim2, now, admission);
1167
+ if (wait !== void 0) await sink(wait);
1168
+ }
1169
+ var core_wait_record = { record_admitted, wait_of: wait_of2 };
1170
+
1171
+ // scripts/gate/held-mark.ts
1172
+ var HELD_KEY = "JOSH_CORE_RESERVED";
1173
+ var HELD_VALUE = "1";
1174
+ var HELD_RESERVATION_KEY = "JOSH_CORE_RESERVATION";
1175
+ function is_held() {
1176
+ return process.env[HELD_KEY] === HELD_VALUE;
1177
+ }
1178
+ function held_reservation() {
1179
+ const key = process.env[HELD_RESERVATION_KEY] ?? "";
1180
+ return key === "" ? void 0 : key;
1181
+ }
1182
+ function set_held_mark(value, reservation) {
1183
+ process.env[HELD_KEY] = value;
1184
+ process.env[HELD_RESERVATION_KEY] = reservation;
1185
+ }
1186
+ async function with_held_mark(run, reservation = "") {
1187
+ const previous = process.env[HELD_KEY] ?? "";
1188
+ const previous_reservation = process.env[HELD_RESERVATION_KEY] ?? "";
1189
+ set_held_mark(HELD_VALUE, reservation);
1190
+ try {
1191
+ return await run();
1192
+ } finally {
1193
+ set_held_mark(previous, previous_reservation);
1194
+ }
1195
+ }
1196
+ var held_mark = {
1197
+ HELD_KEY,
1198
+ HELD_RESERVATION_KEY,
1199
+ HELD_VALUE,
1200
+ held_reservation,
1201
+ is_held,
1202
+ with_held_mark
1203
+ };
1204
+
1205
+ // scripts/gate/core-budget.ts
1206
+ var RESERVED_PREFIX = "josh-core-reserved-";
1207
+ var RESERVED_SUFFIX = ".json";
1208
+ var MIN_BUDGET = 1;
1209
+ var { claim_fields: claim_fields2, read_reservation: read_reservation2, write_reservation: write_reservation2 } = core_reservation;
1210
+ function marker_name(key) {
1211
+ return `${RESERVED_PREFIX}${key}${RESERVED_SUFFIX}`;
1212
+ }
1213
+ function is_running(reservation) {
1214
+ return process_identity.is_same_process(reservation.pid, reservation.process_start) !== false;
1215
+ }
1216
+ function sweep_marker(source) {
1217
+ try {
1218
+ stamp_file.remove_stamp(source);
1219
+ } catch {
1220
+ }
1221
+ }
1222
+ function live_reservation(source) {
1223
+ const reservation = read_reservation2(source);
1224
+ if (reservation === void 0) return void 0;
1225
+ if (is_running(reservation)) return reservation;
1226
+ sweep_marker(source);
1227
+ return void 0;
1228
+ }
1229
+ function marker_files(directory) {
1230
+ try {
1231
+ return readdirSync2(directory).filter(
1232
+ (name) => name.startsWith(RESERVED_PREFIX) && name.endsWith(RESERVED_SUFFIX)
1233
+ );
1234
+ } catch {
1235
+ return [];
1236
+ }
1237
+ }
1238
+ function live_reservations(directory = PLATFORM_TEMP_ROOT) {
1239
+ return marker_files(directory).flatMap((name) => {
1240
+ const reservation = live_reservation(path5.join(directory, name));
1241
+ return reservation === void 0 ? [] : { key: name, reservation };
1242
+ });
1243
+ }
1244
+ function normalize_budget(budget) {
1245
+ return Number.isFinite(budget) ? Math.max(MIN_BUDGET, Math.floor(budget)) : MIN_BUDGET;
1246
+ }
1247
+ function report_wait(line) {
1248
+ process.stderr.write(`${line}
1249
+ `);
1250
+ }
1251
+ async function poll_admission2(context) {
1252
+ try {
1253
+ return await core_budget_poll.poll_admission(context, live_reservations(context.directory));
1254
+ } catch (error) {
1255
+ sweep_marker(context.target);
1256
+ throw error;
1257
+ }
1258
+ }
1259
+ async function await_admission(context) {
1260
+ const admission = await poll.wait_for(async () => await poll_admission2(context), {
1261
+ interval_ms: context.poll_interval_ms,
1262
+ sleeper: context.sleep
1263
+ });
1264
+ await core_wait_record.record_admitted(
1265
+ context.fields,
1266
+ context.now(),
1267
+ context.record_wait,
1268
+ admission
1269
+ );
1270
+ return admission;
1271
+ }
1272
+ function resolve_ports(options) {
1273
+ return {
1274
+ read_machine: options.read_machine ?? machine_capacity.read_machine,
1275
+ report: options.report ?? report_wait,
1276
+ record_wait: options.record_wait
1277
+ };
1278
+ }
1279
+ function claim(weight, options = {}) {
1280
+ const timing = core_budget_timing.resolve_timing(options);
1281
+ const directory = options.directory ?? PLATFORM_TEMP_ROOT;
1282
+ const claimed_at = timing.now();
1283
+ const name = marker_name(randomUUID());
1284
+ const target = path5.join(directory, name);
1285
+ const fields = claim_fields2(weight, claimed_at, options);
1286
+ write_reservation2(target, fields);
1287
+ return {
1288
+ ...timing,
1289
+ key: name,
1290
+ target,
1291
+ directory,
1292
+ budget: normalize_budget(options.budget ?? availableParallelism2()),
1293
+ deadline: claimed_at + timing.wait_cap_ms,
1294
+ fields,
1295
+ busy_samples: [],
1296
+ ...resolve_ports(options)
1297
+ };
1298
+ }
1299
+ async function reserve(weight, options = {}) {
1300
+ const context = claim(weight, options);
1301
+ const admission = await await_admission(context);
1302
+ return { target: context.target, admission };
1303
+ }
1304
+ async function poll_claim(context) {
1305
+ const admission = await poll_admission2(context);
1306
+ if (admission === void 0) return void 0;
1307
+ await core_wait_record.record_admitted(
1308
+ context.fields,
1309
+ context.now(),
1310
+ context.record_wait,
1311
+ admission
1312
+ );
1313
+ return { target: context.target, admission };
1314
+ }
1315
+ function budget_waits(directory = PLATFORM_TEMP_ROOT, now = Date.now(), home = process.cwd()) {
1316
+ return core_wait.waits_of(live_reservations(directory), now, home);
1317
+ }
1318
+ function release(handle) {
1319
+ sweep_marker(handle.target);
1320
+ }
1321
+ async function with_core_reservation(weight, run, options = {}) {
1322
+ const handle = await reserve(weight, options);
1323
+ try {
1324
+ return await run(handle.admission, path5.basename(handle.target));
1325
+ } finally {
1326
+ release(handle);
1327
+ }
1328
+ }
1329
+ function is_covered() {
1330
+ return held_mark.is_held() || unit_worker_share.is_nested_run();
1331
+ }
1332
+ async function with_command_reservation(weight, run, options = {}) {
1333
+ if (is_covered()) return await run();
1334
+ return await with_core_reservation(
1335
+ weight,
1336
+ async (_admission, key) => await held_mark.with_held_mark(run, key),
1337
+ options
1338
+ );
1339
+ }
1340
+ function held_unit_claim(directory = PLATFORM_TEMP_ROOT) {
1341
+ const key = held_mark.held_reservation();
1342
+ if (key === void 0) return void 0;
1343
+ const held = live_reservations(directory).find((entry) => entry.key === key);
1344
+ return held?.reservation.is_unit === true ? held.reservation : void 0;
1345
+ }
1346
+ var core_budget = {
1347
+ CORE_WEIGHTS: core_weights.CORE_WEIGHTS,
1348
+ HELD_KEY: held_mark.HELD_KEY,
1349
+ HELD_VALUE: held_mark.HELD_VALUE,
1350
+ MEMORY_MB: core_weights.MEMORY_MB,
1351
+ RESERVED_PREFIX,
1352
+ admitted_keys: core_admission.admitted_keys,
1353
+ admitted_load: core_admission.admitted_load,
1354
+ budget_waits,
1355
+ claim,
1356
+ describe_overflow: core_admission.describe_overflow,
1357
+ held_unit_claim,
1358
+ is_covered,
1359
+ is_held: held_mark.is_held,
1360
+ live_reservations,
1361
+ poll_claim,
1362
+ release,
1363
+ reserve,
1364
+ transfer: core_reservation.transfer,
1365
+ with_command_reservation,
1366
+ with_core_reservation,
1367
+ with_held_mark: held_mark.with_held_mark
1368
+ };
1369
+
1370
+ // scripts/josh/josh-in-process.ts
1371
+ import { realpathSync } from "node:fs";
1372
+ import path6 from "node:path";
1373
+ import { pathToFileURL } from "node:url";
1374
+ var BUNDLED_COMMAND_DIRECTORY = path6.join("dist", "commands");
1375
+
1376
+ // scripts/josh/run-github-prerequisite.ts
1377
+ import { existsSync as existsSync3 } from "node:fs";
1378
+ import path7 from "node:path";
1379
+
1380
+ // scripts/josh/josh-logic.ts
1381
+ var TSX_BIN = "tsx";
1382
+ var TSX_PACKAGE = "tsx";
1383
+ var PACKAGE_DIR = find_package_directory(path8.dirname(fileURLToPath(import.meta.url)));
1384
+ function resolve_tsx_executable() {
1385
+ const candidates = [
1386
+ resolve_local_bin(PACKAGE_DIR, TSX_BIN),
1387
+ resolve_local_bin(process.cwd(), TSX_BIN)
1388
+ ];
1389
+ return candidates.find(existsSync4) ?? TSX_BIN;
1390
+ }
1391
+ function resolve_tsx_cli_entry() {
1392
+ for (const base_directory of [PACKAGE_DIR, process.cwd()]) {
1393
+ const cli_entry = resolve_package_bin(base_directory, TSX_PACKAGE, TSX_BIN);
1394
+ if (cli_entry !== void 0) return cli_entry;
1395
+ }
1396
+ return void 0;
1397
+ }
1398
+ function resolve_tsx_runner() {
1399
+ const cli_entry = resolve_tsx_cli_entry();
1400
+ if (cli_entry !== void 0) {
1401
+ return { executable: process.execPath, leading_arguments: [cli_entry] };
1402
+ }
1403
+ return { executable: resolve_tsx_executable(), leading_arguments: [] };
1404
+ }
1405
+ function read_package_version() {
1406
+ return package_manifest.read_manifest(PACKAGE_DIR, package_version_schema).version;
1407
+ }
1408
+ var HEADER = `josh v${read_package_version()} \u2014 Joshua Folkken's dev toolkit`;
1409
+
1410
+ // scripts/lint/import-graph.ts
1411
+ import path11 from "node:path";
1412
+
1413
+ // scripts/gate/input-fingerprint.ts
1414
+ import { readFileSync as readFileSync2 } from "node:fs";
1415
+ import path9 from "node:path";
1416
+ var ABSENT = "absent";
1417
+ function of_content(content) {
1418
+ return stamp_file.digest(content);
1419
+ }
1420
+ function of_entries(entries) {
1421
+ return of_content([...entries].toSorted((left, right) => left.localeCompare(right)).join("\n"));
1422
+ }
1423
+ function of_file(file_path) {
1424
+ try {
1425
+ return of_content(readFileSync2(file_path));
1426
+ } catch {
1427
+ return ABSENT;
1428
+ }
1429
+ }
1430
+ function of_files(root, relatives) {
1431
+ const sorted = [...new Set(relatives)].toSorted((left, right) => left.localeCompare(right));
1432
+ return Object.fromEntries(
1433
+ sorted.map((relative) => [relative, of_file(path9.join(root, relative))])
1434
+ );
1435
+ }
1436
+ var input_fingerprint = { ABSENT, of_entries, of_file, of_files };
1437
+
1438
+ // scripts/lint/import-graph-store.ts
1439
+ import { existsSync as existsSync5 } from "node:fs";
1440
+ import path10 from "node:path";
1441
+ var STORE_VERSION = 1;
1442
+ var STORE_NAME = `import-graph.v${String(STORE_VERSION)}.json`;
1443
+ var ENVIRONMENT_FILES = ["package.json", "pnpm-lock.yaml"];
1444
+ var EXTENSION = /(?:\.d)?\.[^./]+$/u;
1445
+ var INDEX = "index";
1446
+ var stored_dependency = external_exports.tuple([external_exports.string(), external_exports.boolean()]);
1447
+ var stored_file = external_exports.object({
1448
+ hash: external_exports.string(),
1449
+ all: external_exports.array(stored_dependency).optional(),
1450
+ runtime: external_exports.array(stored_dependency).optional()
1451
+ });
1452
+ var stored_graph = external_exports.object({
1453
+ version: external_exports.literal(STORE_VERSION),
1454
+ environment: external_exports.string(),
1455
+ files: external_exports.record(external_exports.string(), stored_file)
1456
+ });
1457
+ function store_path(root) {
1458
+ const common = git_common_directory.repository(root);
1459
+ return common === void 0 ? void 0 : path10.join(common, git_common_directory.STATE_DIRECTORY, STORE_NAME);
1460
+ }
1461
+ function environment_of(root, config_files) {
1462
+ const relatives = [...config_files.map((file) => path10.relative(root, file)), ...ENVIRONMENT_FILES];
1463
+ const digests = Object.entries(input_fingerprint.of_files(root, relatives));
1464
+ return input_fingerprint.of_entries(digests.map(([file, digest2]) => `${file}:${digest2}`));
1465
+ }
1466
+ function open(root, config_files) {
1467
+ return {
1468
+ root,
1469
+ environment: environment_of(root, config_files),
1470
+ file_path: store_path(root),
1471
+ files: void 0,
1472
+ seeded: /* @__PURE__ */ new Set(),
1473
+ memo: { all: /* @__PURE__ */ new Map(), runtime: /* @__PURE__ */ new Map() },
1474
+ unresolved: { all: /* @__PURE__ */ new Set(), runtime: /* @__PURE__ */ new Set() },
1475
+ content_hashes: /* @__PURE__ */ new Map()
1476
+ };
1477
+ }
1478
+ function remember(store, name, file, references) {
1479
+ const found = references.filter((dependency) => dependency !== void 0);
1480
+ if (found.length < references.length) store.unresolved[name].add(file);
1481
+ store.memo[name].set(file, found);
1482
+ return found;
1483
+ }
1484
+ function content_hash(store, file) {
1485
+ const known = store.content_hashes.get(file);
1486
+ if (known !== void 0) return known;
1487
+ const computed = input_fingerprint.of_file(file);
1488
+ store.content_hashes.set(file, computed);
1489
+ return computed;
1490
+ }
1491
+ function read_files(store) {
1492
+ const text = store.file_path === void 0 ? void 0 : file_reader.read_if_readable(store.file_path);
1493
+ const stored = text === void 0 ? void 0 : json_value.parse_with(text, stored_graph);
1494
+ return stored?.environment === store.environment ? stored.files : {};
1495
+ }
1496
+ function files_of(store) {
1497
+ store.files ??= read_files(store);
1498
+ return store.files;
1499
+ }
1500
+ function module_stem(file) {
1501
+ const stem = file.replace(EXTENSION, "");
1502
+ return path10.basename(stem) === INDEX ? path10.dirname(stem) : stem;
1503
+ }
1504
+ function added_stems(store, universe) {
1505
+ const files = files_of(store);
1506
+ const added = universe.filter((file) => !Object.hasOwn(files, path10.relative(store.root, file)));
1507
+ return new Set(added.map((file) => module_stem(file)));
1508
+ }
1509
+ function rebased(store, stored) {
1510
+ return stored.map(([file, external]) => ({ file: path10.join(store.root, file), external }));
1511
+ }
1512
+ function is_standing(dependency, seeding) {
1513
+ return existsSync5(dependency.file) && !seeding.added.has(module_stem(dependency.file));
1514
+ }
1515
+ function stored_edges(store, name, file, seeding) {
1516
+ const entry = seeding.files[path10.relative(store.root, file)];
1517
+ const stored = entry?.hash === content_hash(store, file) ? entry[name] : void 0;
1518
+ if (stored === void 0) return void 0;
1519
+ const dependencies = rebased(store, stored);
1520
+ return dependencies.every((dependency) => is_standing(dependency, seeding)) ? dependencies : void 0;
1521
+ }
1522
+ function seed(store, name, universe) {
1523
+ if (store.seeded.has(name)) return [];
1524
+ store.seeded.add(name);
1525
+ const seeding = { files: files_of(store), added: added_stems(store, universe) };
1526
+ const memo = store.memo[name];
1527
+ return universe.filter((file) => {
1528
+ const stored = stored_edges(store, name, file, seeding);
1529
+ if (stored !== void 0 && !memo.has(file)) memo.set(file, stored);
1530
+ return stored === void 0;
1531
+ });
1532
+ }
1533
+ function entry_of(store, name, file) {
1534
+ const dependencies = store.memo[name].get(file);
1535
+ if (dependencies === void 0 || store.unresolved[name].has(file)) return void 0;
1536
+ const hash = content_hash(store, file);
1537
+ const known = files_of(store)[path10.relative(store.root, file)];
1538
+ const entry = known?.hash === hash ? { ...known } : { hash };
1539
+ entry[name] = dependencies.map((dependency) => [
1540
+ path10.relative(store.root, dependency.file),
1541
+ dependency.external
1542
+ ]);
1543
+ return entry;
1544
+ }
1545
+ function write(store, file_path) {
1546
+ const files = Object.entries(files_of(store)).filter(
1547
+ ([file]) => existsSync5(path10.join(store.root, file))
1548
+ );
1549
+ const graph = {
1550
+ version: STORE_VERSION,
1551
+ environment: store.environment,
1552
+ files: Object.fromEntries(files)
1553
+ };
1554
+ atomic_write.replace_file(file_path, JSON.stringify(graph));
1555
+ }
1556
+ function keep(store, name, missing) {
1557
+ if (missing.length === 0 || store.file_path === void 0) return;
1558
+ const files = files_of(store);
1559
+ for (const file of missing) {
1560
+ const entry = entry_of(store, name, file);
1561
+ if (entry !== void 0) files[path10.relative(store.root, file)] = entry;
1562
+ }
1563
+ write(store, store.file_path);
1564
+ }
1565
+ var import_graph_store = { content_hash, keep, open, remember, seed, store_path };
1566
+
1567
+ // scripts/test/test-inputs.ts
1568
+ var GLOBALS = /* @__PURE__ */ new Set([
1569
+ "undefined",
1570
+ "NaN",
1571
+ "Infinity",
1572
+ "Array",
1573
+ "Object",
1574
+ "String",
1575
+ "Number",
1576
+ "Boolean",
1577
+ "BigInt",
1578
+ "Symbol",
1579
+ "Map",
1580
+ "Set",
1581
+ "WeakMap",
1582
+ "WeakSet",
1583
+ "JSON",
1584
+ "RegExp",
1585
+ "Error",
1586
+ "TypeError",
1587
+ "RangeError",
1588
+ "Promise",
1589
+ "parseInt",
1590
+ "parseFloat",
1591
+ "isNaN",
1592
+ "isFinite"
1593
+ ]);
1594
+ var UNSAFE = /* @__PURE__ */ new Set([
1595
+ "process",
1596
+ "global",
1597
+ "globalThis",
1598
+ "eval",
1599
+ "Function",
1600
+ "require",
1601
+ "constructor",
1602
+ "__proto__",
1603
+ "prototype",
1604
+ "vi",
1605
+ "vitest",
1606
+ "inject",
1607
+ "provide",
1608
+ "toMatchSnapshot",
1609
+ "toMatchFileSnapshot",
1610
+ "toThrowErrorMatchingSnapshot",
1611
+ "matchSnapshot"
1612
+ ]);
1613
+ function is_property(typescript, node) {
1614
+ const { parent } = node;
1615
+ return typescript.isPropertyAccessExpression(parent) && parent.name === node || (typescript.isPropertyAssignment(parent) || typescript.isMethodDeclaration(parent)) && parent.name === node;
1616
+ }
1617
+ function is_unsafe_syntax(typescript, node) {
1618
+ return [
1619
+ typescript.isNamespaceImport(node),
1620
+ typescript.isElementAccessExpression(node),
1621
+ node.kind === typescript.SyntaxKind.ThisKeyword,
1622
+ typescript.isMetaProperty(node)
1623
+ ].includes(true);
1624
+ }
1625
+ function is_dynamic_import(typescript, node) {
1626
+ return typescript.isCallExpression(node) && node.expression.kind === typescript.SyntaxKind.ImportKeyword;
1627
+ }
1628
+ function is_unknown_identifier(typescript, node, checker) {
1629
+ if (UNSAFE.has(node.text)) return true;
1630
+ return !is_property(typescript, node) && checker.getSymbolAtLocation(node) === void 0 && !GLOBALS.has(node.text);
1631
+ }
1632
+ function is_unknown(typescript, node, checker) {
1633
+ if (is_unsafe_syntax(typescript, node) || is_dynamic_import(typescript, node)) return true;
1634
+ if (!typescript.isIdentifier(node)) return false;
1635
+ return is_unknown_identifier(typescript, node, checker);
1636
+ }
1637
+ function is_closed(typescript, file, content) {
1638
+ const source = typescript.createSourceFile(file, content, typescript.ScriptTarget.Latest, true);
1639
+ const host = typescript.createCompilerHost({});
1640
+ host.getSourceFile = (name) => name === file ? source : void 0;
1641
+ const program = typescript.createProgram([file], { noLib: true, noResolve: true }, host);
1642
+ const checker = program.getTypeChecker();
1643
+ function unknown(node) {
1644
+ if (typescript.isTypeNode(node)) return false;
1645
+ return is_unknown(typescript, node, checker) || typescript.forEachChild(node, unknown) === true;
1646
+ }
1647
+ return program.getSyntacticDiagnostics(source).length === 0 && !unknown(source);
1648
+ }
1649
+ var test_inputs = { is_closed };
1650
+
1651
+ // scripts/lint/type-only-imports.ts
1652
+ function declaration_of(typescript, statement) {
1653
+ if (typescript.isImportDeclaration(statement)) return statement;
1654
+ if (typescript.isExportDeclaration(statement)) return statement;
1655
+ return void 0;
1656
+ }
1657
+ function is_type_only(typescript, declaration) {
1658
+ if (typescript.isExportDeclaration(declaration)) return declaration.isTypeOnly;
1659
+ return declaration.importClause?.phaseModifier === typescript.SyntaxKind.TypeKeyword;
1660
+ }
1661
+ function type_only_position(typescript, source, statement) {
1662
+ const declaration = declaration_of(typescript, statement);
1663
+ if (declaration === void 0 || !is_type_only(typescript, declaration)) return void 0;
1664
+ const specifier = declaration.moduleSpecifier;
1665
+ if (specifier === void 0 || !typescript.isStringLiteral(specifier)) return void 0;
1666
+ return specifier.getStart(source);
1667
+ }
1668
+ function runtime_specifiers(typescript, file, content) {
1669
+ const source = typescript.createSourceFile(file, content, typescript.ScriptTarget.Latest);
1670
+ const type_only = new Set(
1671
+ source.statements.map((statement) => type_only_position(typescript, source, statement))
1672
+ );
1673
+ return typescript.preProcessFile(content, true, true).importedFiles.filter((reference) => !type_only.has(reference.pos)).map((reference) => reference.fileName);
1674
+ }
1675
+ function strings(typescript, file) {
1676
+ const content = file_reader.read_if_readable(file) ?? "";
1677
+ const source = typescript.createSourceFile(file, content, typescript.ScriptTarget.Latest);
1678
+ const found = [];
1679
+ function visit(node) {
1680
+ if (typescript.isStringLiteralLike(node) || typescript.isTemplateLiteralToken(node)) {
1681
+ found.push(node.text);
1682
+ }
1683
+ typescript.forEachChild(node, visit);
1684
+ }
1685
+ visit(source);
1686
+ return found;
1687
+ }
1688
+ var type_only_imports = { runtime_specifiers, strings };
1689
+
1690
+ // scripts/lint/import-test-inputs.ts
1691
+ var DECLARATION_EXTENSION = /\.d\.[cm]?ts$/u;
1692
+ var TYPESCRIPT_EXTENSION = /\.[cm]?tsx?$/u;
1693
+ var JAVASCRIPT_EXTENSIONS = ["js", "jsx", "mjs", "cjs"];
1694
+ function is_runtime_source(typescript, file) {
1695
+ if (DECLARATION_EXTENSION.test(file)) return false;
1696
+ if (!TYPESCRIPT_EXTENSION.test(file)) return true;
1697
+ return JAVASCRIPT_EXTENSIONS.every(
1698
+ (extension) => !typescript.sys.fileExists(file.replace(TYPESCRIPT_EXTENSION, () => `.${extension}`))
1699
+ );
1700
+ }
1701
+ function dependencies_of(typescript, resolve, file, content) {
1702
+ const specifiers = type_only_imports.runtime_specifiers(typescript, file, content);
1703
+ const dependencies = specifiers.filter((name) => name !== "vitest").map((name) => name.startsWith(".") ? resolve(name, file) : void 0);
1704
+ if (dependencies.some((dependency) => dependency === void 0 || dependency.external)) {
1705
+ return void 0;
1706
+ }
1707
+ return dependencies.flatMap((dependency) => dependency?.file ?? []);
1708
+ }
1709
+ function read_source(typescript, resolve, file) {
1710
+ if (!is_runtime_source(typescript, file)) return void 0;
1711
+ const content = file_reader.read_if_readable(file);
1712
+ if (content === void 0 || !test_inputs.is_closed(typescript, file, content)) return void 0;
1713
+ return dependencies_of(typescript, resolve, file, content);
1714
+ }
1715
+ function unvisited(file, reached, read) {
1716
+ return reached.has(file) ? [] : read(file);
1717
+ }
1718
+ function closure(file, read) {
1719
+ const reached = /* @__PURE__ */ new Set();
1720
+ const pending = [file];
1721
+ for (let current = pending.pop(); current !== void 0; current = pending.pop()) {
1722
+ const dependencies = unvisited(current, reached, read);
1723
+ if (dependencies === void 0) return void 0;
1724
+ reached.add(current);
1725
+ pending.push(...dependencies);
1726
+ }
1727
+ return [...reached];
1728
+ }
1729
+ function create(typescript, resolve) {
1730
+ const cache = /* @__PURE__ */ new Map();
1731
+ function read(file) {
1732
+ if (!cache.has(file)) cache.set(file, read_source(typescript, resolve, file));
1733
+ return cache.get(file);
1734
+ }
1735
+ return (file) => closure(file, read);
1736
+ }
1737
+ var import_test_inputs2 = { create };
1738
+
1739
+ // scripts/lint/import-graph.ts
1740
+ var TSCONFIG = "tsconfig.json";
1741
+ var NODE_MODULES = "node_modules";
1742
+ var MODULE_STATEMENT = /^(?:import|export)\b/mu;
1743
+ var GLOBAL_DECLARATION = /^declare (?:global|module|namespace)\b/mu;
1744
+ async function load_typescript() {
1745
+ try {
1746
+ const module = await import("typescript");
1747
+ return module.default;
1748
+ } catch {
1749
+ return void 0;
1750
+ }
1751
+ }
1752
+ function parsed_config(typescript, root) {
1753
+ const config_file = path11.join(root, TSCONFIG);
1754
+ if (!typescript.sys.fileExists(config_file)) return void 0;
1755
+ const source = typescript.readJsonConfigFile(config_file, typescript.sys.readFile);
1756
+ const parsed = typescript.parseJsonSourceFileConfigFileContent(
1757
+ source,
1758
+ typescript.sys,
1759
+ root,
1760
+ void 0,
1761
+ config_file
1762
+ );
1763
+ return {
1764
+ options: parsed.options,
1765
+ file_names: parsed.fileNames,
1766
+ config_files: [config_file, ...source.extendedSourceFiles ?? []]
1767
+ };
1768
+ }
1769
+ function is_installed(file) {
1770
+ return file.split(path11.sep).includes(NODE_MODULES);
1771
+ }
1772
+ function as_dependency(file, external) {
1773
+ if (file === void 0) return void 0;
1774
+ return { file, external: external === true && is_installed(file) };
1775
+ }
1776
+ function relative_to(specifier, file) {
1777
+ return { file: path11.resolve(path11.dirname(file), specifier), external: false };
1778
+ }
1779
+ function resolve_module(context, specifier, file) {
1780
+ const { typescript, options, resolution_cache } = context;
1781
+ const resolved = typescript.resolveModuleName(
1782
+ specifier,
1783
+ file,
1784
+ options,
1785
+ typescript.sys,
1786
+ resolution_cache
1787
+ ).resolvedModule;
1788
+ if (resolved !== void 0) {
1789
+ return as_dependency(resolved.resolvedFileName, resolved.isExternalLibraryImport);
1790
+ }
1791
+ if (!specifier.startsWith(".")) return void 0;
1792
+ return relative_to(specifier, file);
1793
+ }
1794
+ function resolve_type(resolver, name, file) {
1795
+ const { typescript, options } = resolver;
1796
+ const resolved = typescript.resolveTypeReferenceDirective(
1797
+ name,
1798
+ file,
1799
+ options,
1800
+ typescript.sys
1801
+ ).resolvedTypeReferenceDirective;
1802
+ return as_dependency(resolved?.resolvedFileName, resolved?.isExternalLibraryImport);
1803
+ }
1804
+ function references_of(context, file, content) {
1805
+ const processed = context.typescript.preProcessFile(content, true, true);
1806
+ return [
1807
+ ...processed.importedFiles.map(
1808
+ (reference) => resolve_module(context, reference.fileName, file)
1809
+ ),
1810
+ ...processed.referencedFiles.map((reference) => relative_to(reference.fileName, file)),
1811
+ ...processed.typeReferenceDirectives.map(
1812
+ (reference) => resolve_type(context, reference.fileName, file)
1813
+ )
1814
+ ];
1815
+ }
1816
+ function direct_dependencies(context, file) {
1817
+ const known = context.store.memo.all.get(file);
1818
+ if (known !== void 0) return known;
1819
+ const references = references_of(context, file, file_reader.read_if_readable(file) ?? "");
1820
+ return import_graph_store.remember(context.store, "all", file, references);
1821
+ }
1822
+ function runtime_dependencies(context, file) {
1823
+ const known = context.store.memo.runtime.get(file);
1824
+ if (known !== void 0) return known;
1825
+ const content = file_reader.read_if_readable(file) ?? "";
1826
+ const references = type_only_imports.runtime_specifiers(context.typescript, file, content).map((specifier) => resolve_module(context, specifier, file));
1827
+ return import_graph_store.remember(context.store, "runtime", file, references);
1828
+ }
1829
+ function is_ambient(file) {
1830
+ const content = file_reader.read_if_readable(file) ?? "";
1831
+ return GLOBAL_DECLARATION.test(content) || !MODULE_STATEMENT.test(content);
1832
+ }
1833
+ function ambient_of(resolver, root, config) {
1834
+ const config_file = path11.join(root, TSCONFIG);
1835
+ const declarations = [
1836
+ ...config.file_names.filter((file) => is_ambient(file)),
1837
+ ...config.config_files
1838
+ ].map((file) => ({ file, external: false }));
1839
+ const types = resolver.typescript.getAutomaticTypeDirectiveNames(resolver.options, resolver.typescript.sys).map((name) => resolve_type(resolver, name, config_file)).filter((dependency) => dependency !== void 0);
1840
+ return [...declarations, ...types];
1841
+ }
1842
+ function is_unvisited(dependency, start, reached) {
1843
+ return dependency.file !== start && !reached.has(dependency.file);
1844
+ }
1845
+ function join(dependencies, start, reached) {
1846
+ const next = dependencies.filter((dependency) => is_unvisited(dependency, start, reached));
1847
+ for (const dependency of next) reached.set(dependency.file, dependency);
1848
+ return next.filter((dependency) => !dependency.external).map((dependency) => dependency.file);
1849
+ }
1850
+ function reachable(context, file) {
1851
+ const reached = /* @__PURE__ */ new Map();
1852
+ const pending = [file, ...join(context.ambient, file, reached)];
1853
+ for (let current = pending.pop(); current !== void 0; current = pending.pop()) {
1854
+ pending.push(...join(direct_dependencies(context, current), file, reached));
1855
+ }
1856
+ return reached;
1857
+ }
1858
+ function token_of(context, dependency) {
1859
+ const name = path11.relative(context.root, dependency.file);
1860
+ if (dependency.external) return name;
1861
+ return `${name}:${import_graph_store.content_hash(context.store, dependency.file)}`;
1862
+ }
1863
+ function closure_hash(context, file) {
1864
+ const tokens = [...reachable(context, file).values()].map(
1865
+ (dependency) => token_of(context, dependency)
1866
+ );
1867
+ return input_fingerprint.of_entries(tokens);
1868
+ }
1869
+ function closure2(context, file) {
1870
+ return [...reachable(context, file).values()].filter((dependency) => !dependency.external).map((dependency) => dependency.file);
1871
+ }
1872
+ function imports(context, file, content) {
1873
+ const dependencies = content === void 0 ? direct_dependencies(context, file) : references_of(context, file, content).filter((dependency) => dependency !== void 0);
1874
+ return dependencies.filter((dependency) => !dependency.external).map((dependency) => dependency.file);
1875
+ }
1876
+ function append(map, key, value) {
1877
+ const known = map.get(key);
1878
+ if (known === void 0) map.set(key, [value]);
1879
+ else known.push(value);
1880
+ }
1881
+ function reverse_edges(context, universe, edges) {
1882
+ const reverse = /* @__PURE__ */ new Map();
1883
+ const missing = import_graph_store.seed(context.store, edges.name, universe);
1884
+ for (const file of universe) {
1885
+ for (const dependency of edges.of(context, file)) {
1886
+ append(reverse, dependency.file, file);
1887
+ }
1888
+ }
1889
+ import_graph_store.keep(context.store, edges.name, missing);
1890
+ return reverse;
1891
+ }
1892
+ function importers(context, files, universe, edges) {
1893
+ const reverse = reverse_edges(context, universe, edges);
1894
+ const reached = new Set(files);
1895
+ const pending = [...files];
1896
+ for (let current = pending.pop(); current !== void 0; current = pending.pop()) {
1897
+ const next = (reverse.get(current) ?? []).filter((file) => !reached.has(file));
1898
+ for (const file of next) reached.add(file);
1899
+ pending.push(...next);
1900
+ }
1901
+ return reached;
1902
+ }
1903
+ function project_module(context, specifier, file) {
1904
+ const dependency = resolve_module(context, specifier, file);
1905
+ if (dependency === void 0) return void 0;
1906
+ const relative = path11.relative(context.root, dependency.file);
1907
+ return relative.startsWith(`..${path11.sep}`) || path11.isAbsolute(relative) ? void 0 : dependency;
1908
+ }
1909
+ function graph_of(context) {
1910
+ return {
1911
+ // Type-checker suffixes need not select the source the runner executes.
1912
+ test_inputs: context.options.moduleSuffixes === void 0 ? import_test_inputs2.create(
1913
+ context.typescript,
1914
+ (specifier, file) => project_module(context, specifier, file)
1915
+ ) : void 0,
1916
+ closure: (file) => closure2(context, file),
1917
+ closure_hash: (file) => closure_hash(context, file),
1918
+ imports: (file, content) => imports(context, file, content),
1919
+ importers: (files, universe) => importers(context, files, universe, { name: "all", of: direct_dependencies }),
1920
+ runtime_importers: (files, universe) => importers(context, files, universe, { name: "runtime", of: runtime_dependencies }),
1921
+ strings: (file) => type_only_imports.strings(context.typescript, file)
1922
+ };
1923
+ }
1924
+ async function create2(root) {
1925
+ const typescript = await load_typescript();
1926
+ if (typescript === void 0) return void 0;
1927
+ const parsed = parsed_config(typescript, root);
1928
+ if (parsed === void 0) return void 0;
1929
+ return graph_of({
1930
+ root,
1931
+ typescript,
1932
+ options: parsed.options,
1933
+ resolution_cache: typescript.createModuleResolutionCache(root, (name) => name, parsed.options),
1934
+ ambient: ambient_of({ typescript, options: parsed.options }, root, parsed),
1935
+ store: import_graph_store.open(root, parsed.config_files)
1936
+ });
1937
+ }
1938
+ var import_graph = { create: create2 };
1939
+
1940
+ export {
1941
+ toolchain_inputs,
1942
+ buffered_process,
1943
+ run_board_usage_rusage,
1944
+ core_admission,
1945
+ machine_capacity,
1946
+ held_mark,
1947
+ core_budget,
1948
+ resolve_tsx_runner,
1949
+ input_fingerprint,
1950
+ import_graph,
1951
+ changed_file_scope,
1952
+ lint_related_scope
1953
+ };