@joshuafolkken/kit 1.3044.0 → 1.3092.0

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