@joshuafolkken/kit 1.3041.0 → 1.3092.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1243) hide show
  1. package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
  2. package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
  3. package/.claude/skills/workflow-commands/halfrun.md +3 -2
  4. package/.claude/skills/workflow-commands/kickoff.md +9 -2
  5. package/.claude/skills/workflow-commands/prerequisite.md +2 -0
  6. package/.claude/skills/workflow-commands/progress-watcher.md +10 -8
  7. package/.claude/skills/workflow-commands/retrospective.md +2 -1
  8. package/.claude/skills/workflow-commands/split-assessment.md +4 -0
  9. package/.github/workflows/ci.yml +0 -20
  10. package/.github/workflows/pr-classification.yml +0 -5
  11. package/.github/workflows/publish.yml +0 -1
  12. package/.github/workflows/sonar-qube.yml +0 -5
  13. package/README.md +2 -0
  14. package/SECURITY.md +2 -1
  15. package/dist/.inputs-verified.json +1 -1
  16. package/dist/commands/adopt.js +29 -20
  17. package/dist/commands/auto-ok-judge-cli.js +43 -33
  18. package/dist/commands/auto-ok-main.js +73 -74
  19. package/dist/commands/backlog-budget-main.js +5 -6
  20. package/dist/commands/backlog-drive-cli.js +286 -305
  21. package/dist/commands/backlog-next-main.js +111 -108
  22. package/dist/commands/backlog-offer-main.js +148 -112
  23. package/dist/commands/backlog-plan-cli.js +123 -120
  24. package/dist/commands/backlog-triage-cli.js +131 -128
  25. package/dist/commands/backlogrun-cli.js +273 -264
  26. package/dist/commands/behavior-cli.js +23 -26
  27. package/dist/commands/bytes-command.js +56 -59
  28. package/dist/commands/cases-cli.js +4 -5
  29. package/dist/commands/check-commit-message-main.js +3 -4
  30. package/dist/commands/check-related.js +125 -119
  31. package/dist/commands/chunk-26JL4UU4.js +365 -0
  32. package/dist/commands/chunk-2BIVHPCA.js +85 -0
  33. package/dist/commands/chunk-2CKJODCK.js +245 -0
  34. package/dist/commands/chunk-2E6PSONB.js +46 -0
  35. package/dist/commands/chunk-2GA4775H.js +77 -0
  36. package/dist/commands/chunk-2O64H5UJ.js +462 -0
  37. package/dist/commands/chunk-2OEXY4GM.js +252 -0
  38. package/dist/commands/chunk-2OMIHPPE.js +51 -0
  39. package/dist/commands/chunk-2ONSHOAY.js +46 -0
  40. package/dist/commands/chunk-2Q7MGFYB.js +1208 -0
  41. package/dist/commands/chunk-2SA3W4JF.js +41 -0
  42. package/dist/commands/chunk-2VY7CJ2R.js +212 -0
  43. package/dist/commands/chunk-2WRDAQPJ.js +74 -0
  44. package/dist/commands/chunk-2XLR7R6E.js +541 -0
  45. package/dist/commands/chunk-2XZF3YFY.js +47 -0
  46. package/dist/commands/chunk-33TAOZUE.js +29 -0
  47. package/dist/commands/chunk-374XGAWD.js +158 -0
  48. package/dist/commands/chunk-3CJNQU7P.js +179 -0
  49. package/dist/commands/chunk-3D5T6KMW.js +59 -0
  50. package/dist/commands/chunk-3EW5LTN3.js +114 -0
  51. package/dist/commands/chunk-3F3RNIG2.js +128 -0
  52. package/dist/commands/chunk-3FLTEJZY.js +74 -0
  53. package/dist/commands/chunk-3JWPTRNI.js +60 -0
  54. package/dist/commands/chunk-3MQTOUXT.js +94 -0
  55. package/dist/commands/chunk-3PCUERXE.js +19 -0
  56. package/dist/commands/chunk-3U6A5WON.js +173 -0
  57. package/dist/commands/chunk-3YT3RCSI.js +140 -0
  58. package/dist/commands/chunk-43DU7DYZ.js +540 -0
  59. package/dist/commands/chunk-43H725LG.js +132 -0
  60. package/dist/commands/chunk-46STCE6Q.js +48 -0
  61. package/dist/commands/chunk-46WEC6HZ.js +82 -0
  62. package/dist/commands/chunk-47J4KOZP.js +46 -0
  63. package/dist/commands/chunk-47W7PF4T.js +22 -0
  64. package/dist/commands/chunk-4F4KARQN.js +229 -0
  65. package/dist/commands/chunk-4GUGC4IW.js +338 -0
  66. package/dist/commands/chunk-4HB7NWXP.js +263 -0
  67. package/dist/commands/chunk-4HOTJAO6.js +89 -0
  68. package/dist/commands/chunk-4I5AA4P5.js +237 -0
  69. package/dist/commands/chunk-4IDINPBE.js +525 -0
  70. package/dist/commands/chunk-4K7KLR7L.js +69 -0
  71. package/dist/commands/chunk-4MGTNY2L.js +347 -0
  72. package/dist/commands/chunk-4NSIW3UB.js +104 -0
  73. package/dist/commands/chunk-4YTKV6WV.js +37 -0
  74. package/dist/commands/chunk-5ARNFMQK.js +1263 -0
  75. package/dist/commands/chunk-5AZTSESD.js +114 -0
  76. package/dist/commands/chunk-5FUI2MLY.js +89 -0
  77. package/dist/commands/chunk-5GI5GLC4.js +214 -0
  78. package/dist/commands/chunk-5IHEBIPD.js +333 -0
  79. package/dist/commands/chunk-5KAW5GPF.js +44 -0
  80. package/dist/commands/chunk-5KSJEWXR.js +77 -0
  81. package/dist/commands/chunk-5OF2B4BF.js +35 -0
  82. package/dist/commands/chunk-5PLJ7R3D.js +126 -0
  83. package/dist/commands/chunk-5PPWXOCF.js +64 -0
  84. package/dist/commands/chunk-5VQCL33M.js +46 -0
  85. package/dist/commands/chunk-5Y7FOJLX.js +186 -0
  86. package/dist/commands/chunk-5YTEMF4O.js +110 -0
  87. package/dist/commands/chunk-62NYXZCC.js +241 -0
  88. package/dist/commands/chunk-6KUA7MRG.js +64 -0
  89. package/dist/commands/chunk-6LDEZFYR.js +88 -0
  90. package/dist/commands/chunk-6NXIZMIK.js +122 -0
  91. package/dist/commands/chunk-6O45F6YI.js +86 -0
  92. package/dist/commands/chunk-6OHJBQDE.js +184 -0
  93. package/dist/commands/chunk-6WDCCG3M.js +1249 -0
  94. package/dist/commands/chunk-6ZHXEQAI.js +715 -0
  95. package/dist/commands/chunk-736NECRD.js +16 -0
  96. package/dist/commands/chunk-77LEKVEE.js +32 -0
  97. package/dist/commands/chunk-7CX5VYOL.js +50 -0
  98. package/dist/commands/chunk-7DGHFBU7.js +247 -0
  99. package/dist/commands/chunk-7E43YW53.js +128 -0
  100. package/dist/commands/chunk-7EAYFMDN.js +235 -0
  101. package/dist/commands/chunk-7HP3FQGQ.js +51 -0
  102. package/dist/commands/chunk-7JOOMFDI.js +155 -0
  103. package/dist/commands/chunk-7OEBSPPU.js +321 -0
  104. package/dist/commands/chunk-A3JYZWBS.js +803 -0
  105. package/dist/commands/chunk-A3LCN4KA.js +84 -0
  106. package/dist/commands/chunk-ABLXBG6C.js +98 -0
  107. package/dist/commands/chunk-AN7BFVHU.js +244 -0
  108. package/dist/commands/chunk-AQCVEQSM.js +99 -0
  109. package/dist/commands/chunk-AT46EY7H.js +393 -0
  110. package/dist/commands/chunk-AU563VKH.js +75 -0
  111. package/dist/commands/chunk-AUTD5FV2.js +1077 -0
  112. package/dist/commands/chunk-AV26CMY6.js +304 -0
  113. package/dist/commands/chunk-B2PJEV3S.js +246 -0
  114. package/dist/commands/chunk-B545ENGY.js +214 -0
  115. package/dist/commands/chunk-B5HP6T4L.js +170 -0
  116. package/dist/commands/chunk-B5XYAWNN.js +37 -0
  117. package/dist/commands/chunk-B73IIRMS.js +207 -0
  118. package/dist/commands/chunk-BAEDHPXW.js +160 -0
  119. package/dist/commands/chunk-BDSG6JKH.js +977 -0
  120. package/dist/commands/chunk-BE6F4YK2.js +769 -0
  121. package/dist/commands/chunk-BFKTUD3V.js +33 -0
  122. package/dist/commands/chunk-BLRXHK2V.js +17 -0
  123. package/dist/commands/chunk-BLUAO4QW.js +173 -0
  124. package/dist/commands/chunk-BML6MEUB.js +326 -0
  125. package/dist/commands/chunk-BPDNGJXY.js +63 -0
  126. package/dist/commands/chunk-BQLKWGGC.js +118 -0
  127. package/dist/commands/chunk-BRMJVCP7.js +167 -0
  128. package/dist/commands/chunk-BRWR5YKU.js +268 -0
  129. package/dist/commands/chunk-BUZAYEBD.js +319 -0
  130. package/dist/commands/chunk-BVUL57IX.js +139 -0
  131. package/dist/commands/chunk-CC4BIGCA.js +20 -0
  132. package/dist/commands/chunk-CCHJZEF5.js +4220 -0
  133. package/dist/commands/chunk-CDK7QZWG.js +44 -0
  134. package/dist/commands/chunk-CDYFUCDC.js +72 -0
  135. package/dist/commands/chunk-CEADAQIL.js +170 -0
  136. package/dist/commands/chunk-CNL3SLM6.js +116 -0
  137. package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
  138. package/dist/commands/chunk-CTXJVMHW.js +48 -0
  139. package/dist/commands/chunk-CUWT6UQO.js +13 -0
  140. package/dist/commands/chunk-CVRDJCOE.js +125 -0
  141. package/dist/commands/chunk-D6CF5QGM.js +80 -0
  142. package/dist/commands/chunk-DACNQAXC.js +20 -0
  143. package/dist/commands/chunk-DDOS32JU.js +74 -0
  144. package/dist/commands/chunk-DDZVMXZD.js +481 -0
  145. package/dist/commands/chunk-DF6QD4AF.js +52 -0
  146. package/dist/commands/chunk-DFEXNB44.js +159 -0
  147. package/dist/commands/chunk-DHDKG5HZ.js +151 -0
  148. package/dist/commands/chunk-DHJRFBKO.js +223 -0
  149. package/dist/commands/chunk-DKDWOE3C.js +78 -0
  150. package/dist/commands/chunk-DKO5VTEH.js +65 -0
  151. package/dist/commands/chunk-DLHH3MLS.js +85 -0
  152. package/dist/commands/chunk-DOYNK72G.js +81 -0
  153. package/dist/commands/chunk-DS53UUDH.js +679 -0
  154. package/dist/commands/chunk-DUA4E4ES.js +230 -0
  155. package/dist/commands/chunk-DURHGVRC.js +33 -0
  156. package/dist/commands/chunk-DVCMQMRN.js +191 -0
  157. package/dist/commands/chunk-E3YKMCCJ.js +108 -0
  158. package/dist/commands/chunk-E4F2RTKC.js +272 -0
  159. package/dist/commands/chunk-E4PFCTXN.js +127 -0
  160. package/dist/commands/chunk-EAOTR2WL.js +24 -0
  161. package/dist/commands/chunk-EE4VOZJP.js +167 -0
  162. package/dist/commands/chunk-EHVEWJQ4.js +33 -0
  163. package/dist/commands/chunk-EMFSPPMH.js +98 -0
  164. package/dist/commands/chunk-EN65ZS3S.js +73 -0
  165. package/dist/commands/chunk-ES42XPAD.js +123 -0
  166. package/dist/commands/chunk-ESUY7KTZ.js +137 -0
  167. package/dist/commands/chunk-ET6IRQ3L.js +330 -0
  168. package/dist/commands/chunk-EWCUT7U2.js +1314 -0
  169. package/dist/commands/chunk-EWXXEGXL.js +149 -0
  170. package/dist/commands/chunk-EZYW54OQ.js +7569 -0
  171. package/dist/commands/chunk-F2RDEF2J.js +205 -0
  172. package/dist/commands/chunk-F2U46HAE.js +52 -0
  173. package/dist/commands/chunk-F2VYWU6Z.js +653 -0
  174. package/dist/commands/chunk-F4SGOTUF.js +36 -0
  175. package/dist/commands/chunk-F4YMLVWN.js +183 -0
  176. package/dist/commands/chunk-F5N2QIFD.js +213 -0
  177. package/dist/commands/chunk-F7B4ESZE.js +80 -0
  178. package/dist/commands/chunk-FJM2HWKW.js +299 -0
  179. package/dist/commands/chunk-FJMXUDEY.js +3985 -0
  180. package/dist/commands/chunk-FM7VVAK6.js +426 -0
  181. package/dist/commands/chunk-FQWRM5FC.js +67 -0
  182. package/dist/commands/chunk-FT33ZCSB.js +298 -0
  183. package/dist/commands/chunk-G2DNS74C.js +53 -0
  184. package/dist/commands/chunk-G75GWNNY.js +101 -0
  185. package/dist/commands/chunk-GA2YSPFH.js +32 -0
  186. package/dist/commands/chunk-GAVSK6P6.js +230 -0
  187. package/dist/commands/chunk-GB2BRQVL.js +300 -0
  188. package/dist/commands/chunk-GBMZXFFC.js +44 -0
  189. package/dist/commands/chunk-GDP7QXYE.js +76 -0
  190. package/dist/commands/chunk-GGWXF7RJ.js +70 -0
  191. package/dist/commands/chunk-GHOTKHI4.js +30 -0
  192. package/dist/commands/chunk-GMVN6ZP2.js +48 -0
  193. package/dist/commands/chunk-GNTTGRCX.js +133 -0
  194. package/dist/commands/chunk-GOY5JECO.js +130 -0
  195. package/dist/commands/chunk-GVDRRBHZ.js +507 -0
  196. package/dist/commands/chunk-GWTBIGYC.js +550 -0
  197. package/dist/commands/chunk-GZL6ISVM.js +72 -0
  198. package/dist/commands/chunk-HALHQILI.js +51 -0
  199. package/dist/commands/chunk-HAT7AFBF.js +85 -0
  200. package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
  201. package/dist/commands/chunk-HE3GOMR7.js +88 -0
  202. package/dist/commands/chunk-HEFUC4ZW.js +65 -0
  203. package/dist/commands/chunk-HESWKELD.js +60 -0
  204. package/dist/commands/chunk-HNFBEB4L.js +77 -0
  205. package/dist/commands/chunk-HRN73FQJ.js +77 -0
  206. package/dist/commands/chunk-HYE3MBAN.js +113 -0
  207. package/dist/commands/chunk-IAB6LCJL.js +18 -0
  208. package/dist/commands/chunk-IAGENI2U.js +42 -0
  209. package/dist/commands/chunk-ICPVBHIX.js +48 -0
  210. package/dist/commands/chunk-IEKW3ON6.js +161 -0
  211. package/dist/commands/chunk-IOKOHB7P.js +109 -0
  212. package/dist/commands/chunk-IONGJJYM.js +179 -0
  213. package/dist/commands/chunk-IP23WOWP.js +126 -0
  214. package/dist/commands/chunk-IPS7EBE5.js +140 -0
  215. package/dist/commands/chunk-IXZZSST7.js +459 -0
  216. package/dist/commands/chunk-J4XHEOOW.js +156 -0
  217. package/dist/commands/chunk-JDHLHYJJ.js +208 -0
  218. package/dist/commands/chunk-JEYITIWB.js +423 -0
  219. package/dist/commands/chunk-JGX7JIW4.js +126 -0
  220. package/dist/commands/chunk-JHIGDFBS.js +59 -0
  221. package/dist/commands/chunk-JI2EGXZX.js +53 -0
  222. package/dist/commands/chunk-JNV3VRK2.js +47 -0
  223. package/dist/commands/chunk-JPMAW2VZ.js +91 -0
  224. package/dist/commands/chunk-JQEY6KDP.js +90 -0
  225. package/dist/commands/chunk-JSJDIEGZ.js +88 -0
  226. package/dist/commands/chunk-JT5ICRFF.js +44 -0
  227. package/dist/commands/chunk-JUCJ4Y42.js +77 -0
  228. package/dist/commands/chunk-K3OZBV3L.js +49 -0
  229. package/dist/commands/chunk-K5H3CLZZ.js +430 -0
  230. package/dist/commands/chunk-K6P5PISC.js +114 -0
  231. package/dist/commands/chunk-KD3SEAMV.js +402 -0
  232. package/dist/commands/chunk-KDCHY7XO.js +88 -0
  233. package/dist/commands/chunk-KDGX3JTV.js +51 -0
  234. package/dist/commands/chunk-KGSEWOKI.js +353 -0
  235. package/dist/commands/chunk-KHGDZQRG.js +271 -0
  236. package/dist/commands/chunk-KIS7JFNP.js +217 -0
  237. package/dist/commands/chunk-KKHD3C2P.js +114 -0
  238. package/dist/commands/chunk-KKIIY5I5.js +67 -0
  239. package/dist/commands/chunk-KN46UC77.js +114 -0
  240. package/dist/commands/chunk-KP2BVAS5.js +125 -0
  241. package/dist/commands/chunk-KPAJBJXG.js +63 -0
  242. package/dist/commands/chunk-KPMAJP6D.js +145 -0
  243. package/dist/commands/chunk-KR6WUAJM.js +122 -0
  244. package/dist/commands/chunk-KWLNK2NJ.js +391 -0
  245. package/dist/commands/chunk-L2CLCNXW.js +144 -0
  246. package/dist/commands/chunk-L7MDU6D7.js +155 -0
  247. package/dist/commands/chunk-L7VD4MLF.js +78 -0
  248. package/dist/commands/chunk-LBMAJDGN.js +124 -0
  249. package/dist/commands/chunk-LBVYFW3I.js +38 -0
  250. package/dist/commands/chunk-LE3M42CF.js +350 -0
  251. package/dist/commands/chunk-LIPUSINQ.js +140 -0
  252. package/dist/commands/chunk-LJVZWE3A.js +1885 -0
  253. package/dist/commands/chunk-LKSSQVDA.js +49 -0
  254. package/dist/commands/chunk-LL6G34MF.js +93 -0
  255. package/dist/commands/chunk-LNQOL2CL.js +321 -0
  256. package/dist/commands/chunk-LS7P324N.js +72 -0
  257. package/dist/commands/chunk-LU5EOGFQ.js +50 -0
  258. package/dist/commands/chunk-LX2ENXHZ.js +197 -0
  259. package/dist/commands/chunk-M32UPB2D.js +110 -0
  260. package/dist/commands/chunk-M3UGRNNB.js +103 -0
  261. package/dist/commands/chunk-M4WG74Q7.js +260 -0
  262. package/dist/commands/chunk-M5HA2ZCG.js +105 -0
  263. package/dist/commands/chunk-MDGPJOLK.js +351 -0
  264. package/dist/commands/chunk-MDKRTUE4.js +288 -0
  265. package/dist/commands/chunk-MFZVRWRS.js +34 -0
  266. package/dist/commands/chunk-MHXIJKGP.js +304 -0
  267. package/dist/commands/chunk-MK4CARBI.js +90 -0
  268. package/dist/commands/chunk-MLJDW7YN.js +64 -0
  269. package/dist/commands/chunk-MNLHYAJO.js +80 -0
  270. package/dist/commands/chunk-MOD3FG4V.js +419 -0
  271. package/dist/commands/chunk-MRAEJLXL.js +83 -0
  272. package/dist/commands/chunk-MRW2WYJS.js +68 -0
  273. package/dist/commands/chunk-MXPCEZL5.js +23 -0
  274. package/dist/commands/chunk-N2XH7QBY.js +103 -0
  275. package/dist/commands/chunk-N2ZF6T4E.js +332 -0
  276. package/dist/commands/chunk-N36NZMAL.js +79 -0
  277. package/dist/commands/chunk-N4EMFHQ6.js +114 -0
  278. package/dist/commands/chunk-N4P64UIH.js +211 -0
  279. package/dist/commands/chunk-NABSSY4P.js +204 -0
  280. package/dist/commands/chunk-NDQIJBRQ.js +100 -0
  281. package/dist/commands/chunk-NDR4PCVG.js +29 -0
  282. package/dist/commands/chunk-NEOCCN6D.js +302 -0
  283. package/dist/commands/chunk-NFKWFOFM.js +45 -0
  284. package/dist/commands/chunk-NFUPJBBG.js +516 -0
  285. package/dist/commands/chunk-NHEBKL7X.js +170 -0
  286. package/dist/commands/chunk-NHTEC5U4.js +99 -0
  287. package/dist/commands/chunk-NOSG3RUP.js +84 -0
  288. package/dist/commands/chunk-NOSODWWK.js +1132 -0
  289. package/dist/commands/chunk-NPXXYG6Z.js +580 -0
  290. package/dist/commands/chunk-NR2JDBPV.js +75 -0
  291. package/dist/commands/chunk-NRULNBYI.js +1153 -0
  292. package/dist/commands/chunk-NTGF5N3N.js +110 -0
  293. package/dist/commands/chunk-NTIVNQKF.js +73 -0
  294. package/dist/commands/chunk-NUCFIYZL.js +119 -0
  295. package/dist/commands/chunk-NVMV7BYX.js +88 -0
  296. package/dist/commands/chunk-NYWPTYGL.js +169 -0
  297. package/dist/commands/chunk-NZ45KOLL.js +104 -0
  298. package/dist/commands/chunk-O45BX4EL.js +39 -0
  299. package/dist/commands/chunk-O46T4ANI.js +229 -0
  300. package/dist/commands/chunk-O5JGV7NA.js +245 -0
  301. package/dist/commands/chunk-O7ESC4HL.js +566 -0
  302. package/dist/commands/chunk-OBYLXHCH.js +86 -0
  303. package/dist/commands/chunk-OKN63ZH5.js +109 -0
  304. package/dist/commands/chunk-ON4IKRGS.js +469 -0
  305. package/dist/commands/chunk-OT74RSQO.js +82 -0
  306. package/dist/commands/chunk-OVCVINYW.js +143 -0
  307. package/dist/commands/chunk-OZKLVTYI.js +342 -0
  308. package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
  309. package/dist/commands/chunk-P43GWYR6.js +185 -0
  310. package/dist/commands/chunk-P6ASP2DY.js +132 -0
  311. package/dist/commands/chunk-PBAEJ5PT.js +38 -0
  312. package/dist/commands/chunk-PCZROH3R.js +100 -0
  313. package/dist/commands/chunk-PF3PMT2Q.js +46 -0
  314. package/dist/commands/chunk-PILH72AV.js +170 -0
  315. package/dist/commands/chunk-PJYTUUTH.js +34 -0
  316. package/dist/commands/chunk-PKXTISWR.js +58 -0
  317. package/dist/commands/chunk-PSGLUBSB.js +74 -0
  318. package/dist/commands/chunk-PUQA7F6Y.js +186 -0
  319. package/dist/commands/chunk-PVRDJU2B.js +126 -0
  320. package/dist/commands/chunk-Q3HM2BEH.js +45 -0
  321. package/dist/commands/chunk-Q42NF2TL.js +47 -0
  322. package/dist/commands/chunk-Q4ULMZAS.js +106 -0
  323. package/dist/commands/chunk-QCRUPRQ2.js +207 -0
  324. package/dist/commands/chunk-QFIKPGMC.js +280 -0
  325. package/dist/commands/chunk-QSBYULSS.js +100 -0
  326. package/dist/commands/chunk-QSJCZATC.js +18 -0
  327. package/dist/commands/chunk-QTJPCXEW.js +23 -0
  328. package/dist/commands/chunk-QTQAI2M2.js +179 -0
  329. package/dist/commands/chunk-QTVVFV4Q.js +127 -0
  330. package/dist/commands/chunk-QX2EMUXV.js +102 -0
  331. package/dist/commands/chunk-QXBOECGL.js +272 -0
  332. package/dist/commands/chunk-QXCG3SG4.js +88 -0
  333. package/dist/commands/chunk-QZVMGAWV.js +307 -0
  334. package/dist/commands/chunk-R36VZIKU.js +53 -0
  335. package/dist/commands/chunk-R3F7F3TX.js +94 -0
  336. package/dist/commands/chunk-R5AABJZJ.js +1062 -0
  337. package/dist/commands/chunk-R7PYR4HW.js +389 -0
  338. package/dist/commands/chunk-RDUFVQVJ.js +997 -0
  339. package/dist/commands/chunk-RESNXNDG.js +54 -0
  340. package/dist/commands/chunk-RFIOZTXY.js +305 -0
  341. package/dist/commands/chunk-RFWB2KAV.js +102 -0
  342. package/dist/commands/chunk-RFXON3FK.js +25 -0
  343. package/dist/commands/chunk-RGEB5L37.js +66 -0
  344. package/dist/commands/chunk-RGRLLF2J.js +119 -0
  345. package/dist/commands/chunk-RLRIMYXM.js +178 -0
  346. package/dist/commands/chunk-RNB3DQOZ.js +70 -0
  347. package/dist/commands/chunk-RO4QEZJO.js +172 -0
  348. package/dist/commands/chunk-RS5HBJY6.js +161 -0
  349. package/dist/commands/chunk-RV7EQIE4.js +202 -0
  350. package/dist/commands/chunk-RWPCK3CO.js +41 -0
  351. package/dist/commands/chunk-RWYSVFIA.js +250 -0
  352. package/dist/commands/chunk-RYKK75YT.js +289 -0
  353. package/dist/commands/chunk-S4JE63QE.js +704 -0
  354. package/dist/commands/chunk-S4OZJIXD.js +134 -0
  355. package/dist/commands/chunk-SD4EX75H.js +177 -0
  356. package/dist/commands/chunk-SJITWFNY.js +480 -0
  357. package/dist/commands/chunk-SKGDMAIA.js +33 -0
  358. package/dist/commands/chunk-SNSZ25XZ.js +393 -0
  359. package/dist/commands/chunk-SQZZHK6X.js +119 -0
  360. package/dist/commands/chunk-SRTEE34O.js +93 -0
  361. package/dist/commands/chunk-SYTCTLMD.js +285 -0
  362. package/dist/commands/chunk-T6JUDQMW.js +181 -0
  363. package/dist/commands/chunk-T6OUNP7E.js +426 -0
  364. package/dist/commands/chunk-TEXUEBGE.js +208 -0
  365. package/dist/commands/chunk-TFDVTU6O.js +910 -0
  366. package/dist/commands/chunk-TFYYXETQ.js +472 -0
  367. package/dist/commands/chunk-TMFKVJUW.js +121 -0
  368. package/dist/commands/chunk-TNJU4CXD.js +32 -0
  369. package/dist/commands/chunk-TRHWBUWE.js +61 -0
  370. package/dist/commands/chunk-TROCFVCU.js +45 -0
  371. package/dist/commands/chunk-TTTZZN7F.js +269 -0
  372. package/dist/commands/chunk-TUBBESHU.js +85 -0
  373. package/dist/commands/chunk-TVZIFZZN.js +62 -0
  374. package/dist/commands/chunk-TXRWAL63.js +144 -0
  375. package/dist/commands/chunk-U46YTYJQ.js +92 -0
  376. package/dist/commands/chunk-U5EO4QEV.js +48 -0
  377. package/dist/commands/chunk-UCO333EX.js +47 -0
  378. package/dist/commands/chunk-UIXQ4IYT.js +445 -0
  379. package/dist/commands/chunk-UJGNYPMD.js +716 -0
  380. package/dist/commands/chunk-URZ4RDC4.js +220 -0
  381. package/dist/commands/chunk-UUH3DE77.js +57 -0
  382. package/dist/commands/chunk-UVY5ODCM.js +60 -0
  383. package/dist/commands/chunk-UWMB6EOU.js +45 -0
  384. package/dist/commands/chunk-UX3HCPLX.js +449 -0
  385. package/dist/commands/chunk-UY62WJV6.js +120 -0
  386. package/dist/commands/chunk-V2T5DP3B.js +224 -0
  387. package/dist/commands/chunk-VAHQ4AFM.js +585 -0
  388. package/dist/commands/chunk-VCWNMRH7.js +71 -0
  389. package/dist/commands/chunk-VHLDQ3PH.js +30 -0
  390. package/dist/commands/chunk-VL5I2IOD.js +332 -0
  391. package/dist/commands/chunk-VLN6TSPJ.js +139 -0
  392. package/dist/commands/chunk-VMG3QB6C.js +81 -0
  393. package/dist/commands/chunk-VO25PMGS.js +58 -0
  394. package/dist/commands/chunk-VTLWODJ2.js +133 -0
  395. package/dist/commands/chunk-VXE3V3OC.js +335 -0
  396. package/dist/commands/chunk-VY7ZJMDT.js +469 -0
  397. package/dist/commands/chunk-W3MDLQZF.js +137 -0
  398. package/dist/commands/chunk-W4BR6QNU.js +1241 -0
  399. package/dist/commands/chunk-WCYRNNKF.js +76 -0
  400. package/dist/commands/chunk-WEUUJIWQ.js +84 -0
  401. package/dist/commands/chunk-WNBJK6QE.js +84 -0
  402. package/dist/commands/chunk-WR5PKCQW.js +61 -0
  403. package/dist/commands/chunk-WR73HTRG.js +121 -0
  404. package/dist/commands/chunk-WRNMUQTD.js +95 -0
  405. package/dist/commands/chunk-WROJTXWZ.js +138 -0
  406. package/dist/commands/chunk-WTIPX5NG.js +43 -0
  407. package/dist/commands/chunk-WWLCQREY.js +225 -0
  408. package/dist/commands/chunk-WXLW7S4M.js +71 -0
  409. package/dist/commands/chunk-WXXLJQBO.js +67 -0
  410. package/dist/commands/chunk-X4LYH6Q4.js +56 -0
  411. package/dist/commands/chunk-XAEL24EG.js +66 -0
  412. package/dist/commands/chunk-XCCT6GKA.js +74 -0
  413. package/dist/commands/chunk-XDR2BRDL.js +216 -0
  414. package/dist/commands/chunk-XRQMVAB4.js +85 -0
  415. package/dist/commands/chunk-XSKJAG72.js +91 -0
  416. package/dist/commands/chunk-XTJA34ND.js +492 -0
  417. package/dist/commands/chunk-XUXCFPDK.js +218 -0
  418. package/dist/commands/chunk-XXPDFJRI.js +48 -0
  419. package/dist/commands/chunk-Y6OGDG5I.js +49 -0
  420. package/dist/commands/chunk-YEAE46TS.js +98 -0
  421. package/dist/commands/chunk-YEQFAEVW.js +112 -0
  422. package/dist/commands/chunk-YJZAD4Z5.js +103 -0
  423. package/dist/commands/chunk-YMAEYY5R.js +278 -0
  424. package/dist/commands/chunk-YNCF66RK.js +1052 -0
  425. package/dist/commands/chunk-YOA25SII.js +210 -0
  426. package/dist/commands/chunk-YOZTZMAT.js +38 -0
  427. package/dist/commands/chunk-YSGRHVZG.js +897 -0
  428. package/dist/commands/chunk-YSLGWRQN.js +646 -0
  429. package/dist/commands/chunk-YTXCLGGL.js +168 -0
  430. package/dist/commands/chunk-YVHJN2HS.js +74 -0
  431. package/dist/commands/chunk-YY7XVVSB.js +43 -0
  432. package/dist/commands/chunk-Z5GZV4DV.js +16 -0
  433. package/dist/commands/chunk-Z6QLFPFB.js +907 -0
  434. package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
  435. package/dist/commands/chunk-ZCD4AV2P.js +73 -0
  436. package/dist/commands/chunk-ZCHZU6NX.js +799 -0
  437. package/dist/commands/chunk-ZEH2B3DF.js +239 -0
  438. package/dist/commands/chunk-ZEUKX3RZ.js +245 -0
  439. package/dist/commands/chunk-ZGANVZCA.js +92 -0
  440. package/dist/commands/chunk-ZGBXUY7R.js +198 -0
  441. package/dist/commands/chunk-ZGEUWHFF.js +297 -0
  442. package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
  443. package/dist/commands/chunk-ZIIUBGON.js +773 -0
  444. package/dist/commands/chunk-ZJ5S4VFD.js +258 -0
  445. package/dist/commands/chunk-ZNIIA275.js +59 -0
  446. package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
  447. package/dist/commands/ci-timing-cli.js +22 -3
  448. package/dist/commands/code-symbol-cli.js +21 -7
  449. package/dist/commands/codex-hook-adapter.js +124 -119
  450. package/dist/commands/command-derive.js +9 -11
  451. package/dist/commands/cost-audit-main.js +118 -119
  452. package/dist/commands/cost-main.js +5 -7
  453. package/dist/commands/cspell-cached.js +55 -57
  454. package/dist/commands/defect-origin-main.js +42 -37
  455. package/dist/commands/defect-report-main.js +33 -25
  456. package/dist/commands/diff-summary-cli.js +3 -4
  457. package/dist/commands/disposition-cli.js +117 -118
  458. package/dist/commands/doctor.js +24 -11
  459. package/dist/commands/document-read-cli.js +50 -53
  460. package/dist/commands/document-section-main.js +50 -53
  461. package/dist/commands/dogfood-commit-cli.js +19 -4
  462. package/dist/commands/effect-audit-cli.js +40 -41
  463. package/dist/commands/epic-audit-main.js +88 -86
  464. package/dist/commands/epic-bundle-main.js +122 -119
  465. package/dist/commands/epic-check.js +37 -31
  466. package/dist/commands/epic-main.js +129 -126
  467. package/dist/commands/epic-next-main.js +85 -83
  468. package/dist/commands/eval-run.js +6 -7
  469. package/dist/commands/format-edited-cli.js +71 -46
  470. package/dist/commands/format.js +41 -56
  471. package/dist/commands/fresh-machine-cli.js +24 -7
  472. package/dist/commands/gh-usage-cli.js +22 -22
  473. package/dist/commands/git-followup-workflow.js +158 -158
  474. package/dist/commands/git-gh-checks-failed-main.js +23 -15
  475. package/dist/commands/git-workflow.js +52 -53
  476. package/dist/commands/github-release-cli.js +3 -3
  477. package/dist/commands/hook-ledger-cli.js +93 -94
  478. package/dist/commands/init-main.js +40 -40
  479. package/dist/commands/inputs.json +2042 -2002
  480. package/dist/commands/issue-ack-cli.js +28 -21
  481. package/dist/commands/issue-already-done-cli.js +107 -110
  482. package/dist/commands/issue-body-cli.js +71 -73
  483. package/dist/commands/issue-cite-main.js +35 -28
  484. package/dist/commands/issue-comment-main.js +36 -30
  485. package/dist/commands/issue-consolidate-cli.js +54 -54
  486. package/dist/commands/issue-file-main.js +274 -148
  487. package/dist/commands/issue-fold-existing-cli.js +126 -123
  488. package/dist/commands/issue-fold-main.js +57 -60
  489. package/dist/commands/issue-lint-main.js +59 -61
  490. package/dist/commands/issue-measured-cli.js +108 -110
  491. package/dist/commands/issue-plan-cli.js +156 -155
  492. package/dist/commands/issue-premise-unmet-cli.js +111 -113
  493. package/dist/commands/issue-priority-cli.js +38 -32
  494. package/dist/commands/issue-read-main.js +38 -33
  495. package/dist/commands/issue-release-class-cli.js +37 -31
  496. package/dist/commands/issue-release-main.js +35 -29
  497. package/dist/commands/issue-scout-main.js +123 -120
  498. package/dist/commands/issue-spill-main.js +149 -144
  499. package/dist/commands/issue-state-main.js +36 -31
  500. package/dist/commands/issue-tick-cli.js +37 -31
  501. package/dist/commands/josh-completion.js +21 -24
  502. package/dist/commands/lane-adopt-cli.js +53 -55
  503. package/dist/commands/lane-breakdown-cli.js +193 -172
  504. package/dist/commands/lane-cli.js +199 -180
  505. package/dist/commands/lane-launch-main.js +106 -56
  506. package/dist/commands/lane-limit-cli.js +119 -116
  507. package/dist/commands/lane-measure-cli.js +408 -245
  508. package/dist/commands/lane-pause-cli.js +51 -54
  509. package/dist/commands/lane-plan-cli.js +148 -147
  510. package/dist/commands/lane-resolve-cli.js +48 -50
  511. package/dist/commands/lane-restart-cli.js +185 -168
  512. package/dist/commands/lane-why-cli.js +121 -122
  513. package/dist/commands/lane-withdraw-cli.js +84 -86
  514. package/dist/commands/latest-corepack.js +3 -2
  515. package/dist/commands/latest-if-required-cli.js +12 -15
  516. package/dist/commands/latest-lane-guard-main.js +2 -3
  517. package/dist/commands/latest-scope-main.js +5 -7
  518. package/dist/commands/latest-update.js +3 -2
  519. package/dist/commands/lines-command.js +8 -10
  520. package/dist/commands/lint-parallel-main.js +65 -67
  521. package/dist/commands/lint-related.js +149 -133
  522. package/dist/commands/lint-rule.js +64 -66
  523. package/dist/commands/lockfile-policy.js +29 -32
  524. package/dist/commands/main-merge-main.js +23 -25
  525. package/dist/commands/main-sync-main.js +23 -24
  526. package/dist/commands/managed-config-scope-cli.js +11 -10
  527. package/dist/commands/measure-rerun-cli.js +31 -26
  528. package/dist/commands/metrics-command.js +97 -100
  529. package/dist/commands/observation-record-cli.js +24 -14
  530. package/dist/commands/observations-flush-cli.js +50 -52
  531. package/dist/commands/overrides-check.js +1 -1
  532. package/dist/commands/package-scout-cli.js +70 -73
  533. package/dist/commands/pin-verify-cli.js +21 -2
  534. package/dist/commands/plan-consumers-main.js +3 -4
  535. package/dist/commands/plan-scaffold-cli.js +145 -146
  536. package/dist/commands/pr-classification-main.js +22 -3
  537. package/dist/commands/pre-commit-lint.js +30 -34
  538. package/dist/commands/pre-commit-type-check.js +55 -55
  539. package/dist/commands/pre-push-unit.js +69 -70
  540. package/dist/commands/pretool-guard-cli.js +111 -113
  541. package/dist/commands/prevent-main-commit.js +2 -3
  542. package/dist/commands/project-profile-cli.js +24 -9
  543. package/dist/commands/propagate.js +31 -23
  544. package/dist/commands/prose-stale-cli.js +48 -42
  545. package/dist/commands/publishable-range-check.js +3 -3
  546. package/dist/commands/read-set-cli.js +58 -61
  547. package/dist/commands/refactor-scan-cli.js +8 -9
  548. package/dist/commands/release-cli.js +57 -57
  549. package/dist/commands/release-scope-main.js +41 -36
  550. package/dist/commands/rename-cli.js +64 -36
  551. package/dist/commands/repo-party-cli.js +3 -4
  552. package/dist/commands/report-template-cli.js +4 -5
  553. package/dist/commands/reserved-run.js +17 -20
  554. package/dist/commands/retrospective-cli.js +126 -127
  555. package/dist/commands/review-attest-cli.js +28 -20
  556. package/dist/commands/review-brief-main.js +184 -167
  557. package/dist/commands/review-findings-cli.js +23 -13
  558. package/dist/commands/review-pair-cli.js +180 -156
  559. package/dist/commands/review-record-main.js +171 -147
  560. package/dist/commands/review-round2-cli.js +89 -91
  561. package/dist/commands/review-stops-cli.js +51 -54
  562. package/dist/commands/review-submit-cli.js +184 -167
  563. package/dist/commands/rule-list.js +78 -80
  564. package/dist/commands/rule-value-cli.js +115 -116
  565. package/dist/commands/ruleset-check-cli.js +23 -6
  566. package/dist/commands/run-add-cli.js +115 -75
  567. package/dist/commands/run-board-main.js +172 -169
  568. package/dist/commands/run-carry-cli.js +182 -174
  569. package/dist/commands/run-chain-cli.js +184 -160
  570. package/dist/commands/run-cut-cli.js +206 -168
  571. package/dist/commands/run-ending-cli.js +51 -54
  572. package/dist/commands/run-entry-cli.js +230 -283
  573. package/dist/commands/run-event-cli.js +18 -21
  574. package/dist/commands/run-handoff-cli.js +75 -78
  575. package/dist/commands/run-handoff-lanes-cli.js +48 -51
  576. package/dist/commands/run-hold-main.js +105 -107
  577. package/dist/commands/run-liveness-cli.js +47 -49
  578. package/dist/commands/run-merge-main.js +159 -151
  579. package/dist/commands/run-next-cli.js +128 -129
  580. package/dist/commands/run-park-cli.js +137 -140
  581. package/dist/commands/run-pause-cli.js +190 -186
  582. package/dist/commands/run-pickup-cli.js +49 -52
  583. package/dist/commands/run-prep-main.js +124 -125
  584. package/dist/commands/run-prime-cli.js +175 -147
  585. package/dist/commands/run-progress-main.js +149 -146
  586. package/dist/commands/run-report-cli.js +60 -60
  587. package/dist/commands/run-review-cli.js +229 -214
  588. package/dist/commands/run-ship-cli.js +258 -252
  589. package/dist/commands/run-ship-evidence-cli.js +71 -72
  590. package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
  591. package/dist/commands/run-ship-wait-main.js +83 -85
  592. package/dist/commands/run-split-cli.js +176 -172
  593. package/dist/commands/run-stale-main.js +72 -75
  594. package/dist/commands/run-status-cli.js +44 -44
  595. package/dist/commands/run-step-cli.js +213 -211
  596. package/dist/commands/run-tail-cli.js +23 -18
  597. package/dist/commands/run-tidy-main.js +67 -69
  598. package/dist/commands/run-wake-main.js +206 -187
  599. package/dist/commands/run-watcher-guard-cli.js +63 -66
  600. package/dist/commands/security-audit-main.js +21 -24
  601. package/dist/commands/security-audit-provision-main.js +9 -11
  602. package/dist/commands/selfcheck-cli.js +63 -57
  603. package/dist/commands/session-language-main.js +70 -73
  604. package/dist/commands/sonar-hotspots-cli.js +9 -8
  605. package/dist/commands/sonar-new-code-cli.js +3 -4
  606. package/dist/commands/split-assess-cli.js +55 -58
  607. package/dist/commands/split-child-recover-cli.js +38 -39
  608. package/dist/commands/start.js +64 -64
  609. package/dist/commands/stash-pop-main.js +4 -5
  610. package/dist/commands/stash-push-main.js +7 -9
  611. package/dist/commands/stop-guard.js +180 -176
  612. package/dist/commands/sync-main.js +30 -15
  613. package/dist/commands/telegram-test-main.js +29 -22
  614. package/dist/commands/test-declared.js +29 -15
  615. package/dist/commands/test-e2e-guard.js +54 -54
  616. package/dist/commands/test-pinned-main.js +57 -56
  617. package/dist/commands/test-reach-cli.js +40 -32
  618. package/dist/commands/test-red-main.js +12 -14
  619. package/dist/commands/test-related-Z6YY2GFH.js +113 -0
  620. package/dist/commands/test-related-main.js +89 -89
  621. package/dist/commands/test-unit-guard-main.js +37 -37
  622. package/dist/commands/time-cli.js +54 -57
  623. package/dist/commands/time-density-cli.js +26 -29
  624. package/dist/commands/tree-status-cli.js +6 -8
  625. package/dist/commands/type-check-command.js +26 -11
  626. package/dist/commands/ui-routes-cli.js +5 -6
  627. package/dist/commands/ui-shot-cli.js +1 -1
  628. package/dist/commands/uninstall.js +44 -43
  629. package/dist/commands/unused-members-KVKZDTXD.js +329 -0
  630. package/dist/commands/unused-members-cli.js +27 -12
  631. package/dist/commands/upstream-interrupt-main.js +159 -151
  632. package/dist/commands/verification-gate.js +85 -86
  633. package/dist/commands/version-check.js +25 -8
  634. package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
  635. package/dist/hooks/chunk-46PTTMGE.js +1625 -0
  636. package/dist/hooks/chunk-5NIBRHWG.js +77 -0
  637. package/dist/hooks/chunk-76QKN2K3.js +258 -0
  638. package/dist/hooks/chunk-CHEKMGFP.js +321 -0
  639. package/dist/hooks/chunk-DCILEVDR.js +5173 -0
  640. package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
  641. package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
  642. package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
  643. package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
  644. package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
  645. package/dist/hooks/codex-hook-adapter.js +11 -12
  646. package/dist/hooks/daemon.js +2140 -1387
  647. package/dist/hooks/format-edited.js +6 -6
  648. package/dist/hooks/inputs.json +512 -488
  649. package/dist/hooks/pretool-guard.js +8 -8
  650. package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
  651. package/dist/hooks/session-lang.js +10 -8
  652. package/dist/hooks/stop-guard.js +962 -669
  653. package/dist/inputs.json +73 -64
  654. package/dist/josh.js +1029 -577
  655. package/dist/registry-migrate.mjs +33938 -0
  656. package/dist/version/index.js +4251 -175
  657. package/package.json +4 -1
  658. package/prompts/collaboration-workflow/principles.md +4 -1
  659. package/prompts/collaboration-workflow/rule-delivery.md +1 -1
  660. package/scripts/agent/codex-launch-identity.ts +70 -0
  661. package/scripts/auto-ok/auto-ok-cli.ts +2 -0
  662. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
  663. package/scripts/auto-ok/auto-ok-judge.ts +3 -1
  664. package/scripts/backlog/backlog-arrival.ts +1 -1
  665. package/scripts/backlog/backlog-budget.ts +5 -2
  666. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  667. package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
  668. package/scripts/backlog/backlog-drain-flush.ts +38 -3
  669. package/scripts/backlog/backlog-drive-cli.ts +1 -1
  670. package/scripts/backlog/backlog-drive-hold.ts +28 -5
  671. package/scripts/backlog/backlog-drive-launch.ts +37 -15
  672. package/scripts/backlog/backlog-drive-listing.ts +39 -23
  673. package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
  674. package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
  675. package/scripts/backlog/backlog-hold-codes.ts +7 -0
  676. package/scripts/backlog/backlog-hold-text.ts +14 -1
  677. package/scripts/backlog/backlog-measure-close.ts +6 -0
  678. package/scripts/backlog/backlog-next-shared.ts +20 -2
  679. package/scripts/backlog/backlog-next.ts +24 -3
  680. package/scripts/backlog/backlog-offer-cli.ts +69 -16
  681. package/scripts/build/build-migration.ts +25 -0
  682. package/scripts/build/build.ts +2 -0
  683. package/scripts/epic/epic-classify.ts +6 -1
  684. package/scripts/epic/epic-live.ts +46 -0
  685. package/scripts/followup/followup-failed-tests.ts +71 -10
  686. package/scripts/followup/followup-job-rerun.ts +2 -2
  687. package/scripts/gate/change-scope-action.integration.test.ts +88 -0
  688. package/scripts/gate/change-scope-action.ts +2 -0
  689. package/scripts/gate/check-related-order.ts +6 -7
  690. package/scripts/gate/check-related.ts +18 -8
  691. package/scripts/gate/core-admission.ts +17 -30
  692. package/scripts/gate/core-budget-poll.ts +183 -0
  693. package/scripts/gate/core-budget-timing.ts +1 -1
  694. package/scripts/gate/core-budget.ts +24 -112
  695. package/scripts/gate/core-wait-record.ts +52 -7
  696. package/scripts/gate/machine-capacity.ts +6 -2
  697. package/scripts/gate/metrics-totals.ts +11 -0
  698. package/scripts/gate/path-glob.test.ts +18 -0
  699. package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
  700. package/scripts/gh/fix-gh-packages-logic.ts +22 -15
  701. package/scripts/gh/gh-request-tally.ts +4 -0
  702. package/scripts/hooks/bash-revert.ts +79 -31
  703. package/scripts/hooks/format-edited-file.ts +6 -8
  704. package/scripts/hooks/implementation-shell.ts +3 -2
  705. package/scripts/init/distributed-paths.ts +18 -5
  706. package/scripts/init/init-actions.ts +16 -1
  707. package/scripts/init/init-bootstrap.ts +2 -0
  708. package/scripts/init/init-logic.ts +40 -8
  709. package/scripts/init/init.ts +11 -3
  710. package/scripts/issue/defect-rate-cli.ts +19 -13
  711. package/scripts/issue/issue-file-batch.ts +7 -3
  712. package/scripts/issue/issue-file-cli.ts +19 -6
  713. package/scripts/issue/issue-file-main.ts +6 -1
  714. package/scripts/issue/issue-file-pass.ts +17 -0
  715. package/scripts/issue/issue-file.ts +3 -0
  716. package/scripts/issue/issue-not-before.ts +9 -2
  717. package/scripts/issue/issue-observation-gate.ts +141 -0
  718. package/scripts/issue/issue-observation-prime.ts +83 -0
  719. package/scripts/issue/issue-publication-state.ts +61 -0
  720. package/scripts/issue/issue-publication.ts +144 -0
  721. package/scripts/issue/issue-sample-prime.ts +2 -0
  722. package/scripts/issue/issue-search-count.ts +26 -0
  723. package/scripts/issue/issue-search.ts +128 -3
  724. package/scripts/issue/issue-spill-cli.ts +4 -0
  725. package/scripts/issue/upstream-interrupt-cli.ts +21 -5
  726. package/scripts/josh/josh-commands-ai.ts +1 -1
  727. package/scripts/josh/josh-commands-development.ts +1 -1
  728. package/scripts/josh/josh-commands-issue-write.ts +9 -0
  729. package/scripts/josh/josh-commands-run.ts +6 -1
  730. package/scripts/josh/josh-commands-ship.ts +5 -5
  731. package/scripts/josh/josh-run.ts +5 -2
  732. package/scripts/josh/session-language-cli.ts +1 -1
  733. package/scripts/josh/shared-cache.ts +16 -1
  734. package/scripts/lane/lane-await.ts +15 -0
  735. package/scripts/lane/lane-cli.ts +2 -0
  736. package/scripts/lane/lane-dispatch-dependency.ts +102 -0
  737. package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
  738. package/scripts/lane/lane-dispatch.ts +44 -5
  739. package/scripts/lane/lane-early-push-count.ts +21 -0
  740. package/scripts/lane/lane-install.ts +15 -5
  741. package/scripts/lane/lane-launch-cli.ts +35 -14
  742. package/scripts/lane/lane-ledger-kind.ts +2 -0
  743. package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
  744. package/scripts/lane/lane-ledger-schema.ts +15 -1
  745. package/scripts/lane/lane-ledger-write.ts +4 -1
  746. package/scripts/lane/lane-relaunch.ts +25 -2
  747. package/scripts/lane/lane-state-record.ts +2 -0
  748. package/scripts/lane/lane-state.ts +8 -1
  749. package/scripts/lane/lane-stats-tables.ts +2 -0
  750. package/scripts/lane/openai-lane-supervisor.ts +16 -1
  751. package/scripts/lib/inherited-scope.ts +48 -0
  752. package/scripts/lint/format-steps.ts +93 -0
  753. package/scripts/lint/format.ts +6 -49
  754. package/scripts/lint/lint-related-fix.ts +35 -0
  755. package/scripts/lint/lint-related.ts +22 -35
  756. package/scripts/propagate/propagate-steps.ts +9 -4
  757. package/scripts/registry-migration/migrate-cli.ts +50 -0
  758. package/scripts/registry-migration/migrate-files.ts +154 -0
  759. package/scripts/registry-migration/migrate-lock.ts +147 -0
  760. package/scripts/registry-migration/migrate.ts +235 -0
  761. package/scripts/registry-migration/npm-acquisition.ts +118 -0
  762. package/scripts/review/review-record-cli.ts +27 -13
  763. package/scripts/review/review-record-pinned.ts +15 -6
  764. package/scripts/run/add/run-add-cli.ts +21 -3
  765. package/scripts/run/add/run-add.ts +26 -9
  766. package/scripts/run/board/run-board-header.ts +4 -5
  767. package/scripts/run/board/run-board-layout.ts +2 -2
  768. package/scripts/run/board/run-board-read.ts +7 -1
  769. package/scripts/run/board/run-board-reason.ts +12 -0
  770. package/scripts/run/board/run-board-retry-wait.ts +35 -0
  771. package/scripts/run/board/run-board-roots.ts +25 -2
  772. package/scripts/run/board/run-board-seat.ts +9 -2
  773. package/scripts/run/board/run-board-setup.ts +19 -11
  774. package/scripts/run/board/run-board-status.ts +2 -0
  775. package/scripts/run/board/run-board-tick.ts +7 -1
  776. package/scripts/run/carry/run-carry-reclaim.ts +12 -2
  777. package/scripts/run/carry/run-carry-session.ts +48 -0
  778. package/scripts/run/carry/run-carry.ts +21 -14
  779. package/scripts/run/cut/run-cut-resume.ts +15 -3
  780. package/scripts/run/cut/run-cut.ts +1 -1
  781. package/scripts/run/detached-launch.ts +14 -5
  782. package/scripts/run/early-push-record.ts +6 -2
  783. package/scripts/run/event/run-event-setup.ts +2 -0
  784. package/scripts/run/event/run-event-stream-emit.ts +27 -7
  785. package/scripts/run/hold/run-hold-cli.ts +40 -5
  786. package/scripts/run/merge/run-merge-cut-release.ts +17 -0
  787. package/scripts/run/merge/run-merge-human-review.ts +6 -0
  788. package/scripts/run/merge/run-merge-steps.ts +4 -57
  789. package/scripts/run/merge/run-merge-waits.ts +54 -0
  790. package/scripts/run/prime/run-prime-cli.ts +16 -2
  791. package/scripts/run/review/run-review-cli.ts +5 -7
  792. package/scripts/run/review/run-review-early-push.ts +19 -8
  793. package/scripts/run/review/run-review-join-read.ts +33 -6
  794. package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
  795. package/scripts/run/review/run-review-pinned-steps.ts +7 -1
  796. package/scripts/run/run-halfrun-resume.ts +49 -6
  797. package/scripts/run/run-headless.ts +3 -0
  798. package/scripts/run/run-pr-return.ts +14 -5
  799. package/scripts/run/run-repair-attempt.ts +219 -0
  800. package/scripts/run/ship/run-ship-lap.ts +5 -17
  801. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
  802. package/scripts/run/ship/run-ship-scoped.ts +66 -30
  803. package/scripts/run/startup/run-startup-schema.ts +31 -0
  804. package/scripts/run/startup/run-startup-store.ts +130 -0
  805. package/scripts/run/startup/run-startup.ts +119 -0
  806. package/scripts/run/wake/run-wake-codex.ts +144 -0
  807. package/scripts/run/wake/run-wake-driver.ts +32 -7
  808. package/scripts/run/wake/run-wake-handoff.ts +9 -8
  809. package/scripts/run/wake/run-wake-loop.ts +23 -3
  810. package/scripts/run/wake/run-wake-ports.ts +17 -3
  811. package/scripts/run/wake/run-wake-takeover.ts +6 -3
  812. package/scripts/run/wake/run-wake-window.ts +4 -1
  813. package/scripts/run/wake/run-wake.ts +5 -0
  814. package/scripts/sync/sync-ai-files.ts +17 -0
  815. package/scripts/sync/sync-configs.ts +11 -1
  816. package/scripts/sync/sync.ts +5 -1
  817. package/scripts/test/test-related-cap.ts +7 -3
  818. package/scripts/test/test-related-imports.ts +92 -0
  819. package/scripts/test/vitest-failure-summary.ts +7 -0
  820. package/scripts/version/npm-registry.ts +45 -7
  821. package/scripts/version/upgrade-shell-command.ts +34 -2
  822. package/templates/workflows/ci.yml +0 -15
  823. package/templates/workflows/github-release.yml +0 -5
  824. package/dist/commands/chunk-23GH6B3D.js +0 -333
  825. package/dist/commands/chunk-24ZDAWML.js +0 -48
  826. package/dist/commands/chunk-2BB5ZR2F.js +0 -128
  827. package/dist/commands/chunk-2BJJUTZA.js +0 -59
  828. package/dist/commands/chunk-2CXT6MBR.js +0 -51
  829. package/dist/commands/chunk-2DJLAUYB.js +0 -109
  830. package/dist/commands/chunk-2EZTYLO4.js +0 -179
  831. package/dist/commands/chunk-2FJJYCBD.js +0 -149
  832. package/dist/commands/chunk-2PHOLX62.js +0 -43
  833. package/dist/commands/chunk-2QM72JCJ.js +0 -338
  834. package/dist/commands/chunk-2VRITY55.js +0 -41
  835. package/dist/commands/chunk-2XAH3MHV.js +0 -23
  836. package/dist/commands/chunk-34KZDKQJ.js +0 -304
  837. package/dist/commands/chunk-352KLSFX.js +0 -67
  838. package/dist/commands/chunk-36LOGVJ7.js +0 -38
  839. package/dist/commands/chunk-3AEDZZNL.js +0 -223
  840. package/dist/commands/chunk-3B2HEFNO.js +0 -51
  841. package/dist/commands/chunk-3PEXBHRN.js +0 -33
  842. package/dist/commands/chunk-3Z425MM3.js +0 -61
  843. package/dist/commands/chunk-3ZOX4G4U.js +0 -88
  844. package/dist/commands/chunk-452HWOJ7.js +0 -395
  845. package/dist/commands/chunk-475EFIJV.js +0 -178
  846. package/dist/commands/chunk-47UZB54M.js +0 -73
  847. package/dist/commands/chunk-4DN4XVPL.js +0 -716
  848. package/dist/commands/chunk-4DVM57T7.js +0 -86
  849. package/dist/commands/chunk-4EADHJVC.js +0 -247
  850. package/dist/commands/chunk-4HERA2GY.js +0 -95
  851. package/dist/commands/chunk-4JI35CVO.js +0 -70
  852. package/dist/commands/chunk-4L4LNWZ7.js +0 -143
  853. package/dist/commands/chunk-4N32QKJZ.js +0 -170
  854. package/dist/commands/chunk-4NRSFLG7.js +0 -185
  855. package/dist/commands/chunk-4OKRPAUT.js +0 -98
  856. package/dist/commands/chunk-4PUKDAXL.js +0 -42
  857. package/dist/commands/chunk-4Q64PG46.js +0 -478
  858. package/dist/commands/chunk-4UDTQVDD.js +0 -278
  859. package/dist/commands/chunk-4WR2LEZL.js +0 -123
  860. package/dist/commands/chunk-4ZJOC6OK.js +0 -298
  861. package/dist/commands/chunk-4ZQM4I7R.js +0 -533
  862. package/dist/commands/chunk-54X37JEJ.js +0 -170
  863. package/dist/commands/chunk-56KW5EOK.js +0 -85
  864. package/dist/commands/chunk-5CG3XU3O.js +0 -74
  865. package/dist/commands/chunk-5ESZLHDZ.js +0 -514
  866. package/dist/commands/chunk-5FBRMARM.js +0 -578
  867. package/dist/commands/chunk-5RG4S66L.js +0 -47
  868. package/dist/commands/chunk-5UJGACVN.js +0 -137
  869. package/dist/commands/chunk-5Y7B7FDL.js +0 -44
  870. package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
  871. package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
  872. package/dist/commands/chunk-5ZTQX7OS.js +0 -125
  873. package/dist/commands/chunk-66NX6EXR.js +0 -29
  874. package/dist/commands/chunk-66TGK5XL.js +0 -84
  875. package/dist/commands/chunk-6CFHLMKM.js +0 -555
  876. package/dist/commands/chunk-6DDK5XWK.js +0 -74
  877. package/dist/commands/chunk-6GQX752S.js +0 -145
  878. package/dist/commands/chunk-6HRRZANN.js +0 -55
  879. package/dist/commands/chunk-6MAZ55GF.js +0 -1241
  880. package/dist/commands/chunk-6OP63TBT.js +0 -78
  881. package/dist/commands/chunk-6Q3XUCLM.js +0 -204
  882. package/dist/commands/chunk-6RUWU2SB.js +0 -45
  883. package/dist/commands/chunk-6UCWAFQY.js +0 -245
  884. package/dist/commands/chunk-6WKJ3GDA.js +0 -408
  885. package/dist/commands/chunk-6YURRFRU.js +0 -461
  886. package/dist/commands/chunk-6YVURZAJ.js +0 -350
  887. package/dist/commands/chunk-6Z4YZG7P.js +0 -169
  888. package/dist/commands/chunk-77BIN247.js +0 -122
  889. package/dist/commands/chunk-7ABHNNY3.js +0 -529
  890. package/dist/commands/chunk-7C7FOKJK.js +0 -115
  891. package/dist/commands/chunk-7HAGC6SW.js +0 -1062
  892. package/dist/commands/chunk-7KKUFLH5.js +0 -56
  893. package/dist/commands/chunk-7LJQMM2K.js +0 -102
  894. package/dist/commands/chunk-7MJYLUF4.js +0 -99
  895. package/dist/commands/chunk-7NHZCI5Y.js +0 -704
  896. package/dist/commands/chunk-7OQ56DVW.js +0 -239
  897. package/dist/commands/chunk-7VWPGTZO.js +0 -260
  898. package/dist/commands/chunk-7YZXS3AK.js +0 -30
  899. package/dist/commands/chunk-A4HOQKOG.js +0 -85
  900. package/dist/commands/chunk-A6T2N7VC.js +0 -159
  901. package/dist/commands/chunk-AAUDI7WJ.js +0 -250
  902. package/dist/commands/chunk-AC26ZUG5.js +0 -259
  903. package/dist/commands/chunk-ACZ52JPI.js +0 -140
  904. package/dist/commands/chunk-AJ65WNJB.js +0 -230
  905. package/dist/commands/chunk-AK7SEO4Y.js +0 -177
  906. package/dist/commands/chunk-AKK56GNX.js +0 -205
  907. package/dist/commands/chunk-AKQYYHP2.js +0 -461
  908. package/dist/commands/chunk-ALDAS2WG.js +0 -137
  909. package/dist/commands/chunk-ANUTT56I.js +0 -85
  910. package/dist/commands/chunk-AVVMDVGO.js +0 -68
  911. package/dist/commands/chunk-B3M5WSGN.js +0 -72
  912. package/dist/commands/chunk-B7ZNIEDV.js +0 -351
  913. package/dist/commands/chunk-BCUDQWYK.js +0 -77
  914. package/dist/commands/chunk-BF6YX4HE.js +0 -70
  915. package/dist/commands/chunk-BHRS7HAM.js +0 -272
  916. package/dist/commands/chunk-BIKGPT52.js +0 -29
  917. package/dist/commands/chunk-BJA5U4Q7.js +0 -75
  918. package/dist/commands/chunk-BMKWSWWE.js +0 -126
  919. package/dist/commands/chunk-BMTYUJNT.js +0 -59
  920. package/dist/commands/chunk-BRHPRDDV.js +0 -127
  921. package/dist/commands/chunk-BRUBX64M.js +0 -33
  922. package/dist/commands/chunk-BTZJDHQT.js +0 -46
  923. package/dist/commands/chunk-BYFC6MD2.js +0 -72
  924. package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
  925. package/dist/commands/chunk-C2SEDMZ3.js +0 -238
  926. package/dist/commands/chunk-C54QXJD6.js +0 -4208
  927. package/dist/commands/chunk-C6QSVO5K.js +0 -56
  928. package/dist/commands/chunk-CBAKBWSZ.js +0 -332
  929. package/dist/commands/chunk-CFHRNTE5.js +0 -326
  930. package/dist/commands/chunk-CGLLAEKZ.js +0 -110
  931. package/dist/commands/chunk-CHKYPF5O.js +0 -82
  932. package/dist/commands/chunk-CJBW6BWG.js +0 -800
  933. package/dist/commands/chunk-CJKPF5DJ.js +0 -156
  934. package/dist/commands/chunk-CKUKK7JG.js +0 -252
  935. package/dist/commands/chunk-CMHGDCGN.js +0 -263
  936. package/dist/commands/chunk-CNGTHSUS.js +0 -750
  937. package/dist/commands/chunk-CP2J4RV2.js +0 -3987
  938. package/dist/commands/chunk-CQZI7RIK.js +0 -72
  939. package/dist/commands/chunk-CWCKCZS6.js +0 -188
  940. package/dist/commands/chunk-D5HIP4HT.js +0 -289
  941. package/dist/commands/chunk-D6D6WQR6.js +0 -125
  942. package/dist/commands/chunk-D7JRJI44.js +0 -297
  943. package/dist/commands/chunk-D7OAU32Z.js +0 -119
  944. package/dist/commands/chunk-DAAX7XDS.js +0 -1208
  945. package/dist/commands/chunk-DBKTFB5V.js +0 -18
  946. package/dist/commands/chunk-DEZF7QZZ.js +0 -184
  947. package/dist/commands/chunk-DMD74E3F.js +0 -39
  948. package/dist/commands/chunk-DPJVKTO4.js +0 -41
  949. package/dist/commands/chunk-DXJQHJQ4.js +0 -73
  950. package/dist/commands/chunk-DYZOOWVW.js +0 -912
  951. package/dist/commands/chunk-EBI2BAKQ.js +0 -47
  952. package/dist/commands/chunk-EDKOSZ3K.js +0 -88
  953. package/dist/commands/chunk-EFDVE5P5.js +0 -121
  954. package/dist/commands/chunk-EGIHAEMT.js +0 -72
  955. package/dist/commands/chunk-EKLU6QR7.js +0 -507
  956. package/dist/commands/chunk-ELY76WAR.js +0 -65
  957. package/dist/commands/chunk-EM3HAZF6.js +0 -52
  958. package/dist/commands/chunk-EMTZAGT5.js +0 -51
  959. package/dist/commands/chunk-ENKFCOVY.js +0 -472
  960. package/dist/commands/chunk-ERG4QRNG.js +0 -224
  961. package/dist/commands/chunk-EUGNQCYK.js +0 -139
  962. package/dist/commands/chunk-EW4NPUMQ.js +0 -363
  963. package/dist/commands/chunk-EWVR5AEX.js +0 -140
  964. package/dist/commands/chunk-EXDFKKMH.js +0 -113
  965. package/dist/commands/chunk-EXWB34R2.js +0 -238
  966. package/dist/commands/chunk-EYMPBHDN.js +0 -61
  967. package/dist/commands/chunk-EZ7IPKIH.js +0 -20
  968. package/dist/commands/chunk-EZSO25UZ.js +0 -80
  969. package/dist/commands/chunk-F6IQHZYY.js +0 -94
  970. package/dist/commands/chunk-FDS65XOJ.js +0 -212
  971. package/dist/commands/chunk-FFHEGWPK.js +0 -91
  972. package/dist/commands/chunk-FGL6DBZU.js +0 -71
  973. package/dist/commands/chunk-FHFWNNUC.js +0 -144
  974. package/dist/commands/chunk-FIUCHMCF.js +0 -32
  975. package/dist/commands/chunk-FJX7AENO.js +0 -74
  976. package/dist/commands/chunk-FKZ5E4JD.js +0 -97
  977. package/dist/commands/chunk-FMZWRDKH.js +0 -302
  978. package/dist/commands/chunk-FOKCRIAN.js +0 -67
  979. package/dist/commands/chunk-FQGWO2ZH.js +0 -43
  980. package/dist/commands/chunk-FROACLVU.js +0 -525
  981. package/dist/commands/chunk-FURNDIT3.js +0 -34
  982. package/dist/commands/chunk-FVDQNMP6.js +0 -93
  983. package/dist/commands/chunk-FVVZIJUC.js +0 -425
  984. package/dist/commands/chunk-FWU3H4TX.js +0 -17
  985. package/dist/commands/chunk-G3HBYHFA.js +0 -16
  986. package/dist/commands/chunk-G4E4M2P4.js +0 -299
  987. package/dist/commands/chunk-G5KSL2Q2.js +0 -151
  988. package/dist/commands/chunk-G6XC7V6Y.js +0 -58
  989. package/dist/commands/chunk-GCPP5XIG.js +0 -90
  990. package/dist/commands/chunk-GITT5A5A.js +0 -198
  991. package/dist/commands/chunk-GJYMI2CM.js +0 -48
  992. package/dist/commands/chunk-GLC47H7I.js +0 -285
  993. package/dist/commands/chunk-GUR54ELE.js +0 -328
  994. package/dist/commands/chunk-GW4UWR3O.js +0 -126
  995. package/dist/commands/chunk-GY4DMCKS.js +0 -306
  996. package/dist/commands/chunk-H6JQRHDC.js +0 -80
  997. package/dist/commands/chunk-HATKF6VX.js +0 -173
  998. package/dist/commands/chunk-HG2NZQD5.js +0 -135
  999. package/dist/commands/chunk-HH3CVIFU.js +0 -93
  1000. package/dist/commands/chunk-HHMMGDMP.js +0 -469
  1001. package/dist/commands/chunk-HI5WPM6C.js +0 -127
  1002. package/dist/commands/chunk-HQGNXR6I.js +0 -245
  1003. package/dist/commands/chunk-HTIDHEEN.js +0 -108
  1004. package/dist/commands/chunk-HVCQYZVD.js +0 -38
  1005. package/dist/commands/chunk-HWEZRNPL.js +0 -66
  1006. package/dist/commands/chunk-HX3FFIO5.js +0 -74
  1007. package/dist/commands/chunk-HXDTA5VU.js +0 -208
  1008. package/dist/commands/chunk-I2KCGKJI.js +0 -107
  1009. package/dist/commands/chunk-I63RNFFR.js +0 -213
  1010. package/dist/commands/chunk-IAD4WLLI.js +0 -98
  1011. package/dist/commands/chunk-IB5TT73I.js +0 -177
  1012. package/dist/commands/chunk-IBAYXCMU.js +0 -156
  1013. package/dist/commands/chunk-IF3EIFK4.js +0 -7515
  1014. package/dist/commands/chunk-IGDJNXX2.js +0 -49
  1015. package/dist/commands/chunk-ILGPZ47M.js +0 -33
  1016. package/dist/commands/chunk-IYJEBWW5.js +0 -44
  1017. package/dist/commands/chunk-J22PSIXR.js +0 -418
  1018. package/dist/commands/chunk-J66YBAAM.js +0 -161
  1019. package/dist/commands/chunk-J6WKZRV2.js +0 -391
  1020. package/dist/commands/chunk-J7IO3AYH.js +0 -179
  1021. package/dist/commands/chunk-JAKC2BHX.js +0 -88
  1022. package/dist/commands/chunk-JCAQ7B6J.js +0 -124
  1023. package/dist/commands/chunk-JHN6RCE6.js +0 -123
  1024. package/dist/commands/chunk-JIGBNCDR.js +0 -88
  1025. package/dist/commands/chunk-JJHWTFWQ.js +0 -76
  1026. package/dist/commands/chunk-JJRKTWLK.js +0 -64
  1027. package/dist/commands/chunk-JKOGWGQM.js +0 -92
  1028. package/dist/commands/chunk-JM6EVOFN.js +0 -172
  1029. package/dist/commands/chunk-JQXPLMCO.js +0 -81
  1030. package/dist/commands/chunk-JV24VP2O.js +0 -81
  1031. package/dist/commands/chunk-JVKXJ763.js +0 -45
  1032. package/dist/commands/chunk-K275REYP.js +0 -37
  1033. package/dist/commands/chunk-K4G3HOKS.js +0 -105
  1034. package/dist/commands/chunk-K64EIHD2.js +0 -138
  1035. package/dist/commands/chunk-KB3OQWDT.js +0 -71
  1036. package/dist/commands/chunk-KCFOP5RI.js +0 -1310
  1037. package/dist/commands/chunk-KGE4AS2Y.js +0 -134
  1038. package/dist/commands/chunk-KIILCKQR.js +0 -220
  1039. package/dist/commands/chunk-KK2SL42W.js +0 -241
  1040. package/dist/commands/chunk-KKIMVXAP.js +0 -280
  1041. package/dist/commands/chunk-KODXWMBX.js +0 -77
  1042. package/dist/commands/chunk-KPSKWTOS.js +0 -208
  1043. package/dist/commands/chunk-KVHNQHX3.js +0 -100
  1044. package/dist/commands/chunk-KWYQR5MK.js +0 -269
  1045. package/dist/commands/chunk-KXHXMERX.js +0 -214
  1046. package/dist/commands/chunk-KZ5BBBMO.js +0 -271
  1047. package/dist/commands/chunk-KZ7HD37E.js +0 -121
  1048. package/dist/commands/chunk-KZSM5M5P.js +0 -89
  1049. package/dist/commands/chunk-KZZWPUJW.js +0 -25
  1050. package/dist/commands/chunk-L7DAL54N.js +0 -347
  1051. package/dist/commands/chunk-LAR76BFA.js +0 -114
  1052. package/dist/commands/chunk-LB557AHJ.js +0 -192
  1053. package/dist/commands/chunk-LJXKVLYI.js +0 -229
  1054. package/dist/commands/chunk-LOOFYHUM.js +0 -773
  1055. package/dist/commands/chunk-LQXFVZTS.js +0 -13
  1056. package/dist/commands/chunk-LT7QSHR4.js +0 -995
  1057. package/dist/commands/chunk-LUXWDMKI.js +0 -426
  1058. package/dist/commands/chunk-LWAXXZPS.js +0 -118
  1059. package/dist/commands/chunk-LX7TIEMI.js +0 -1612
  1060. package/dist/commands/chunk-LZ5QXE5N.js +0 -244
  1061. package/dist/commands/chunk-M4UV3BEV.js +0 -313
  1062. package/dist/commands/chunk-M6JDU5EK.js +0 -133
  1063. package/dist/commands/chunk-MDLOETXL.js +0 -211
  1064. package/dist/commands/chunk-MFBNNTBM.js +0 -44
  1065. package/dist/commands/chunk-MGF64OHV.js +0 -32
  1066. package/dist/commands/chunk-MI2OS6TL.js +0 -132
  1067. package/dist/commands/chunk-MLW4S35K.js +0 -389
  1068. package/dist/commands/chunk-MN425CU6.js +0 -63
  1069. package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
  1070. package/dist/commands/chunk-MRORPFSO.js +0 -402
  1071. package/dist/commands/chunk-MUGTOJUL.js +0 -319
  1072. package/dist/commands/chunk-MVHPRYHE.js +0 -91
  1073. package/dist/commands/chunk-MWO6FOSZ.js +0 -393
  1074. package/dist/commands/chunk-MXC4IBZ7.js +0 -104
  1075. package/dist/commands/chunk-N7QTMTST.js +0 -210
  1076. package/dist/commands/chunk-NDBX7LSS.js +0 -32
  1077. package/dist/commands/chunk-NEGJ77RV.js +0 -173
  1078. package/dist/commands/chunk-NEGRE5VW.js +0 -101
  1079. package/dist/commands/chunk-NFPD2P3V.js +0 -53
  1080. package/dist/commands/chunk-NHIW7JE6.js +0 -335
  1081. package/dist/commands/chunk-NILSN7A4.js +0 -158
  1082. package/dist/commands/chunk-NOLFSPOB.js +0 -74
  1083. package/dist/commands/chunk-NSAVEXVR.js +0 -353
  1084. package/dist/commands/chunk-NT67QTZO.js +0 -65
  1085. package/dist/commands/chunk-NU7W6QGT.js +0 -155
  1086. package/dist/commands/chunk-NYWGJLBU.js +0 -19
  1087. package/dist/commands/chunk-OAAVY2JK.js +0 -49
  1088. package/dist/commands/chunk-OGS2DK7I.js +0 -47
  1089. package/dist/commands/chunk-OHNP3QL2.js +0 -186
  1090. package/dist/commands/chunk-OIPV3PWW.js +0 -870
  1091. package/dist/commands/chunk-OIX2363L.js +0 -16
  1092. package/dist/commands/chunk-OJ65BZBV.js +0 -646
  1093. package/dist/commands/chunk-OKZWEVR4.js +0 -352
  1094. package/dist/commands/chunk-OL6IF4JC.js +0 -20
  1095. package/dist/commands/chunk-OMPRILFH.js +0 -29
  1096. package/dist/commands/chunk-OOWGH2RG.js +0 -85
  1097. package/dist/commands/chunk-OP2RFVLS.js +0 -102
  1098. package/dist/commands/chunk-ORKVN2LO.js +0 -56
  1099. package/dist/commands/chunk-OSBWXZJ4.js +0 -492
  1100. package/dist/commands/chunk-OT3UMEWK.js +0 -47
  1101. package/dist/commands/chunk-OVWPZDWP.js +0 -64
  1102. package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
  1103. package/dist/commands/chunk-OX3VQLV2.js +0 -488
  1104. package/dist/commands/chunk-OZJP77UM.js +0 -103
  1105. package/dist/commands/chunk-OZZWRJQI.js +0 -246
  1106. package/dist/commands/chunk-P3H3DKTE.js +0 -69
  1107. package/dist/commands/chunk-P4D5RESF.js +0 -88
  1108. package/dist/commands/chunk-P4KIQRSL.js +0 -119
  1109. package/dist/commands/chunk-P5SOYWH2.js +0 -37
  1110. package/dist/commands/chunk-P7FPXAHP.js +0 -29
  1111. package/dist/commands/chunk-PE7B7242.js +0 -84
  1112. package/dist/commands/chunk-PFO7EYAP.js +0 -45
  1113. package/dist/commands/chunk-PHLOTUB7.js +0 -366
  1114. package/dist/commands/chunk-PTNQCCIB.js +0 -41
  1115. package/dist/commands/chunk-PTZEFQUX.js +0 -211
  1116. package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
  1117. package/dist/commands/chunk-Q7EEIOAD.js +0 -120
  1118. package/dist/commands/chunk-QABRNGQV.js +0 -88
  1119. package/dist/commands/chunk-QAHFPCFR.js +0 -50
  1120. package/dist/commands/chunk-QDFVVRQP.js +0 -92
  1121. package/dist/commands/chunk-QGAERR7D.js +0 -99
  1122. package/dist/commands/chunk-QHWJJ6X5.js +0 -53
  1123. package/dist/commands/chunk-QJRVDE7T.js +0 -307
  1124. package/dist/commands/chunk-QMDKDQKW.js +0 -114
  1125. package/dist/commands/chunk-QOSC5RKD.js +0 -18
  1126. package/dist/commands/chunk-QQ4CIYMF.js +0 -132
  1127. package/dist/commands/chunk-QV5FKMOU.js +0 -80
  1128. package/dist/commands/chunk-QWWTC3XR.js +0 -109
  1129. package/dist/commands/chunk-QXQ56E56.js +0 -27
  1130. package/dist/commands/chunk-R54Z2Z3X.js +0 -114
  1131. package/dist/commands/chunk-R6QE5VJG.js +0 -46
  1132. package/dist/commands/chunk-RG53UFNW.js +0 -418
  1133. package/dist/commands/chunk-RGGEQM6G.js +0 -140
  1134. package/dist/commands/chunk-RH6ZWJOA.js +0 -77
  1135. package/dist/commands/chunk-RHKCWJQX.js +0 -62
  1136. package/dist/commands/chunk-RKIAX4DZ.js +0 -191
  1137. package/dist/commands/chunk-RLBFEHHC.js +0 -300
  1138. package/dist/commands/chunk-RN2YDNLF.js +0 -229
  1139. package/dist/commands/chunk-RRAIRS2T.js +0 -54
  1140. package/dist/commands/chunk-RS764ZMU.js +0 -46
  1141. package/dist/commands/chunk-RUIBQMOV.js +0 -38
  1142. package/dist/commands/chunk-RUQY5TS3.js +0 -83
  1143. package/dist/commands/chunk-RVUJ6F5L.js +0 -181
  1144. package/dist/commands/chunk-RW64VHEB.js +0 -130
  1145. package/dist/commands/chunk-RXYMJPJB.js +0 -114
  1146. package/dist/commands/chunk-S4M6UWR2.js +0 -103
  1147. package/dist/commands/chunk-SASX3W2M.js +0 -99
  1148. package/dist/commands/chunk-SFNBUB6D.js +0 -110
  1149. package/dist/commands/chunk-SJ2ZN575.js +0 -90
  1150. package/dist/commands/chunk-SP7DKYGU.js +0 -1263
  1151. package/dist/commands/chunk-SSL6A3Y4.js +0 -165
  1152. package/dist/commands/chunk-SVAKCXZ7.js +0 -44
  1153. package/dist/commands/chunk-SYOXIKB7.js +0 -705
  1154. package/dist/commands/chunk-SZG5HDNP.js +0 -321
  1155. package/dist/commands/chunk-T25S4QHL.js +0 -52
  1156. package/dist/commands/chunk-T4F33UKZ.js +0 -114
  1157. package/dist/commands/chunk-T4UYEHWG.js +0 -50
  1158. package/dist/commands/chunk-TAEGXID2.js +0 -58
  1159. package/dist/commands/chunk-TCBUX52E.js +0 -701
  1160. package/dist/commands/chunk-TEPYEUYG.js +0 -585
  1161. package/dist/commands/chunk-TFLHYC2F.js +0 -141
  1162. package/dist/commands/chunk-TJKM56WJ.js +0 -109
  1163. package/dist/commands/chunk-TLAB552K.js +0 -445
  1164. package/dist/commands/chunk-TP6L4W3W.js +0 -82
  1165. package/dist/commands/chunk-TR7WWYD5.js +0 -60
  1166. package/dist/commands/chunk-TVZXG4Y4.js +0 -197
  1167. package/dist/commands/chunk-TYNH2R66.js +0 -1150
  1168. package/dist/commands/chunk-U3IVVR4W.js +0 -33
  1169. package/dist/commands/chunk-U5P6G3UV.js +0 -77
  1170. package/dist/commands/chunk-U7XU5RG3.js +0 -86
  1171. package/dist/commands/chunk-UKBBWMLE.js +0 -1189
  1172. package/dist/commands/chunk-ULVVGGTY.js +0 -64
  1173. package/dist/commands/chunk-UNMSZGSG.js +0 -269
  1174. package/dist/commands/chunk-URDT2O2K.js +0 -36
  1175. package/dist/commands/chunk-UTHUX7VU.js +0 -88
  1176. package/dist/commands/chunk-V4Z7G4UH.js +0 -73
  1177. package/dist/commands/chunk-V5FD7DVV.js +0 -48
  1178. package/dist/commands/chunk-VCPGFBMN.js +0 -655
  1179. package/dist/commands/chunk-VGPIQNDB.js +0 -24
  1180. package/dist/commands/chunk-VJE3RJAX.js +0 -23
  1181. package/dist/commands/chunk-VK6D5CWA.js +0 -161
  1182. package/dist/commands/chunk-VOF3N4WO.js +0 -114
  1183. package/dist/commands/chunk-VQVPAVQ3.js +0 -45
  1184. package/dist/commands/chunk-VV4TQYGD.js +0 -38
  1185. package/dist/commands/chunk-W3FX7FYN.js +0 -84
  1186. package/dist/commands/chunk-W7DRUOF7.js +0 -122
  1187. package/dist/commands/chunk-WAEN2RTT.js +0 -161
  1188. package/dist/commands/chunk-WCEUMOKK.js +0 -84
  1189. package/dist/commands/chunk-WJ4NEDNI.js +0 -288
  1190. package/dist/commands/chunk-WMMGXJXP.js +0 -92
  1191. package/dist/commands/chunk-WOFLW2LX.js +0 -26
  1192. package/dist/commands/chunk-WTH6NTXU.js +0 -128
  1193. package/dist/commands/chunk-WWVYEHQT.js +0 -272
  1194. package/dist/commands/chunk-X3TNPALI.js +0 -213
  1195. package/dist/commands/chunk-XC6GG5JR.js +0 -78
  1196. package/dist/commands/chunk-XDF25GSU.js +0 -536
  1197. package/dist/commands/chunk-XFPEUYDV.js +0 -67
  1198. package/dist/commands/chunk-XFWI6WHH.js +0 -60
  1199. package/dist/commands/chunk-XGMRAKSL.js +0 -85
  1200. package/dist/commands/chunk-XHGWMD3L.js +0 -104
  1201. package/dist/commands/chunk-XKSUBUIH.js +0 -116
  1202. package/dist/commands/chunk-XPBF5DG3.js +0 -419
  1203. package/dist/commands/chunk-XUMYPESL.js +0 -160
  1204. package/dist/commands/chunk-XXC32PVL.js +0 -541
  1205. package/dist/commands/chunk-XXN2EZBY.js +0 -133
  1206. package/dist/commands/chunk-XXNEY4B3.js +0 -110
  1207. package/dist/commands/chunk-Y27PTXXI.js +0 -258
  1208. package/dist/commands/chunk-Y4EBUI6M.js +0 -237
  1209. package/dist/commands/chunk-YAU3LYNF.js +0 -60
  1210. package/dist/commands/chunk-YDURQICF.js +0 -204
  1211. package/dist/commands/chunk-YGFOGA7C.js +0 -1153
  1212. package/dist/commands/chunk-YHJ2AJMA.js +0 -66
  1213. package/dist/commands/chunk-YIA6FC3K.js +0 -78
  1214. package/dist/commands/chunk-YM77CF4D.js +0 -183
  1215. package/dist/commands/chunk-YNPRJCEO.js +0 -81
  1216. package/dist/commands/chunk-YTBQAD5W.js +0 -170
  1217. package/dist/commands/chunk-YVH2OLDS.js +0 -104
  1218. package/dist/commands/chunk-Z3WGHIVB.js +0 -122
  1219. package/dist/commands/chunk-ZAAHZY2A.js +0 -19
  1220. package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
  1221. package/dist/commands/chunk-ZLRUHSOP.js +0 -48
  1222. package/dist/commands/chunk-ZNR75OXP.js +0 -444
  1223. package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
  1224. package/dist/commands/chunk-ZVAIIHBE.js +0 -63
  1225. package/dist/commands/chunk-ZYFHYQA7.js +0 -51
  1226. package/dist/commands/chunk-ZZFFSQF4.js +0 -218
  1227. package/dist/commands/chunk-ZZULXNC2.js +0 -47
  1228. package/dist/commands/chunk-ZZXO6TFH.js +0 -232
  1229. package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
  1230. package/dist/commands/test-related-ZCNC46MS.js +0 -113
  1231. package/dist/commands/unused-members-STULPRBU.js +0 -331
  1232. package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
  1233. package/dist/hooks/chunk-5R5YFQR5.js +0 -931
  1234. package/dist/hooks/chunk-6RLY27FT.js +0 -232
  1235. package/dist/hooks/chunk-6YGMIODI.js +0 -86
  1236. package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
  1237. package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
  1238. package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
  1239. package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
  1240. package/dist/hooks/chunk-IURJANNZ.js +0 -1082
  1241. package/dist/hooks/chunk-OV22V63P.js +0 -10980
  1242. package/dist/hooks/chunk-SXABK6UV.js +0 -321
  1243. package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
@@ -1,1241 +0,0 @@
1
- import {
2
- run_watcher_guard
3
- } from "./chunk-5Y7B7FDL.js";
4
- import {
5
- run_event_plan
6
- } from "./chunk-OMPRILFH.js";
7
- import {
8
- josh_read_only
9
- } from "./chunk-URDT2O2K.js";
10
- import {
11
- run_progress_read
12
- } from "./chunk-4WR2LEZL.js";
13
- import {
14
- gh_usage_log
15
- } from "./chunk-DMD74E3F.js";
16
- import {
17
- issue_watch_gate
18
- } from "./chunk-OVWPZDWP.js";
19
- import {
20
- issue_watch
21
- } from "./chunk-J7IO3AYH.js";
22
- import {
23
- hook_demoted
24
- } from "./chunk-YAU3LYNF.js";
25
- import {
26
- rule_rewrite
27
- } from "./chunk-JJHWTFWQ.js";
28
- import {
29
- hook_ledger
30
- } from "./chunk-XHGWMD3L.js";
31
- import {
32
- lane_plan
33
- } from "./chunk-B7ZNIEDV.js";
34
- import {
35
- batch_outcome,
36
- delivered_rules,
37
- investigation_outcome,
38
- nested_commands
39
- } from "./chunk-CP2J4RV2.js";
40
- import {
41
- implementation_cut_verdict
42
- } from "./chunk-7OQ56DVW.js";
43
- import {
44
- lane_background
45
- } from "./chunk-LOOFYHUM.js";
46
- import {
47
- cost_cli,
48
- cost_verdict
49
- } from "./chunk-FVVZIJUC.js";
50
- import {
51
- bash_revert,
52
- step_zero_notice
53
- } from "./chunk-EXWB34R2.js";
54
- import {
55
- run_headless
56
- } from "./chunk-7C7FOKJK.js";
57
- import {
58
- shell_segments
59
- } from "./chunk-CVJHQOI3.js";
60
- import {
61
- duplicate_read_outcome,
62
- duplicate_reads,
63
- investigation_reads,
64
- lane_guard_policy
65
- } from "./chunk-DYZOOWVW.js";
66
- import {
67
- time_spans
68
- } from "./chunk-7HAGC6SW.js";
69
- import {
70
- cost_blocks,
71
- time_josh_names,
72
- time_shell
73
- } from "./chunk-LHKXJD6L.js";
74
- import {
75
- canonical_command
76
- } from "./chunk-ROJXMBXP.js";
77
- import {
78
- hook_decision,
79
- hook_tool_payload
80
- } from "./chunk-RLBFEHHC.js";
81
- import {
82
- hook_context
83
- } from "./chunk-LQXFVZTS.js";
84
- import {
85
- transcript_tail
86
- } from "./chunk-EMTZAGT5.js";
87
- import {
88
- agent_session_role
89
- } from "./chunk-U3IVVR4W.js";
90
- import {
91
- run_event_scope,
92
- run_event_stream_emit
93
- } from "./chunk-OKZWEVR4.js";
94
- import {
95
- run_event_stream
96
- } from "./chunk-NSAVEXVR.js";
97
- import {
98
- repository_lock
99
- } from "./chunk-P4KIQRSL.js";
100
- import {
101
- lane_child_marker
102
- } from "./chunk-QAHFPCFR.js";
103
- import {
104
- issue_cite
105
- } from "./chunk-HQ2HSZBN.js";
106
- import {
107
- git_common_directory
108
- } from "./chunk-FFHEGWPK.js";
109
- import {
110
- gh_call_kind
111
- } from "./chunk-XDF25GSU.js";
112
- import {
113
- gh_api
114
- } from "./chunk-QVOFWFWC.js";
115
- import {
116
- git_argv
117
- } from "./chunk-G6BXCWPH.js";
118
- import {
119
- error_text
120
- } from "./chunk-CDY4NFQG.js";
121
- import {
122
- json_value
123
- } from "./chunk-HIU2WXB6.js";
124
-
125
- // scripts/delegation/large-read-guard.ts
126
- import { statSync } from "node:fs";
127
- var SWITCH_ENV_KEY = "JOSH_LARGE_READ_GUARD";
128
- var LANE_GUARD_ID = "duplicate-read";
129
- var STAMP_PREFIX = "josh-large-read-guard-";
130
- var NOTICE_STAMP_PREFIX = "josh-large-read-notice-";
131
- var READ_TOOL = "Read";
132
- var BYTES_PER_KB = 1024;
133
- var LARGE_READ_KB = 32;
134
- var LARGE_READ_BYTES = LARGE_READ_KB * BYTES_PER_KB;
135
- var LIMIT_TEXT = `${String(LARGE_READ_KB)} KB`;
136
- var REASON = `\u26D4 large read: this file is over ${LIMIT_TEXT}, and a whole-file read stays in context and is re-billed on every later call. Grep for the part you need and Read it with offset/limit. Repeat the same call to read the whole file anyway; set \`JOSH_LARGE_READ_GUARD=off\` to disable this guard.`;
137
- var NOTICE = `\u26A0 large read: this file is over ${LIMIT_TEXT} \u2014 next time Grep for the part you need and Read it with offset/limit. Set \`JOSH_LARGE_READ_GUARD=off\` to silence this.`;
138
- function is_whole_read(call) {
139
- if (call.name !== READ_TOOL || !json_value.is_record(call.input)) return false;
140
- return call.input["offset"] === void 0 && call.input["limit"] === void 0;
141
- }
142
- function file_bytes(target) {
143
- try {
144
- return statSync(target).size;
145
- } catch {
146
- return 0;
147
- }
148
- }
149
- function whole_read_target(call, root) {
150
- if (!is_whole_read(call)) return void 0;
151
- const { file_path } = call.input;
152
- if (typeof file_path !== "string" || file_path === "") return void 0;
153
- return investigation_reads.resolved(file_path, root);
154
- }
155
- function is_large_read(call, root) {
156
- const target = whole_read_target(call, root);
157
- return target !== void 0 && file_bytes(target) > LARGE_READ_BYTES;
158
- }
159
- function large_read_mode(context) {
160
- return lane_guard_policy.mode_here(LANE_GUARD_ID, context.cwd, context.env);
161
- }
162
- function is_candidate(call, context) {
163
- return is_large_read(call, context.cwd) && large_read_mode(context) !== "off";
164
- }
165
- function last_read_ms(spans) {
166
- const times = spans.filter((span) => duplicate_reads.is_successful_read(span)).map((span) => span.ended_ms);
167
- return times.length === 0 ? hook_decision.NEVER_MS : Math.max(...times);
168
- }
169
- function is_rearmed(tail, fired_at_ms) {
170
- const { spans, started_ms } = time_spans.parse_timeline(tail);
171
- if (fired_at_ms === hook_decision.NEVER_MS || fired_at_ms < started_ms) return true;
172
- return last_read_ms(spans) > fired_at_ms;
173
- }
174
- function is_read_of(span, target, root) {
175
- const is_read = span.label === READ_TOOL;
176
- return is_read && span.targets.some((one) => investigation_reads.resolved(one, root) === target);
177
- }
178
- function is_repeat_of_refusal(tail, target, root) {
179
- const reads = time_spans.parse_timeline(tail).spans.filter((span) => is_read_of(span, target, root));
180
- const latest = reads.at(-1);
181
- return latest?.outcome === time_spans.FAILED_OUTCOME;
182
- }
183
- function refuses(tail, call, _fired_at_ms, run) {
184
- const { cwd } = run.context;
185
- const target = whole_read_target(call, cwd);
186
- if (target === void 0 || large_read_mode(run.context) !== "refuse") return false;
187
- return !is_repeat_of_refusal(tail, target, cwd);
188
- }
189
- function notifies(tail, _call, fired_at_ms, run) {
190
- return large_read_mode(run.context) === "notice" && is_rearmed(tail, fired_at_ms);
191
- }
192
- var GUARD = hook_decision.create_transcript_guard({
193
- prefix: STAMP_PREFIX,
194
- switch_key: SWITCH_ENV_KEY,
195
- is_candidate,
196
- should_block: refuses,
197
- reason: REASON,
198
- notify: { prefix: NOTICE_STAMP_PREFIX, should_notify: notifies, text: () => NOTICE }
199
- });
200
- var large_read_outcome = GUARD.outcome;
201
- var large_read_refusal = GUARD.refusal;
202
- var { refusal_path } = GUARD;
203
- var notice_refusal_path = hook_decision.create_refusal_stamp(NOTICE_STAMP_PREFIX).path;
204
-
205
- // scripts/issue/issue-watch-hook.ts
206
- var POLL_INTERVAL_MS = 18e4;
207
- var POLL_TIMEOUT_MS = 5e3;
208
- function is_new_to_run(record2) {
209
- const news = record2 === void 0 ? void 0 : issue_watch.news_of(record2);
210
- return news !== void 0 && news !== record2?.shown;
211
- }
212
- function message_of(record2) {
213
- return record2.pending === void 0 ? record2.notice ?? "" : issue_watch_gate.unread_message(record2);
214
- }
215
- async function new_update_reason(now, root) {
216
- const options = { interval_ms: POLL_INTERVAL_MS, timeout_ms: POLL_TIMEOUT_MS, now };
217
- const record2 = await issue_watch.poll(options, root);
218
- if (!is_new_to_run(record2)) return void 0;
219
- issue_watch.mark_shown(record2, root);
220
- return message_of(record2);
221
- }
222
- async function watch_reason(context = hook_context.from_process(), now = /* @__PURE__ */ new Date()) {
223
- try {
224
- return await new_update_reason(now, context.cwd);
225
- } catch (error) {
226
- error_text.trace_swallowed("issue_watch_hook.watch_reason", error);
227
- return void 0;
228
- }
229
- }
230
- var issue_watch_hook = { POLL_INTERVAL_MS, watch_reason };
231
-
232
- // scripts/lane/lane-phase.ts
233
- var LOCK_WAIT_MS = 5e3;
234
- function implement_text(issue) {
235
- return `${issue_cite.plain_for("program", issue)} implement`;
236
- }
237
- async function has_implement(issue) {
238
- const events = await run_event_stream_emit.invocation_or_all_events();
239
- return run_event_scope.since_own_launch(events, issue).some(
240
- (event) => event.kind === run_event_stream.EVENT_KIND.LANE_PHASE && event.text === implement_text(issue)
241
- );
242
- }
243
- async function mark_once(issue) {
244
- if (await has_implement(issue)) return;
245
- await run_event_plan.emit_plan(issue);
246
- await run_event_stream_emit.emit(run_event_stream.EVENT_KIND.LANE_PHASE, implement_text(issue));
247
- }
248
- async function mark_implement(directory = process.cwd(), source = process.env) {
249
- const issue = lane_child_marker.marked_issue(source);
250
- if (issue === void 0 || !lane_child_marker.is_child_of(directory, source)) return;
251
- await repository_lock.with_lock(
252
- async () => {
253
- await mark_once(issue);
254
- },
255
- repository_lock.lock_path(`josh-lane-phase-${issue}-`, directory),
256
- LOCK_WAIT_MS
257
- );
258
- }
259
- var lane_phase = { mark_implement };
260
-
261
- // scripts/run/run-watcher-hook.ts
262
- import { z } from "zod";
263
- var SWITCH_ENV_KEY2 = "JOSH_WATCHER_GUARD";
264
- var STAMP_PREFIX2 = "josh-watcher-guard-";
265
- var payload_schema = z.object({ transcript_path: z.string().min(1) });
266
- function transcript_of(raw_payload) {
267
- return json_value.parse_with(raw_payload, payload_schema)?.transcript_path;
268
- }
269
- function fires_once(transcript, now_ms) {
270
- const stamp = hook_decision.create_refusal_stamp(STAMP_PREFIX2);
271
- const target = stamp.path(transcript);
272
- if (stamp.last_ms(target) !== hook_decision.NEVER_MS) return false;
273
- return stamp.record(target, now_ms);
274
- }
275
- function is_active(context) {
276
- return hook_decision.is_switch_enabled(SWITCH_ENV_KEY2) && lane_child_marker.marked_issue(context.env) === void 0;
277
- }
278
- async function stale_reason(transcript, now_ms, ancestry) {
279
- const result = await run_watcher_guard.check(await run_progress_read.live_target(), ancestry);
280
- if (result.kind === "ok") return void 0;
281
- return fires_once(transcript, now_ms) ? result.note : void 0;
282
- }
283
- async function watcher_hook_reason(raw_payload, context = hook_context.from_process(), now_ms = Date.now()) {
284
- if (!is_active(context)) return void 0;
285
- const transcript = transcript_of(raw_payload);
286
- if (transcript === void 0) return void 0;
287
- return await stale_reason(transcript, now_ms, context.ancestry);
288
- }
289
- var run_watcher_hook = { transcript_of, watcher_hook_reason };
290
-
291
- // scripts/run/run-parent-cut-hook.ts
292
- var SWITCH_ENV_KEY3 = "JOSH_PARENT_CUT_GUARD";
293
- var STAMP_PREFIX3 = "josh-parent-cut-guard-";
294
- var QUIET_WINDOW_MS = 6e5;
295
- function current_state(context = hook_context.from_process()) {
296
- return {
297
- carry: async () => await run_headless.driving_carry(context.env, context.ancestry),
298
- verdict: () => implementation_cut_verdict.reused_verdict(
299
- () => cost_cli.session_verdict(context.cwd, context.env),
300
- context.cwd
301
- )
302
- };
303
- }
304
- var THRESHOLD_TEXT = "`pnpm josh cost --cut`";
305
- var PARENT_CUT_REASON = `\u26D4 backlogrun parent hand-off: this session drives a \`backlogrun\` and its recent context crossed the ${THRESHOLD_TEXT} threshold between merges. Take the hand-off now: open no new lane, follow \`backlogrun-progress.md\` \u2192 "The hand-off" (\`pnpm josh run:handoff-lanes\`, then the \`next:\` line its \`cut\` / \`blocked\` / \`capped\` verdict prints). Reissue this call once done or if it cannot be taken.`;
306
- async function is_due(state) {
307
- const carry = await state.carry();
308
- if (carry === void 0 || run_headless.is_cut_capped(carry)) return false;
309
- return state.verdict() === cost_verdict.OVER_VERDICT;
310
- }
311
- function is_quiet(target, now_ms) {
312
- const last_ms = hook_decision.create_refusal_stamp(STAMP_PREFIX3).last_ms(target);
313
- return last_ms !== hook_decision.NEVER_MS && now_ms - last_ms < QUIET_WINDOW_MS;
314
- }
315
- async function refusal_for(transcript, now_ms, state) {
316
- const stamp = hook_decision.create_refusal_stamp(STAMP_PREFIX3);
317
- const target = stamp.path(transcript);
318
- if (is_quiet(target, now_ms) || !await is_due(state)) return void 0;
319
- return stamp.record(target, now_ms) ? PARENT_CUT_REASON : void 0;
320
- }
321
- function is_unit_call(raw_payload) {
322
- try {
323
- return (hook_decision.parse_hook_payload(raw_payload)?.agent_id ?? "") !== "";
324
- } catch (error) {
325
- error_text.trace_swallowed("run_parent_cut_hook.is_unit_call", error);
326
- return false;
327
- }
328
- }
329
- function is_exempt(raw_payload) {
330
- return !hook_decision.is_switch_enabled(SWITCH_ENV_KEY3) || is_unit_call(raw_payload);
331
- }
332
- async function parent_cut_reason(raw_payload, now_ms = Date.now(), state = current_state()) {
333
- if (is_exempt(raw_payload)) return void 0;
334
- const transcript = run_watcher_hook.transcript_of(raw_payload);
335
- if (transcript === void 0) return void 0;
336
- return await refusal_for(transcript, now_ms, state);
337
- }
338
- var run_parent_cut_hook = {
339
- PARENT_CUT_REASON,
340
- QUIET_WINDOW_MS,
341
- SWITCH_ENV_KEY: SWITCH_ENV_KEY3,
342
- current_state,
343
- parent_cut_reason
344
- };
345
-
346
- // scripts/run/run-poll-hook.ts
347
- var SWITCH_ENV_KEY4 = "JOSH_POLL_GUARD";
348
- var BASH_TOOL = "Bash";
349
- var STATE_READS = /* @__PURE__ */ new Set([
350
- "josh lane:list",
351
- "josh lane:output",
352
- "josh run:board",
353
- "josh run:carry",
354
- "josh run:liveness",
355
- "josh run:progress",
356
- "josh run:wake"
357
- ]);
358
- var POLL_REASON = "\u26D4 poll: this `backlogrun` session repeats a state read with nothing decided in between, on every occurrence. Wait on `pnpm josh backlog:drive`, or `pnpm josh lane:await <N...>` in the background, and end the turn; its exit is the wake.";
359
- var WRITING_FLAGS = /* @__PURE__ */ new Set([
360
- "--begin",
361
- "--cut",
362
- "--done",
363
- "--end",
364
- "--every",
365
- "--filed",
366
- "--loop",
367
- "--mark",
368
- "--merged",
369
- "--resume",
370
- "--retrospective",
371
- "--start",
372
- "--stop",
373
- "--wait"
374
- ]);
375
- var FLAG_PREFIX = "-";
376
- var NAME_WORDS = 2;
377
- var SIGNATURE_SEPARATOR = " ";
378
- function read_key(signature) {
379
- const words = signature.split(SIGNATURE_SEPARATOR);
380
- const name = words.slice(0, NAME_WORDS).join(SIGNATURE_SEPARATOR);
381
- if (!STATE_READS.has(name) || words.some((word) => WRITING_FLAGS.has(word))) return void 0;
382
- return words.filter((word) => !word.startsWith(FLAG_PREFIX)).join(SIGNATURE_SEPARATOR);
383
- }
384
- function read_keys(signatures) {
385
- return signatures.map((signature) => read_key(signature)).filter((key) => key !== void 0);
386
- }
387
- function state_reads_of(command) {
388
- return read_keys(time_josh_names.josh_signatures_of(command));
389
- }
390
- function command_of(input) {
391
- if (typeof input !== "object" || input === null || !("command" in input)) return "";
392
- return typeof input.command === "string" ? input.command : "";
393
- }
394
- function candidate_reads(raw_payload) {
395
- const payload = hook_decision.parse_hook_payload(raw_payload);
396
- if (payload?.tool_name !== BASH_TOOL || (payload.agent_id ?? "") !== "") return [];
397
- return state_reads_of(command_of(payload.tool_input));
398
- }
399
- function last_step(tail) {
400
- return time_spans.parse_timeline(tail).spans.findLast((span) => span.category !== time_spans.MODEL_CATEGORY);
401
- }
402
- function repeats_last_call(tail, reads) {
403
- const last = last_step(tail);
404
- if (last?.category !== time_spans.TOOL_CATEGORY) return false;
405
- const last_reads = read_keys(last.josh_signatures);
406
- return reads.some((key) => last_reads.includes(key));
407
- }
408
- function is_repeat(raw_payload) {
409
- const reads = hook_decision.is_switch_enabled(SWITCH_ENV_KEY4) ? candidate_reads(raw_payload) : [];
410
- const transcript = reads.length === 0 ? void 0 : run_watcher_hook.transcript_of(raw_payload);
411
- if (transcript === void 0) return false;
412
- return repeats_last_call(transcript_tail.read_tail(transcript), reads);
413
- }
414
- async function poll_reason(raw_payload, is_parent = run_headless.is_backlog_parent) {
415
- if (!is_repeat(raw_payload)) return void 0;
416
- return await is_parent() ? POLL_REASON : void 0;
417
- }
418
- async function safe_poll_reason(raw_payload, context = hook_context.from_process()) {
419
- try {
420
- return await poll_reason(
421
- raw_payload,
422
- async () => await run_headless.is_backlog_parent(context.env, context.ancestry)
423
- );
424
- } catch (error) {
425
- error_text.trace_swallowed("run_poll_hook.poll_reason", error);
426
- return void 0;
427
- }
428
- }
429
- var run_poll_hook = {
430
- POLL_REASON,
431
- SWITCH_ENV_KEY: SWITCH_ENV_KEY4,
432
- poll_reason,
433
- safe_poll_reason
434
- };
435
-
436
- // scripts/hooks/direct-gh-usage.ts
437
- var PREFIX = "direct:";
438
- var API = "api";
439
- var FREE_ENDPOINT = "rate_limit";
440
- var LEADING_SLASH = /^\//u;
441
- var SUBCOMMAND_WORDS = 2;
442
- function gh_words(segment) {
443
- return git_argv.arguments_of(segment, "gh")?.filter((word) => !word.startsWith("-")) ?? [];
444
- }
445
- function is_free(api_words) {
446
- return api_words.some((word) => word.replace(LEADING_SLASH, "") === FREE_ENDPOINT);
447
- }
448
- function subcommand_of(segment) {
449
- const words = gh_words(segment);
450
- const [head, ...rest] = words;
451
- if (head === API) return is_free(rest) ? void 0 : API;
452
- return head === void 0 ? void 0 : words.slice(0, SUBCOMMAND_WORDS).join(" ");
453
- }
454
- function direct_call_of(segment) {
455
- const subcommand = subcommand_of(segment);
456
- if (subcommand === void 0) return void 0;
457
- const kind = gh_call_kind.of(git_argv.arguments_of(segment, "gh") ?? []);
458
- return { command: `${PREFIX}${subcommand}`, kind };
459
- }
460
- function direct_calls(command) {
461
- return nested_commands.commands_of(command).map((segment) => direct_call_of(segment)).filter((call) => call !== void 0);
462
- }
463
- function calls_of(raw_payload) {
464
- const payload = hook_tool_payload.parse(raw_payload);
465
- if (payload?.tool_name !== "Bash") return [];
466
- return direct_calls(time_shell.bash_command(payload.tool_input));
467
- }
468
- function log_target(context) {
469
- if (context.env["VITEST"] !== void 0) return void 0;
470
- const repository = git_common_directory.repository(context.cwd);
471
- return repository === void 0 ? void 0 : gh_usage_log.target_of(repository);
472
- }
473
- function append_all(target, calls, environment) {
474
- const marked = lane_child_marker.marked_issue(environment);
475
- const issue = marked === void 0 ? void 0 : Number(marked);
476
- for (const { command, kind } of calls) {
477
- const at = (/* @__PURE__ */ new Date()).toISOString();
478
- const endpoints = { [kind]: { calls: 1, not_modified: 0 } };
479
- gh_usage_log.append(target, {
480
- at,
481
- command,
482
- issue,
483
- calls: 1,
484
- not_modified: 0,
485
- elapsed_ms: 0,
486
- endpoints
487
- });
488
- }
489
- }
490
- async function record(raw_payload, context = hook_context.from_process()) {
491
- try {
492
- const calls = calls_of(raw_payload);
493
- const target = calls.length === 0 ? void 0 : log_target(context);
494
- if (target !== void 0) append_all(target, calls, context.env);
495
- } catch (error) {
496
- error_text.trace_swallowed("direct_gh_usage.record", error);
497
- }
498
- }
499
- var direct_gh_usage = { record };
500
-
501
- // scripts/hooks/implementation-shell.ts
502
- import path from "node:path";
503
-
504
- // scripts/hooks/implementation-shell-deny-expansion.ts
505
- var DYNAMIC = /[$`]/u;
506
- function is_dynamic(word) {
507
- return DYNAMIC.test(word);
508
- }
509
- function refusal(program, word) {
510
- return `\`${program} ${word}\`, an expansion that may spell a write`;
511
- }
512
- var implementation_shell_deny_expansion = { is_dynamic, refusal };
513
-
514
- // scripts/hooks/implementation-shell-deny-git.ts
515
- var GIT_WRITES = /* @__PURE__ */ new Set([
516
- "add",
517
- "am",
518
- "apply",
519
- "bisect",
520
- "checkout",
521
- "checkout-index",
522
- "cherry-pick",
523
- "clean",
524
- "commit",
525
- "credential",
526
- "fetch",
527
- "filter-branch",
528
- "gc",
529
- "init",
530
- "maintenance",
531
- "merge",
532
- "mv",
533
- "pack-refs",
534
- "prune",
535
- "prune-packed",
536
- "pull",
537
- "push",
538
- "read-tree",
539
- "rebase",
540
- "repack",
541
- "replace",
542
- "reset",
543
- "restore",
544
- "revert",
545
- "rm",
546
- "send-email",
547
- "sparse-checkout",
548
- "stage",
549
- "submodule",
550
- "switch",
551
- "symbolic-ref",
552
- "update-index",
553
- "update-ref"
554
- ]);
555
- var BRANCH_CHANGE = /^--(?:delete|move|copy|force|set-upstream-to|unset-upstream|edit-description)/u;
556
- var BRANCH_CHANGE_LETTERS = "dDmMcCfu";
557
- var CONFIG_READ = /^(?:--get|--list$|-l$)/u;
558
- var LIST_MODE = /^(?:-l$|--list$|-n\d*$|--contains|--no-contains|--points-at|--merged|--no-merged)/u;
559
- var LIST_VALUE_FLAGS = /* @__PURE__ */ new Set(["--sort", "--format"]);
560
- var REFLOG_WRITES = /* @__PURE__ */ new Set(["expire", "delete"]);
561
- var GIT_WRITE_FLAGS = /^-c$|^--(?:config-env|exec-path|output|ext-diff|textconv)/u;
562
- var QUOTES = /['"\\]/gu;
563
- function is_branch_change(argument) {
564
- return BRANCH_CHANGE.test(argument) || git_argv.short_cluster_has(argument, BRANCH_CHANGE_LETTERS);
565
- }
566
- function names_a_reference(args) {
567
- return args.some(
568
- (argument, index) => !argument.startsWith("-") && !LIST_VALUE_FLAGS.has(args[index - 1] ?? "")
569
- );
570
- }
571
- function is_listing(args) {
572
- return !names_a_reference(args) || args.some((argument) => LIST_MODE.test(argument));
573
- }
574
- var GIT_READ_FORMS = /* @__PURE__ */ new Map([
575
- ["branch", (args) => is_listing(args) && args.every((argument) => !is_branch_change(argument))],
576
- ["stash", (args) => ["list", "show"].includes(args[0] ?? "")],
577
- ["worktree", (args) => args[0] === "list"],
578
- ["notes", (args) => ["list", "show"].includes(args[0] ?? "")],
579
- ["remote", (args) => ["", "-v", "show", "get-url"].includes(args[0] ?? "")],
580
- ["config", (args) => args.some((argument) => CONFIG_READ.test(argument))],
581
- ["tag", is_listing],
582
- ["reflog", (args) => !REFLOG_WRITES.has(args[0] ?? "")]
583
- ]);
584
- function is_git_write(subcommand, args) {
585
- if (GIT_WRITES.has(subcommand)) return true;
586
- const read_form = GIT_READ_FORMS.get(subcommand);
587
- if (read_form === void 0) return false;
588
- return args.some((argument) => implementation_shell_deny_expansion.is_dynamic(argument)) || !read_form(args);
589
- }
590
- function parsed_git(segment) {
591
- return git_argv.parse(segment) ?? git_argv.parse(segment.replaceAll(QUOTES, ""));
592
- }
593
- function subcommand_refusal(segment) {
594
- const call = parsed_git(segment);
595
- if (call?.subcommand === void 0) return void 0;
596
- if (implementation_shell_deny_expansion.is_dynamic(call.subcommand)) return implementation_shell_deny_expansion.refusal("git", call.subcommand);
597
- const subcommand = call.subcommand.replaceAll(QUOTES, "");
598
- const args = call.args.map((argument) => argument.replaceAll(QUOTES, ""));
599
- return is_git_write(subcommand, args) ? `\`git ${subcommand}\`, a git write` : void 0;
600
- }
601
- function refusal2(segment, args) {
602
- if (args.some((argument) => GIT_WRITE_FLAGS.test(argument))) {
603
- return "a git option that rewrites its configuration, runs a program or writes a file";
604
- }
605
- return subcommand_refusal(segment);
606
- }
607
- var implementation_shell_deny_git = { refusal: refusal2 };
608
-
609
- // scripts/hooks/implementation-shell-deny.ts
610
- var GH_READS = /* @__PURE__ */ new Set([
611
- "checks",
612
- "code",
613
- "commits",
614
- "diff",
615
- "issues",
616
- "list",
617
- "prs",
618
- "repos",
619
- "status",
620
- "token",
621
- "view",
622
- "watch"
623
- ]);
624
- var GH_WRITES = /* @__PURE__ */ new Set([
625
- "add",
626
- "archive",
627
- "cancel",
628
- "checkout",
629
- "clone",
630
- "close",
631
- "comment",
632
- "copy",
633
- "create",
634
- "delete",
635
- "develop",
636
- "disable",
637
- "edit",
638
- "enable",
639
- "field-create",
640
- "field-delete",
641
- "fork",
642
- "install",
643
- "item-add",
644
- "item-archive",
645
- "item-create",
646
- "item-delete",
647
- "item-edit",
648
- "link",
649
- "lock",
650
- "login",
651
- "logout",
652
- "mark-template",
653
- "merge",
654
- "pin",
655
- "ready",
656
- "refresh",
657
- "remove",
658
- "rename",
659
- "reopen",
660
- "rerun",
661
- "revert",
662
- "review",
663
- "run",
664
- "set",
665
- "setup-git",
666
- "sync",
667
- "transfer",
668
- "unarchive",
669
- "unlink",
670
- "unlock",
671
- "unpin",
672
- "update-branch",
673
- "upgrade",
674
- "upload"
675
- ]);
676
- var GRAPHQL_MUTATION = /\bmutation\b|=@|^--input/u;
677
- var PACKAGE_MANAGERS = /* @__PURE__ */ new Set(["npm", "yarn"]);
678
- var PACKAGE_WRITES = /* @__PURE__ */ new Set([
679
- "add",
680
- "ci",
681
- "dedupe",
682
- "i",
683
- "install",
684
- "link",
685
- "patch-commit",
686
- "publish",
687
- "rebuild",
688
- "remove",
689
- "un",
690
- "uninstall",
691
- "unlink",
692
- "unpublish",
693
- "up",
694
- "update",
695
- "upgrade",
696
- // Commits and tags the version bump.
697
- "version"
698
- ]);
699
- var JOSH_SHARED_WRITES = /* @__PURE__ */ new Set([
700
- "adopt",
701
- "bump",
702
- "dogfood:commit",
703
- "followup",
704
- "git",
705
- "init",
706
- "latest",
707
- "latest:corepack",
708
- "latest:update",
709
- "overrides",
710
- "pr",
711
- "release",
712
- "release:github",
713
- "ship",
714
- "stash:pop",
715
- "stash:push",
716
- "sync",
717
- "uninstall"
718
- ]);
719
- function is_gh_api_write(args) {
720
- if (args.includes("graphql")) return args.some((argument) => GRAPHQL_MUTATION.test(argument));
721
- return gh_api.is_write(["gh", ...args].join(" "));
722
- }
723
- function is_gh_verb(argument) {
724
- return GH_WRITES.has(argument) || GH_READS.has(argument) || implementation_shell_deny_expansion.is_dynamic(argument);
725
- }
726
- function verb_refusal(group, args) {
727
- const verb = args.slice(1).find((argument) => is_gh_verb(argument));
728
- if (verb === void 0 || GH_READS.has(verb)) return void 0;
729
- return implementation_shell_deny_expansion.is_dynamic(verb) ? implementation_shell_deny_expansion.refusal(`gh ${group}`, verb) : `\`gh ${group} ${verb}\`, a GitHub write`;
730
- }
731
- function gh_refusal(args) {
732
- const group = args[0] ?? "";
733
- if (group === "api") return is_gh_api_write(args) ? "a `gh api` call other than GET" : void 0;
734
- return implementation_shell_deny_expansion.is_dynamic(group) ? implementation_shell_deny_expansion.refusal("gh", group) : verb_refusal(group, args);
735
- }
736
- function is_flag(argument) {
737
- return argument.startsWith("-");
738
- }
739
- function is_action_word(args, index) {
740
- const previous = args[index - 1] ?? "";
741
- return !is_flag(args[index] ?? "-") && (!is_flag(previous) || previous.includes("="));
742
- }
743
- function package_actions(call) {
744
- if (!PACKAGE_MANAGERS.has(call.name)) return [call.name];
745
- const end = call.args.findIndex((_argument, index) => is_action_word(call.args, index));
746
- const read = end === -1 ? call.args : call.args.slice(0, end + 1);
747
- const actions = read.filter((word) => !is_flag(word));
748
- return end === -1 && call.name === "yarn" ? [...actions, "install"] : actions;
749
- }
750
- function action_refusal(manager, action) {
751
- if (implementation_shell_deny_expansion.is_dynamic(action)) return implementation_shell_deny_expansion.refusal(manager, action);
752
- return PACKAGE_WRITES.has(action) ? `\`${action}\`, a dependency change` : void 0;
753
- }
754
- function package_refusal(call) {
755
- return package_actions(call).map((action) => action_refusal(call.name, action)).find((rule) => rule !== void 0);
756
- }
757
- function josh_refusal(args) {
758
- const command = canonical_command(args[0] ?? "");
759
- if (implementation_shell_deny_expansion.is_dynamic(command)) return implementation_shell_deny_expansion.refusal("josh", command);
760
- if (!JOSH_SHARED_WRITES.has(command)) return void 0;
761
- const rule = josh_read_only.refusal(args);
762
- return rule === void 0 ? void 0 : `\`josh ${command}\`, a shared-state write: ${rule}`;
763
- }
764
- function refusal3(segment, call) {
765
- if (implementation_shell_deny_expansion.is_dynamic(call.name)) return `\`${call.name}\`, a program an expansion names`;
766
- if (call.name === "git") return implementation_shell_deny_git.refusal(segment, call.args);
767
- if (call.name === "gh") return gh_refusal(call.args);
768
- if (call.name === "josh") return josh_refusal(call.args);
769
- return package_refusal(call);
770
- }
771
- var implementation_shell_deny = { refusal: refusal3 };
772
-
773
- // scripts/hooks/implementation-shell-nested.ts
774
- var SUBSTITUTION = /\$\(([^()]*)\)|`([^`]*)`|[<>]\(([^()]*)\)/u;
775
- var SHELLS = /* @__PURE__ */ new Set(["sh", "bash", "zsh", "dash"]);
776
- var SHELL_COMMAND_LETTER = "c";
777
- var SHELL_STDIN_LETTER = "s";
778
- var FIND_RUNNERS = /^-(?:exec|execdir|ok|okdir)$/u;
779
- var FIND_ENDS = /* @__PURE__ */ new Set([";", String.raw`\;`, "';'", "+"]);
780
- var JOSH_SCRIPT = /(?:^|\/)josh[\w-]*\.ts$/u;
781
- var INPUT_WORDS = "$xargs";
782
- var AFTER_VALUE = 2;
783
- var QUOTED = /^(?<quote>['"])(?<body>[\s\S]*)\k<quote>$/u;
784
- var LAUNCHERS = /* @__PURE__ */ new Map([
785
- [
786
- "xargs",
787
- {
788
- value_flags: /* @__PURE__ */ new Set(["-I", "-L", "-n", "-P", "-s", "-d", "-E", "-a"]),
789
- operands: 0,
790
- is_appending: true
791
- }
792
- ],
793
- [
794
- "timeout",
795
- {
796
- value_flags: /* @__PURE__ */ new Set(["-s", "--signal", "-k", "--kill-after"]),
797
- operands: 1,
798
- is_appending: false
799
- }
800
- ],
801
- ["nice", { value_flags: /* @__PURE__ */ new Set(["-n", "--adjustment"]), operands: 0, is_appending: false }],
802
- ["nohup", { value_flags: /* @__PURE__ */ new Set(), operands: 0, is_appending: false }],
803
- ["stdbuf", { value_flags: /* @__PURE__ */ new Set(["-i", "-o", "-e"]), operands: 0, is_appending: false }],
804
- ["watch", { value_flags: /* @__PURE__ */ new Set(["-n", "--interval"]), operands: 0, is_appending: false }]
805
- ]);
806
- function unquoted(word) {
807
- return QUOTED.exec(word)?.groups?.["body"] ?? word;
808
- }
809
- function substitution_bodies(command) {
810
- const bodies = [];
811
- let rest = time_shell.literal_blanked(command);
812
- let match = SUBSTITUTION.exec(rest);
813
- while (match !== null) {
814
- bodies.push(match.slice(1).join(""));
815
- rest = `${rest.slice(0, match.index)} ${rest.slice(match.index + match[0].length)}`;
816
- match = SUBSTITUTION.exec(rest);
817
- }
818
- return bodies;
819
- }
820
- function after_flag(launcher, args, index) {
821
- return index + (launcher.value_flags.has(args[index] ?? "") ? AFTER_VALUE : 1);
822
- }
823
- function launched_commands(launcher, args) {
824
- let index = 0;
825
- while (args[index]?.startsWith("-") === true) index = after_flag(launcher, args, index);
826
- const words = args.slice(index + launcher.operands);
827
- if (words.length === 0) return [];
828
- return [[...words, ...launcher.is_appending ? [INPUT_WORDS] : []].join(" ")];
829
- }
830
- function josh_script_commands(args) {
831
- const index = args.findIndex((argument) => JOSH_SCRIPT.test(argument));
832
- return index === -1 ? [] : [["josh", ...args.slice(index + 1)].join(" ")];
833
- }
834
- function find_body(args, start) {
835
- const end = args.findIndex((argument, index) => index >= start && FIND_ENDS.has(argument));
836
- return args.slice(start, end === -1 ? void 0 : end).join(" ");
837
- }
838
- function find_commands(args) {
839
- return args.flatMap(
840
- (argument, index) => FIND_RUNNERS.test(argument) ? find_body(args, index + 1) : []
841
- );
842
- }
843
- function shell_commands(args) {
844
- const index = args.findIndex(
845
- (argument) => git_argv.short_cluster_has(argument, SHELL_COMMAND_LETTER)
846
- );
847
- const body = index === -1 ? void 0 : args[index + 1];
848
- return body === void 0 ? [] : [unquoted(body)];
849
- }
850
- function eval_commands(args) {
851
- return [args.map((argument) => unquoted(argument)).join(" ")];
852
- }
853
- var RUNNERS = new Map([
854
- ["find", find_commands],
855
- ["eval", eval_commands],
856
- ["node", josh_script_commands],
857
- ...[...SHELLS].map((shell) => [shell, shell_commands])
858
- ]);
859
- function call_commands(call) {
860
- const launcher = LAUNCHERS.get(call.name);
861
- if (launcher !== void 0) return launched_commands(launcher, call.args);
862
- return RUNNERS.get(call.name)?.(call.args) ?? [];
863
- }
864
- function reads_stdin(call) {
865
- if (!SHELLS.has(call.name)) return false;
866
- if (call.args.some((argument) => git_argv.short_cluster_has(argument, SHELL_STDIN_LETTER))) {
867
- return true;
868
- }
869
- return call.args.every((argument) => argument.startsWith("-"));
870
- }
871
- var implementation_shell_nested = { call_commands, reads_stdin, substitution_bodies };
872
-
873
- // scripts/hooks/implementation-shell.ts
874
- var FILE_PROGRAMS = /* @__PURE__ */ new Set(["tee", "touch", "rm", "truncate"]);
875
- var COPY_PROGRAMS = /* @__PURE__ */ new Set(["cp", "ln", "install", "rsync", "scp"]);
876
- var MOVE_PROGRAMS = /* @__PURE__ */ new Set([
877
- ...COPY_PROGRAMS,
878
- "mv",
879
- "dd",
880
- "patch",
881
- "tar",
882
- "unzip"
883
- ]);
884
- var TARGET_DIRECTORY = /^-(?:[A-Za-z]*t|-target-directory)/u;
885
- var IN_PLACE_PROGRAMS = /* @__PURE__ */ new Set(["sed", "perl"]);
886
- var IN_PLACE = /^-(?:[A-Za-z]*i|-in-place)/u;
887
- var REDIRECT = /(?<![<>])(?:<>|>[>|&]?)(?![>&])/gu;
888
- var DESCRIPTOR = /^(?:\d+[+-]?|-)$/u;
889
- var QUOTES2 = /^['"]|['"]$/gu;
890
- var DYNAMIC_PATH = /[$`*?{}\\]/u;
891
- var COMPOUND_HEAD = /^\s*(?:[({!]\s*|(?:if|then|else|elif|while|until|do)\s+)+/u;
892
- var COMPOUND_CLOSERS = /* @__PURE__ */ new Set([")", "}", " ", " ", "\n"]);
893
- var KEYWORDS = /* @__PURE__ */ new Set([
894
- "for",
895
- "do",
896
- "done",
897
- "then",
898
- "else",
899
- "fi",
900
- "case",
901
- "select",
902
- "function",
903
- "esac"
904
- ]);
905
- var FUNCTION_START = /^(?:function\s|[\w.:-]+\s*\(\s*\))/u;
906
- var FUNCTION_HEAD = /^(?:function\s+)?[\w.:-]+(?:\s*\()?$/u;
907
- var UNREAD_ARMS = [/^case\s[\s\S]*\)/u, /^[^\s$`]*\)/u];
908
- var ARGUMENT_QUOTES = /['"\\]/gu;
909
- var TIME_PROGRAM = /(?:^|\/)time$/u;
910
- var TIME_WRITE = /^-(?:[A-Za-z]*o|-o)/u;
911
- var CD_WRITE = "a write beside `cd`, whose target is not read off the repository root";
912
- var STDIN_SHELL = "a shell running the commands its standard input spells, which may be any write";
913
- function unsafe_path(target, root) {
914
- const file_path = target.replaceAll(QUOTES2, "");
915
- if (file_path === "/dev/null") return false;
916
- return DYNAMIC_PATH.test(file_path) || step_zero_notice.is_runtime_file(file_path, root, true);
917
- }
918
- function redirected_paths(command) {
919
- const plain = time_shell.blanked(command);
920
- if (plain === void 0) return [];
921
- return [...plain.matchAll(REDIRECT)].map((match) => {
922
- const following = command.slice(match.index + match[0].length);
923
- const target = git_argv.words_of(following)[0] ?? "$unknown";
924
- return match[0].endsWith(">&") && DESCRIPTOR.test(target) ? "/dev/null" : target;
925
- });
926
- }
927
- function write_args_are_unsafe(args, root) {
928
- return args.filter((argument) => argument !== "-a").some((argument) => unsafe_path(argument, root));
929
- }
930
- function plain_argument(word) {
931
- if (/^'[^']*'$/u.test(word) || /^"[^"\\$`]*"$/u.test(word)) return word.slice(1, -1);
932
- if (/['"\\$`]/u.test(word)) return void 0;
933
- return word;
934
- }
935
- function wrapper_writes(segment) {
936
- const words = git_argv.words_of(segment);
937
- const index = words.findIndex((word) => TIME_PROGRAM.test(word));
938
- if (index === -1) return false;
939
- const call = git_argv.program_of(segment);
940
- const program_index = words.length - (call?.args.length ?? 0) - 1;
941
- return words.slice(index + 1, program_index).some((word) => {
942
- const argument = plain_argument(word);
943
- return argument === void 0 || TIME_WRITE.test(argument);
944
- });
945
- }
946
- function is_copy_to_last(call) {
947
- if (!COPY_PROGRAMS.has(call.name)) return false;
948
- return call.args.every((argument) => !TARGET_DIRECTORY.test(argument));
949
- }
950
- function written_args(call) {
951
- const written = is_copy_to_last(call) ? call.args.slice(-1) : call.args;
952
- return written.map((argument) => argument.slice(argument.indexOf("=") + 1));
953
- }
954
- function is_outside(target, root) {
955
- const relative = path.relative(root, path.resolve(root, target.replaceAll(QUOTES2, "")));
956
- return relative.startsWith("..") || path.isAbsolute(relative);
957
- }
958
- function file_write_refusal(call, root) {
959
- return write_args_are_unsafe(call.args, root) ? `\`${call.name}\` to a runtime path` : void 0;
960
- }
961
- function writes_elsewhere(call) {
962
- if (MOVE_PROGRAMS.has(call.name)) return true;
963
- return IN_PLACE_PROGRAMS.has(call.name) && call.args.some((argument) => IN_PLACE.test(argument));
964
- }
965
- function outside_write_refusal(call, root) {
966
- if (!writes_elsewhere(call)) return void 0;
967
- const target = written_args(call).find(
968
- (argument) => is_outside(argument, root) && unsafe_path(argument, root)
969
- );
970
- return target === void 0 ? void 0 : `\`${call.name}\` to a runtime path outside this checkout`;
971
- }
972
- function call_refusal(segment, call, root) {
973
- if (FILE_PROGRAMS.has(call.name)) return file_write_refusal(call, root);
974
- if (implementation_shell_nested.reads_stdin(call)) return STDIN_SHELL;
975
- const args = call.args.map((argument) => argument.replaceAll(ARGUMENT_QUOTES, ""));
976
- const name = call.name.replaceAll(ARGUMENT_QUOTES, "");
977
- const outside = outside_write_refusal(call, root);
978
- return outside ?? implementation_shell_deny.refusal(segment, { name, args });
979
- }
980
- function body_of(segment) {
981
- const body = segment.replace(COMPOUND_HEAD, "");
982
- let end = body.length;
983
- while (end > 0 && COMPOUND_CLOSERS.has(body.charAt(end - 1))) end -= 1;
984
- return body.slice(0, end);
985
- }
986
- function call_of(segment) {
987
- const body = body_of(segment);
988
- if (KEYWORDS.has(git_argv.words_of(body)[0] ?? "")) return void 0;
989
- return git_argv.program_of(body);
990
- }
991
- function command_refusal(segment, root) {
992
- const call = call_of(segment);
993
- return call === void 0 ? void 0 : call_refusal(body_of(segment), call, root);
994
- }
995
- function is_unread_body(body) {
996
- if (FUNCTION_START.test(body)) return !FUNCTION_HEAD.test(body);
997
- return UNREAD_ARMS.some((pattern) => pattern.test(body));
998
- }
999
- function segment_refusal(segment, root) {
1000
- if (wrapper_writes(segment)) return "a time output file";
1001
- if (is_unread_body(body_of(segment))) return "a `case` arm or function body";
1002
- const target = redirected_paths(segment).find((redirected) => unsafe_path(redirected, root));
1003
- return target === void 0 ? command_refusal(segment, root) : `redirect to \`${target}\``;
1004
- }
1005
- function is_cd(segment) {
1006
- return call_of(segment)?.name === "cd";
1007
- }
1008
- function is_write(segment) {
1009
- const call = call_of(segment);
1010
- if (call !== void 0 && (FILE_PROGRAMS.has(call.name) || writes_elsewhere(call))) return true;
1011
- return redirected_paths(segment).some((redirected) => redirected !== "/dev/null");
1012
- }
1013
- function segments_refusal(segments, root) {
1014
- const is_moved = segments.some((segment) => is_cd(segment));
1015
- if (is_moved && segments.some((segment) => is_write(segment))) return CD_WRITE;
1016
- return segments.map((segment) => segment_refusal(segment, root)).find((rule) => rule !== void 0);
1017
- }
1018
- function nested_lines(line, segments) {
1019
- const launched = segments.flatMap((segment) => {
1020
- const call = call_of(segment);
1021
- return call === void 0 ? [] : implementation_shell_nested.call_commands(call);
1022
- });
1023
- return [...implementation_shell_nested.substitution_bodies(line), ...launched];
1024
- }
1025
- function segments_of(command) {
1026
- const segments = [];
1027
- const pending = [command];
1028
- let line = pending.pop();
1029
- while (line !== void 0) {
1030
- const cut = shell_segments.quote_aware_commands_of(line);
1031
- segments.push(...cut);
1032
- pending.push(...nested_lines(line, cut));
1033
- line = pending.pop();
1034
- }
1035
- return segments;
1036
- }
1037
- function input_refusal(command) {
1038
- if (command.trim() === "") return "an empty command";
1039
- return time_shell.has_heredoc(command) ? "a heredoc" : void 0;
1040
- }
1041
- function refusal4(command, root = process.cwd()) {
1042
- return input_refusal(command) ?? segments_refusal(segments_of(command), root);
1043
- }
1044
- function is_unsafe(command, root = process.cwd()) {
1045
- return refusal4(command, root) !== void 0;
1046
- }
1047
- var implementation_shell = { is_unsafe, refusal: refusal4 };
1048
-
1049
- // scripts/hooks/implementation-authority.ts
1050
- var HANDOFF = " Implementation refused before execution. Record the plan with issue:plan or issue:comment and hand it to lane:dispatch; repeating the request does not grant authority.";
1051
- var UNKNOWN = " Cannot verify the write targets of this shell or patch input. Use explicit Edit/Write paths for operational records, or hand implementation to a worker lane.";
1052
- var MATCHED = " Matched rule: ";
1053
- function edit_refusal(tool_input) {
1054
- return step_zero_notice.edited_paths(tool_input).length === 0 ? "no edited path" : void 0;
1055
- }
1056
- function unverified_write(raw_payload) {
1057
- const payload = hook_tool_payload.parse(raw_payload);
1058
- if (payload === void 0) return "an unparsed hook payload";
1059
- if (["apply_patch", "exec"].includes(payload.tool_name)) return `\`${payload.tool_name}\` input`;
1060
- if (["Edit", "Write"].includes(payload.tool_name)) return edit_refusal(payload.tool_input);
1061
- if (payload.tool_name !== "Bash") return void 0;
1062
- return implementation_shell.refusal(time_shell.bash_command(payload.tool_input));
1063
- }
1064
- function reason(raw_payload, context = hook_context.from_process()) {
1065
- if (agent_session_role.can_implement(context.env)) return void 0;
1066
- const scope = agent_session_role.scope_line(context.env);
1067
- if (step_zero_notice.is_runtime_edit(raw_payload, context.cwd, true)) return scope + HANDOFF;
1068
- const rule = unverified_write(raw_payload);
1069
- if (rule === void 0) return void 0;
1070
- return `${scope}${HANDOFF}${UNKNOWN}${MATCHED}${rule}.`;
1071
- }
1072
- var implementation_authority = { reason };
1073
-
1074
- // scripts/hooks/lane-plan-guard.ts
1075
- var COMMAND_DOC = '`docs/josh-commands-lane.md` \u2192 "`josh lane:plan`"';
1076
- var OUTCOMES = "on `yield` end the session with no edit (its lane is given back); on `wait` run it again";
1077
- function reason_text(issue) {
1078
- const command = `\`pnpm josh lane:plan ${issue} <path>...\``;
1079
- return `\u26D4 lane plan: run ${command} naming every file the work summary changes before the first implementation edit \u2014 ${OUTCOMES} (${COMMAND_DOC}).`;
1080
- }
1081
- function lane_child_edit(raw_payload, directory, source) {
1082
- if (!lane_child_marker.is_child_of(directory, source)) return void 0;
1083
- return step_zero_notice.is_runtime_edit(raw_payload, directory) ? lane_child_marker.marked_issue(source) : void 0;
1084
- }
1085
- function reason2(raw_payload, directory = process.cwd(), source = process.env) {
1086
- const issue = lane_child_edit(raw_payload, directory, source);
1087
- if (issue === void 0) return void 0;
1088
- return lane_plan.is_uncleared(Number(issue), directory) ? reason_text(issue) : void 0;
1089
- }
1090
- var lane_plan_guard = { reason: reason2 };
1091
-
1092
- // scripts/hooks/shell-rules-notice.ts
1093
- var STAMP_PREFIX4 = "josh-shell-rules-notice-";
1094
- var NOTICE2 = "Shell rules: change an existing file with Edit or Write, never a script or heredoc that writes it (file-edits.md); run a josh check with no pipe or under `set -o pipefail`, never `| head` (output-bounds.md).";
1095
- var STAMP = hook_decision.create_refusal_stamp(STAMP_PREFIX4);
1096
- function notice(raw_payload) {
1097
- const payload = hook_decision.parse_hook_payload(raw_payload);
1098
- if (payload?.tool_name !== cost_blocks.BASH_TOOL) return void 0;
1099
- const target = STAMP.path(payload.transcript_path);
1100
- if (STAMP.last_ms(target) !== hook_decision.NEVER_MS || !STAMP.record(target, Date.now())) {
1101
- return void 0;
1102
- }
1103
- return NOTICE2;
1104
- }
1105
- var shell_rules_notice = { NOTICE: NOTICE2, notice, stamp_path: STAMP.path };
1106
-
1107
- // scripts/hooks/pretool-guard.ts
1108
- var CLEAR = { reason: void 0, notice: void 0, fault: void 0 };
1109
- var HOOK_NAME = "pretool-guard";
1110
- function is_clear(outcome) {
1111
- return outcome.reason === void 0 && outcome.notice === void 0 && outcome.fault === void 0;
1112
- }
1113
- function combine_outcomes(outcomes, rule_reason, demoted = hook_demoted.rules()) {
1114
- const reasons = [...outcomes.map((outcome) => outcome.reason), rule_reason].filter(
1115
- (reason3) => reason3 !== void 0
1116
- );
1117
- return hook_demoted.verdict(reasons, demoted) ?? outcomes.find((outcome) => !is_clear(outcome)) ?? CLEAR;
1118
- }
1119
- function with_session_notice(outcome, raw_payload, context) {
1120
- if (!is_clear(outcome)) return outcome;
1121
- const notice2 = step_zero_notice.notice(raw_payload, context.cwd) ?? shell_rules_notice.notice(raw_payload);
1122
- return notice2 === void 0 ? outcome : { reason: void 0, notice: notice2, fault: void 0 };
1123
- }
1124
- function guarded_call(raw_payload) {
1125
- try {
1126
- const payload = hook_decision.parse_hook_payload(raw_payload);
1127
- return payload === void 0 ? void 0 : { name: payload.tool_name, input: payload.tool_input };
1128
- } catch {
1129
- return void 0;
1130
- }
1131
- }
1132
- function authority_outcome(raw_payload, context) {
1133
- return {
1134
- reason: implementation_authority.reason(raw_payload, context),
1135
- notice: void 0,
1136
- fault: void 0
1137
- };
1138
- }
1139
- function lane_plan_outcome(raw_payload, context) {
1140
- const reason3 = lane_plan_guard.reason(raw_payload, context.cwd, context.env);
1141
- return { reason: reason3, notice: void 0, fault: void 0 };
1142
- }
1143
- function clocked(outcome) {
1144
- return function clocked_outcome(raw_payload, context) {
1145
- return outcome(raw_payload, Date.now(), context);
1146
- };
1147
- }
1148
- var READ_ONLY_TOOLS = /* @__PURE__ */ new Set(["Read", "Glob", "Grep"]);
1149
- var SYNC_GUARDS = [
1150
- { outcome: authority_outcome, reads: false },
1151
- { outcome: clocked(batch_outcome), reads: true },
1152
- { outcome: clocked(investigation_outcome), reads: true },
1153
- { outcome: clocked(duplicate_read_outcome), reads: true },
1154
- { outcome: clocked(large_read_outcome), reads: true },
1155
- { outcome: lane_plan_outcome, reads: false }
1156
- ];
1157
- function guard_outcome(raw_payload, context) {
1158
- const is_read = READ_ONLY_TOOLS.has(guarded_call(raw_payload)?.name ?? "");
1159
- const outcomes = SYNC_GUARDS.filter((guard) => guard.reads || !is_read).map(
1160
- (guard) => guard.outcome(raw_payload, context)
1161
- );
1162
- return combine_outcomes(
1163
- outcomes,
1164
- delivered_rules.delivery(raw_payload, Date.now(), context),
1165
- hook_demoted.rules(context.env)
1166
- );
1167
- }
1168
- function pretool_outcome(raw_payload, context = hook_context.from_process()) {
1169
- return with_session_notice(guard_outcome(raw_payload, context), raw_payload, context);
1170
- }
1171
- async function mark_phase(outcome, raw_payload, context = hook_context.from_process()) {
1172
- const is_allowed_edit = outcome.reason === void 0 && step_zero_notice.is_runtime_edit(raw_payload, context.cwd);
1173
- if (is_allowed_edit) await lane_phase.mark_implement(context.cwd, context.env);
1174
- }
1175
- async function async_reason(raw_payload, context) {
1176
- const watcher = await run_watcher_hook.watcher_hook_reason(raw_payload, context);
1177
- const state = run_parent_cut_hook.current_state(context);
1178
- const cut = watcher ?? await run_parent_cut_hook.parent_cut_reason(raw_payload, Date.now(), state);
1179
- const poll = cut ?? await run_poll_hook.safe_poll_reason(raw_payload, context);
1180
- return poll ?? await issue_watch_hook.watch_reason(context);
1181
- }
1182
- async function pretool_outcome_async(raw_payload, context = hook_context.from_process()) {
1183
- const base = guard_outcome(raw_payload, context);
1184
- if (base.reason !== void 0) return base;
1185
- const reason3 = await async_reason(raw_payload, context);
1186
- if (reason3 !== void 0) return { reason: reason3, notice: void 0, fault: void 0 };
1187
- const outcome = with_session_notice(base, raw_payload, context);
1188
- await mark_phase(outcome, raw_payload, context);
1189
- return outcome;
1190
- }
1191
- function rewrite_context(note, outcome) {
1192
- return [note, outcome.notice ?? outcome.fault].filter(Boolean).join("\n\n");
1193
- }
1194
- function foreground_input_of(raw_payload, is_lane_child) {
1195
- const call = guarded_call(raw_payload);
1196
- return call === void 0 ? void 0 : lane_background.foreground_input(call, is_lane_child);
1197
- }
1198
- function foreground_rewrite(outcome, raw_payload, is_lane_child, rewrite) {
1199
- const input = outcome.reason === void 0 ? foreground_input_of(raw_payload, is_lane_child) : void 0;
1200
- if (input === void 0) return void 0;
1201
- const note = [rewrite?.note, lane_background.FOREGROUND_NOTE].filter(Boolean).join("\n\n");
1202
- const envelope_of = rewrite === void 0 ? hook_decision.rewrite_envelope : hook_decision.flow_rewrite_envelope;
1203
- return envelope_of(input, rewrite_context(note, outcome));
1204
- }
1205
- function rule_envelope(outcome, rewrite) {
1206
- if (rewrite === void 0 || outcome.reason !== void 0) return void 0;
1207
- return hook_decision.flow_rewrite_envelope(rewrite.input, rewrite_context(rewrite.note, outcome));
1208
- }
1209
- function emit(raw_payload, outcome, rewrite, context = hook_context.from_process()) {
1210
- const is_lane_child = lane_child_marker.is_child_of.bind(void 0, context.cwd, context.env);
1211
- const envelope = foreground_rewrite(outcome, raw_payload, is_lane_child, rewrite) ?? rule_envelope(outcome, rewrite);
1212
- if (envelope === void 0) hook_decision.emit_outcome(outcome);
1213
- else process.stdout.write(`${envelope}
1214
- `);
1215
- }
1216
- async function record_refusal(judged_payload, outcome, context = hook_context.from_process(), demoted = hook_demoted.rules(context.env)) {
1217
- const refusal5 = outcome.reason ?? hook_demoted.refusal_of(outcome.notice, demoted);
1218
- await hook_ledger.record_reason(HOOK_NAME, refusal5, judged_payload, context);
1219
- if (outcome.reason === void 0) await direct_gh_usage.record(judged_payload, context);
1220
- }
1221
- async function respond(raw_payload, context = hook_context.from_process()) {
1222
- const rewrite = rule_rewrite.rewrite(raw_payload, context);
1223
- const judged = rewrite?.payload ?? raw_payload;
1224
- bash_revert.stamp(judged, context.cwd);
1225
- const outcome = await pretool_outcome_async(judged, context);
1226
- emit(judged, outcome, rewrite, context);
1227
- await record_refusal(judged, outcome, context);
1228
- }
1229
- var pretool_guard = {
1230
- combine_outcomes,
1231
- emit,
1232
- foreground_rewrite,
1233
- mark_phase,
1234
- pretool_outcome,
1235
- record_refusal,
1236
- respond
1237
- };
1238
-
1239
- export {
1240
- pretool_guard
1241
- };