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