@joshuafolkken/kit 1.2116.0 → 1.3000.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 (2163) hide show
  1. package/.claude/agents/design-consultant.md +19 -0
  2. package/.claude/agents/investigator.md +12 -2
  3. package/.claude/agents/reviewer-verification.md +13 -2
  4. package/.claude/agents/reviewer.md +13 -2
  5. package/.claude/settings.json +32 -9
  6. package/.claude/skills/dependency-update/SKILL.md +11 -14
  7. package/.claude/skills/epic-commands/SKILL.md +8 -6
  8. package/.claude/skills/epic-commands/epic-bundle.md +6 -7
  9. package/.claude/skills/verify-ui/SKILL.md +13 -23
  10. package/.claude/skills/workflow-commands/SKILL.md +19 -18
  11. package/.claude/skills/workflow-commands/background-commands.md +7 -4
  12. package/.claude/skills/workflow-commands/backlogrun-child.md +31 -64
  13. package/.claude/skills/workflow-commands/backlogrun-lanes.md +54 -62
  14. package/.claude/skills/workflow-commands/backlogrun-park.md +65 -64
  15. package/.claude/skills/workflow-commands/backlogrun-progress.md +30 -44
  16. package/.claude/skills/workflow-commands/backlogrun-recovery.md +18 -33
  17. package/.claude/skills/workflow-commands/backlogrun-steps.md +62 -50
  18. package/.claude/skills/workflow-commands/backlogrun.md +13 -18
  19. package/.claude/skills/workflow-commands/chain-rule.md +54 -53
  20. package/.claude/skills/workflow-commands/delegation.md +11 -11
  21. package/.claude/skills/workflow-commands/entry-sequence.md +23 -34
  22. package/.claude/skills/workflow-commands/followup.md +19 -17
  23. package/.claude/skills/workflow-commands/fullrun-lane.md +11 -0
  24. package/.claude/skills/workflow-commands/fullrun-steps.md +27 -34
  25. package/.claude/skills/workflow-commands/fullrun.md +5 -6
  26. package/.claude/skills/workflow-commands/halfrun.md +4 -7
  27. package/.claude/skills/workflow-commands/issue-comments.md +29 -15
  28. package/.claude/skills/workflow-commands/issue-fold-existing.md +9 -14
  29. package/.claude/skills/workflow-commands/issue-scout.md +5 -8
  30. package/.claude/skills/workflow-commands/kickoff.md +25 -34
  31. package/.claude/skills/workflow-commands/latest-gate.md +6 -14
  32. package/.claude/skills/workflow-commands/needs-human-review.md +3 -3
  33. package/.claude/skills/workflow-commands/observation-filing.md +9 -7
  34. package/.claude/skills/workflow-commands/observation-ledger.md +4 -1
  35. package/.claude/skills/workflow-commands/pre-gate-cut.md +21 -26
  36. package/.claude/skills/workflow-commands/prerequisite.md +21 -6
  37. package/.claude/skills/workflow-commands/progress-watcher.md +8 -18
  38. package/.claude/skills/workflow-commands/prrun.md +1 -1
  39. package/.claude/skills/workflow-commands/retrospective.md +16 -15
  40. package/.claude/skills/workflow-commands/split-assessment.md +32 -22
  41. package/.claude/skills/workflow-commands/target-repository.md +2 -2
  42. package/.claude/skills/workflow-commands/working-tree-hold.md +3 -2
  43. package/.codex/hooks.json +18 -8
  44. package/.cursorrules +1 -2
  45. package/.github/actions/change-scope/action.yml +19 -0
  46. package/.github/actions/setup-pnpm/action.yml +87 -14
  47. package/.github/dependabot.yml +1 -0
  48. package/.github/workflows/ci.yml +74 -30
  49. package/.github/workflows/publish.yml +56 -14
  50. package/.github/workflows/sonar-qube.yml +28 -1
  51. package/.prettierignore +2 -0
  52. package/AGENTS.md +1 -2
  53. package/CLAUDE.md +8 -8
  54. package/GEMINI.md +1 -2
  55. package/README.md +1 -1
  56. package/SECURITY.md +11 -1
  57. package/cspell/index.yaml +11 -0
  58. package/dist/.inputs-verified.json +1 -0
  59. package/dist/CLAUDE.md +8 -8
  60. package/dist/commands/adopt.js +222 -0
  61. package/dist/commands/auth-setup-cli.js +127 -0
  62. package/dist/commands/auto-ok-judge-cli.js +223 -0
  63. package/dist/commands/auto-ok-main.js +136 -0
  64. package/dist/commands/backlog-budget-main.js +146 -0
  65. package/dist/commands/backlog-drive-cli.js +1935 -0
  66. package/dist/commands/backlog-next-main.js +186 -0
  67. package/dist/commands/backlog-offer-main.js +190 -0
  68. package/dist/commands/backlog-plan-cli.js +329 -0
  69. package/dist/commands/backlog-triage-cli.js +642 -0
  70. package/dist/commands/backlogrun-cli.js +829 -0
  71. package/dist/commands/behavior-cli.js +216 -0
  72. package/dist/commands/bump-version-main.js +22 -0
  73. package/dist/commands/bytes-command.js +208 -0
  74. package/dist/commands/cases-cli.js +57 -0
  75. package/dist/commands/check-commit-message-main.js +22 -0
  76. package/dist/commands/check-related.js +551 -0
  77. package/dist/commands/chunk-23GH6B3D.js +333 -0
  78. package/dist/commands/chunk-2ADQ5XRD.js +36 -0
  79. package/dist/commands/chunk-2CXAVVST.js +20 -0
  80. package/dist/commands/chunk-2DJLAUYB.js +109 -0
  81. package/dist/commands/chunk-2FE3C4PH.js +112 -0
  82. package/dist/commands/chunk-2FJJYCBD.js +149 -0
  83. package/dist/commands/chunk-2IESYBZH.js +34 -0
  84. package/dist/commands/chunk-2MJ4OCDL.js +188 -0
  85. package/dist/commands/chunk-2NSB5ZYQ.js +26 -0
  86. package/dist/commands/chunk-2OIX4JLA.js +37 -0
  87. package/dist/commands/chunk-2TQXCH2K.js +145 -0
  88. package/dist/commands/chunk-2VLHFILE.js +52 -0
  89. package/dist/commands/chunk-2VRITY55.js +41 -0
  90. package/dist/commands/chunk-2YCKPX3A.js +25 -0
  91. package/dist/commands/chunk-32SNWQJP.js +99 -0
  92. package/dist/commands/chunk-337QQM4C.js +136 -0
  93. package/dist/commands/chunk-34DND4BA.js +104 -0
  94. package/dist/commands/chunk-34LAULSC.js +352 -0
  95. package/dist/commands/chunk-36LOGVJ7.js +38 -0
  96. package/dist/commands/chunk-36M2UV6C.js +80 -0
  97. package/dist/commands/chunk-3BNNMJOT.js +702 -0
  98. package/dist/commands/chunk-3CCGKX7Y.js +20 -0
  99. package/dist/commands/chunk-3EO2XN3A.js +124 -0
  100. package/dist/commands/chunk-3GF52L5F.js +271 -0
  101. package/dist/commands/chunk-3HU3LPIF.js +113 -0
  102. package/dist/commands/chunk-3LZXX5GL.js +50 -0
  103. package/dist/commands/chunk-3NWAGIA6.js +39 -0
  104. package/dist/commands/chunk-3PEXBHRN.js +33 -0
  105. package/dist/commands/chunk-3RIQ36LH.js +110 -0
  106. package/dist/commands/chunk-3UKJFWKS.js +170 -0
  107. package/dist/commands/chunk-3WRQP3QE.js +47 -0
  108. package/dist/commands/chunk-3WWQFCGX.js +18 -0
  109. package/dist/commands/chunk-3ZEO3KOM.js +35 -0
  110. package/dist/commands/chunk-4BEIYKI2.js +76 -0
  111. package/dist/commands/chunk-4D5KWMFL.js +461 -0
  112. package/dist/commands/chunk-4DVM57T7.js +86 -0
  113. package/dist/commands/chunk-4EADHJVC.js +247 -0
  114. package/dist/commands/chunk-4G7NKNAZ.js +114 -0
  115. package/dist/commands/chunk-4HBVHYNL.js +73 -0
  116. package/dist/commands/chunk-4LWRCPS5.js +114 -0
  117. package/dist/commands/chunk-4P2LCVGO.js +211 -0
  118. package/dist/commands/chunk-4PES3BAA.js +263 -0
  119. package/dist/commands/chunk-4PUKDAXL.js +42 -0
  120. package/dist/commands/chunk-4Q4FXBUQ.js +99 -0
  121. package/dist/commands/chunk-4QYW2IL7.js +82 -0
  122. package/dist/commands/chunk-4YI4SLRJ.js +161 -0
  123. package/dist/commands/chunk-4Z5723GA.js +350 -0
  124. package/dist/commands/chunk-4ZHWTTQW.js +99 -0
  125. package/dist/commands/chunk-55I7OYHI.js +98 -0
  126. package/dist/commands/chunk-5GBZ43UA.js +58 -0
  127. package/dist/commands/chunk-5HCPSV45.js +800 -0
  128. package/dist/{hooks/chunk-OPSRGWFU.js → commands/chunk-5HVYOIIK.js} +1 -1
  129. package/dist/commands/chunk-5HWZFL4D.js +4175 -0
  130. package/dist/commands/chunk-5PAEXYIY.js +234 -0
  131. package/dist/commands/chunk-5SB37YDW.js +321 -0
  132. package/dist/commands/chunk-5TMAPYQD.js +19 -0
  133. package/dist/commands/chunk-5WIZR5SC.js +313 -0
  134. package/dist/commands/chunk-5Y7QQYTU.js +232 -0
  135. package/dist/commands/chunk-5ZTQX7OS.js +125 -0
  136. package/dist/commands/chunk-65E4OZJ7.js +9 -0
  137. package/dist/commands/chunk-66NX6EXR.js +29 -0
  138. package/dist/commands/chunk-66TGK5XL.js +84 -0
  139. package/dist/commands/chunk-6CJXLPRI.js +72 -0
  140. package/dist/commands/chunk-6EU5ZCDP.js +402 -0
  141. package/dist/commands/chunk-6FWV56B3.js +40 -0
  142. package/dist/commands/chunk-6HRRZANN.js +55 -0
  143. package/dist/commands/chunk-6I2JM5UX.js +134 -0
  144. package/dist/commands/chunk-6JVNRY5A.js +29 -0
  145. package/dist/commands/chunk-6NGNMIMT.js +20 -0
  146. package/dist/commands/chunk-6NRTLH6I.js +51 -0
  147. package/dist/commands/chunk-6NV2F7QH.js +47 -0
  148. package/dist/commands/chunk-6OP63TBT.js +78 -0
  149. package/dist/commands/chunk-6Q3XUCLM.js +204 -0
  150. package/dist/commands/chunk-6SKMZGER.js +148 -0
  151. package/dist/commands/chunk-6TESOL3L.js +173 -0
  152. package/dist/commands/chunk-6UGFS3EU.js +704 -0
  153. package/dist/commands/chunk-6VTJO5L2.js +38 -0
  154. package/dist/commands/chunk-6WEVLIZE.js +29 -0
  155. package/dist/commands/chunk-6WKJ3GDA.js +408 -0
  156. package/dist/commands/chunk-6WTVAL4D.js +115 -0
  157. package/dist/commands/chunk-72EW7AVI.js +59 -0
  158. package/dist/commands/chunk-72J2G2E7.js +1189 -0
  159. package/dist/commands/chunk-73EBNBUW.js +90 -0
  160. package/dist/commands/chunk-73JOEKIC.js +169 -0
  161. package/dist/commands/chunk-73KBUQKI.js +41 -0
  162. package/dist/commands/chunk-7CHCZBNF.js +555 -0
  163. package/dist/commands/chunk-7EAMUVIO.js +326 -0
  164. package/dist/commands/chunk-7GHOFHUS.js +48 -0
  165. package/dist/commands/chunk-7GMTJDO2.js +469 -0
  166. package/dist/commands/chunk-7HCPRVMB.js +76 -0
  167. package/dist/commands/chunk-7IT23HIR.js +306 -0
  168. package/dist/commands/chunk-7IZJ5MG2.js +72 -0
  169. package/dist/commands/chunk-7LJQMM2K.js +102 -0
  170. package/dist/commands/chunk-7MOZEEFJ.js +350 -0
  171. package/dist/commands/chunk-7P4X4TQL.js +507 -0
  172. package/dist/commands/chunk-7S6VRZOH.js +223 -0
  173. package/dist/commands/chunk-7V5UVKFG.js +20 -0
  174. package/dist/commands/chunk-7W3D3WRW.js +171 -0
  175. package/dist/commands/chunk-7ZECP3J6.js +212 -0
  176. package/dist/commands/chunk-A3D2XHOJ.js +387 -0
  177. package/dist/commands/chunk-A4HOQKOG.js +85 -0
  178. package/dist/commands/chunk-A5V7EWIX.js +85 -0
  179. package/dist/commands/chunk-A6T2N7VC.js +159 -0
  180. package/dist/commands/chunk-AI5K4QJO.js +72 -0
  181. package/dist/commands/chunk-AJWR7D3H.js +15 -0
  182. package/dist/commands/chunk-AKK56GNX.js +205 -0
  183. package/dist/commands/chunk-AKQYYHP2.js +461 -0
  184. package/dist/commands/chunk-AM44D7NF.js +52 -0
  185. package/dist/commands/chunk-ANUTT56I.js +85 -0
  186. package/dist/commands/chunk-AQ3PMSXK.js +76 -0
  187. package/dist/commands/chunk-AS3GWVAN.js +45 -0
  188. package/dist/commands/chunk-ATRMETHT.js +23 -0
  189. package/dist/commands/chunk-AVUGMOHZ.js +210 -0
  190. package/dist/commands/chunk-AWLYN2SP.js +64 -0
  191. package/dist/commands/chunk-AZUE65NT.js +77 -0
  192. package/dist/commands/chunk-B2EA2HCY.js +119 -0
  193. package/dist/commands/chunk-B33BTNB4.js +87 -0
  194. package/dist/commands/chunk-B3XFOHDX.js +71 -0
  195. package/dist/commands/chunk-B5GXZK3E.js +34 -0
  196. package/dist/commands/chunk-B77ZMVHS.js +80 -0
  197. package/dist/commands/chunk-BCK5LW4F.js +45 -0
  198. package/dist/commands/chunk-BEE7OAQ5.js +210 -0
  199. package/dist/commands/chunk-BF6YX4HE.js +70 -0
  200. package/dist/commands/chunk-BFLFPKQQ.js +46 -0
  201. package/dist/commands/chunk-BHRS7HAM.js +272 -0
  202. package/dist/commands/chunk-BIKGPT52.js +29 -0
  203. package/dist/commands/chunk-BJA5U4Q7.js +75 -0
  204. package/dist/commands/chunk-BJKEXXY6.js +15 -0
  205. package/dist/commands/chunk-BK6Q4VCA.js +128 -0
  206. package/dist/commands/chunk-BNXE3NVB.js +107 -0
  207. package/dist/commands/chunk-BPSJSHYD.js +209 -0
  208. package/dist/commands/chunk-BRFQBJ5Y.js +132 -0
  209. package/dist/commands/chunk-BY3POLIQ.js +104 -0
  210. package/dist/commands/chunk-BYSPYVLD.js +130 -0
  211. package/dist/commands/chunk-C26LKDBE.js +60 -0
  212. package/dist/commands/chunk-C2SEDMZ3.js +238 -0
  213. package/dist/commands/chunk-C6QSVO5K.js +56 -0
  214. package/dist/commands/chunk-CA6F5OXK.js +809 -0
  215. package/dist/commands/chunk-CADFBQJJ.js +75 -0
  216. package/dist/commands/chunk-CDY4NFQG.js +15 -0
  217. package/dist/commands/chunk-CGLLAEKZ.js +110 -0
  218. package/dist/commands/chunk-CHX4QTP4.js +133 -0
  219. package/dist/commands/chunk-CJAA5GAF.js +418 -0
  220. package/dist/commands/chunk-CJKPF5DJ.js +156 -0
  221. package/dist/commands/chunk-CJSFC5YI.js +158 -0
  222. package/dist/commands/chunk-CRNPPKP2.js +99 -0
  223. package/dist/commands/chunk-CUR2WNYB.js +42 -0
  224. package/dist/commands/chunk-CYQ3ZF7R.js +372 -0
  225. package/dist/commands/chunk-D3SHCUBC.js +64 -0
  226. package/dist/commands/chunk-D4HNS43Q.js +208 -0
  227. package/dist/commands/chunk-D4SZK7H2.js +34 -0
  228. package/dist/commands/chunk-D5HIP4HT.js +289 -0
  229. package/dist/commands/chunk-D5TAR6TV.js +71 -0
  230. package/dist/commands/chunk-DAJCUSPG.js +127 -0
  231. package/dist/commands/chunk-DBKTFB5V.js +18 -0
  232. package/dist/commands/chunk-DIB2Z2OS.js +307 -0
  233. package/dist/commands/chunk-DJVMC3U2.js +131 -0
  234. package/dist/commands/chunk-DKM4UJQU.js +10 -0
  235. package/dist/commands/chunk-DMD74E3F.js +39 -0
  236. package/dist/commands/chunk-DNJC7X73.js +84 -0
  237. package/dist/commands/chunk-DP7WIGQ4.js +298 -0
  238. package/dist/commands/chunk-DPJVKTO4.js +41 -0
  239. package/dist/commands/chunk-DRCTDVI2.js +83 -0
  240. package/dist/commands/chunk-DSBK66US.js +67 -0
  241. package/dist/commands/chunk-DXJQHJQ4.js +73 -0
  242. package/dist/commands/chunk-DXZW4V7J.js +114 -0
  243. package/dist/commands/chunk-E2ZCUKHT.js +274 -0
  244. package/dist/commands/chunk-E33LSO2W.js +20 -0
  245. package/dist/commands/chunk-E3CXOVPQ.js +258 -0
  246. package/dist/commands/chunk-EBI2BAKQ.js +47 -0
  247. package/dist/commands/chunk-EBNIX2TC.js +81 -0
  248. package/dist/commands/chunk-EBVS2LKX.js +60 -0
  249. package/dist/commands/chunk-EFHSCUFN.js +170 -0
  250. package/dist/commands/chunk-EH3LVYOX.js +72 -0
  251. package/dist/commands/chunk-EI6JG5DF.js +92 -0
  252. package/dist/commands/chunk-EK2Y6B4X.js +140 -0
  253. package/dist/commands/chunk-EK327QOS.js +260 -0
  254. package/dist/commands/chunk-EKCKCX5S.js +291 -0
  255. package/dist/commands/chunk-ELWNRE6E.js +93 -0
  256. package/dist/commands/chunk-ENFPR7J2.js +53 -0
  257. package/dist/commands/chunk-ENLWXAHD.js +80 -0
  258. package/dist/commands/chunk-ERGZPWKP.js +102 -0
  259. package/dist/commands/chunk-ESQEEL4O.js +58 -0
  260. package/dist/commands/chunk-EW4NPUMQ.js +363 -0
  261. package/dist/commands/chunk-EWA72KO7.js +241 -0
  262. package/dist/commands/chunk-EWVR5AEX.js +140 -0
  263. package/dist/commands/chunk-EZSO25UZ.js +80 -0
  264. package/dist/commands/chunk-F22G3VDB.js +183 -0
  265. package/dist/commands/chunk-F2HFWLQR.js +32 -0
  266. package/dist/commands/chunk-F2J6DGDM.js +302 -0
  267. package/dist/commands/chunk-F3WBEEYC.js +68 -0
  268. package/dist/commands/chunk-F6OWP2AY.js +750 -0
  269. package/dist/commands/chunk-F7XLEK55.js +62 -0
  270. package/dist/commands/chunk-FB3D7CX5.js +241 -0
  271. package/dist/commands/chunk-FC33R5UN.js +516 -0
  272. package/dist/commands/chunk-FCINBCKB.js +77 -0
  273. package/dist/commands/chunk-FFHEGWPK.js +91 -0
  274. package/dist/commands/chunk-FGL6DBZU.js +71 -0
  275. package/dist/commands/chunk-FGZQSSGH.js +210 -0
  276. package/dist/{hooks/chunk-VVNYJWEI.js → commands/chunk-FIUCHMCF.js} +4 -2
  277. package/dist/commands/chunk-FNOSSXLG.js +61 -0
  278. package/dist/commands/chunk-FNQW6NY7.js +154 -0
  279. package/dist/commands/chunk-FROACLVU.js +525 -0
  280. package/dist/commands/chunk-FVVZIJUC.js +425 -0
  281. package/dist/commands/chunk-G47ZNQVG.js +17 -0
  282. package/dist/commands/chunk-G6BXCWPH.js +141 -0
  283. package/dist/commands/chunk-GA4VIFHD.js +224 -0
  284. package/dist/commands/chunk-GA6E4VGO.js +328 -0
  285. package/dist/commands/chunk-GDUK5YPO.js +185 -0
  286. package/dist/commands/chunk-GIGKMIPQ.js +72 -0
  287. package/dist/commands/chunk-GJYMI2CM.js +48 -0
  288. package/dist/commands/chunk-GK2KY4MO.js +67 -0
  289. package/dist/commands/chunk-GM3XLC4W.js +63 -0
  290. package/dist/commands/chunk-GO3GH7FG.js +75 -0
  291. package/dist/commands/chunk-GPMSYXYO.js +378 -0
  292. package/dist/commands/chunk-GPTO6IZG.js +29 -0
  293. package/dist/commands/chunk-GQHUFNXN.js +54 -0
  294. package/dist/commands/chunk-GU5ML3Y3.js +263 -0
  295. package/dist/commands/chunk-GW4UWR3O.js +126 -0
  296. package/dist/commands/chunk-H4LYG37R.js +716 -0
  297. package/dist/commands/chunk-HBNB3TLG.js +122 -0
  298. package/dist/commands/chunk-HCA5QG2U.js +299 -0
  299. package/dist/commands/chunk-HE5S4XRE.js +21 -0
  300. package/dist/commands/chunk-HESMKHEB.js +105 -0
  301. package/dist/commands/chunk-HG2NZQD5.js +135 -0
  302. package/dist/commands/chunk-HH2KDLTP.js +161 -0
  303. package/dist/commands/chunk-HHBC6QZE.js +95 -0
  304. package/dist/commands/chunk-HIB5G2X6.js +426 -0
  305. package/dist/commands/chunk-HIPO6HUG.js +45 -0
  306. package/dist/commands/chunk-HIU2WXB6.js +26 -0
  307. package/dist/commands/chunk-HJKZDDDI.js +62 -0
  308. package/dist/commands/chunk-HLKAFSN4.js +76 -0
  309. package/dist/commands/chunk-HLUS2M3D.js +7 -0
  310. package/dist/commands/chunk-HO52D6JY.js +278 -0
  311. package/dist/commands/chunk-HOGFJHBT.js +412 -0
  312. package/dist/commands/chunk-HOSZITJM.js +156 -0
  313. package/dist/commands/chunk-HPVLI26Z.js +123 -0
  314. package/dist/commands/chunk-HQ2HSZBN.js +69 -0
  315. package/dist/commands/chunk-HRLGFRAV.js +21 -0
  316. package/dist/commands/chunk-HRT4KWP4.js +178 -0
  317. package/dist/commands/chunk-HTIDHEEN.js +108 -0
  318. package/dist/commands/chunk-HXCZ3KWS.js +41 -0
  319. package/dist/commands/chunk-HZBTXKT2.js +61 -0
  320. package/dist/commands/chunk-HZSQI6TD.js +18 -0
  321. package/dist/commands/chunk-I63RNFFR.js +213 -0
  322. package/dist/commands/chunk-IBEKFLWG.js +137 -0
  323. package/dist/commands/chunk-ICEMFE2V.js +139 -0
  324. package/dist/commands/chunk-IG22Y5MA.js +56 -0
  325. package/dist/commands/chunk-IGD6QJPH.js +91 -0
  326. package/dist/commands/chunk-ILGPZ47M.js +33 -0
  327. package/dist/commands/chunk-ILQZFUDC.js +65 -0
  328. package/dist/commands/chunk-ISPBJVXM.js +238 -0
  329. package/dist/commands/chunk-IW6NWCSN.js +10 -0
  330. package/dist/commands/chunk-IXX4SXIP.js +53 -0
  331. package/dist/commands/chunk-IZVM2TTH.js +84 -0
  332. package/dist/commands/chunk-J3G2R64I.js +88 -0
  333. package/dist/commands/chunk-J3TKZLHA.js +11 -0
  334. package/dist/commands/chunk-J6GIVMXI.js +59 -0
  335. package/dist/commands/chunk-JB7R3A4A.js +204 -0
  336. package/dist/commands/chunk-JGTLNFFE.js +803 -0
  337. package/dist/commands/chunk-JHN6RCE6.js +123 -0
  338. package/dist/commands/chunk-JJRKTWLK.js +64 -0
  339. package/dist/commands/chunk-JLREFWJ4.js +244 -0
  340. package/dist/commands/chunk-JLYW7CP6.js +43 -0
  341. package/dist/commands/chunk-JNWHX25C.js +36 -0
  342. package/dist/commands/chunk-JOARHU3M.js +137 -0
  343. package/dist/commands/chunk-JQXPLMCO.js +81 -0
  344. package/dist/commands/chunk-JTU5A4JI.js +55 -0
  345. package/dist/commands/chunk-JUJFIATR.js +121 -0
  346. package/dist/commands/chunk-JUUBDYFZ.js +61 -0
  347. package/dist/commands/chunk-JZOTCPX2.js +115 -0
  348. package/dist/commands/chunk-K2WVYHCP.js +18 -0
  349. package/dist/commands/chunk-K7GL3BGI.js +419 -0
  350. package/dist/commands/chunk-KB3OQWDT.js +71 -0
  351. package/dist/commands/chunk-KHWTJ4F7.js +132 -0
  352. package/dist/commands/chunk-KIILCKQR.js +220 -0
  353. package/dist/commands/chunk-KIVOZY2J.js +1864 -0
  354. package/dist/commands/chunk-KQWSENCT.js +94 -0
  355. package/dist/commands/chunk-KSR23NYN.js +33 -0
  356. package/dist/commands/chunk-KTLR4Y32.js +21 -0
  357. package/dist/commands/chunk-KUJQWO6M.js +119 -0
  358. package/dist/commands/chunk-KVHNQHX3.js +100 -0
  359. package/dist/commands/chunk-KVJDDECB.js +51 -0
  360. package/dist/commands/chunk-KVSSLDA3.js +1062 -0
  361. package/dist/commands/chunk-KVURNO74.js +187 -0
  362. package/dist/commands/chunk-KXHXMERX.js +214 -0
  363. package/dist/commands/chunk-KXRFGPZD.js +69 -0
  364. package/dist/commands/chunk-KZSM5M5P.js +89 -0
  365. package/dist/commands/chunk-L6LU2633.js +91 -0
  366. package/dist/commands/chunk-L6TU7FC2.js +103 -0
  367. package/dist/commands/chunk-L6XN3EXI.js +138 -0
  368. package/dist/commands/chunk-LA5WTOAM.js +319 -0
  369. package/dist/commands/chunk-LAKVPOJQ.js +59 -0
  370. package/dist/commands/chunk-LAYSCY4L.js +6 -0
  371. package/dist/commands/chunk-LBLII7BS.js +14 -0
  372. package/dist/commands/chunk-LC7SBONO.js +98 -0
  373. package/dist/commands/chunk-LCEJXF7A.js +101 -0
  374. package/dist/commands/chunk-LE2T3FGJ.js +302 -0
  375. package/dist/commands/chunk-LE7TFPMU.js +88 -0
  376. package/dist/commands/chunk-LHKXJD6L.js +303 -0
  377. package/dist/commands/chunk-LMS6N6GE.js +332 -0
  378. package/dist/commands/chunk-LMSS4ARB.js +32 -0
  379. package/dist/commands/chunk-LNBUIOK6.js +133 -0
  380. package/dist/commands/chunk-LOSOLCCW.js +119 -0
  381. package/dist/commands/chunk-LQXFVZTS.js +13 -0
  382. package/dist/commands/chunk-LRA3PXHS.js +472 -0
  383. package/dist/commands/chunk-LRS2OS5J.js +395 -0
  384. package/dist/commands/chunk-LULJUD6P.js +131 -0
  385. package/dist/commands/chunk-LUMCYDGE.js +141 -0
  386. package/dist/commands/chunk-LWAXXZPS.js +118 -0
  387. package/dist/commands/chunk-LYEKT3IN.js +77 -0
  388. package/dist/commands/chunk-LZNYHWRO.js +78 -0
  389. package/dist/commands/chunk-M3ZDYCUF.js +117 -0
  390. package/dist/commands/chunk-M42SLJCD.js +97 -0
  391. package/dist/commands/chunk-M4PEC7YW.js +349 -0
  392. package/dist/commands/chunk-MAGJFH5T.js +77 -0
  393. package/dist/commands/chunk-MDKDJF2K.js +160 -0
  394. package/dist/commands/chunk-MDLOETXL.js +211 -0
  395. package/dist/commands/chunk-MGF64OHV.js +32 -0
  396. package/dist/commands/chunk-MMTVQOCP.js +211 -0
  397. package/dist/commands/chunk-MMXZKLDU.js +115 -0
  398. package/dist/commands/chunk-MPGJ4ONJ.js +634 -0
  399. package/dist/commands/chunk-MS6Q3Z7V.js +870 -0
  400. package/dist/commands/chunk-MSPIR3OA.js +32 -0
  401. package/dist/commands/chunk-MVPUQLN5.js +183 -0
  402. package/dist/commands/chunk-MXC4IBZ7.js +104 -0
  403. package/dist/commands/chunk-MY3RSOS5.js +52 -0
  404. package/dist/commands/chunk-MYNM3YMR.js +347 -0
  405. package/dist/commands/chunk-MYWRGF5A.js +177 -0
  406. package/dist/commands/chunk-MZHOPRI6.js +529 -0
  407. package/dist/commands/chunk-N4O5I55P.js +655 -0
  408. package/dist/commands/chunk-N6TYL3B2.js +250 -0
  409. package/dist/commands/chunk-NFEBQED3.js +179 -0
  410. package/dist/commands/chunk-NFKULY26.js +48 -0
  411. package/dist/commands/chunk-NGKB632X.js +92 -0
  412. package/dist/commands/chunk-NJ53AWJU.js +122 -0
  413. package/dist/commands/chunk-NJT5L6IC.js +126 -0
  414. package/dist/commands/chunk-NKKH3PBE.js +87 -0
  415. package/dist/commands/chunk-NKOET4FB.js +44 -0
  416. package/dist/commands/chunk-NMLCPYBN.js +134 -0
  417. package/dist/commands/chunk-NOXLKIPR.js +114 -0
  418. package/dist/commands/chunk-NSAVEXVR.js +353 -0
  419. package/dist/commands/chunk-NSZTSCBW.js +1263 -0
  420. package/dist/commands/chunk-NYWGJLBU.js +19 -0
  421. package/dist/commands/chunk-O26Y2FOJ.js +134 -0
  422. package/dist/commands/chunk-O27H6NN6.js +163 -0
  423. package/dist/commands/chunk-O3NDWYNT.js +68 -0
  424. package/dist/commands/chunk-O4WBADCX.js +88 -0
  425. package/dist/commands/chunk-O5FVBIRI.js +271 -0
  426. package/dist/commands/chunk-O5QZ2S6X.js +98 -0
  427. package/dist/commands/chunk-OGNTJ5JB.js +47 -0
  428. package/dist/commands/chunk-OHNP3QL2.js +186 -0
  429. package/dist/commands/chunk-OHVAEJSM.js +184 -0
  430. package/dist/commands/chunk-OI7KM4K3.js +43 -0
  431. package/dist/commands/chunk-OIDMJASD.js +62 -0
  432. package/dist/commands/chunk-OJ4LGBVD.js +126 -0
  433. package/dist/commands/chunk-OKKQI4ZG.js +49 -0
  434. package/dist/commands/chunk-OKYFQJW3.js +22 -0
  435. package/dist/commands/chunk-ORSI7Y55.js +133 -0
  436. package/dist/commands/chunk-OT3UMEWK.js +47 -0
  437. package/dist/commands/chunk-OTZJXU2R.js +170 -0
  438. package/dist/commands/chunk-OVA7STGP.js +578 -0
  439. package/dist/commands/chunk-OWR2TCOY.js +269 -0
  440. package/dist/commands/chunk-OZZWRJQI.js +246 -0
  441. package/dist/commands/chunk-P4CWLRT2.js +213 -0
  442. package/dist/commands/chunk-P4D5RESF.js +88 -0
  443. package/dist/commands/chunk-P4KIQRSL.js +119 -0
  444. package/dist/commands/chunk-P4O67FP5.js +488 -0
  445. package/dist/commands/chunk-P6RGQXHI.js +391 -0
  446. package/dist/commands/chunk-P7FPXAHP.js +29 -0
  447. package/dist/commands/chunk-PBOS7MTW.js +6 -0
  448. package/dist/commands/chunk-PDAY76AN.js +47 -0
  449. package/dist/commands/chunk-PDDKRHHS.js +128 -0
  450. package/dist/commands/chunk-PE7B7242.js +84 -0
  451. package/dist/commands/chunk-PF22VUWB.js +723 -0
  452. package/dist/commands/chunk-PFO7EYAP.js +45 -0
  453. package/dist/commands/chunk-PR3JCPP7.js +126 -0
  454. package/dist/commands/chunk-PWYXY46Y.js +1150 -0
  455. package/dist/commands/chunk-PYOK73QE.js +44 -0
  456. package/dist/commands/chunk-PZ4ITSLG.js +80 -0
  457. package/dist/commands/chunk-PZ6VWHOO.js +144 -0
  458. package/dist/commands/chunk-PZTWQYRI.js +44 -0
  459. package/dist/commands/chunk-PZU6FZO6.js +17 -0
  460. package/dist/commands/chunk-Q3463XNL.js +198 -0
  461. package/dist/commands/chunk-Q5N2J2UF.js +78 -0
  462. package/dist/commands/chunk-Q5Q2QYVU.js +112 -0
  463. package/dist/commands/chunk-Q6SKKQVJ.js +34 -0
  464. package/dist/commands/chunk-Q7TV3OV6.js +218 -0
  465. package/dist/commands/chunk-QA22PBCJ.js +165 -0
  466. package/dist/commands/chunk-QAHFPCFR.js +50 -0
  467. package/dist/commands/chunk-QDFDB4CF.js +478 -0
  468. package/dist/commands/chunk-QEIO2ZNQ.js +324 -0
  469. package/dist/commands/chunk-QF4WC2AE.js +10 -0
  470. package/dist/commands/chunk-QGAERR7D.js +99 -0
  471. package/dist/commands/chunk-QHWJJ6X5.js +53 -0
  472. package/dist/commands/chunk-QQ4CIYMF.js +132 -0
  473. package/dist/commands/chunk-QQBMVC5W.js +227 -0
  474. package/dist/commands/chunk-QQZOQ7AM.js +32 -0
  475. package/dist/commands/chunk-QS5USD4T.js +540 -0
  476. package/dist/commands/chunk-QVOFWFWC.js +134 -0
  477. package/dist/commands/chunk-QWWTC3XR.js +109 -0
  478. package/dist/commands/chunk-QWX7EBC6.js +112 -0
  479. package/dist/commands/chunk-QX2R6UJG.js +15 -0
  480. package/dist/commands/chunk-QXQ56E56.js +27 -0
  481. package/dist/commands/chunk-R2CF6VZE.js +114 -0
  482. package/dist/commands/chunk-R6QE5VJG.js +46 -0
  483. package/dist/commands/chunk-R7IT5VOL.js +27 -0
  484. package/dist/commands/chunk-RBU2NKHF.js +44 -0
  485. package/dist/commands/chunk-RDRN56E4.js +92 -0
  486. package/dist/commands/chunk-REMKUFAC.js +304 -0
  487. package/dist/commands/chunk-REPANBLS.js +168 -0
  488. package/dist/commands/chunk-RGDFWJPZ.js +135 -0
  489. package/dist/commands/chunk-RGGEQM6G.js +140 -0
  490. package/dist/commands/chunk-RH6ZWJOA.js +77 -0
  491. package/dist/commands/chunk-RHII5XI6.js +492 -0
  492. package/dist/commands/chunk-RI7EQYKL.js +60 -0
  493. package/dist/commands/chunk-RINVPTA2.js +1310 -0
  494. package/dist/commands/chunk-RIQ75QWR.js +233 -0
  495. package/dist/commands/chunk-RIUPRMLW.js +63 -0
  496. package/dist/commands/chunk-RK4HE5NW.js +172 -0
  497. package/dist/commands/chunk-ROJXMBXP.js +85 -0
  498. package/dist/commands/chunk-RPDWFUQO.js +239 -0
  499. package/dist/commands/chunk-RQRLW4XK.js +20 -0
  500. package/dist/commands/chunk-RRQFITJE.js +40 -0
  501. package/dist/commands/chunk-RS764ZMU.js +46 -0
  502. package/dist/commands/chunk-RSSJWMQS.js +30 -0
  503. package/dist/commands/chunk-RUIBQMOV.js +38 -0
  504. package/dist/commands/chunk-RUWV4INF.js +245 -0
  505. package/dist/commands/chunk-RVHBWSIG.js +114 -0
  506. package/dist/commands/chunk-RVUJ6F5L.js +181 -0
  507. package/dist/commands/chunk-RX5JSPPH.js +1153 -0
  508. package/dist/commands/chunk-RXAZJMSZ.js +18 -0
  509. package/dist/commands/chunk-RY6ZDHKB.js +1218 -0
  510. package/dist/commands/chunk-RYZ3RQRH.js +16 -0
  511. package/dist/commands/chunk-RZ4OKKPM.js +1722 -0
  512. package/dist/commands/chunk-RZJAUVMI.js +69 -0
  513. package/dist/commands/chunk-S4X5PJV7.js +40 -0
  514. package/dist/commands/chunk-S6SXMBF2.js +66 -0
  515. package/dist/commands/chunk-S7XWXG4M.js +3893 -0
  516. package/dist/commands/chunk-SADJPNDB.js +67 -0
  517. package/dist/commands/chunk-SBGTCT2C.js +89 -0
  518. package/dist/commands/chunk-SFNBUB6D.js +110 -0
  519. package/dist/commands/chunk-SK2LJBFS.js +168 -0
  520. package/dist/commands/chunk-SNFLV7VV.js +45 -0
  521. package/dist/commands/chunk-SNO7CY2B.js +69 -0
  522. package/dist/commands/chunk-ST32OGPY.js +82 -0
  523. package/dist/commands/chunk-SV4FHQE7.js +995 -0
  524. package/dist/commands/chunk-SVAKCXZ7.js +44 -0
  525. package/dist/commands/chunk-SXULS6DX.js +112 -0
  526. package/dist/commands/chunk-T25S4QHL.js +52 -0
  527. package/dist/commands/chunk-T2E724HN.js +117 -0
  528. package/dist/commands/chunk-T2IO4LEB.js +285 -0
  529. package/dist/commands/chunk-T33QDAWD.js +16 -0
  530. package/dist/commands/chunk-T3FD3Q73.js +49 -0
  531. package/dist/commands/chunk-T4UYEHWG.js +50 -0
  532. package/dist/commands/chunk-T57W3UWK.js +88 -0
  533. package/dist/commands/chunk-TAPDXK34.js +48 -0
  534. package/dist/commands/chunk-TBIX5FRN.js +106 -0
  535. package/dist/commands/chunk-TBNQIFWL.js +101 -0
  536. package/dist/commands/chunk-TCBUX52E.js +701 -0
  537. package/dist/commands/chunk-TIXJY22D.js +90 -0
  538. package/dist/commands/chunk-TKGBF75Y.js +88 -0
  539. package/dist/commands/chunk-TMLNI3YW.js +95 -0
  540. package/dist/commands/chunk-TPKFVVJQ.js +125 -0
  541. package/dist/commands/chunk-TS4ZK46L.js +116 -0
  542. package/dist/commands/chunk-TUIFS5E7.js +72 -0
  543. package/dist/commands/chunk-TVJE67O2.js +179 -0
  544. package/dist/commands/chunk-TVZXG4Y4.js +197 -0
  545. package/dist/commands/chunk-TXXYC7EV.js +74 -0
  546. package/dist/commands/chunk-U2UH4VM4.js +229 -0
  547. package/dist/commands/chunk-U3IVVR4W.js +33 -0
  548. package/dist/commands/chunk-U5HQQWRE.js +20 -0
  549. package/dist/commands/chunk-U7XU5RG3.js +86 -0
  550. package/dist/commands/chunk-UCI4AL3Q.js +35 -0
  551. package/dist/commands/chunk-UCQJDYE3.js +21 -0
  552. package/dist/commands/chunk-UCUSCLEK.js +90 -0
  553. package/dist/commands/chunk-UEURNXE5.js +280 -0
  554. package/dist/commands/chunk-UGCUSRZF.js +17 -0
  555. package/dist/commands/chunk-UIWAMLQH.js +49 -0
  556. package/dist/commands/chunk-UJOZ2MGX.js +705 -0
  557. package/dist/commands/chunk-ULVVGGTY.js +64 -0
  558. package/dist/commands/chunk-UOAG2XQT.js +37 -0
  559. package/dist/commands/chunk-US6X7JXC.js +120 -0
  560. package/dist/commands/chunk-UTBVTCQN.js +7401 -0
  561. package/dist/commands/chunk-UU6GCJGM.js +56 -0
  562. package/dist/commands/chunk-UWLLZQJB.js +110 -0
  563. package/dist/commands/chunk-UZAU6UI6.js +33 -0
  564. package/dist/commands/chunk-V4Z7G4UH.js +73 -0
  565. package/dist/commands/chunk-V5FD7DVV.js +48 -0
  566. package/dist/commands/chunk-V5OIPYA6.js +109 -0
  567. package/dist/commands/chunk-VCR77BHO.js +8 -0
  568. package/dist/commands/chunk-VD5674LW.js +127 -0
  569. package/dist/commands/chunk-VD72V5VX.js +230 -0
  570. package/dist/commands/chunk-VDGNXSP3.js +174 -0
  571. package/dist/commands/chunk-VFJYOAOQ.js +339 -0
  572. package/dist/commands/chunk-VGHSZLYQ.js +85 -0
  573. package/dist/commands/chunk-VHRNXWVP.js +28 -0
  574. package/dist/commands/chunk-VJE3RJAX.js +23 -0
  575. package/dist/commands/chunk-VJLZ3IQQ.js +151 -0
  576. package/dist/commands/chunk-VTLL6CKO.js +269 -0
  577. package/dist/commands/chunk-VW5SGE7A.js +18 -0
  578. package/dist/commands/chunk-VZCQZFPH.js +378 -0
  579. package/dist/commands/chunk-VZHC2I3T.js +1208 -0
  580. package/dist/commands/chunk-VZSJCFRT.js +44 -0
  581. package/dist/commands/chunk-W2IA2LV3.js +15 -0
  582. package/dist/commands/chunk-W32DIQEP.js +43 -0
  583. package/dist/commands/chunk-W3FX7FYN.js +84 -0
  584. package/dist/commands/chunk-W47I2KDY.js +47 -0
  585. package/dist/commands/chunk-W4J6YTFE.js +74 -0
  586. package/dist/commands/chunk-W4YH2DF3.js +58 -0
  587. package/dist/commands/chunk-W6MVQEMO.js +109 -0
  588. package/dist/commands/chunk-W6V4DWC5.js +70 -0
  589. package/dist/commands/chunk-WG6GYBRJ.js +271 -0
  590. package/dist/commands/chunk-WGULS5DA.js +129 -0
  591. package/dist/commands/chunk-WIE7VUBE.js +122 -0
  592. package/dist/commands/chunk-WJ4NEDNI.js +288 -0
  593. package/dist/commands/chunk-WL5JHB3I.js +12 -0
  594. package/dist/commands/chunk-WMMGXJXP.js +92 -0
  595. package/dist/commands/chunk-WN7NK3NY.js +24 -0
  596. package/dist/commands/chunk-WOFLW2LX.js +26 -0
  597. package/dist/commands/chunk-WPAQUMHC.js +28 -0
  598. package/dist/commands/chunk-WQ6FS544.js +35 -0
  599. package/dist/commands/chunk-WQJ7O3C3.js +229 -0
  600. package/dist/commands/chunk-WRX3MINT.js +60 -0
  601. package/dist/commands/chunk-WSOF74K4.js +30 -0
  602. package/dist/commands/chunk-WTRDWEUQ.js +533 -0
  603. package/dist/commands/chunk-WVR4RUFP.js +327 -0
  604. package/dist/commands/chunk-WW3TX742.js +122 -0
  605. package/dist/commands/chunk-WWC5L3AO.js +177 -0
  606. package/dist/commands/chunk-X5XYKDOD.js +7 -0
  607. package/dist/commands/chunk-X7PN54LZ.js +143 -0
  608. package/dist/commands/chunk-XBRD2BDL.js +74 -0
  609. package/dist/commands/chunk-XDF25GSU.js +536 -0
  610. package/dist/commands/chunk-XDQOWUVT.js +51 -0
  611. package/dist/commands/chunk-XFPEUYDV.js +67 -0
  612. package/dist/commands/chunk-XGMRAKSL.js +85 -0
  613. package/dist/commands/chunk-XH6BGVVP.js +1639 -0
  614. package/dist/commands/chunk-XMBRXCIE.js +89 -0
  615. package/dist/commands/chunk-XSKB6ZUA.js +123 -0
  616. package/dist/commands/chunk-XXNEY4B3.js +110 -0
  617. package/dist/commands/chunk-XYAK53TK.js +443 -0
  618. package/dist/commands/chunk-Y2RNUX4W.js +8 -0
  619. package/dist/commands/chunk-Y5ZW3KN5.js +58 -0
  620. package/dist/commands/chunk-YGDNUTTI.js +120 -0
  621. package/dist/commands/chunk-YIA6FC3K.js +78 -0
  622. package/dist/commands/chunk-YPNTORQD.js +121 -0
  623. package/dist/commands/chunk-YT342DRV.js +143 -0
  624. package/dist/commands/chunk-YVH2OLDS.js +104 -0
  625. package/dist/commands/chunk-Z4HYBFZD.js +1160 -0
  626. package/dist/commands/chunk-ZA3W73PF.js +192 -0
  627. package/dist/commands/chunk-ZAAHZY2A.js +19 -0
  628. package/dist/commands/chunk-ZAJD6T6E.js +38 -0
  629. package/dist/commands/chunk-ZBFNQUY7.js +12 -0
  630. package/dist/commands/chunk-ZDSDPKCD.js +88 -0
  631. package/dist/commands/chunk-ZECFKW7D.js +60 -0
  632. package/dist/commands/chunk-ZHZSZNE2.js +173 -0
  633. package/dist/commands/chunk-ZNX2LJCQ.js +29 -0
  634. package/dist/commands/chunk-ZQ3CKRMP.js +99 -0
  635. package/dist/commands/chunk-ZVAIIHBE.js +63 -0
  636. package/dist/commands/chunk-ZYGOZT4J.js +39 -0
  637. package/dist/commands/chunk-ZYIMQHCB.js +81 -0
  638. package/dist/commands/chunk-ZZAH3YQP.js +170 -0
  639. package/dist/commands/ci-timing-cli.js +76 -0
  640. package/dist/commands/clone-scan-cli.js +189 -0
  641. package/dist/commands/code-symbol-cli.js +185 -0
  642. package/dist/commands/codex-hook-adapter.js +357 -0
  643. package/dist/commands/command-derive.js +802 -0
  644. package/dist/commands/cost-audit-main.js +207 -0
  645. package/dist/commands/cost-main.js +28 -0
  646. package/dist/commands/cspell-cached.js +158 -0
  647. package/dist/commands/defect-origin-main.js +221 -0
  648. package/dist/commands/defect-report-main.js +288 -0
  649. package/dist/commands/delegation-cli.js +65 -0
  650. package/dist/commands/diff-summary-cli.js +147 -0
  651. package/dist/commands/disposition-cli.js +408 -0
  652. package/dist/commands/doctor.js +267 -0
  653. package/dist/commands/document-read-cli.js +39 -844
  654. package/dist/commands/document-section-main.js +26 -835
  655. package/dist/commands/dogfood-commit-cli.js +102 -0
  656. package/dist/commands/e2e-retry-check.js +79 -0
  657. package/dist/commands/edit-files-cli.js +147 -0
  658. package/dist/commands/effect-audit-cli.js +319 -0
  659. package/dist/commands/epic-audit-main.js +158 -0
  660. package/dist/commands/epic-bundle-main.js +199 -0
  661. package/dist/commands/epic-check.js +90 -0
  662. package/dist/commands/epic-main.js +222 -0
  663. package/dist/commands/epic-next-main.js +157 -0
  664. package/dist/commands/eval-run.js +838 -0
  665. package/dist/commands/fanout-cli.js +86 -0
  666. package/dist/commands/format-edited-cli.js +120 -0
  667. package/dist/commands/format.js +139 -0
  668. package/dist/commands/fresh-machine-cli.js +691 -0
  669. package/dist/commands/gh-usage-cli.js +224 -0
  670. package/dist/commands/git-followup-workflow.js +2012 -0
  671. package/dist/commands/git-gh-checks-failed-main.js +156 -0
  672. package/dist/commands/git-workflow.js +602 -0
  673. package/dist/commands/github-release-cli.js +253 -0
  674. package/dist/commands/hook-ledger-cli.js +416 -0
  675. package/dist/commands/init-main.js +98 -0
  676. package/dist/commands/inputs.json +2764 -0
  677. package/dist/commands/issue-ack-cli.js +106 -0
  678. package/dist/commands/issue-already-done-cli.js +305 -0
  679. package/dist/commands/issue-body-cli.js +184 -0
  680. package/dist/commands/issue-cite-main.js +162 -0
  681. package/dist/commands/issue-comment-main.js +72 -0
  682. package/dist/commands/issue-consolidate-cli.js +329 -0
  683. package/dist/commands/issue-file-main.js +419 -0
  684. package/dist/commands/issue-fold-existing-cli.js +506 -0
  685. package/dist/commands/issue-fold-main.js +113 -0
  686. package/dist/commands/issue-lint-main.js +126 -0
  687. package/dist/commands/issue-measured-cli.js +205 -0
  688. package/dist/commands/issue-plan-cli.js +352 -0
  689. package/dist/commands/issue-premise-unmet-cli.js +268 -0
  690. package/dist/commands/issue-priority-cli.js +184 -0
  691. package/dist/commands/issue-read-main.js +79 -0
  692. package/dist/commands/issue-release-class-cli.js +119 -0
  693. package/dist/commands/issue-release-main.js +71 -0
  694. package/dist/commands/issue-scout-main.js +203 -0
  695. package/dist/commands/issue-spill-main.js +564 -0
  696. package/dist/commands/issue-state-main.js +76 -0
  697. package/dist/commands/issue-tick-cli.js +112 -0
  698. package/dist/commands/josh-completion.js +153 -0
  699. package/dist/commands/lane-adopt-cli.js +275 -0
  700. package/dist/commands/lane-breakdown-cli.js +703 -0
  701. package/dist/commands/lane-cli.js +863 -0
  702. package/dist/commands/lane-launch-main.js +103 -0
  703. package/dist/commands/lane-limit-cli.js +286 -0
  704. package/dist/commands/lane-measure-cli.js +1797 -0
  705. package/dist/commands/lane-pause-cli.js +255 -0
  706. package/dist/commands/lane-plan-cli.js +322 -0
  707. package/dist/commands/lane-resolve-cli.js +300 -0
  708. package/dist/commands/lane-restart-cli.js +387 -0
  709. package/dist/commands/lane-why-cli.js +307 -0
  710. package/dist/commands/lane-withdraw-cli.js +191 -0
  711. package/dist/commands/latest-corepack.js +278 -0
  712. package/dist/commands/latest-if-required-cli.js +124 -0
  713. package/dist/commands/latest-lane-guard-main.js +16 -0
  714. package/dist/commands/latest-scope-main.js +38 -0
  715. package/dist/commands/latest-update.js +449 -0
  716. package/dist/commands/lines-command.js +121 -0
  717. package/dist/commands/lint-parallel-main.js +134 -0
  718. package/dist/commands/lint-related.js +565 -0
  719. package/dist/commands/lint-rule.js +305 -0
  720. package/dist/commands/lockfile-policy.js +107 -0
  721. package/dist/commands/main-merge-main.js +61 -0
  722. package/dist/commands/main-sync-main.js +60 -0
  723. package/dist/commands/managed-config-scope-cli.js +66 -0
  724. package/dist/commands/measure-rerun-cli.js +124 -0
  725. package/dist/commands/metrics-command.js +859 -0
  726. package/dist/commands/observation-depth-cli.js +109 -0
  727. package/dist/commands/observation-record-cli.js +87 -0
  728. package/dist/commands/observations-flush-cli.js +115 -0
  729. package/dist/commands/oracle-list-cli.js +73 -0
  730. package/dist/commands/overrides-check.js +112 -0
  731. package/dist/commands/package-scout-cli.js +496 -0
  732. package/dist/commands/pin-verify-cli.js +88 -0
  733. package/dist/commands/plan-consumers-main.js +49 -0
  734. package/dist/commands/plan-scaffold-cli.js +367 -0
  735. package/dist/commands/port-command.js +64 -0
  736. package/dist/commands/pr-classification-main.js +37 -0
  737. package/dist/commands/pre-commit-lint.js +163 -0
  738. package/dist/commands/pre-commit-type-check.js +210 -0
  739. package/dist/commands/pre-push-unit.js +271 -0
  740. package/dist/commands/pretool-guard-cli.js +205 -0
  741. package/dist/commands/prevent-main-commit.js +42 -0
  742. package/dist/commands/project-profile-cli.js +58 -0
  743. package/dist/commands/propagate.js +368 -0
  744. package/dist/commands/prose-stale-cli.js +128 -0
  745. package/dist/commands/publish-tag-cli.js +30 -0
  746. package/dist/commands/publishable-range-check.js +191 -0
  747. package/dist/commands/read-files-cli.js +81 -0
  748. package/dist/commands/read-set-cli.js +121 -1745
  749. package/dist/commands/reconcile-templates.js +135 -0
  750. package/dist/commands/refactor-scan-cli.js +175 -0
  751. package/dist/commands/release-cli.js +724 -0
  752. package/dist/commands/release-scope-main.js +81 -0
  753. package/dist/commands/rename-cli.js +432 -0
  754. package/dist/commands/repo-party-cli.js +58 -0
  755. package/dist/commands/report-lint-cli.js +124 -0
  756. package/dist/commands/report-template-cli.js +69 -0
  757. package/dist/commands/reserved-run.js +127 -0
  758. package/dist/commands/retrospective-cli.js +555 -0
  759. package/dist/commands/review-attest-cli.js +118 -0
  760. package/dist/commands/review-brief-main.js +247 -0
  761. package/dist/commands/review-findings-cli.js +114 -0
  762. package/dist/commands/review-pair-cli.js +366 -0
  763. package/dist/commands/review-record-main.js +222 -0
  764. package/dist/commands/review-round2-cli.js +349 -0
  765. package/dist/commands/review-stops-cli.js +149 -0
  766. package/dist/commands/review-submit-cli.js +610 -0
  767. package/dist/commands/rule-list.js +184 -0
  768. package/dist/commands/rule-value-cli.js +908 -0
  769. package/dist/commands/ruleset-check-cli.js +67 -0
  770. package/dist/commands/run-add-cli.js +273 -0
  771. package/dist/commands/run-board-main.js +272 -0
  772. package/dist/commands/run-carry-cli.js +641 -0
  773. package/dist/commands/run-chain-cli.js +537 -0
  774. package/dist/commands/run-cut-cli.js +709 -0
  775. package/dist/commands/run-ending-cli.js +169 -0
  776. package/dist/commands/run-entry-cli.js +1060 -0
  777. package/dist/commands/run-event-cli.js +298 -0
  778. package/dist/commands/run-handoff-cli.js +344 -0
  779. package/dist/commands/run-handoff-lanes-cli.js +233 -0
  780. package/dist/commands/run-hold-main.js +203 -0
  781. package/dist/commands/run-liveness-cli.js +190 -0
  782. package/dist/commands/run-merge-main.js +246 -0
  783. package/dist/commands/run-next-cli.js +240 -0
  784. package/dist/commands/run-park-cli.js +393 -0
  785. package/dist/commands/run-pause-cli.js +334 -0
  786. package/dist/commands/run-pickup-cli.js +196 -0
  787. package/dist/commands/run-prep-main.js +209 -21168
  788. package/dist/commands/run-prime-cli.js +281 -0
  789. package/dist/commands/run-progress-main.js +655 -0
  790. package/dist/commands/run-report-cli.js +376 -0
  791. package/dist/commands/run-review-cli.js +777 -0
  792. package/dist/commands/run-ship-cli.js +2615 -0
  793. package/dist/commands/run-ship-evidence-cli.js +288 -0
  794. package/dist/commands/run-ship-lap-W5T2VHFC.js +30 -0
  795. package/dist/commands/run-ship-wait-main.js +145 -0
  796. package/dist/commands/run-split-cli.js +525 -0
  797. package/dist/commands/run-stale-main.js +254 -0
  798. package/dist/commands/run-status-cli.js +216 -0
  799. package/dist/commands/run-step-cli.js +419 -27653
  800. package/dist/commands/run-tail-cli.js +119 -0
  801. package/dist/commands/run-tidy-main.js +402 -0
  802. package/dist/commands/run-wake-main.js +272 -0
  803. package/dist/commands/run-watcher-guard-cli.js +128 -0
  804. package/dist/commands/secretlint-scan.js +84 -0
  805. package/dist/commands/security-audit-main.js +151 -0
  806. package/dist/commands/security-audit-provision-main.js +52 -0
  807. package/dist/commands/selfcheck-cli.js +409 -0
  808. package/dist/commands/session-language-main.js +120 -0
  809. package/dist/commands/sonar-hotspots-cli.js +133 -0
  810. package/dist/commands/sonar-new-code-cli.js +143 -0
  811. package/dist/commands/split-assess-cli.js +138 -0
  812. package/dist/commands/split-child-recover-cli.js +168 -0
  813. package/dist/commands/start.js +707 -0
  814. package/dist/commands/stash-pop-main.js +26 -0
  815. package/dist/commands/stash-push-main.js +30 -0
  816. package/dist/commands/stop-guard.js +567 -0
  817. package/dist/commands/sync-main.js +57 -0
  818. package/dist/commands/telegram-test-main.js +64 -0
  819. package/dist/commands/test-declared.js +255 -0
  820. package/dist/commands/test-e2e-guard.js +200 -0
  821. package/dist/commands/test-pinned-main.js +189 -0
  822. package/dist/commands/test-reach-cli.js +111 -0
  823. package/dist/commands/test-red-main.js +46 -0
  824. package/dist/commands/test-related-ZT2AO62I.js +113 -0
  825. package/dist/commands/test-related-main.js +223 -0
  826. package/dist/commands/test-unit-guard-main.js +87 -0
  827. package/dist/commands/time-cli.js +356 -0
  828. package/dist/commands/time-density-cli.js +183 -0
  829. package/dist/commands/tree-status-cli.js +172 -0
  830. package/dist/commands/type-check-command.js +74 -0
  831. package/dist/commands/ui-routes-cli.js +135 -0
  832. package/dist/commands/ui-shot-cli.js +131 -0
  833. package/dist/commands/uninstall.js +424 -0
  834. package/dist/commands/unused-members-STULPRBU.js +331 -0
  835. package/dist/commands/unused-members-cli.js +54 -0
  836. package/dist/commands/upstream-interrupt-main.js +449 -0
  837. package/dist/commands/usage-tee-cli.js +60 -0
  838. package/dist/commands/verification-gate.js +808 -0
  839. package/dist/commands/version-check.js +497 -0
  840. package/dist/hooks/audit-provision.js +20 -9
  841. package/dist/hooks/{chunk-UJ3FPMMM.js → chunk-4YXV2REH.js} +444 -141
  842. package/dist/hooks/chunk-6RR6JZSB.js +12367 -0
  843. package/dist/hooks/chunk-6YGMIODI.js +86 -0
  844. package/dist/hooks/chunk-CICKRHTB.js +7586 -0
  845. package/dist/hooks/chunk-CY3ADSDR.js +28580 -0
  846. package/dist/hooks/chunk-FOW4B7OQ.js +1795 -0
  847. package/dist/hooks/chunk-LKQBEKBI.js +232 -0
  848. package/dist/hooks/chunk-LRD2ERRI.js +299 -0
  849. package/dist/hooks/chunk-LWD43Z3C.js +6793 -0
  850. package/dist/hooks/chunk-NUPVO7RI.js +3054 -0
  851. package/dist/hooks/chunk-P7BPAU26.js +1082 -0
  852. package/dist/hooks/chunk-RQXECHAS.js +309 -0
  853. package/dist/hooks/chunk-SAAPRHTK.js +43 -0
  854. package/dist/hooks/chunk-U3ON2GBN.js +12 -0
  855. package/dist/hooks/{chunk-CQD4LJE6.js → chunk-UU4PTPEZ.js} +3143 -1257
  856. package/dist/hooks/chunk-YEURBB4L.js +32 -0
  857. package/dist/hooks/codex-hook-adapter.js +61 -25
  858. package/dist/hooks/daemon.js +67304 -0
  859. package/dist/hooks/format-edited.js +15 -5
  860. package/dist/hooks/inputs.json +584 -401
  861. package/dist/hooks/pretool-guard.js +11 -7
  862. package/dist/hooks/ready.js +300 -0
  863. package/dist/hooks/run-ship-lap-VCEOUHQI.js +8 -0
  864. package/dist/hooks/session-lang.js +226 -121
  865. package/dist/hooks/stop-guard.js +9188 -4508
  866. package/dist/inputs.json +169 -0
  867. package/dist/josh.js +9617 -6711
  868. package/dist/self-sync-guard/index.js +68 -14
  869. package/dist/version/index.js +642 -85
  870. package/eslint/base.js +36 -11
  871. package/eslint/config-fingerprint.js +164 -21
  872. package/eslint/rules/code-quality.js +6 -0
  873. package/eslint/rules/comment-why-only.js +40 -16
  874. package/eslint/rules/english-only-prose.js +10 -3
  875. package/eslint/rules/import.js +3 -17
  876. package/eslint/rules/test-helper-bans.js +34 -0
  877. package/eslint/untyped-environment.js +21 -0
  878. package/eslint/untyped.js +60 -0
  879. package/lefthook/base.yml +4 -5
  880. package/package.json +15 -13
  881. package/pnpm-workspace.yaml +15 -0
  882. package/ports/index.js +8 -15
  883. package/prompts/coding-standards.md +4 -43
  884. package/prompts/collaboration-workflow/file-edits.md +10 -10
  885. package/prompts/collaboration-workflow/gh-rest.md +14 -7
  886. package/prompts/collaboration-workflow/issue-template.en.md +125 -0
  887. package/prompts/collaboration-workflow/issue-template.md +49 -56
  888. package/prompts/collaboration-workflow/lane-instructions.md +1 -0
  889. package/prompts/collaboration-workflow/measurement.md +13 -17
  890. package/prompts/collaboration-workflow/operating-rules.md +10 -7
  891. package/prompts/collaboration-workflow/output-bounds.md +3 -3
  892. package/prompts/collaboration-workflow/overview.md +8 -17
  893. package/prompts/collaboration-workflow/plan-comment.md +1 -1
  894. package/prompts/collaboration-workflow/principles.md +17 -19
  895. package/prompts/collaboration-workflow/report-format.md +6 -5
  896. package/prompts/collaboration-workflow/residency.md +1 -0
  897. package/prompts/collaboration-workflow/rule-delivery.md +4 -12
  898. package/prompts/collaboration-workflow/shell-body.md +7 -7
  899. package/prompts/collaboration-workflow/turn-batching.md +2 -2
  900. package/prompts/collaboration-workflow/upstream-interrupt.md +8 -8
  901. package/prompts/collaboration-workflow/wip-cap.md +3 -3
  902. package/prompts/refactoring.md +4 -3
  903. package/prompts/review-rubric.md +8 -21
  904. package/prompts/review.md +52 -80
  905. package/prompts/sonar-hotspot-handling.md +1 -1
  906. package/prompts/testing-guide.md +15 -2
  907. package/scripts/agent/agent-argv.ts +11 -4
  908. package/scripts/agent/agent-consultation-model.ts +47 -0
  909. package/scripts/agent/agent-event.ts +11 -2
  910. package/scripts/agent/agent-launch-environment.ts +6 -57
  911. package/scripts/agent/agent-model-alias.ts +19 -0
  912. package/scripts/agent/agent-profile-schema.ts +98 -0
  913. package/scripts/agent/agent-role-profile.ts +105 -82
  914. package/scripts/agent/agent-safe-text.ts +2 -2
  915. package/scripts/agent/agent-session-role.ts +25 -3
  916. package/scripts/agent/answer-judge.ts +174 -0
  917. package/scripts/agent/answer-verdict.ts +122 -0
  918. package/scripts/agent/claude-agent-argv.ts +12 -6
  919. package/scripts/agent/codex-agent-argv.ts +17 -143
  920. package/scripts/agent/codex-home-source.ts +1 -1
  921. package/scripts/agent/codex-hooks.ts +29 -6
  922. package/scripts/agent/judgment-agent-argv.ts +49 -0
  923. package/scripts/agent/lane-instructions.ts +4 -1
  924. package/scripts/auto-ok/auto-ok-author.ts +14 -3
  925. package/scripts/auto-ok/auto-ok-cli.ts +20 -12
  926. package/scripts/auto-ok/auto-ok-judge-cli.ts +7 -14
  927. package/scripts/auto-ok/auto-ok-judge-read.ts +3 -3
  928. package/scripts/auto-ok/auto-ok-judge-write.ts +18 -16
  929. package/scripts/backlog/backlog-arrival-added.ts +47 -11
  930. package/scripts/backlog/backlog-arrival.ts +90 -23
  931. package/scripts/backlog/backlog-auto-triage.ts +130 -0
  932. package/scripts/backlog/backlog-budget-cli.ts +2 -1
  933. package/scripts/backlog/backlog-budget.ts +31 -5
  934. package/scripts/backlog/backlog-defect-priority.ts +32 -19
  935. package/scripts/backlog/backlog-drain-flush.ts +22 -0
  936. package/scripts/backlog/backlog-drive-adopt.ts +2 -2
  937. package/scripts/backlog/backlog-drive-after-merge.ts +123 -0
  938. package/scripts/backlog/backlog-drive-args.ts +60 -7
  939. package/scripts/backlog/backlog-drive-cli.ts +69 -64
  940. package/scripts/backlog/backlog-drive-collect.ts +46 -0
  941. package/scripts/backlog/backlog-drive-epic.ts +1 -1
  942. package/scripts/backlog/backlog-drive-hold.ts +32 -8
  943. package/scripts/backlog/backlog-drive-idle.ts +21 -10
  944. package/scripts/backlog/backlog-drive-launch-pass.ts +79 -23
  945. package/scripts/backlog/backlog-drive-launch.ts +73 -7
  946. package/scripts/backlog/backlog-drive-listing.ts +59 -0
  947. package/scripts/backlog/backlog-drive-memory.ts +4 -5
  948. package/scripts/backlog/backlog-drive-named-offer.ts +112 -22
  949. package/scripts/backlog/backlog-drive-named.ts +11 -4
  950. package/scripts/backlog/backlog-drive-offer-argv.ts +10 -2
  951. package/scripts/backlog/backlog-drive-park-triage.ts +57 -0
  952. package/scripts/backlog/backlog-drive-paused.ts +2 -1
  953. package/scripts/backlog/backlog-drive-rate-limit.ts +29 -0
  954. package/scripts/backlog/backlog-drive-rate.ts +73 -0
  955. package/scripts/backlog/backlog-drive-record.ts +58 -0
  956. package/scripts/backlog/backlog-drive-restore.ts +38 -8
  957. package/scripts/backlog/backlog-drive-retrospective-unit.ts +80 -0
  958. package/scripts/backlog/backlog-drive-retrospective.ts +35 -1
  959. package/scripts/backlog/backlog-drive-retry.ts +85 -0
  960. package/scripts/backlog/backlog-drive-seats.ts +4 -7
  961. package/scripts/backlog/backlog-drive-split-unit.ts +108 -0
  962. package/scripts/backlog/backlog-drive-stalled-retry.ts +194 -0
  963. package/scripts/backlog/backlog-drive-state.ts +28 -0
  964. package/scripts/backlog/backlog-drive-tick.ts +77 -0
  965. package/scripts/backlog/backlog-drive-token-handling.ts +2 -2
  966. package/scripts/backlog/backlog-drive-trace.ts +45 -0
  967. package/scripts/backlog/backlog-drive-unit.ts +54 -0
  968. package/scripts/backlog/backlog-drive-unread.ts +1 -1
  969. package/scripts/backlog/backlog-drive.ts +142 -99
  970. package/scripts/backlog/backlog-gate-scope.ts +15 -3
  971. package/scripts/backlog/backlog-hold-codes.ts +23 -0
  972. package/scripts/backlog/backlog-hold-text.ts +107 -0
  973. package/scripts/backlog/backlog-measure-close.ts +61 -31
  974. package/scripts/backlog/backlog-named.ts +1 -1
  975. package/scripts/backlog/backlog-next-offer.ts +138 -0
  976. package/scripts/backlog/backlog-next-report.ts +221 -0
  977. package/scripts/backlog/backlog-next-shared.ts +22 -4
  978. package/scripts/backlog/backlog-next-size.ts +108 -0
  979. package/scripts/backlog/backlog-next.ts +52 -187
  980. package/scripts/backlog/backlog-occupied.ts +7 -7
  981. package/scripts/backlog/backlog-offer-cli.ts +13 -2
  982. package/scripts/backlog/backlog-offer-timing.ts +141 -0
  983. package/scripts/backlog/backlog-offer.ts +26 -6
  984. package/scripts/backlog/backlog-overlap.ts +7 -1
  985. package/scripts/backlog/backlog-plan-cli.ts +27 -3
  986. package/scripts/backlog/backlog-plan-comment.ts +36 -14
  987. package/scripts/backlog/backlog-plan-words.ts +69 -0
  988. package/scripts/backlog/backlog-plan.ts +63 -46
  989. package/scripts/backlog/backlog-pool.ts +42 -13
  990. package/scripts/backlog/backlog-preflight.ts +67 -0
  991. package/scripts/backlog/backlog-ready.ts +7 -69
  992. package/scripts/backlog/backlog-resumable.ts +65 -0
  993. package/scripts/backlog/backlog-resume-reads.ts +119 -0
  994. package/scripts/backlog/backlog-stalled-detect.ts +4 -3
  995. package/scripts/backlog/backlog-stalled.ts +3 -2
  996. package/scripts/backlog/backlog-triage-adopt.ts +239 -0
  997. package/scripts/backlog/backlog-triage-approval.ts +94 -0
  998. package/scripts/backlog/backlog-triage-cli.ts +270 -0
  999. package/scripts/backlog/backlog-triage-decision.ts +49 -0
  1000. package/scripts/backlog/backlog-triage-park.ts +53 -0
  1001. package/scripts/backlog/backlog-triage-pass.ts +113 -0
  1002. package/scripts/backlog/backlog-triage-unblock.ts +68 -0
  1003. package/scripts/backlog/backlog-wait-cause.ts +76 -16
  1004. package/scripts/backlog/backlog-yield-cap.ts +108 -0
  1005. package/scripts/backlog/backlogrun-args.ts +45 -16
  1006. package/scripts/backlog/backlogrun-cli.ts +82 -18
  1007. package/scripts/backlog/backlogrun-launch.ts +12 -4
  1008. package/scripts/backlog/backlogrun-replace.ts +44 -4
  1009. package/scripts/build/build-bin.ts +25 -2
  1010. package/scripts/build/build-codex-hooks.ts +2 -2
  1011. package/scripts/build/build-commands.ts +27 -19
  1012. package/scripts/build/build-hooks.ts +117 -22
  1013. package/scripts/build/hook-bundle-stamp.ts +15 -5
  1014. package/scripts/build/local-bin.ts +27 -1
  1015. package/scripts/build/source-location.ts +82 -0
  1016. package/scripts/ci/ci-timing-cli.ts +73 -0
  1017. package/scripts/ci/ci-timing-table.ts +84 -0
  1018. package/scripts/ci/ci-timing.ts +104 -0
  1019. package/scripts/ci/composite-actions.ts +1 -1
  1020. package/scripts/ci/pr-classification.ts +89 -11
  1021. package/scripts/code/code-symbol-cli.ts +121 -0
  1022. package/scripts/code/code-symbol.ts +127 -0
  1023. package/scripts/config-merge/patch-json-key.ts +4 -7
  1024. package/scripts/cost-runtime/cost-blocks.ts +3 -4
  1025. package/scripts/cost-runtime/cost-cli.ts +4 -7
  1026. package/scripts/cost-runtime/cost-pricing.ts +2 -2
  1027. package/scripts/cost-runtime/cost-tokens.ts +7 -6
  1028. package/scripts/delegation/delegation-policy.ts +2 -2
  1029. package/scripts/delegation/duplicate-read-guard.ts +41 -28
  1030. package/scripts/delegation/investigation-guard.ts +13 -5
  1031. package/scripts/delegation/investigation-reads.ts +52 -34
  1032. package/scripts/delegation/large-read-guard.ts +150 -0
  1033. package/scripts/discovery/git-directory.ts +61 -0
  1034. package/scripts/discovery/pin-verify-cli.ts +115 -0
  1035. package/scripts/discovery/repo-discovery.ts +10 -58
  1036. package/scripts/discovery/repo-party.ts +1 -0
  1037. package/scripts/document/backlogrun-parent-read-set.ts +37 -6
  1038. package/scripts/document/capped-print.ts +3 -3
  1039. package/scripts/document/command-reference-line-budget.ts +4 -1
  1040. package/scripts/document/document-byte-budget.ts +34 -16
  1041. package/scripts/document/document-byte-check.ts +1 -1
  1042. package/scripts/document/document-reachability.ts +4 -3
  1043. package/scripts/document/document-scan.ts +2 -5
  1044. package/scripts/document/document-section-cli.ts +13 -1
  1045. package/scripts/document/edit-files-cli.ts +3 -7
  1046. package/scripts/document/entry-read-budget.ts +12 -4
  1047. package/scripts/document/entry-read-set.ts +9 -2
  1048. package/scripts/document/issue-citation-budget.ts +3 -3
  1049. package/scripts/document/lane-child-read-set.ts +21 -29
  1050. package/scripts/document/read-set-cli.ts +17 -10
  1051. package/scripts/document/read-set-point-of-use.ts +13 -9
  1052. package/scripts/document/read-set-trim.ts +42 -2
  1053. package/scripts/epic/epic-audit-checks.ts +1 -1
  1054. package/scripts/epic/epic-audit-cli.ts +19 -21
  1055. package/scripts/epic/epic-audit-main.ts +17 -0
  1056. package/scripts/epic/epic-audit-orphans.ts +1 -1
  1057. package/scripts/epic/epic-audit.ts +6 -3
  1058. package/scripts/epic/epic-blocked-by.ts +198 -0
  1059. package/scripts/epic/epic-body.ts +6 -6
  1060. package/scripts/epic/epic-bundle-apply.ts +41 -10
  1061. package/scripts/epic/epic-bundle-cli.ts +40 -99
  1062. package/scripts/epic/epic-bundle-evidence.ts +2 -2
  1063. package/scripts/epic/epic-bundle-format.ts +21 -7
  1064. package/scripts/epic/epic-bundle-recommend.ts +56 -0
  1065. package/scripts/epic/epic-bundle-referenced.ts +42 -17
  1066. package/scripts/epic/epic-bundle.ts +31 -4
  1067. package/scripts/epic/epic-busy.ts +11 -9
  1068. package/scripts/epic/epic-chains.ts +59 -23
  1069. package/scripts/epic/epic-child-source.ts +111 -0
  1070. package/scripts/epic/epic-cli-untrack.ts +38 -0
  1071. package/scripts/epic/epic-cli.ts +26 -7
  1072. package/scripts/epic/epic-close-comment.ts +4 -2
  1073. package/scripts/epic/epic-close.ts +25 -11
  1074. package/scripts/epic/epic-decide.ts +39 -3
  1075. package/scripts/epic/epic-fetch.ts +116 -24
  1076. package/scripts/epic/epic-graph.ts +1 -0
  1077. package/scripts/epic/epic-label-age.ts +55 -13
  1078. package/scripts/epic/epic-lane-occupancy.ts +75 -0
  1079. package/scripts/epic/epic-lane-offer.ts +49 -13
  1080. package/scripts/epic/epic-main.ts +23 -0
  1081. package/scripts/epic/epic-next-main.ts +2 -4
  1082. package/scripts/epic/epic-next-read.ts +12 -3
  1083. package/scripts/epic/epic-next-views.ts +1 -1
  1084. package/scripts/epic/epic-notify.ts +72 -0
  1085. package/scripts/epic/epic-parse.ts +1 -1
  1086. package/scripts/epic/epic-rank.ts +6 -2
  1087. package/scripts/epic/epic-reference.ts +1 -1
  1088. package/scripts/epic/epic-run.ts +14 -1
  1089. package/scripts/epic/epic-shape.ts +2 -2
  1090. package/scripts/epic/epic-solo-stale.ts +1 -1
  1091. package/scripts/epic/epic-solo.ts +11 -5
  1092. package/scripts/epic/epic-split-reach.ts +107 -0
  1093. package/scripts/epic/epic-triage.ts +29 -5
  1094. package/scripts/epic/epic-untrack-plan.ts +75 -0
  1095. package/scripts/epic/epic-untrack.ts +42 -0
  1096. package/scripts/epic/epic.ts +65 -31
  1097. package/scripts/followup/followup-check-report.ts +70 -0
  1098. package/scripts/followup/followup-ci-path.ts +27 -7
  1099. package/scripts/followup/followup-coderabbit-retrigger.ts +61 -23
  1100. package/scripts/followup/followup-failed-tests.ts +4 -0
  1101. package/scripts/followup/followup-human-merge.ts +109 -0
  1102. package/scripts/followup/followup-job-needs.ts +92 -14
  1103. package/scripts/followup/followup-job-rerun.ts +162 -43
  1104. package/scripts/followup/followup-run-rerun.ts +183 -0
  1105. package/scripts/followup/followup-section.ts +30 -0
  1106. package/scripts/followup/followup-ship-environment.ts +17 -0
  1107. package/scripts/followup/git-followup-finish.ts +52 -1
  1108. package/scripts/followup/git-followup-flush.ts +6 -8
  1109. package/scripts/followup/git-followup-stages.ts +3 -0
  1110. package/scripts/followup/git-followup-workflow.ts +29 -9
  1111. package/scripts/followup/git-pr-followup-checks.ts +65 -8
  1112. package/scripts/followup/git-pr-followup-wrapup.ts +11 -9
  1113. package/scripts/followup/git-pr-followup.ts +18 -12
  1114. package/scripts/fresh-machine/fresh-machine-cli.ts +2 -1
  1115. package/scripts/fresh-machine/fresh-machine-image.ts +3 -1
  1116. package/scripts/fresh-machine/fresh-machine-patterns.ts +25 -4
  1117. package/scripts/fresh-machine/fresh-machine-registry.ts +85 -0
  1118. package/scripts/fresh-machine/fresh-machine-script.ts +3 -1
  1119. package/scripts/fresh-machine/fresh-machine-spec.ts +2 -2
  1120. package/scripts/fresh-machine/specs/kit-test-backlogrun-python.json +0 -1
  1121. package/scripts/fresh-machine/specs/kit-test-backlogrun.json +0 -1
  1122. package/scripts/gate/busy-average.ts +26 -3
  1123. package/scripts/gate/change-scope-action.ts +101 -0
  1124. package/scripts/gate/check-inputs.ts +1 -1
  1125. package/scripts/gate/check-related-order.ts +65 -0
  1126. package/scripts/gate/check-related-pinned.ts +3 -2
  1127. package/scripts/gate/check-related-reuse.ts +34 -6
  1128. package/scripts/gate/check-related-section.ts +8 -1
  1129. package/scripts/gate/check-related-unplanned.ts +11 -1
  1130. package/scripts/gate/check-related.ts +122 -34
  1131. package/scripts/gate/check-reuse.ts +63 -31
  1132. package/scripts/gate/command-memory.ts +10 -4
  1133. package/scripts/gate/core-admission.ts +34 -8
  1134. package/scripts/gate/core-budget.ts +55 -65
  1135. package/scripts/gate/core-priority.ts +28 -0
  1136. package/scripts/gate/core-reservation.ts +85 -0
  1137. package/scripts/gate/core-wait.ts +90 -19
  1138. package/scripts/gate/core-weights.ts +25 -16
  1139. package/scripts/gate/gate-checks.ts +196 -0
  1140. package/scripts/gate/gate-labels.ts +4 -0
  1141. package/scripts/gate/gate-plan.ts +34 -164
  1142. package/scripts/gate/gate-report.ts +14 -10
  1143. package/scripts/gate/gate-run-steps.ts +38 -6
  1144. package/scripts/gate/gate-skip.ts +1 -1
  1145. package/scripts/gate/gate-static-group.ts +35 -6
  1146. package/scripts/gate/machine-capacity.ts +20 -25
  1147. package/scripts/gate/metrics-totals.ts +30 -4
  1148. package/scripts/gate/path-glob.ts +15 -0
  1149. package/scripts/gate/pre-commit-type-check.ts +2 -6
  1150. package/scripts/gate/project-checks.ts +33 -2
  1151. package/scripts/gate/project-gate-steps.ts +206 -0
  1152. package/scripts/gate/project-step-reuse.ts +69 -0
  1153. package/scripts/gate/scoped-green.ts +10 -4
  1154. package/scripts/gate/since-green.ts +76 -20
  1155. package/scripts/gate/tree-verdict.ts +111 -0
  1156. package/scripts/gate/tsc-arguments.ts +9 -0
  1157. package/scripts/gate/type-check-command.ts +4 -7
  1158. package/scripts/gate/type-check-step.ts +4 -1
  1159. package/scripts/gate/type-program-serial.ts +52 -0
  1160. package/scripts/gate/verification-gate.ts +47 -17
  1161. package/scripts/gate/verification-inputs.ts +46 -11
  1162. package/scripts/gate/whole-tree-reuse.ts +24 -0
  1163. package/scripts/gh/gh-author-association.ts +40 -14
  1164. package/scripts/gh/gh-call-kind.ts +97 -0
  1165. package/scripts/gh/gh-comment-input.ts +26 -0
  1166. package/scripts/gh/gh-core-rate-limit.ts +151 -0
  1167. package/scripts/gh/gh-permission-cache.ts +44 -0
  1168. package/scripts/gh/gh-request-tally.ts +143 -0
  1169. package/scripts/gh/gh-spawn.ts +2 -2
  1170. package/scripts/gh/gh-usage-cli.ts +71 -0
  1171. package/scripts/gh/gh-usage-event.ts +82 -0
  1172. package/scripts/gh/gh-usage-log.ts +48 -0
  1173. package/scripts/gh/gh-usage-tally.ts +209 -0
  1174. package/scripts/gh/git-gh-api-path.ts +17 -2
  1175. package/scripts/gh/git-gh-blocked-by-graphql.ts +107 -0
  1176. package/scripts/gh/git-gh-checks-failed-main.ts +24 -0
  1177. package/scripts/gh/git-gh-checks-failed.ts +141 -0
  1178. package/scripts/gh/git-gh-code-scanning.ts +81 -0
  1179. package/scripts/gh/git-gh-conditional.ts +36 -4
  1180. package/scripts/gh/git-gh-etag-read.ts +107 -0
  1181. package/scripts/gh/git-gh-exec.ts +74 -25
  1182. package/scripts/gh/git-gh-failure.ts +16 -2
  1183. package/scripts/gh/git-gh-helpers.ts +2 -6
  1184. package/scripts/gh/git-gh-issue-alias-graphql.ts +113 -0
  1185. package/scripts/gh/git-gh-issue-batch-graphql.ts +155 -0
  1186. package/scripts/gh/git-gh-issue-batch-read.ts +66 -0
  1187. package/scripts/gh/git-gh-issue-graphql.ts +229 -0
  1188. package/scripts/gh/git-gh-issue-list-graphql.ts +103 -0
  1189. package/scripts/gh/git-gh-issue-list.ts +126 -34
  1190. package/scripts/gh/git-gh-issue-memo.ts +53 -0
  1191. package/scripts/gh/git-gh-issue-read.ts +87 -14
  1192. package/scripts/gh/git-gh-issue-rest.ts +5 -8
  1193. package/scripts/gh/git-gh-issue-write.ts +31 -10
  1194. package/scripts/gh/git-gh-issue.ts +25 -4
  1195. package/scripts/gh/git-gh-poll-read.ts +43 -18
  1196. package/scripts/gh/git-gh-pr-auto-merge.ts +1 -4
  1197. package/scripts/gh/git-gh-pr-graphql-snapshot.ts +369 -0
  1198. package/scripts/gh/git-gh-pr-graphql-state.ts +21 -26
  1199. package/scripts/gh/git-gh-pr-read.ts +4 -1
  1200. package/scripts/gh/git-gh-pr-rollup.ts +10 -3
  1201. package/scripts/gh/git-gh-pr-snapshot.ts +78 -22
  1202. package/scripts/gh/git-gh-pr.ts +51 -17
  1203. package/scripts/gh/git-gh-rate-limit.ts +91 -0
  1204. package/scripts/gh/git-gh-repo.ts +37 -20
  1205. package/scripts/gh/git-gh-retry.ts +60 -24
  1206. package/scripts/gh/git-gh-spawn-width.ts +6 -0
  1207. package/scripts/gh/git-gh-transport.ts +213 -0
  1208. package/scripts/gh/git-pr-ai-review.ts +8 -5
  1209. package/scripts/gh/git-pr-checks-eval.ts +16 -17
  1210. package/scripts/gh/git-pr-checks-gate.ts +129 -0
  1211. package/scripts/gh/git-pr-checks-missing.ts +165 -0
  1212. package/scripts/gh/git-pr-checks-parse.ts +4 -0
  1213. package/scripts/gh/git-pr-checks-watch.ts +22 -6
  1214. package/scripts/gh/git-pr-checks.ts +105 -76
  1215. package/scripts/gh/git-pr-merge-checked.ts +26 -12
  1216. package/scripts/gh/git-pr.ts +9 -23
  1217. package/scripts/git/base-tree.ts +18 -10
  1218. package/scripts/git/changed-paths-sync.ts +4 -12
  1219. package/scripts/git/changed-paths.ts +31 -6
  1220. package/scripts/git/git-command.ts +9 -1
  1221. package/scripts/git/git-common-directory.ts +17 -3
  1222. package/scripts/git/git-issue.ts +3 -3
  1223. package/scripts/git/git-merge-conflicts.ts +8 -3
  1224. package/scripts/git/git-path-quoting.ts +54 -0
  1225. package/scripts/git/git-push-transport.ts +8 -10
  1226. package/scripts/git/git-schemas.ts +1 -0
  1227. package/scripts/git/git-spawn-sync.ts +11 -7
  1228. package/scripts/git/git-spawn.ts +1 -1
  1229. package/scripts/git/git-ssh-keepalive.ts +3 -3
  1230. package/scripts/git/git-workflow.ts +32 -9
  1231. package/scripts/git/git-worktree.ts +12 -4
  1232. package/scripts/git/main-merge.ts +3 -36
  1233. package/scripts/git/main-sync.ts +2 -13
  1234. package/scripts/git/repository-lock.ts +8 -7
  1235. package/scripts/git/stash/git-stash.ts +38 -5
  1236. package/scripts/git/stash/stash-pop-cli.ts +43 -6
  1237. package/scripts/hooks/bash-revert.ts +253 -0
  1238. package/scripts/hooks/batch-guard.ts +28 -16
  1239. package/scripts/hooks/check-commit-message.ts +5 -7
  1240. package/scripts/hooks/codex-hook-adapter.ts +58 -13
  1241. package/scripts/hooks/direct-gh-usage.ts +130 -0
  1242. package/scripts/hooks/edited-cspell.ts +8 -11
  1243. package/scripts/hooks/fixtures/claude-Agent.json +16 -0
  1244. package/scripts/hooks/fixtures/claude-Bash.json +12 -0
  1245. package/scripts/hooks/fixtures/claude-Edit.json +17 -0
  1246. package/scripts/hooks/fixtures/claude-Read.json +12 -0
  1247. package/scripts/hooks/fixtures/claude-Write.json +12 -0
  1248. package/scripts/hooks/fixtures/codex-Bash-cat.json +12 -0
  1249. package/scripts/hooks/fixtures/codex-Bash.json +12 -0
  1250. package/scripts/hooks/fixtures/codex-apply_patch.json +14 -0
  1251. package/scripts/hooks/format-edited-cli.ts +8 -1
  1252. package/scripts/hooks/format-edited-file.ts +33 -27
  1253. package/scripts/hooks/hook-context.ts +22 -0
  1254. package/scripts/hooks/hook-demoted.ts +84 -0
  1255. package/scripts/hooks/hook-lap.ts +61 -0
  1256. package/scripts/hooks/hook-ledger-cli.ts +246 -0
  1257. package/scripts/hooks/hook-ledger-demote.ts +58 -0
  1258. package/scripts/hooks/hook-ledger-issues.ts +61 -0
  1259. package/scripts/hooks/hook-ledger-read.ts +97 -0
  1260. package/scripts/hooks/hook-ledger.ts +163 -0
  1261. package/scripts/hooks/implementation-authority.ts +48 -0
  1262. package/scripts/hooks/implementation-shell-deny.ts +344 -0
  1263. package/scripts/hooks/implementation-shell-nested.ts +148 -0
  1264. package/scripts/hooks/implementation-shell.ts +253 -0
  1265. package/scripts/hooks/lane-plan-guard.ts +1 -1
  1266. package/scripts/hooks/pre-commit-lint.ts +10 -5
  1267. package/scripts/hooks/pre-push-unit.ts +49 -13
  1268. package/scripts/hooks/pretool-guard.ts +184 -70
  1269. package/scripts/hooks/reserved-run.ts +13 -13
  1270. package/scripts/hooks/run-hook.sh +84 -30
  1271. package/scripts/hooks/step-zero-notice.ts +52 -14
  1272. package/scripts/hooks/stop-actions.ts +10 -3
  1273. package/scripts/hooks/stop-guard.ts +29 -8
  1274. package/scripts/init/claude-kit-only-settings.ts +1 -1
  1275. package/scripts/init/hook-command-rewrite.ts +90 -65
  1276. package/scripts/init/hook-launch.ts +27 -22
  1277. package/scripts/init/init-ai-copy.ts +14 -4
  1278. package/scripts/init/init-bootstrap.ts +40 -8
  1279. package/scripts/init/init-copy-content.ts +2 -2
  1280. package/scripts/init/init-install.ts +9 -1
  1281. package/scripts/init/init-logic-deploy-vps.ts +5 -3
  1282. package/scripts/init/init-logic-workspace.ts +16 -1
  1283. package/scripts/init/init-logic.ts +11 -18
  1284. package/scripts/init/npm-publish-files.ts +25 -0
  1285. package/scripts/init/start-setup-pr.ts +1 -1
  1286. package/scripts/init/tsconfig-preset-migration.ts +5 -10
  1287. package/scripts/issue/aggregation-split.ts +4 -2
  1288. package/scripts/issue/already-done-citation.ts +103 -0
  1289. package/scripts/issue/baseline-measure.ts +2 -1
  1290. package/scripts/issue/behavior-change-lint.ts +5 -4
  1291. package/scripts/issue/defect-origin-line.ts +11 -10
  1292. package/scripts/issue/defect-origin.ts +4 -3
  1293. package/scripts/issue/defect-rate.ts +2 -1
  1294. package/scripts/issue/defect-report-format.ts +1 -1
  1295. package/scripts/issue/effect-audit.ts +12 -11
  1296. package/scripts/issue/enforcement-lint.ts +48 -0
  1297. package/scripts/issue/expected-effect-lint.ts +6 -5
  1298. package/scripts/issue/figure-source-lint.ts +59 -0
  1299. package/scripts/issue/git-next-issues.ts +15 -17
  1300. package/scripts/issue/issue-already-done-cli.ts +24 -4
  1301. package/scripts/issue/issue-auto-ok.ts +23 -6
  1302. package/scripts/issue/issue-body-cli.ts +75 -0
  1303. package/scripts/issue/issue-body-keys.ts +223 -0
  1304. package/scripts/issue/issue-body-or-comment.ts +1 -1
  1305. package/scripts/issue/issue-bug-label.ts +5 -2
  1306. package/scripts/issue/issue-cap-files.ts +111 -0
  1307. package/scripts/issue/issue-cite-cli.ts +2 -2
  1308. package/scripts/issue/issue-cite.ts +20 -3
  1309. package/scripts/issue/issue-classification.ts +66 -7
  1310. package/scripts/issue/issue-closing-pr.ts +51 -16
  1311. package/scripts/issue/issue-consolidate-cli.ts +81 -0
  1312. package/scripts/issue/issue-consolidate.ts +246 -0
  1313. package/scripts/issue/issue-declared-size.ts +21 -0
  1314. package/scripts/issue/issue-evidence-exit.ts +6 -3
  1315. package/scripts/issue/issue-file-batch-entries.ts +107 -0
  1316. package/scripts/issue/issue-file-batch.ts +206 -0
  1317. package/scripts/issue/issue-file-cli.ts +147 -208
  1318. package/scripts/issue/issue-file-fold.ts +4 -8
  1319. package/scripts/issue/issue-file-interrupt.ts +68 -9
  1320. package/scripts/issue/issue-file-lane-hint.ts +3 -2
  1321. package/scripts/issue/issue-file-main.ts +17 -0
  1322. package/scripts/issue/issue-file-pass.ts +242 -0
  1323. package/scripts/issue/issue-file.ts +24 -5
  1324. package/scripts/issue/issue-fold-apply.ts +102 -0
  1325. package/scripts/issue/issue-fold-existing-cli.ts +226 -19
  1326. package/scripts/issue/issue-human-stops.ts +102 -0
  1327. package/scripts/issue/issue-labels.ts +14 -3
  1328. package/scripts/issue/issue-lint-cli.ts +20 -6
  1329. package/scripts/issue/issue-lint.ts +4 -6
  1330. package/scripts/issue/issue-merged.ts +75 -9
  1331. package/scripts/issue/issue-not-before.ts +34 -4
  1332. package/scripts/issue/issue-number-shape.ts +8 -0
  1333. package/scripts/issue/issue-plan-cli.ts +33 -5
  1334. package/scripts/issue/issue-plan-notify.ts +100 -0
  1335. package/scripts/issue/issue-premise-unmet-cli.ts +110 -0
  1336. package/scripts/issue/issue-priority-cli.ts +103 -16
  1337. package/scripts/issue/issue-priority-instructed.ts +55 -0
  1338. package/scripts/issue/issue-priority-raise.ts +70 -12
  1339. package/scripts/issue/issue-priority.ts +56 -16
  1340. package/scripts/issue/issue-rank.ts +48 -15
  1341. package/scripts/issue/issue-read-cli.ts +66 -33
  1342. package/scripts/issue/issue-read.ts +20 -5
  1343. package/scripts/issue/issue-release-class-cli.ts +79 -0
  1344. package/scripts/issue/issue-report-failures.ts +14 -5
  1345. package/scripts/issue/issue-run-hold.ts +13 -0
  1346. package/scripts/issue/issue-run-verdict.ts +68 -0
  1347. package/scripts/issue/issue-sample-gate.ts +18 -7
  1348. package/scripts/issue/issue-sample-required.ts +20 -3
  1349. package/scripts/issue/issue-sample-source.ts +2 -1
  1350. package/scripts/issue/issue-scout-cli.ts +34 -18
  1351. package/scripts/issue/issue-scout.ts +25 -4
  1352. package/scripts/issue/issue-search.ts +3 -0
  1353. package/scripts/issue/issue-sources.ts +98 -0
  1354. package/scripts/issue/issue-spill-cli.ts +292 -0
  1355. package/scripts/issue/issue-spill-main.ts +11 -0
  1356. package/scripts/issue/issue-spill.ts +193 -0
  1357. package/scripts/issue/issue-state-cli.ts +9 -17
  1358. package/scripts/issue/issue-template-section.ts +8 -3
  1359. package/scripts/issue/issue-tick-cli.ts +59 -0
  1360. package/scripts/issue/issue-watch-diff.ts +22 -7
  1361. package/scripts/issue/issue-watch-hook.ts +11 -9
  1362. package/scripts/issue/issue-watch.ts +25 -5
  1363. package/scripts/issue/issue-wip.ts +44 -9
  1364. package/scripts/issue/markdown-section.ts +66 -10
  1365. package/scripts/issue/measure-declaration.ts +70 -13
  1366. package/scripts/issue/measure-rerun-cli.ts +9 -8
  1367. package/scripts/issue/measure-twin.ts +37 -0
  1368. package/scripts/issue/reproduction-measure.ts +2 -1
  1369. package/scripts/issue/session-cite.ts +1 -1
  1370. package/scripts/issue/size-estimate.ts +317 -22
  1371. package/scripts/issue/trusted-measure-source.ts +43 -0
  1372. package/scripts/issue/trusted-measure.ts +79 -35
  1373. package/scripts/issue/upstream-interrupt-cli.ts +280 -0
  1374. package/scripts/issue/upstream-interrupt-main.ts +11 -0
  1375. package/scripts/josh/agent-session-environment.ts +19 -1
  1376. package/scripts/josh/cli-body.ts +46 -9
  1377. package/scripts/josh/command-usage.ts +3 -0
  1378. package/scripts/josh/durable-state-migrate.ts +11 -4
  1379. package/scripts/josh/durable-state-root.ts +60 -0
  1380. package/scripts/josh/durable-state.ts +9 -44
  1381. package/scripts/josh/hook-decision.ts +55 -113
  1382. package/scripts/josh/hook-envelope.ts +62 -0
  1383. package/scripts/josh/hook-payload-capture.ts +78 -0
  1384. package/scripts/josh/hook-tool-payload.ts +15 -0
  1385. package/scripts/josh/josh-aliases.ts +7 -0
  1386. package/scripts/josh/josh-command-map.ts +15 -0
  1387. package/scripts/josh/josh-command-types.ts +28 -4
  1388. package/scripts/josh/josh-commands-agent-hooks.ts +39 -7
  1389. package/scripts/josh/josh-commands-ai.ts +420 -9
  1390. package/scripts/josh/josh-commands-backlog.ts +79 -11
  1391. package/scripts/josh/josh-commands-clone.ts +2 -5
  1392. package/scripts/josh/josh-commands-development.ts +25 -8
  1393. package/scripts/josh/josh-commands-document.ts +22 -10
  1394. package/scripts/josh/josh-commands-epic.ts +30 -11
  1395. package/scripts/josh/josh-commands-hooks.ts +0 -1
  1396. package/scripts/josh/josh-commands-issue-write.ts +190 -18
  1397. package/scripts/josh/josh-commands-issue.ts +57 -17
  1398. package/scripts/josh/josh-commands-lint.ts +52 -19
  1399. package/scripts/josh/josh-commands-maintenance.ts +37 -4
  1400. package/scripts/josh/josh-commands-pause.ts +53 -5
  1401. package/scripts/josh/josh-commands-prime.ts +28 -0
  1402. package/scripts/josh/josh-commands-progress.ts +59 -7
  1403. package/scripts/josh/josh-commands-project.ts +8 -5
  1404. package/scripts/josh/josh-commands-review.ts +83 -5
  1405. package/scripts/josh/josh-commands-run.ts +20 -31
  1406. package/scripts/josh/josh-commands-ship.ts +95 -13
  1407. package/scripts/josh/josh-commands-test-check.ts +0 -2
  1408. package/scripts/josh/josh-commands-versioning.ts +11 -2
  1409. package/scripts/josh/josh-commands-workflow.ts +41 -11
  1410. package/scripts/josh/josh-completion-scripts.ts +81 -0
  1411. package/scripts/josh/josh-completion.ts +29 -0
  1412. package/scripts/josh/josh-environment-file.ts +8 -10
  1413. package/scripts/josh/josh-gh-usage.ts +53 -0
  1414. package/scripts/josh/josh-in-process.ts +21 -21
  1415. package/scripts/josh/josh-logic.ts +22 -46
  1416. package/scripts/josh/josh-read-only.ts +51 -0
  1417. package/scripts/josh/josh-run.ts +30 -6
  1418. package/scripts/josh/josh.ts +9 -11
  1419. package/scripts/josh/path-decision.ts +2 -2
  1420. package/scripts/josh/process-identity.ts +5 -0
  1421. package/scripts/josh/session-handoff-line.ts +88 -0
  1422. package/scripts/josh/session-language-cli.ts +18 -4
  1423. package/scripts/josh/session-model-record.ts +62 -0
  1424. package/scripts/lane/historical-evidence.ts +136 -0
  1425. package/scripts/lane/historical-log-evidence.ts +47 -0
  1426. package/scripts/lane/lane-adopt-cli.ts +1 -1
  1427. package/scripts/lane/lane-await.ts +8 -3
  1428. package/scripts/lane/lane-breakdown-calls.ts +165 -0
  1429. package/scripts/lane/lane-breakdown-cli.ts +77 -9
  1430. package/scripts/lane/lane-breakdown-estimate.ts +136 -0
  1431. package/scripts/lane/lane-breakdown-implement.ts +166 -29
  1432. package/scripts/lane/lane-breakdown-laps.ts +116 -24
  1433. package/scripts/lane/lane-breakdown-pause.ts +127 -0
  1434. package/scripts/lane/lane-breakdown-pinned.ts +19 -3
  1435. package/scripts/lane/lane-breakdown-related.ts +40 -0
  1436. package/scripts/lane/lane-breakdown-text.ts +129 -15
  1437. package/scripts/lane/lane-breakdown.ts +194 -30
  1438. package/scripts/lane/lane-broker-server.ts +1 -1
  1439. package/scripts/lane/lane-capacity.ts +27 -16
  1440. package/scripts/lane/lane-chain-stop-stats.ts +110 -0
  1441. package/scripts/lane/lane-check-stats.ts +25 -5
  1442. package/scripts/lane/lane-child-invocation.ts +9 -9
  1443. package/scripts/lane/lane-ci-path-stats.ts +15 -4
  1444. package/scripts/lane/lane-cli.ts +2 -2
  1445. package/scripts/lane/lane-concurrency-stats.ts +110 -0
  1446. package/scripts/lane/lane-cut-stats.ts +101 -0
  1447. package/scripts/lane/lane-dispatch.ts +25 -20
  1448. package/scripts/lane/lane-early-push-stats.ts +25 -0
  1449. package/scripts/lane/lane-environment.ts +2 -2
  1450. package/scripts/lane/lane-gap-stats.ts +69 -8
  1451. package/scripts/lane/lane-guard-policy.ts +1 -1
  1452. package/scripts/lane/lane-hand-back-held.ts +51 -0
  1453. package/scripts/lane/lane-hand-back-hold.ts +103 -0
  1454. package/scripts/lane/lane-held-stats.ts +13 -1
  1455. package/scripts/lane/lane-implement-rate-read.ts +50 -0
  1456. package/scripts/lane/lane-implement-rate.ts +74 -0
  1457. package/scripts/lane/lane-implement-read.ts +129 -0
  1458. package/scripts/lane/lane-implement-signals-record.ts +56 -0
  1459. package/scripts/lane/lane-implement-signals.ts +161 -0
  1460. package/scripts/lane/lane-implement-stats.ts +93 -18
  1461. package/scripts/lane/lane-launch-admission.ts +61 -0
  1462. package/scripts/lane/lane-launch-cli.ts +63 -27
  1463. package/scripts/lane/lane-launch-pending.ts +44 -0
  1464. package/scripts/lane/lane-ledger-archive.ts +200 -0
  1465. package/scripts/lane/lane-ledger-kind.ts +5 -0
  1466. package/scripts/lane/lane-ledger-pinned-origin.ts +10 -0
  1467. package/scripts/lane/lane-ledger-schema-load.ts +45 -0
  1468. package/scripts/lane/lane-ledger-schema-offer.ts +30 -0
  1469. package/scripts/lane/lane-ledger-schema-ship.ts +70 -4
  1470. package/scripts/lane/lane-ledger-schema.ts +53 -30
  1471. package/scripts/lane/lane-ledger-tail.ts +124 -0
  1472. package/scripts/lane/lane-ledger-write.ts +60 -27
  1473. package/scripts/lane/lane-ledger.ts +6 -31
  1474. package/scripts/lane/lane-limit-cli.ts +11 -1
  1475. package/scripts/lane/lane-limit-history.ts +77 -0
  1476. package/scripts/lane/lane-limit-override.ts +49 -8
  1477. package/scripts/lane/lane-listening-ports.ts +77 -0
  1478. package/scripts/lane/lane-load.ts +62 -2
  1479. package/scripts/lane/lane-measure-cli.ts +134 -55
  1480. package/scripts/lane/lane-net-read.ts +22 -10
  1481. package/scripts/lane/lane-net-time.ts +103 -18
  1482. package/scripts/lane/lane-open.ts +19 -113
  1483. package/scripts/lane/lane-over-causes.ts +130 -0
  1484. package/scripts/lane/lane-over.ts +177 -0
  1485. package/scripts/lane/lane-overrun-prompt.ts +4 -3
  1486. package/scripts/lane/lane-overrun.ts +22 -9
  1487. package/scripts/lane/lane-pairs.ts +128 -0
  1488. package/scripts/lane/lane-paths.ts +26 -0
  1489. package/scripts/lane/lane-pause-cli.ts +4 -2
  1490. package/scripts/lane/lane-paused-spans.ts +11 -4
  1491. package/scripts/lane/lane-phase.ts +36 -7
  1492. package/scripts/lane/lane-plan-approval.ts +113 -0
  1493. package/scripts/lane/lane-plan-auto.ts +53 -0
  1494. package/scripts/lane/lane-plan-check.ts +196 -54
  1495. package/scripts/lane/lane-plan-cli.ts +37 -10
  1496. package/scripts/lane/lane-plan-imports.ts +53 -0
  1497. package/scripts/lane/lane-plan-premise.ts +83 -0
  1498. package/scripts/lane/lane-plan-probe.ts +115 -0
  1499. package/scripts/lane/lane-plan-signals.ts +119 -0
  1500. package/scripts/lane/lane-plan-size.ts +389 -0
  1501. package/scripts/lane/lane-plan-wait-event.ts +124 -0
  1502. package/scripts/lane/lane-plan-wait-until.ts +22 -0
  1503. package/scripts/lane/lane-plan-wait.ts +125 -0
  1504. package/scripts/lane/lane-plan.ts +113 -14
  1505. package/scripts/lane/lane-preserve.ts +58 -13
  1506. package/scripts/lane/lane-process-load.ts +130 -19
  1507. package/scripts/lane/lane-process-stats.ts +51 -10
  1508. package/scripts/lane/lane-reap.ts +4 -2
  1509. package/scripts/lane/lane-registry.ts +19 -14
  1510. package/scripts/lane/lane-relaunch.ts +32 -14
  1511. package/scripts/lane/lane-report.ts +2 -0
  1512. package/scripts/lane/lane-resolve-cli.ts +88 -0
  1513. package/scripts/lane/lane-resolve-hunks.ts +63 -0
  1514. package/scripts/lane/lane-resolve-record.ts +59 -0
  1515. package/scripts/lane/lane-resolve.ts +122 -0
  1516. package/scripts/lane/lane-restart.ts +1 -1
  1517. package/scripts/lane/lane-room.ts +58 -0
  1518. package/scripts/lane/lane-round-one-stats.ts +2 -1
  1519. package/scripts/lane/lane-sampler.ts +53 -3
  1520. package/scripts/lane/lane-seat-ownership.ts +57 -0
  1521. package/scripts/lane/lane-seat-start.ts +52 -0
  1522. package/scripts/lane/lane-seat-stop.ts +20 -0
  1523. package/scripts/lane/lane-seat.ts +174 -0
  1524. package/scripts/lane/lane-seed.ts +2 -5
  1525. package/scripts/lane/lane-session-action.ts +26 -10
  1526. package/scripts/lane/lane-session-broker.ts +1 -1
  1527. package/scripts/lane/lane-session-reread.ts +2 -1
  1528. package/scripts/lane/lane-setup.ts +59 -0
  1529. package/scripts/lane/lane-ship-lap-stats.ts +3 -1
  1530. package/scripts/lane/lane-sinks-issues.ts +52 -0
  1531. package/scripts/lane/lane-sinks.ts +165 -0
  1532. package/scripts/lane/lane-size-record.ts +39 -0
  1533. package/scripts/lane/lane-size-stats.ts +111 -0
  1534. package/scripts/lane/lane-split-stats.ts +33 -9
  1535. package/scripts/lane/lane-stage-budget.ts +27 -0
  1536. package/scripts/lane/lane-stage-stats.ts +94 -25
  1537. package/scripts/lane/lane-state-record.ts +74 -0
  1538. package/scripts/lane/lane-state.ts +21 -33
  1539. package/scripts/lane/lane-stats-request.ts +163 -0
  1540. package/scripts/lane/lane-stats-tables.ts +44 -3
  1541. package/scripts/lane/lane-stats.ts +9 -2
  1542. package/scripts/lane/lane-stop-stats.ts +3 -2
  1543. package/scripts/lane/lane-test-related-stats.ts +5 -2
  1544. package/scripts/lane/lane-timeline.ts +251 -0
  1545. package/scripts/lane/lane-transcript-calls.ts +73 -4
  1546. package/scripts/lane/lane-transcript-stats.ts +8 -3
  1547. package/scripts/lane/lane-turn-stats.ts +171 -0
  1548. package/scripts/lane/lane-value-cell.ts +87 -13
  1549. package/scripts/lane/lane-value-missing.ts +21 -0
  1550. package/scripts/lane/lane-why-causes.ts +102 -0
  1551. package/scripts/lane/lane-why-ci.ts +50 -0
  1552. package/scripts/lane/lane-why-cli.ts +83 -0
  1553. package/scripts/lane/lane-why-period.ts +187 -0
  1554. package/scripts/lane/lane-why-ship.ts +67 -0
  1555. package/scripts/lane/lane-why.ts +192 -0
  1556. package/scripts/lane/lane-withdraw.ts +12 -1
  1557. package/scripts/lane/lane-yield-split.ts +218 -0
  1558. package/scripts/lane/lane-yield.ts +38 -4
  1559. package/scripts/lane/openai-lane-ship.ts +2 -2
  1560. package/scripts/lane/openai-lane-supervisor-cli.ts +17 -8
  1561. package/scripts/lane/openai-lane-supervisor-decision.ts +10 -4
  1562. package/scripts/lane/openai-lane-supervisor-entry.ts +6 -0
  1563. package/scripts/lane/openai-lane-supervisor-owner.ts +19 -3
  1564. package/scripts/lane/openai-lane-supervisor.ts +26 -4
  1565. package/scripts/lane/process-directories.ts +3 -1
  1566. package/scripts/lane/process-lane-marks.ts +11 -5
  1567. package/scripts/lane/process-linux.ts +81 -0
  1568. package/scripts/lane/process-tools.ts +2 -5
  1569. package/scripts/lib/bounded-pool.ts +38 -7
  1570. package/scripts/lib/buffered-process.ts +34 -9
  1571. package/scripts/lib/claude-installer.ts +29 -0
  1572. package/scripts/lib/import-closure.ts +72 -0
  1573. package/scripts/lib/josh-temporary-directory.ts +7 -0
  1574. package/scripts/lib/main-guard.ts +29 -0
  1575. package/scripts/lib/package-manifest.ts +54 -3
  1576. package/scripts/lib/pnpm-installer.ts +16 -0
  1577. package/scripts/lib/poll.ts +130 -20
  1578. package/scripts/lib/schemas.ts +1 -1
  1579. package/scripts/lib/stamped-memo.ts +1 -1
  1580. package/scripts/lib/stamped-store.ts +82 -0
  1581. package/scripts/lib/stdin-text.ts +68 -0
  1582. package/scripts/lib/timeouts.ts +4 -4
  1583. package/scripts/lib/transcript-record.ts +4 -0
  1584. package/scripts/lib/verified-download.ts +17 -0
  1585. package/scripts/lines/bytes-command.ts +1 -1
  1586. package/scripts/lint/cspell-cached.ts +1 -1
  1587. package/scripts/lint/eslint-cache-dependencies.ts +38 -8
  1588. package/scripts/lint/eslint-daemon-calls.ts +83 -0
  1589. package/scripts/lint/eslint-daemon.ts +101 -13
  1590. package/scripts/lint/eslint-heap.ts +50 -0
  1591. package/scripts/lint/eslint-memory.js +45 -0
  1592. package/scripts/lint/eslint-trim.ts +44 -0
  1593. package/scripts/lint/eslint-warm.ts +5 -2
  1594. package/scripts/lint/format.ts +30 -5
  1595. package/scripts/lint/import-graph-store.ts +245 -0
  1596. package/scripts/lint/import-graph.ts +54 -65
  1597. package/scripts/lint/import-move.ts +275 -0
  1598. package/scripts/lint/import-test-inputs.ts +97 -0
  1599. package/scripts/lint/lint-gate-scope.ts +1 -0
  1600. package/scripts/lint/lint-parallel.ts +148 -43
  1601. package/scripts/lint/lint-related-scope.ts +6 -1
  1602. package/scripts/lint/lint-related.ts +66 -25
  1603. package/scripts/lint/lint-rule.ts +293 -0
  1604. package/scripts/lint/lint-shard.ts +91 -0
  1605. package/scripts/lint/lint-timing.ts +39 -0
  1606. package/scripts/lint/rename-cli.ts +36 -10
  1607. package/scripts/lint/rename-identifier.ts +2 -2
  1608. package/scripts/lint/type-only-imports.ts +20 -1
  1609. package/scripts/notify/git-notify.ts +3 -1
  1610. package/scripts/notify/telegram-notify.ts +33 -35
  1611. package/scripts/notify/telegram-test.ts +9 -4
  1612. package/scripts/observations/observation-depth-cli.ts +78 -0
  1613. package/scripts/observations/observation-depth.ts +85 -0
  1614. package/scripts/observations/observation-ledger-home.ts +14 -7
  1615. package/scripts/observations/observations-flush-landing.ts +1 -1
  1616. package/scripts/overrides/overrides-check.ts +33 -10
  1617. package/scripts/overrides/overrides-diff-report.ts +91 -0
  1618. package/scripts/overrides/overrides-diff.ts +98 -0
  1619. package/scripts/package/package-scout-cli.ts +37 -11
  1620. package/scripts/package/package-scout-format.ts +20 -6
  1621. package/scripts/package/package-scout-reuse.ts +207 -0
  1622. package/scripts/plan/plan-scaffold-cli.ts +125 -0
  1623. package/scripts/plan/plan-scaffold.ts +112 -0
  1624. package/scripts/ports/port-command.ts +2 -5
  1625. package/scripts/propagate/propagate-git.ts +3 -3
  1626. package/scripts/propagate/propagate-publish.ts +8 -7
  1627. package/scripts/propagate/propagate-steps.ts +2 -3
  1628. package/scripts/refactor/import-graph.ts +2 -4
  1629. package/scripts/refactor/refactor-lint.ts +47 -30
  1630. package/scripts/refactor/refactor-scan.ts +16 -9
  1631. package/scripts/refactor/refactor-targets.ts +2 -3
  1632. package/scripts/release/github-release.ts +10 -10
  1633. package/scripts/release/publish-tag-cli.ts +13 -3
  1634. package/scripts/release/release-cli.ts +2 -0
  1635. package/scripts/release/release-progress.ts +44 -36
  1636. package/scripts/release/release-request.ts +42 -0
  1637. package/scripts/release/release-scope-cli.ts +31 -2
  1638. package/scripts/release/release-workflow-check.ts +59 -0
  1639. package/scripts/report/markdown-shape.ts +2 -1
  1640. package/scripts/report/report-template-cli.ts +2 -2
  1641. package/scripts/report/report-template.ts +17 -4
  1642. package/scripts/review/acceptance-map.ts +87 -8
  1643. package/scripts/review/diff-summary-cli.ts +81 -0
  1644. package/scripts/review/diff-summary.ts +109 -0
  1645. package/scripts/review/disposition-batch-filing.ts +150 -0
  1646. package/scripts/review/disposition-batch.ts +103 -0
  1647. package/scripts/review/disposition-cli.ts +35 -1
  1648. package/scripts/review/import-specifiers.ts +38 -0
  1649. package/scripts/review/prose-stale-cli.ts +7 -37
  1650. package/scripts/review/prose-stale-read.ts +105 -0
  1651. package/scripts/review/prose-stale-scan.ts +121 -17
  1652. package/scripts/review/removed-tests-check.ts +28 -4
  1653. package/scripts/review/review-brief-cli.ts +69 -71
  1654. package/scripts/review/review-brief.ts +38 -42
  1655. package/scripts/review/review-code-tree.ts +80 -16
  1656. package/scripts/review/review-comment-carry.ts +30 -0
  1657. package/scripts/review/review-diff-pack.ts +70 -0
  1658. package/scripts/review/review-diff-write.ts +23 -22
  1659. package/scripts/review/review-final-record.ts +47 -0
  1660. package/scripts/review/review-finding-ledger.ts +72 -10
  1661. package/scripts/review/review-findings-cli.ts +88 -8
  1662. package/scripts/review/review-fix-hunks.ts +115 -0
  1663. package/scripts/review/review-fix-round.ts +144 -0
  1664. package/scripts/review/review-gate-mode.ts +25 -0
  1665. package/scripts/review/review-interaction.ts +69 -11
  1666. package/scripts/review/review-lane-handover.ts +29 -4
  1667. package/scripts/review/review-level.ts +35 -34
  1668. package/scripts/review/review-lint-findings.ts +3 -3
  1669. package/scripts/review/review-lint-sections.ts +2 -2
  1670. package/scripts/review/review-lint.ts +7 -1
  1671. package/scripts/review/review-pair-cli.ts +157 -0
  1672. package/scripts/review/review-pair-log.ts +75 -0
  1673. package/scripts/review/review-pair-session.ts +98 -0
  1674. package/scripts/review/review-pair.ts +112 -0
  1675. package/scripts/review/review-prior-findings.ts +2 -4
  1676. package/scripts/review/review-prompt-level.ts +28 -0
  1677. package/scripts/review/review-readers-scan.ts +25 -3
  1678. package/scripts/review/review-record-cli.ts +46 -68
  1679. package/scripts/review/review-record-interaction.ts +2 -2
  1680. package/scripts/review/review-record-main.ts +7 -2
  1681. package/scripts/review/review-record-pinned.ts +5 -0
  1682. package/scripts/review/review-record-slot.ts +155 -0
  1683. package/scripts/review/review-reviewed-tree.ts +60 -13
  1684. package/scripts/review/review-round-one-blobs.ts +43 -9
  1685. package/scripts/review/review-round-one-skip.ts +72 -0
  1686. package/scripts/review/review-round-reuse.ts +13 -6
  1687. package/scripts/review/review-round.ts +57 -0
  1688. package/scripts/review/review-round2-cli.ts +5 -0
  1689. package/scripts/review/review-round2-skip-comment.ts +3 -1
  1690. package/scripts/review/review-round2.ts +18 -6
  1691. package/scripts/review/review-size.ts +92 -0
  1692. package/scripts/review/review-stamps.ts +8 -0
  1693. package/scripts/review/review-submit-args.ts +91 -0
  1694. package/scripts/review/review-submit-cli.ts +55 -29
  1695. package/scripts/review/selfcheck-cli.ts +193 -0
  1696. package/scripts/review/selfcheck-commands.ts +175 -0
  1697. package/scripts/review/selfcheck-report.ts +98 -0
  1698. package/scripts/rules/bash-triggers.ts +24 -13
  1699. package/scripts/rules/broad-investigation-shell.ts +183 -0
  1700. package/scripts/rules/broad-investigation.ts +116 -0
  1701. package/scripts/rules/consultation-handoff.ts +81 -0
  1702. package/scripts/rules/consultation-investigation.ts +99 -0
  1703. package/scripts/rules/decision-oracle.ts +1 -1
  1704. package/scripts/rules/delivered-rules-guard.ts +94 -0
  1705. package/scripts/rules/delivered-rules.ts +46 -87
  1706. package/scripts/rules/destructive-command.ts +2 -1
  1707. package/scripts/rules/direct-git-status.ts +81 -0
  1708. package/scripts/rules/direct-issue-comment.ts +9 -1
  1709. package/scripts/rules/direct-vitest-run.ts +98 -0
  1710. package/scripts/rules/egress-guard.ts +308 -0
  1711. package/scripts/rules/firing-point.ts +9 -12
  1712. package/scripts/rules/gh-api.ts +19 -4
  1713. package/scripts/rules/gh-repo-selector.ts +1 -1
  1714. package/scripts/rules/git-argv.ts +57 -10
  1715. package/scripts/rules/guard-remedy.ts +9 -0
  1716. package/scripts/rules/guard-rule-rows.ts +13 -0
  1717. package/scripts/rules/implementation-cut-verdict.ts +1 -1
  1718. package/scripts/rules/implementation-cut.ts +94 -31
  1719. package/scripts/rules/interpreter-options.ts +179 -0
  1720. package/scripts/rules/investigator-foreground.ts +13 -7
  1721. package/scripts/rules/josh-git-bare.ts +1 -1
  1722. package/scripts/rules/keychain-read.ts +73 -0
  1723. package/scripts/rules/lane-background.ts +15 -14
  1724. package/scripts/rules/lane-carry-conflict.ts +15 -8
  1725. package/scripts/rules/lane-direct-tool.ts +18 -11
  1726. package/scripts/rules/lane-interactive-ask.ts +3 -5
  1727. package/scripts/rules/lane-park.ts +25 -10
  1728. package/scripts/rules/lane-spilled-read.ts +3 -5
  1729. package/scripts/rules/lane-split-park.ts +7 -6
  1730. package/scripts/rules/lane-switch-main.ts +10 -3
  1731. package/scripts/rules/launched-call.ts +135 -0
  1732. package/scripts/rules/main-model.ts +54 -0
  1733. package/scripts/rules/nested-commands.ts +71 -0
  1734. package/scripts/rules/permission-guards.ts +6 -2
  1735. package/scripts/rules/pr-merge.ts +1 -1
  1736. package/scripts/rules/pre-gate-cut.ts +20 -11
  1737. package/scripts/rules/protected-files.ts +34 -98
  1738. package/scripts/rules/repeat-check-related.ts +66 -0
  1739. package/scripts/rules/reviewer-foreground.ts +11 -7
  1740. package/scripts/rules/round-one-check-related.ts +59 -19
  1741. package/scripts/rules/rule-list.ts +3 -4
  1742. package/scripts/rules/rule-rephrase.ts +43 -0
  1743. package/scripts/rules/rule-rewrite.ts +16 -6
  1744. package/scripts/rules/rule-value-cache.ts +10 -1
  1745. package/scripts/rules/rule-value-cli.ts +62 -54
  1746. package/scripts/rules/rule-value-prose.ts +186 -0
  1747. package/scripts/rules/rule-value-runs.ts +171 -0
  1748. package/scripts/rules/rule-value.ts +38 -13
  1749. package/scripts/rules/run-tail-rule.ts +19 -2
  1750. package/scripts/rules/secret-paths.ts +92 -0
  1751. package/scripts/rules/sed-in-place.ts +1 -1
  1752. package/scripts/rules/shell-permissions.ts +91 -0
  1753. package/scripts/rules/shell-redirects.ts +54 -0
  1754. package/scripts/rules/shell-segments.ts +3 -2
  1755. package/scripts/rules/stop-decision.ts +7 -1
  1756. package/scripts/rules/stop-rules.ts +1 -1
  1757. package/scripts/rules/unasked-filing.ts +158 -0
  1758. package/scripts/run/add/run-add-cli.ts +114 -36
  1759. package/scripts/run/add/run-add-epic.ts +45 -0
  1760. package/scripts/run/add/run-add-issue.ts +17 -0
  1761. package/scripts/run/add/run-add.ts +159 -21
  1762. package/scripts/run/attached-log.ts +38 -0
  1763. package/scripts/run/board/run-board-cli.ts +34 -9
  1764. package/scripts/run/board/run-board-closed-graphql.ts +129 -0
  1765. package/scripts/run/board/run-board-closed.ts +68 -10
  1766. package/scripts/run/board/run-board-decision-graphql.ts +136 -0
  1767. package/scripts/run/board/run-board-decision-read.ts +195 -0
  1768. package/scripts/run/board/run-board-decision.ts +92 -0
  1769. package/scripts/run/board/run-board-earlier.ts +27 -3
  1770. package/scripts/run/board/run-board-ending-reason.ts +98 -9
  1771. package/scripts/run/board/run-board-ending-states.ts +34 -0
  1772. package/scripts/run/board/run-board-every.ts +19 -9
  1773. package/scripts/run/board/run-board-first-lane.ts +26 -0
  1774. package/scripts/run/board/run-board-fit.ts +47 -11
  1775. package/scripts/run/board/run-board-fold-store.ts +62 -0
  1776. package/scripts/run/board/run-board-fold.ts +41 -9
  1777. package/scripts/run/board/run-board-gather-live.ts +2 -0
  1778. package/scripts/run/board/run-board-gather-thread.ts +14 -3
  1779. package/scripts/run/board/run-board-gather-worker.ts +10 -8
  1780. package/scripts/run/board/run-board-gather.ts +10 -3
  1781. package/scripts/run/board/run-board-github.ts +117 -29
  1782. package/scripts/run/board/run-board-header.ts +33 -24
  1783. package/scripts/run/board/run-board-held.ts +53 -0
  1784. package/scripts/run/board/run-board-human-merge.ts +113 -0
  1785. package/scripts/run/board/run-board-human.ts +37 -0
  1786. package/scripts/run/board/run-board-idle.ts +9 -6
  1787. package/scripts/run/board/run-board-issue-count.ts +101 -0
  1788. package/scripts/run/board/run-board-keys.ts +19 -4
  1789. package/scripts/run/board/run-board-labels.ts +20 -4
  1790. package/scripts/run/board/run-board-lane-event.ts +23 -2
  1791. package/scripts/run/board/run-board-lane-result.ts +58 -0
  1792. package/scripts/run/board/run-board-lane-state.ts +52 -7
  1793. package/scripts/run/board/run-board-lane-stop.ts +108 -0
  1794. package/scripts/run/board/run-board-lane-time.ts +1 -0
  1795. package/scripts/run/board/run-board-layout.ts +64 -74
  1796. package/scripts/run/board/run-board-link.ts +42 -2
  1797. package/scripts/run/board/run-board-notes.ts +1 -1
  1798. package/scripts/run/board/run-board-now.ts +1 -1
  1799. package/scripts/run/board/run-board-operation-codex.ts +37 -0
  1800. package/scripts/run/board/run-board-operation-read.ts +2 -2
  1801. package/scripts/run/board/run-board-operation.ts +8 -5
  1802. package/scripts/run/board/run-board-plan-shared.ts +3 -0
  1803. package/scripts/run/board/run-board-plan.ts +6 -1
  1804. package/scripts/run/board/run-board-process-groups.ts +1 -1
  1805. package/scripts/run/board/run-board-quota-held.ts +319 -0
  1806. package/scripts/run/board/run-board-quota-lane.ts +23 -0
  1807. package/scripts/run/board/run-board-quota-read.ts +422 -0
  1808. package/scripts/run/board/run-board-quota-spent.ts +162 -0
  1809. package/scripts/run/board/run-board-quota-status.ts +67 -0
  1810. package/scripts/run/board/run-board-read.ts +112 -36
  1811. package/scripts/run/board/run-board-reason.ts +40 -20
  1812. package/scripts/run/board/run-board-render-condition.ts +18 -2
  1813. package/scripts/run/board/run-board-render-drawn.ts +5 -1
  1814. package/scripts/run/board/run-board-render-foot.ts +5 -1
  1815. package/scripts/run/board/run-board-render-found.ts +21 -2
  1816. package/scripts/run/board/run-board-render-icon.ts +3 -6
  1817. package/scripts/run/board/run-board-render-lanes.ts +49 -9
  1818. package/scripts/run/board/run-board-render-lead.ts +20 -1
  1819. package/scripts/run/board/run-board-render-legend.ts +4 -0
  1820. package/scripts/run/board/run-board-render-none.ts +35 -0
  1821. package/scripts/run/board/run-board-render-notes.ts +5 -3
  1822. package/scripts/run/board/run-board-render-processes.ts +6 -5
  1823. package/scripts/run/board/run-board-render-quota-cell.ts +81 -0
  1824. package/scripts/run/board/run-board-render-quota-github.ts +112 -0
  1825. package/scripts/run/board/run-board-render-quota.ts +285 -0
  1826. package/scripts/run/board/run-board-render-section.ts +50 -6
  1827. package/scripts/run/board/run-board-render-tail.ts +53 -7
  1828. package/scripts/run/board/run-board-render-throughput.ts +140 -0
  1829. package/scripts/run/board/run-board-render-title.ts +26 -4
  1830. package/scripts/run/board/run-board-render.ts +59 -57
  1831. package/scripts/run/board/run-board-row-yield.ts +1 -0
  1832. package/scripts/run/board/run-board-scope.ts +13 -6
  1833. package/scripts/run/board/run-board-seat.ts +107 -0
  1834. package/scripts/run/board/run-board-settle.ts +33 -0
  1835. package/scripts/run/board/run-board-setup.ts +30 -15
  1836. package/scripts/run/board/run-board-single.ts +123 -0
  1837. package/scripts/run/board/run-board-snapshot.ts +7 -1
  1838. package/scripts/run/board/run-board-span.ts +18 -3
  1839. package/scripts/run/board/run-board-spin.ts +12 -6
  1840. package/scripts/run/board/run-board-standing-waits.ts +52 -0
  1841. package/scripts/run/board/run-board-state.ts +23 -0
  1842. package/scripts/run/board/run-board-status.ts +86 -99
  1843. package/scripts/run/board/run-board-throughput.ts +215 -0
  1844. package/scripts/run/board/run-board-tick.ts +76 -30
  1845. package/scripts/run/board/run-board-usage-read.ts +3 -3
  1846. package/scripts/run/board/run-board-usage-top.ts +12 -35
  1847. package/scripts/run/board/run-board-usual.ts +18 -1
  1848. package/scripts/run/carry/run-carry-added.ts +6 -1
  1849. package/scripts/run/carry/run-carry-args.ts +22 -8
  1850. package/scripts/run/carry/run-carry-cli.ts +31 -1
  1851. package/scripts/run/carry/run-carry-conversation.ts +12 -4
  1852. package/scripts/run/carry/run-carry-ended.ts +3 -0
  1853. package/scripts/run/carry/run-carry-reclaim.ts +2 -1
  1854. package/scripts/run/carry/run-carry.ts +40 -20
  1855. package/scripts/run/cut/run-cut-adoption.ts +67 -0
  1856. package/scripts/run/cut/run-cut-cli.ts +88 -34
  1857. package/scripts/run/cut/run-cut-decline.ts +1 -1
  1858. package/scripts/run/cut/run-cut-handoff.ts +2 -1
  1859. package/scripts/run/cut/run-cut-next.ts +20 -0
  1860. package/scripts/run/cut/run-cut-ready.ts +7 -5
  1861. package/scripts/run/cut/run-cut-report.ts +13 -14
  1862. package/scripts/run/cut/run-cut-resume.ts +1 -1
  1863. package/scripts/run/cut/run-cut.ts +36 -23
  1864. package/scripts/run/detached-launch.ts +12 -7
  1865. package/scripts/run/early-push-record.ts +22 -0
  1866. package/scripts/run/entry/run-entry-children.ts +126 -0
  1867. package/scripts/run/entry/run-entry-cli.ts +126 -82
  1868. package/scripts/run/entry/run-entry-dispatch.ts +20 -0
  1869. package/scripts/run/entry/run-entry-lane-plan.ts +39 -0
  1870. package/scripts/run/entry/run-entry-spill.ts +67 -22
  1871. package/scripts/run/entry/run-entry-stop.ts +9 -8
  1872. package/scripts/run/entry/run-entry-sync.ts +149 -0
  1873. package/scripts/run/entry/run-entry-trust.ts +1 -1
  1874. package/scripts/run/entry/run-entry.ts +9 -0
  1875. package/scripts/run/event/run-event-checks.ts +1 -1
  1876. package/scripts/run/event/run-event-filed.ts +1 -1
  1877. package/scripts/run/event/run-event-follow.ts +9 -5
  1878. package/scripts/run/event/run-event-overrun.ts +7 -7
  1879. package/scripts/run/event/run-event-plan.ts +1 -1
  1880. package/scripts/run/event/run-event-render.ts +5 -0
  1881. package/scripts/run/event/run-event-retry.ts +34 -0
  1882. package/scripts/run/event/run-event-scope.ts +4 -1
  1883. package/scripts/run/event/run-event-setup.ts +55 -5
  1884. package/scripts/run/event/run-event-step.ts +81 -0
  1885. package/scripts/run/event/run-event-stream-emit.ts +63 -23
  1886. package/scripts/run/event/run-event-stream.ts +69 -21
  1887. package/scripts/run/event/run-event-tail.ts +122 -0
  1888. package/scripts/run/event/run-event-watch.ts +12 -7
  1889. package/scripts/run/handoff/run-handoff-args.ts +93 -0
  1890. package/scripts/run/handoff/run-handoff-cli.ts +320 -0
  1891. package/scripts/run/handoff/run-handoff-final.ts +38 -0
  1892. package/scripts/run/handoff/run-handoff-launch.ts +113 -0
  1893. package/scripts/run/handoff/run-handoff-retrospective.ts +48 -0
  1894. package/scripts/run/handoff-lanes/run-handoff-lanes-cli.ts +31 -0
  1895. package/scripts/run/handoff-lanes/run-handoff-lanes.ts +183 -0
  1896. package/scripts/run/hold/run-hold-block.ts +35 -0
  1897. package/scripts/run/hold/run-hold-cli.ts +20 -36
  1898. package/scripts/run/hold/run-hold-main.ts +16 -1
  1899. package/scripts/run/hold/run-hold.ts +12 -8
  1900. package/scripts/run/hold/run-stop-notify.ts +1 -1
  1901. package/scripts/run/launch-priority.ts +4 -7
  1902. package/scripts/run/merge/run-merge-auth.ts +38 -13
  1903. package/scripts/run/merge/run-merge-cap.ts +11 -6
  1904. package/scripts/run/merge/run-merge-cli.ts +55 -58
  1905. package/scripts/run/merge/run-merge-dated.ts +64 -0
  1906. package/scripts/run/merge/run-merge-decision.ts +183 -0
  1907. package/scripts/run/merge/run-merge-driver.ts +2 -0
  1908. package/scripts/run/merge/run-merge-github-limit.ts +98 -0
  1909. package/scripts/run/merge/run-merge-health.ts +137 -0
  1910. package/scripts/run/merge/run-merge-human-review.ts +26 -0
  1911. package/scripts/run/merge/run-merge-restart.ts +10 -3
  1912. package/scripts/run/merge/run-merge-signals.ts +34 -9
  1913. package/scripts/run/merge/run-merge-steps.ts +49 -50
  1914. package/scripts/run/merge/run-merge-token.ts +3 -4
  1915. package/scripts/run/merge/run-merge-usage-limit.ts +22 -9
  1916. package/scripts/run/merge/run-merge-withdrawn.ts +4 -3
  1917. package/scripts/run/merge/run-merge.ts +36 -18
  1918. package/scripts/run/park/run-park-answered.ts +84 -0
  1919. package/scripts/run/park/run-park-body.ts +346 -0
  1920. package/scripts/run/park/run-park-cli.ts +37 -12
  1921. package/scripts/run/park/run-park-lane.ts +41 -0
  1922. package/scripts/run/park/run-park-release.ts +61 -0
  1923. package/scripts/run/park/run-park-write.ts +41 -0
  1924. package/scripts/run/park/run-park.ts +2 -4
  1925. package/scripts/run/park/run-stalled-park.ts +32 -0
  1926. package/scripts/run/park/run-stalled.ts +75 -12
  1927. package/scripts/run/pause/run-pause-cli.ts +4 -3
  1928. package/scripts/run/pause/run-pause-comment.ts +30 -0
  1929. package/scripts/run/pause/run-pause.ts +35 -223
  1930. package/scripts/run/pause/run-set-aside-commit.ts +52 -0
  1931. package/scripts/run/pause/run-set-aside.ts +139 -0
  1932. package/scripts/run/prime/run-prime-cli.ts +105 -0
  1933. package/scripts/run/progress/run-progress-cli.ts +44 -27
  1934. package/scripts/run/progress/run-progress-config.ts +7 -18
  1935. package/scripts/run/progress/run-progress.ts +16 -7
  1936. package/scripts/run/review/run-chain-cli.ts +162 -0
  1937. package/scripts/run/review/run-chain-join.ts +108 -0
  1938. package/scripts/run/review/run-chain-review-fix.ts +70 -0
  1939. package/scripts/run/review/run-chain.ts +167 -0
  1940. package/scripts/run/review/run-review-cli.ts +127 -53
  1941. package/scripts/run/review/run-review-early-push.ts +41 -7
  1942. package/scripts/run/review/run-review-join-ready.ts +88 -0
  1943. package/scripts/run/review/run-review-pinned-accepted.ts +15 -1
  1944. package/scripts/run/review/run-review-pinned-join.ts +8 -4
  1945. package/scripts/run/review/run-review-pinned-steps.ts +12 -7
  1946. package/scripts/run/review/run-review-pinned.ts +8 -3
  1947. package/scripts/run/review/run-review-steps.ts +29 -14
  1948. package/scripts/run/review/run-review-unplanned.ts +75 -0
  1949. package/scripts/run/review/run-review.ts +4 -4
  1950. package/scripts/run/run-halfrun-resume.ts +9 -1
  1951. package/scripts/run/run-headless-keys.ts +23 -0
  1952. package/scripts/run/run-headless.ts +77 -13
  1953. package/scripts/run/run-investigation-record.ts +66 -0
  1954. package/scripts/run/run-label-main.ts +55 -0
  1955. package/scripts/run/run-label.ts +20 -4
  1956. package/scripts/run/run-liveness-cli.ts +1 -1
  1957. package/scripts/run/run-liveness.ts +6 -5
  1958. package/scripts/run/run-maintenance.ts +66 -0
  1959. package/scripts/run/run-open-pr.ts +19 -0
  1960. package/scripts/run/run-parent-cut-hook.ts +17 -9
  1961. package/scripts/run/run-pickup-cli.ts +86 -0
  1962. package/scripts/run/run-pickup-launch.ts +85 -0
  1963. package/scripts/run/run-poll-hook.ts +14 -7
  1964. package/scripts/run/run-pr-return.ts +99 -0
  1965. package/scripts/run/run-prep-cli.ts +54 -7
  1966. package/scripts/run/run-prep-locate.ts +8 -3
  1967. package/scripts/run/run-prep-summary.ts +55 -0
  1968. package/scripts/run/run-prep.ts +37 -1
  1969. package/scripts/run/run-report-cli.ts +13 -2
  1970. package/scripts/run/run-report-end.ts +133 -0
  1971. package/scripts/run/run-report-handoff.ts +1 -1
  1972. package/scripts/run/run-report.ts +7 -1
  1973. package/scripts/run/run-stage-read.ts +38 -4
  1974. package/scripts/run/run-stage.ts +18 -6
  1975. package/scripts/run/run-status.ts +2 -1
  1976. package/scripts/run/run-step-cli.ts +38 -10
  1977. package/scripts/run/run-step-lane-plan.ts +26 -12
  1978. package/scripts/run/run-step-progress.ts +61 -0
  1979. package/scripts/run/run-step-section-driver.ts +27 -0
  1980. package/scripts/run/run-step-section-once.ts +83 -0
  1981. package/scripts/run/run-step-section-table.ts +120 -0
  1982. package/scripts/run/run-step-section.ts +39 -53
  1983. package/scripts/run/run-step.ts +4 -3
  1984. package/scripts/run/run-stop-notify.ts +1 -1
  1985. package/scripts/run/run-tail-cli.ts +14 -6
  1986. package/scripts/run/run-tail.ts +22 -0
  1987. package/scripts/run/run-watcher-guard.ts +15 -5
  1988. package/scripts/run/run-watcher-hook.ts +12 -6
  1989. package/scripts/run/ship/run-ship-args.ts +8 -1
  1990. package/scripts/run/ship/run-ship-cli.ts +68 -65
  1991. package/scripts/run/ship/run-ship-conflict-probe.ts +12 -14
  1992. package/scripts/run/ship/run-ship-detach-wait.ts +25 -0
  1993. package/scripts/run/ship/run-ship-detach.ts +29 -35
  1994. package/scripts/run/ship/run-ship-early-push.ts +34 -0
  1995. package/scripts/run/ship/run-ship-evidence-cli.ts +133 -0
  1996. package/scripts/run/ship/run-ship-evidence.ts +71 -0
  1997. package/scripts/run/ship/run-ship-final-review.ts +28 -0
  1998. package/scripts/run/ship/run-ship-gate-runs.ts +58 -0
  1999. package/scripts/run/ship/run-ship-group.ts +38 -0
  2000. package/scripts/run/ship/run-ship-handover.ts +1 -1
  2001. package/scripts/run/ship/run-ship-lap.ts +100 -12
  2002. package/scripts/run/ship/run-ship-narrowed.ts +104 -0
  2003. package/scripts/run/ship/run-ship-next.ts +3 -3
  2004. package/scripts/run/ship/run-ship-pair-runs.ts +127 -0
  2005. package/scripts/run/ship/run-ship-place.ts +9 -8
  2006. package/scripts/run/ship/run-ship-planned.ts +1 -1
  2007. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +7 -1
  2008. package/scripts/run/ship/run-ship-pre-detach.ts +18 -12
  2009. package/scripts/run/ship/run-ship-preflight-reuse.ts +53 -0
  2010. package/scripts/run/ship/run-ship-preflight.ts +21 -2
  2011. package/scripts/run/ship/run-ship-probe.ts +5 -15
  2012. package/scripts/run/ship/run-ship-record-wait.ts +30 -0
  2013. package/scripts/run/ship/run-ship-relaunch-cap.ts +107 -14
  2014. package/scripts/run/ship/run-ship-relaunch.ts +7 -1
  2015. package/scripts/run/ship/run-ship-removed-rows.ts +34 -10
  2016. package/scripts/run/ship/run-ship-reship.ts +125 -0
  2017. package/scripts/run/ship/run-ship-return.ts +68 -22
  2018. package/scripts/run/ship/run-ship-review-checkpoint.ts +112 -0
  2019. package/scripts/run/ship/run-ship-review-reason.ts +3 -1
  2020. package/scripts/run/ship/run-ship-review-steps.ts +80 -31
  2021. package/scripts/run/ship/run-ship-review.ts +13 -9
  2022. package/scripts/run/ship/run-ship-reviewer.ts +59 -7
  2023. package/scripts/run/ship/run-ship-scoped.ts +232 -21
  2024. package/scripts/run/ship/run-ship-stage.ts +3 -5
  2025. package/scripts/run/ship/run-ship-steps.ts +65 -20
  2026. package/scripts/run/ship/run-ship-stop-cause.ts +52 -1
  2027. package/scripts/run/ship/run-ship-stop-context.ts +5 -5
  2028. package/scripts/run/ship/run-ship-stop-text.ts +1 -1
  2029. package/scripts/run/ship/run-ship-supervised.ts +38 -0
  2030. package/scripts/run/ship/run-ship-sync.ts +114 -19
  2031. package/scripts/run/ship/run-ship-synced-scope.ts +162 -58
  2032. package/scripts/run/ship/run-ship-tree-stamp.ts +35 -0
  2033. package/scripts/run/ship/run-ship-wait-cli.ts +23 -25
  2034. package/scripts/run/ship/run-ship-wait-main.ts +12 -0
  2035. package/scripts/run/ship/run-ship-waiter.ts +8 -6
  2036. package/scripts/run/ship/run-ship.ts +12 -0
  2037. package/scripts/run/split/run-split-cli.ts +134 -0
  2038. package/scripts/run/split/run-split-prerequisite.ts +75 -0
  2039. package/scripts/run/split/run-split.ts +213 -0
  2040. package/scripts/run/stale/run-stale-cli.ts +86 -0
  2041. package/scripts/run/stale/run-stale-main.ts +7 -0
  2042. package/scripts/run/stale/run-stale.ts +117 -0
  2043. package/scripts/run/tidy/run-tidy-cli.ts +24 -2
  2044. package/scripts/run/tree-status-cli.ts +131 -0
  2045. package/scripts/run/tree-status.ts +77 -0
  2046. package/scripts/run/ts-entry-loader.ts +34 -0
  2047. package/scripts/run/wake/run-wake-await.ts +22 -2
  2048. package/scripts/run/wake/run-wake-cli.ts +3 -3
  2049. package/scripts/run/wake/run-wake-describe.ts +1 -1
  2050. package/scripts/run/wake/run-wake-driver.ts +158 -61
  2051. package/scripts/run/wake/run-wake-handoff.ts +65 -14
  2052. package/scripts/run/wake/run-wake-loop.ts +63 -23
  2053. package/scripts/run/wake/run-wake-ports.ts +99 -17
  2054. package/scripts/run/wake/run-wake-resume.ts +98 -0
  2055. package/scripts/run/wake/run-wake-session.ts +16 -14
  2056. package/scripts/run/wake/run-wake-window.ts +15 -0
  2057. package/scripts/run/wake/run-wake.ts +7 -6
  2058. package/scripts/safe-chain/preinstall-command.ts +3 -6
  2059. package/scripts/safe-chain/project-config.ts +2 -2
  2060. package/scripts/security/security-audit-cache.ts +157 -0
  2061. package/scripts/security/security-audit-main.ts +4 -2
  2062. package/scripts/security/security-audit-provision-logic.ts +4 -4
  2063. package/scripts/security/security-audit-provision-main.ts +19 -5
  2064. package/scripts/split/declared-growth.ts +22 -0
  2065. package/scripts/split/split-assess.ts +220 -37
  2066. package/scripts/split/split-child-recover-cli.ts +118 -0
  2067. package/scripts/split/split-direction.ts +172 -0
  2068. package/scripts/split/split-measure.ts +28 -14
  2069. package/scripts/split/split-relocations.ts +108 -0
  2070. package/scripts/split/split-resolution.ts +63 -61
  2071. package/scripts/sync/claude-settings-merge.ts +8 -4
  2072. package/scripts/sync/managed-config-scope.ts +13 -1
  2073. package/scripts/sync/sync-ai-files.ts +2 -2
  2074. package/scripts/sync/sync-configs.ts +3 -5
  2075. package/scripts/test/test-e2e-guard.ts +2 -1
  2076. package/scripts/test/test-inputs.ts +119 -0
  2077. package/scripts/test/test-no-base.ts +35 -16
  2078. package/scripts/test/test-pinned-cache-logic.ts +4 -0
  2079. package/scripts/test/test-pinned-cache.ts +8 -15
  2080. package/scripts/test/test-pinned-carry.ts +93 -0
  2081. package/scripts/test/test-pinned-emit.ts +2 -1
  2082. package/scripts/test/test-pinned-ledger.ts +15 -9
  2083. package/scripts/test/test-pinned-logic.ts +66 -4
  2084. package/scripts/test/test-pinned-main.ts +6 -30
  2085. package/scripts/test/test-pinned-moves.ts +43 -0
  2086. package/scripts/test/test-pinned-probe.ts +61 -17
  2087. package/scripts/test/test-pinned-prune-logic.ts +2 -1
  2088. package/scripts/test/test-pinned-reach.ts +11 -3
  2089. package/scripts/test/test-pinned-record.ts +36 -4
  2090. package/scripts/test/test-pinned-snapshot.ts +110 -0
  2091. package/scripts/test/test-pinned-spawn.ts +32 -7
  2092. package/scripts/test/test-pinned-stage.ts +43 -16
  2093. package/scripts/test/test-pinned-type-check.ts +110 -0
  2094. package/scripts/test/test-pinned.ts +92 -35
  2095. package/scripts/test/test-red-logic.ts +40 -2
  2096. package/scripts/test/test-red.ts +131 -19
  2097. package/scripts/test/test-related-cap.ts +182 -0
  2098. package/scripts/test/test-related-main.ts +2 -4
  2099. package/scripts/test/test-related-pins.ts +33 -0
  2100. package/scripts/test/test-related-record.ts +84 -8
  2101. package/scripts/test/test-related-red.ts +218 -0
  2102. package/scripts/test/test-related-reuse.ts +167 -0
  2103. package/scripts/test/test-related-run.ts +144 -0
  2104. package/scripts/test/test-related-synced.ts +31 -8
  2105. package/scripts/test/test-related-touched.ts +10 -5
  2106. package/scripts/test/test-related-verdict.ts +127 -0
  2107. package/scripts/test/test-related-whole.ts +22 -0
  2108. package/scripts/test/test-related.ts +123 -146
  2109. package/scripts/test/test-type-logic.ts +1 -2
  2110. package/scripts/test/test-unit-guard.ts +12 -3
  2111. package/scripts/test/unit-count-file.ts +25 -1
  2112. package/scripts/test/unit-lane-count.ts +63 -0
  2113. package/scripts/test/unit-run-marker.ts +11 -1
  2114. package/scripts/test/unit-update-arguments.ts +73 -0
  2115. package/scripts/test/unit-worker-share.ts +28 -13
  2116. package/scripts/test/whole-suite-files.ts +2 -0
  2117. package/scripts/time-runtime/guard-rephrase.ts +66 -0
  2118. package/scripts/time-runtime/time-agent-bundles.ts +5 -5
  2119. package/scripts/time-runtime/time-bundle-call.ts +2 -2
  2120. package/scripts/time-runtime/time-bundles.ts +2 -2
  2121. package/scripts/time-runtime/time-command-key.ts +2 -5
  2122. package/scripts/time-runtime/time-density-hook.ts +2 -31
  2123. package/scripts/time-runtime/time-format.ts +4 -4
  2124. package/scripts/time-runtime/time-josh-names.ts +51 -0
  2125. package/scripts/time-runtime/time-markers.ts +4 -4
  2126. package/scripts/time-runtime/time-phase-names.ts +2 -2
  2127. package/scripts/time-runtime/time-shell.ts +28 -17
  2128. package/scripts/time-runtime/time-single-check.ts +4 -4
  2129. package/scripts/time-runtime/time-spans.ts +8 -8
  2130. package/scripts/time-runtime/time-tool-call.ts +4 -3
  2131. package/scripts/time-runtime/time-transcript-block.ts +172 -0
  2132. package/scripts/time-runtime/time-transcript-line.ts +26 -158
  2133. package/scripts/time-runtime/transcript-tail.ts +39 -0
  2134. package/scripts/ui/ui-shot-cli.ts +90 -0
  2135. package/scripts/ui/ui-shot.ts +95 -0
  2136. package/scripts/usage/usage-state-path.ts +22 -0
  2137. package/scripts/usage/usage-tee-cli.ts +5 -0
  2138. package/scripts/usage/usage-tee.ts +48 -0
  2139. package/scripts/version/development-engines-verdict.ts +7 -1
  2140. package/scripts/version/fresh-metadata-cache.ts +4 -3
  2141. package/scripts/version/latest-corepack.ts +3 -3
  2142. package/scripts/version/latest-if-required-cli.ts +32 -4
  2143. package/scripts/version/latest-scope-cli.ts +12 -2
  2144. package/scripts/version/latest-stamp.ts +5 -4
  2145. package/scripts/version/npm-registry.ts +19 -0
  2146. package/scripts/version/playwright-browsers.ts +1 -1
  2147. package/scripts/version/release-hold.ts +2 -2
  2148. package/scripts/version/upgrade-command-guard.ts +1 -1
  2149. package/templates/prettierignore.basic +3 -0
  2150. package/templates/sonar-project.properties +2 -1
  2151. package/templates/workflows/ci.yml +5 -4
  2152. package/tsconfig/base.json +1 -0
  2153. package/dist/hooks/chunk-3GKE653K.js +0 -6204
  2154. package/dist/hooks/chunk-45CJJOO7.js +0 -1243
  2155. package/dist/hooks/chunk-5PM2JRGV.js +0 -7780
  2156. package/dist/hooks/chunk-7SIUNQXK.js +0 -3591
  2157. package/dist/hooks/chunk-Z6DQJKH3.js +0 -2806
  2158. package/prompts/collaboration-workflow.md +0 -28
  2159. package/scripts/epic/epic-bundle-poll.ts +0 -41
  2160. package/scripts/josh/josh-commands-lane.ts +0 -310
  2161. package/scripts/josh/josh-commands-split.ts +0 -28
  2162. package/scripts/review/review-lint-cli.ts +0 -57
  2163. package/scripts/split/split-early-notice.ts +0 -116
@@ -1,1729 +1,95 @@
1
1
  #!/usr/bin/env tsx
2
+ import {
3
+ cost_pricing
4
+ } from "./chunk-GW4UWR3O.js";
5
+ import {
6
+ backlogrun_parent_read_set,
7
+ lane_child_read_set
8
+ } from "./chunk-2TQXCH2K.js";
9
+ import "./chunk-ZDSDPKCD.js";
10
+ import "./chunk-MVPUQLN5.js";
11
+ import {
12
+ entry_read_set
13
+ } from "./chunk-5SB37YDW.js";
14
+ import "./chunk-VW5SGE7A.js";
15
+ import "./chunk-ICEMFE2V.js";
16
+ import "./chunk-BIKGPT52.js";
17
+ import "./chunk-PDDKRHHS.js";
18
+ import "./chunk-55I7OYHI.js";
19
+ import "./chunk-DJVMC3U2.js";
20
+ import "./chunk-MSPIR3OA.js";
21
+ import "./chunk-QQZOQ7AM.js";
22
+ import "./chunk-AWLYN2SP.js";
23
+ import "./chunk-L6XN3EXI.js";
24
+ import "./chunk-4BEIYKI2.js";
25
+ import "./chunk-LE2T3FGJ.js";
26
+ import "./chunk-LQXFVZTS.js";
27
+ import "./chunk-F2HFWLQR.js";
28
+ import "./chunk-UCI4AL3Q.js";
29
+ import {
30
+ agent_role_profile
31
+ } from "./chunk-RIQ75QWR.js";
32
+ import {
33
+ lane_instructions
34
+ } from "./chunk-337QQM4C.js";
35
+ import "./chunk-BEE7OAQ5.js";
36
+ import "./chunk-UCQJDYE3.js";
37
+ import "./chunk-NFKULY26.js";
38
+ import "./chunk-NSAVEXVR.js";
39
+ import "./chunk-P4KIQRSL.js";
40
+ import "./chunk-66TGK5XL.js";
41
+ import "./chunk-EZSO25UZ.js";
42
+ import "./chunk-2DJLAUYB.js";
43
+ import "./chunk-EW4NPUMQ.js";
44
+ import "./chunk-BF6YX4HE.js";
45
+ import "./chunk-3LZXX5GL.js";
46
+ import "./chunk-W2IA2LV3.js";
47
+ import "./chunk-OHNP3QL2.js";
48
+ import "./chunk-X7PN54LZ.js";
49
+ import "./chunk-MDKDJF2K.js";
50
+ import "./chunk-HQ2HSZBN.js";
51
+ import "./chunk-I63RNFFR.js";
52
+ import "./chunk-MPGJ4ONJ.js";
53
+ import {
54
+ cost_usage
55
+ } from "./chunk-6WKJ3GDA.js";
56
+ import "./chunk-YIA6FC3K.js";
57
+ import "./chunk-JQXPLMCO.js";
58
+ import "./chunk-66NX6EXR.js";
59
+ import "./chunk-3NWAGIA6.js";
60
+ import "./chunk-2FE3C4PH.js";
61
+ import "./chunk-HLUS2M3D.js";
62
+ import "./chunk-SBGTCT2C.js";
63
+ import "./chunk-AKK56GNX.js";
64
+ import "./chunk-TBIX5FRN.js";
65
+ import "./chunk-IGD6QJPH.js";
66
+ import "./chunk-FFHEGWPK.js";
67
+ import "./chunk-R6QE5VJG.js";
68
+ import "./chunk-4ZHWTTQW.js";
69
+ import "./chunk-HHBC6QZE.js";
70
+ import "./chunk-QWWTC3XR.js";
71
+ import "./chunk-ILGPZ47M.js";
72
+ import "./chunk-3CCGKX7Y.js";
73
+ import "./chunk-KSR23NYN.js";
74
+ import "./chunk-G47ZNQVG.js";
75
+ import "./chunk-V5FD7DVV.js";
76
+ import "./chunk-36LOGVJ7.js";
77
+ import "./chunk-AKQYYHP2.js";
78
+ import "./chunk-CJKPF5DJ.js";
79
+ import "./chunk-RBU2NKHF.js";
80
+ import "./chunk-NKKH3PBE.js";
81
+ import "./chunk-B77ZMVHS.js";
82
+ import "./chunk-B5GXZK3E.js";
83
+ import "./chunk-KTLR4Y32.js";
84
+ import "./chunk-ZNX2LJCQ.js";
85
+ import "./chunk-VJE3RJAX.js";
86
+ import "./chunk-WPAQUMHC.js";
87
+ import "./chunk-HIU2WXB6.js";
2
88
 
3
89
  // scripts/document/read-set-cli.ts
4
- import { fileURLToPath as fileURLToPath3 } from "node:url";
5
-
6
- // scripts/agent/lane-instructions.ts
7
- import path6 from "node:path";
8
- import { fileURLToPath as fileURLToPath2 } from "node:url";
9
-
10
- // scripts/cost-runtime/cost-tokens.ts
11
- var ASCII_CHARS_PER_TOKEN = 3;
12
- var WIDE_TOKENS_PER_CHAR = 1;
13
- var ASCII_LIMIT = 128;
14
- function count_chars(text) {
15
- let ascii_chars = 0;
16
- let wide_chars = 0;
17
- for (const char of text) {
18
- if ((char.codePointAt(0) ?? 0) < ASCII_LIMIT) ascii_chars += 1;
19
- else wide_chars += 1;
20
- }
21
- return { ascii_chars, wide_chars };
22
- }
23
- function estimate(text) {
24
- const { ascii_chars, wide_chars } = count_chars(text);
25
- return Math.round(ascii_chars / ASCII_CHARS_PER_TOKEN) + wide_chars * WIDE_TOKENS_PER_CHAR;
26
- }
27
- function ascii_bytes_to_tokens(bytes) {
28
- return Math.round(bytes / ASCII_CHARS_PER_TOKEN);
29
- }
30
- var cost_tokens = {
31
- ASCII_CHARS_PER_TOKEN,
32
- count_chars,
33
- estimate,
34
- ascii_bytes_to_tokens
35
- };
36
-
37
- // scripts/lib/read-file.ts
38
- import { readFileSync } from "node:fs";
39
- var ABSENT_CODE = "ENOENT";
40
- function is_absent(error) {
41
- return error instanceof Error && "code" in error && error.code === ABSENT_CODE;
42
- }
43
- function read_optional(path9) {
44
- try {
45
- return readFileSync(path9, "utf8");
46
- } catch (error) {
47
- if (is_absent(error)) return void 0;
48
- throw error;
49
- }
50
- }
51
- function read_file_or_empty(path9) {
52
- return read_optional(path9) ?? "";
53
- }
54
- function read_if_readable(path9) {
55
- try {
56
- return readFileSync(path9, "utf8");
57
- } catch {
58
- return void 0;
59
- }
60
- }
61
- var file_reader = { is_absent, read_optional, read_file_or_empty, read_if_readable };
62
-
63
- // scripts/document/document-scan.ts
64
- var COMMAND_PATTERN = /`(?:pnpm )?josh ([a-z][a-z0-9:-]+)/gu;
65
- var LABEL_PATTERN = /(?:labels\[\]=|\/labels\/|labels -f name=)([a-z][a-z0-9:_-]*)/gu;
66
- var SECTION_PATTERN = /(?<![\w./:`-])(?<tick>`?)(?<file>[\w./-]+\.md)\k<tick>\s*→\s*(?:§\w+,\s*)?["「](?<heading>[^"」]+)["」]/gu;
67
- var ADJACENT_PATTERN = /["「](?<heading>[^"「」]+)["」]\s+(?:above|below)\b/gu;
68
- var BARE_ARROW_PATTERN = /→\s*(?:§\w+,\s*)?["「](?<heading>[^"「」]+)["」]/gu;
69
- var LINK_TARGET_PATTERN = /\]\([^)\s]*\)/gu;
70
- var LINK_PATTERN = /\]\(([\w./-]+\.(?:md|png|jpe?g|gif|svg|webp))(?:#[\w-]+)?\)/gu;
71
- var PLACEHOLDER_FILES = /* @__PURE__ */ new Set(["x.md", "foo.md", "file.md", "path.md"]);
72
- function matches(text, pattern) {
73
- return [...text.matchAll(pattern)];
74
- }
75
- function command_references(text) {
76
- return matches(text, COMMAND_PATTERN).map((match) => match[1] ?? "").filter((name) => !name.endsWith(":"));
77
- }
78
- function is_real_label(token) {
79
- return token.length > 0 && !token.endsWith(":") && !token.includes("<");
80
- }
81
- function label_references(text) {
82
- return matches(text, LABEL_PATTERN).map((match) => match[1] ?? "").filter((token) => is_real_label(token));
83
- }
84
- function base_name(path9) {
85
- return path9.split("/").at(-1) ?? path9;
86
- }
87
- function is_placeholder_file(name) {
88
- return name.includes("<") || PLACEHOLDER_FILES.has(base_name(name).toLowerCase());
89
- }
90
- function section_references(text) {
91
- return matches(text.replaceAll(LINK_TARGET_PATTERN, ""), SECTION_PATTERN).map(({ groups }) => ({ file: groups?.["file"] ?? "", heading: groups?.["heading"] ?? "" })).filter((reference) => !is_placeholder_file(reference.file));
92
- }
93
- function headings_matching(text, pattern) {
94
- return matches(text, pattern).map(({ groups }) => groups?.["heading"] ?? "");
95
- }
96
- function adjacent_references(text) {
97
- return headings_matching(text, ADJACENT_PATTERN);
98
- }
99
- function bare_arrow_references(text) {
100
- const unfiled = text.replaceAll(LINK_TARGET_PATTERN, "").replaceAll(SECTION_PATTERN, "");
101
- return headings_matching(unfiled, BARE_ARROW_PATTERN);
102
- }
103
- function link_targets(text) {
104
- return matches(text, LINK_PATTERN).map((match) => match[1] ?? "").filter((file) => !is_placeholder_file(file));
105
- }
106
- function normalize_reference(heading) {
107
- return heading.replaceAll("`", "").split(/\s+/u).filter((word) => word !== ">").join(" ");
108
- }
109
- function reference_forms(title) {
110
- const normalized = normalize_reference(title);
111
- return [normalized, normalized.replace(/^\d+[a-z]?\. /u, "")];
112
- }
113
- var document_scan = {
114
- adjacent_references,
115
- bare_arrow_references,
116
- command_references,
117
- label_references,
118
- link_targets,
119
- normalize_reference,
120
- reference_forms,
121
- section_references
122
- };
123
-
124
- // scripts/document/document-section.ts
125
- var HEADING_PATTERN = /^(?<hashes>#{1,6}) (?<title>.*)$/u;
126
- var FENCE = "```";
127
- var SINGLE_MATCH = 1;
128
- var BOLD_LABEL_PATTERN = /\*\*([^*]+?)\*\*/gu;
129
- var BOLD_DELIMITER = "**";
130
- var CODE_SPAN_PATTERN = /``[^\n]*?``|`[^`\n]*`/gu;
131
- var LABEL_LEVEL = 7;
132
- var LIST_ITEM_PATTERN = /^(?<indent>\s*)(?:[-*]|\d+\.) /u;
133
- function to_heading(line, index) {
134
- const groups = HEADING_PATTERN.exec(line)?.groups;
135
- if (groups === void 0) return void 0;
136
- const { hashes = "", title = "" } = groups;
137
- return { level: hashes.length, title: title.trim(), line: index };
138
- }
139
- function push_heading(found, line, index) {
140
- const heading = to_heading(line, index);
141
- if (heading !== void 0) found.push(heading);
142
- }
143
- function fenced_flags(lines) {
144
- let is_inside_fence = false;
145
- return lines.map(function is_fenced(line) {
146
- if (!line.startsWith(FENCE)) return is_inside_fence;
147
- is_inside_fence = !is_inside_fence;
148
- return true;
149
- });
150
- }
151
- function headings(markdown) {
152
- const lines = markdown.split("\n");
153
- const fenced = fenced_flags(lines);
154
- const found = [];
155
- for (const [index, line] of lines.entries()) {
156
- if (fenced[index] !== true) push_heading(found, line, index);
157
- }
158
- return found;
159
- }
160
- function titles(markdown) {
161
- return headings(markdown).map((heading) => heading.title);
162
- }
163
- function line_starts(markdown) {
164
- return [...markdown.matchAll(/\n/gu)].map((match) => match.index + SINGLE_MATCH);
165
- }
166
- function line_of(starts, offset) {
167
- return starts.filter((start) => start <= offset).length;
168
- }
169
- function unfenced_text(markdown) {
170
- const lines = markdown.split("\n");
171
- const fenced = fenced_flags(lines);
172
- return lines.map((line, index) => fenced[index] === true ? "" : line).join("\n");
173
- }
174
- function code_masked(text) {
175
- return text.replaceAll(CODE_SPAN_PATTERN, (span) => span.replaceAll("*", " "));
176
- }
177
- function labels(markdown) {
178
- const text = unfenced_text(markdown);
179
- const starts = line_starts(text);
180
- return [...code_masked(text).matchAll(BOLD_LABEL_PATTERN)].map((match) => ({
181
- level: LABEL_LEVEL,
182
- title: text.slice(
183
- match.index + BOLD_DELIMITER.length,
184
- match.index + match[0].length - BOLD_DELIMITER.length
185
- ),
186
- line: line_of(starts, match.index)
187
- }));
188
- }
189
- function is_match(heading, wanted) {
190
- return document_scan.reference_forms(heading.title).some((form) => form.startsWith(wanted));
191
- }
192
- function prefixed(found, wanted) {
193
- const normalized = document_scan.normalize_reference(wanted);
194
- return found.filter((heading) => is_match(heading, normalized));
195
- }
196
- function is_exact(heading, wanted) {
197
- return document_scan.reference_forms(heading.title).includes(wanted);
198
- }
199
- function select(found, wanted) {
200
- const normalized = document_scan.normalize_reference(wanted);
201
- const exact = found.find((heading) => is_exact(heading, normalized));
202
- if (exact !== void 0) return exact;
203
- const near = prefixed(found, wanted);
204
- return near.length === SINGLE_MATCH ? near[0] : void 0;
205
- }
206
- function last_line_of(found, chosen, total_lines2) {
207
- const next = found.find((heading) => heading.line > chosen.line && heading.level <= chosen.level);
208
- return (next === void 0 ? total_lines2 : next.line) - SINGLE_MATCH;
209
- }
210
- function indent_of(line) {
211
- return line.length - line.trimStart().length;
212
- }
213
- function is_sibling_item(line, depth) {
214
- const { indent } = LIST_ITEM_PATTERN.exec(line)?.groups ?? {};
215
- return indent !== void 0 && indent.length <= depth;
216
- }
217
- function ends_block(line, depth) {
218
- if (line.trim() === "" || HEADING_PATTERN.test(line)) return true;
219
- return is_sibling_item(line, depth);
220
- }
221
- function label_last_line(lines, label) {
222
- const depth = indent_of(lines[label.line] ?? "");
223
- const end = lines.findIndex((line, index) => index > label.line && ends_block(line, depth));
224
- return (end === -1 ? lines.length : end) - SINGLE_MATCH;
225
- }
226
- function choose(markdown, wanted) {
227
- const found = headings(markdown);
228
- if (prefixed(found, wanted).length > 0) return select(found, wanted);
229
- return select(labels(markdown), wanted);
230
- }
231
- function extent_of(markdown, chosen) {
232
- const lines = markdown.split("\n");
233
- if (chosen.level === LABEL_LEVEL) return label_last_line(lines, chosen);
234
- return last_line_of(headings(markdown), chosen, lines.length);
235
- }
236
- function section(markdown, wanted) {
237
- const chosen = choose(markdown, wanted);
238
- if (chosen === void 0) return void 0;
239
- const last_line = extent_of(markdown, chosen);
240
- const lines = markdown.split("\n").slice(chosen.line, last_line + SINGLE_MATCH);
241
- return {
242
- title: chosen.title,
243
- level: chosen.level,
244
- first_line: chosen.line,
245
- last_line,
246
- text: lines.join("\n")
247
- };
248
- }
249
- function candidates(markdown, wanted) {
250
- const near = prefixed(headings(markdown), wanted);
251
- const listed = near.length > 0 ? near : prefixed(labels(markdown), wanted);
252
- return listed.map((heading) => heading.title);
253
- }
254
- function read_optional2(file_path) {
255
- return file_reader.read_if_readable(file_path);
256
- }
257
- var document_section = {
258
- candidates,
259
- fenced_flags,
260
- headings,
261
- read_optional: read_optional2,
262
- section,
263
- titles
264
- };
265
-
266
- // scripts/init/distributed-paths.ts
267
- var KIT_PACKAGE_PATH_PREFIX = "node_modules/@joshuafolkken/kit/";
268
- var PROMPTS_PACKAGE_PREFIX = `${KIT_PACKAGE_PATH_PREFIX}prompts/`;
269
- var ESLINT_PACKAGE_PREFIX = `${KIT_PACKAGE_PATH_PREFIX}eslint/`;
270
- var GITHUB_REPO_BLOB_BASE = "https://github.com/joshuafolkken/kit/blob/main/";
271
- var GITHUB_REPO_TREE_BASE = "https://github.com/joshuafolkken/kit/tree/main/";
272
- var CLAUDE_MD_IMPORT_LINE = "@node_modules/@joshuafolkken/kit/dist/CLAUDE.md";
273
- var OLD_CLAUDE_MD_BOOTSTRAP = "> Fresh checkout: if kit is not installed, run `pnpm install` first, then reread this file before doing any other work.";
274
- var CLAUDE_MD_BOOTSTRAP = '> Fresh checkout: before `pnpm install`, run `pnpm config get "@joshuafolkken:registry"` from the project root to check the effective registry, including user-level settings. If it points to GitHub Packages, [set up authentication](https://github.com/joshuafolkken/kit/blob/main/docs/authentication.md#1-get-a-token-from-the-gh-cli) first. Then run `pnpm install` and reread this file before doing any other work.';
275
- function transform_prompt_paths(content) {
276
- return content.replaceAll(
277
- /`prompts\/([^`*]+)`/gu,
278
- (_match, prompt_path) => `\`${PROMPTS_PACKAGE_PREFIX}${prompt_path}\``
279
- );
280
- }
281
- function transform_eslint_paths(content) {
282
- return content.replaceAll(
283
- /`eslint\/([^`*]+)`/gu,
284
- (_match, eslint_path) => `\`${ESLINT_PACKAGE_PREFIX}${eslint_path}\``
285
- );
286
- }
287
- function transform_test_file_paths(content) {
288
- return content.replaceAll(
289
- /`([^`*]+\.(?:test|spec)\.ts)`/gu,
290
- (_match, test_path) => `\`${GITHUB_REPO_BLOB_BASE}${test_path}\``
291
- );
292
- }
293
- function github_url_base(reference_path) {
294
- return reference_path.endsWith("/") ? GITHUB_REPO_TREE_BASE : GITHUB_REPO_BLOB_BASE;
295
- }
296
- function transform_documentation_paths(content) {
297
- return content.replaceAll(
298
- /`(docs\/[^`*]*)`/gu,
299
- (_match, documentation_path) => `\`${github_url_base(documentation_path)}${documentation_path}\``
300
- );
301
- }
302
- function transform_distributed_paths(content) {
303
- const with_prompts = transform_prompt_paths(content);
304
- const with_eslint = transform_eslint_paths(with_prompts);
305
- const with_tests = transform_test_file_paths(with_eslint);
306
- return transform_documentation_paths(with_tests);
307
- }
308
- function ensure_claude_md_import(existing) {
309
- if (existing === void 0) return `${CLAUDE_MD_BOOTSTRAP}
310
-
311
- ${CLAUDE_MD_IMPORT_LINE}
312
- `;
313
- const updated = existing.replace(OLD_CLAUDE_MD_BOOTSTRAP, () => CLAUDE_MD_BOOTSTRAP);
314
- if (updated.includes(CLAUDE_MD_IMPORT_LINE)) {
315
- if (updated.includes(CLAUDE_MD_BOOTSTRAP)) return updated;
316
- return `${CLAUDE_MD_BOOTSTRAP}
317
-
318
- ${updated}`;
319
- }
320
- return `${CLAUDE_MD_BOOTSTRAP}
321
-
322
- ${CLAUDE_MD_IMPORT_LINE}
323
-
324
- ${updated}`;
325
- }
326
- var FULL_CLAUDE_MD_LINES = /* @__PURE__ */ new Set([
327
- CLAUDE_MD_BOOTSTRAP,
328
- OLD_CLAUDE_MD_BOOTSTRAP,
329
- CLAUDE_MD_IMPORT_LINE
330
- ]);
331
- function remove_claude_md_import(content) {
332
- const lines = content.split("\n");
333
- return lines.filter((line, index) => {
334
- if (FULL_CLAUDE_MD_LINES.has(line)) return false;
335
- return line !== "" || !FULL_CLAUDE_MD_LINES.has(lines[index - 1] ?? "");
336
- }).join("\n");
337
- }
338
- var distributed_paths = {
339
- transform_prompt_paths,
340
- transform_distributed_paths,
341
- ensure_claude_md_import,
342
- remove_claude_md_import,
343
- CLAUDE_MD_IMPORT_LINE,
344
- KIT_PACKAGE_PATH_PREFIX
345
- };
346
-
347
- // scripts/josh/package-directory.ts
348
- import { existsSync } from "node:fs";
349
-
350
- // scripts/lib/ancestor-directories.ts
351
- import path from "node:path";
352
- var MAX_DEPTH = 64;
353
- function list(start_directory) {
354
- const directories = [];
355
- let current = path.resolve(start_directory);
356
- while (directories.length < MAX_DEPTH && !directories.includes(current)) {
357
- directories.push(current);
358
- current = path.dirname(current);
359
- }
360
- return directories;
361
- }
362
- function nearest(start_directory, is_match2) {
363
- return list(start_directory).find((directory) => is_match2(directory));
364
- }
365
- var ancestor_directories = { list, nearest };
366
-
367
- // scripts/lib/package-manifest.ts
368
- import { readFileSync as readFileSync2 } from "node:fs";
369
- import path2 from "node:path";
370
-
371
- // scripts/lib/json-value.ts
372
- function parse_or_undefined(text) {
373
- try {
374
- return JSON.parse(text);
375
- } catch {
376
- return void 0;
377
- }
378
- }
379
- function parse_with(text, schema) {
380
- const value = parse_or_undefined(text);
381
- if (value === void 0) return void 0;
382
- const parsed = schema.safeParse(value);
383
- return parsed.success ? parsed.data : void 0;
384
- }
385
- function parse_array(text) {
386
- const value = parse_or_undefined(text);
387
- return Array.isArray(value) ? value : void 0;
388
- }
389
- function is_record(value) {
390
- return typeof value === "object" && value !== null && !Array.isArray(value);
391
- }
392
- var json_value = { parse_or_undefined, parse_with, parse_array, is_record };
393
-
394
- // scripts/lib/package-manifest.ts
395
- var PACKAGE_JSON = "package.json";
396
- function manifest_path(directory) {
397
- return path2.join(directory, PACKAGE_JSON);
398
- }
399
- function read_manifest(directory, schema) {
400
- const text = readFileSync2(manifest_path(directory), "utf8");
401
- return schema.parse(JSON.parse(text));
402
- }
403
- function read_manifest_if_valid(directory, schema) {
404
- const text = file_reader.read_if_readable(manifest_path(directory));
405
- if (text === void 0) return void 0;
406
- return json_value.parse_with(text, schema);
407
- }
408
- var package_manifest = { manifest_path, read_manifest, read_manifest_if_valid };
409
-
410
- // scripts/josh/package-directory.ts
411
- function find_package_directory(start_directory) {
412
- return ancestor_directories.nearest(
413
- start_directory,
414
- (directory) => existsSync(package_manifest.manifest_path(directory))
415
- ) ?? start_directory;
416
- }
417
-
418
- // scripts/josh/stamp-file.ts
419
- import { createHash } from "node:crypto";
420
- import { lstatSync, readFileSync as readFileSync3, rmSync as rmSync2, writeFileSync as writeFileSync2 } from "node:fs";
421
- import path5 from "node:path";
422
-
423
- // scripts/init/init-paths.ts
424
- import path3 from "node:path";
90
+ import { dirname as __josh_dirname } from "node:path";
91
+ import { fileURLToPath as __josh_file_path } from "node:url";
425
92
  import { fileURLToPath } from "node:url";
426
- var PACKAGE_DIR = path3.join(path3.dirname(fileURLToPath(import.meta.url)), "..", "..");
427
- var PROJECT_ROOT = process.cwd();
428
-
429
- // scripts/josh/platform-temporary.ts
430
- import { accessSync, constants } from "node:fs";
431
- import { tmpdir } from "node:os";
432
- var POSIX_TEMP_ROOT = "/tmp";
433
- var WINDOWS_PLATFORM = "win32";
434
- function is_writable_directory(directory) {
435
- try {
436
- accessSync(directory, constants.W_OK);
437
- return true;
438
- } catch {
439
- return false;
440
- }
441
- }
442
- function resolve_temporary_root(platform, can_write = is_writable_directory) {
443
- if (platform === WINDOWS_PLATFORM) return tmpdir();
444
- return can_write(POSIX_TEMP_ROOT) ? POSIX_TEMP_ROOT : tmpdir();
445
- }
446
- var TEMP_ROOT_KEY = "JOSH_TEMP_ROOT";
447
- function temporary_root(override, platform) {
448
- return override === void 0 || override === "" ? resolve_temporary_root(platform) : override;
449
- }
450
- var PLATFORM_TEMP_ROOT = temporary_root(process.env[TEMP_ROOT_KEY], process.platform);
451
-
452
- // scripts/lib/atomic-write.ts
453
- import { randomUUID } from "node:crypto";
454
- import { chmodSync, mkdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
455
- import path4 from "node:path";
456
- var STAGING_EXTENSION = ".tmp";
457
- var CREATE_EXCLUSIVE_FLAG = "wx";
458
- function staging_path(target, staging_directory) {
459
- const name = `${path4.basename(target)}.${String(process.pid)}.${randomUUID()}${STAGING_EXTENSION}`;
460
- return path4.join(staging_directory, name);
461
- }
462
- function write_staged(staging, content, mode) {
463
- writeFileSync(staging, content, {
464
- flag: CREATE_EXCLUSIVE_FLAG,
465
- ...mode !== void 0 && { mode }
466
- });
467
- if (mode !== void 0) chmodSync(staging, mode);
468
- }
469
- function replace_file(target, content, options = {}) {
470
- const directory = options.staging_directory ?? path4.dirname(target);
471
- const staging = staging_path(target, directory);
472
- mkdirSync(directory, { recursive: true });
473
- try {
474
- write_staged(staging, content, options.mode);
475
- renameSync(staging, target);
476
- } finally {
477
- rmSync(staging, { force: true });
478
- }
479
- }
480
- var atomic_write = { replace_file };
481
-
482
- // scripts/josh/stamp-file.ts
483
- var HASH_ALGORITHM = "sha256";
484
- var STAMP_SUFFIX = ".json";
485
- var STAMP_KEY_LENGTH = 16;
486
- var STAMP_FILE_MODE = 384;
487
- var STAMP_WRITE_FLAG = "wx";
488
- var STAMP_CREATE_FLAG = STAMP_WRITE_FLAG;
489
- var EXISTS_ERROR_CODE = "EEXIST";
490
- var ACCOUNT_KEY_SEPARATOR = ":";
491
- function digest(content) {
492
- return createHash(HASH_ALGORITHM).update(content).digest("hex");
493
- }
494
- function account_key() {
495
- return String(process.getuid?.() ?? "");
496
- }
497
- function stamp_name(prefix, root = PACKAGE_DIR, suffix = STAMP_SUFFIX) {
498
- const key = digest(`${account_key()}${ACCOUNT_KEY_SEPARATOR}${root}`).slice(0, STAMP_KEY_LENGTH);
499
- return `${prefix}${key}${suffix}`;
500
- }
501
- function stamp_path(prefix, root = PACKAGE_DIR, suffix = STAMP_SUFFIX) {
502
- return path5.join(PLATFORM_TEMP_ROOT, stamp_name(prefix, root, suffix));
503
- }
504
- function write_exclusively(target, content) {
505
- rmSync2(target, { force: true });
506
- writeFileSync2(target, content, { flag: STAMP_WRITE_FLAG, mode: STAMP_FILE_MODE });
507
- return target;
508
- }
509
- function write_stamp(target, payload) {
510
- return write_exclusively(target, JSON.stringify(payload));
511
- }
512
- function is_own_regular_file(source) {
513
- const stats = lstatSync(source);
514
- if (!stats.isFile()) return false;
515
- const uid = process.getuid?.();
516
- return uid === void 0 || stats.uid === uid;
517
- }
518
- function is_foreign_file(target) {
519
- try {
520
- return lstatSync(target).isFile() && !is_own_regular_file(target);
521
- } catch {
522
- return false;
523
- }
524
- }
525
- function replace_text_stamp(target, text) {
526
- if (is_foreign_file(target)) {
527
- throw new Error(`refusing to replace another account's file: ${target}`);
528
- }
529
- atomic_write.replace_file(target, text, { mode: STAMP_FILE_MODE });
530
- return target;
531
- }
532
- function replace_stamp(target, payload) {
533
- return replace_text_stamp(target, JSON.stringify(payload));
534
- }
535
- function write_text_stamp(target, text) {
536
- return write_exclusively(target, text);
537
- }
538
- function create_stamp(target, payload) {
539
- try {
540
- writeFileSync2(target, JSON.stringify(payload), {
541
- flag: STAMP_CREATE_FLAG,
542
- mode: STAMP_FILE_MODE
543
- });
544
- return true;
545
- } catch (error) {
546
- if (error.code === EXISTS_ERROR_CODE) return false;
547
- throw error;
548
- }
549
- }
550
- function remove_stamp(target) {
551
- rmSync2(target, { force: true });
552
- }
553
- function read_stamp_text(source) {
554
- try {
555
- if (!is_own_regular_file(source)) return void 0;
556
- return readFileSync3(source, "utf8");
557
- } catch {
558
- return void 0;
559
- }
560
- }
561
- var stamp_file = {
562
- create_stamp,
563
- digest,
564
- is_own_regular_file,
565
- read_stamp_text,
566
- replace_stamp,
567
- replace_text_stamp,
568
- remove_stamp,
569
- stamp_name,
570
- stamp_path,
571
- write_stamp,
572
- write_text_stamp
573
- };
574
-
575
- // scripts/agent/lane-instructions.ts
576
- var LANE_DOCUMENT = "prompts/collaboration-workflow/lane-instructions.md";
577
- var RULES_FILE = "CLAUDE.md";
578
- var POINTER_FILE = "AGENTS.md";
579
- var INCLUDE_PATTERN = /^<!-- include: CLAUDE\.md → "(?<wanted>.+)" -->$/u;
580
- var PROMPT_FILE_FLAG = "--append-system-prompt-file";
581
- var SETTINGS_FLAG = "--settings";
582
- var PROMPT_FILE_PREFIX = "josh-lane-instructions-";
583
- var PROMPT_FILE_SUFFIX = ".md";
584
- var PACKAGE_DIRECTORY = find_package_directory(path6.dirname(fileURLToPath2(import.meta.url)));
585
- function expand_line(line, rules) {
586
- const wanted = INCLUDE_PATTERN.exec(line)?.groups?.["wanted"];
587
- if (wanted === void 0) return line;
588
- return document_section.section(rules, wanted)?.text;
589
- }
590
- function compose(lane_markdown, rules) {
591
- const expanded = lane_markdown.split("\n").map((line) => expand_line(line, rules));
592
- if (expanded.includes(void 0)) return void 0;
593
- return expanded.join("\n");
594
- }
595
- function rules_sources(cwd) {
596
- const imported = distributed_paths.CLAUDE_MD_IMPORT_LINE.replace(/^@/u, "");
597
- return [path6.join(cwd, RULES_FILE), path6.join(cwd, imported)];
598
- }
599
- function composed_from(lane_markdown, rules_path) {
600
- const rules = document_section.read_optional(rules_path);
601
- return rules === void 0 ? void 0 : compose(lane_markdown, rules);
602
- }
603
- function composed_set(cwd, package_directory) {
604
- const lane_markdown = document_section.read_optional(path6.join(package_directory, LANE_DOCUMENT));
605
- if (lane_markdown === void 0) return void 0;
606
- for (const rules_path of rules_sources(cwd)) {
607
- const text = composed_from(lane_markdown, rules_path);
608
- if (text !== void 0) return { text, rules_path };
609
- }
610
- return void 0;
611
- }
612
- function composed_in(cwd, package_directory = PACKAGE_DIRECTORY) {
613
- return composed_set(cwd, package_directory)?.text;
614
- }
615
- function written(text) {
616
- const file_path = stamp_file.stamp_path(PROMPT_FILE_PREFIX, text, PROMPT_FILE_SUFFIX);
617
- if (stamp_file.read_stamp_text(file_path) === text) return file_path;
618
- try {
619
- return stamp_file.replace_text_stamp(file_path, text);
620
- } catch {
621
- return void 0;
622
- }
623
- }
624
- function excluded_settings(rules_path, cwd) {
625
- return JSON.stringify({ claudeMdExcludes: [rules_path, path6.join(cwd, POINTER_FILE)] });
626
- }
627
- function flags(cwd = process.cwd()) {
628
- const set = composed_set(cwd, PACKAGE_DIRECTORY);
629
- const prompt_file = set === void 0 ? void 0 : written(set.text);
630
- if (set === void 0 || prompt_file === void 0) return [];
631
- return [PROMPT_FILE_FLAG, prompt_file, SETTINGS_FLAG, excluded_settings(set.rules_path, cwd)];
632
- }
633
- function tokens_of(text) {
634
- return cost_tokens.estimate(text).toLocaleString("en-US");
635
- }
636
- function rules_tokens(rules_path) {
637
- return tokens_of(document_section.read_optional(rules_path) ?? "");
638
- }
639
- function resident_line(cwd = process.cwd()) {
640
- const set = composed_set(cwd, PACKAGE_DIRECTORY);
641
- const rules = rules_tokens(set?.rules_path ?? path6.join(cwd, RULES_FILE));
642
- const lane_tokens = set === void 0 ? "not composed" : `${tokens_of(set.text)} tok`;
643
- return ` resident: lane instructions ${lane_tokens} in place of ${RULES_FILE} ${rules} tok`;
644
- }
645
- var lane_instructions = {
646
- PROMPT_FILE_FLAG,
647
- SETTINGS_FLAG,
648
- compose,
649
- composed_in,
650
- flags,
651
- resident_line
652
- };
653
-
654
- // scripts/document/entry-read-set.ts
655
- import { existsSync as existsSync2 } from "node:fs";
656
- import path8 from "node:path";
657
-
658
- // scripts/document/bash-output-cap.ts
659
- import path7 from "node:path";
660
- var SETTINGS_FILE = path7.join(".claude", "settings.json");
661
- var HARNESS_DEFAULT_CAP_CHARS = 3e4;
662
- var ENV_KEY = "env";
663
- var CAP_KEY = "BASH_MAX_OUTPUT_LENGTH";
664
- var NONE = 0;
665
- function property_of(value, key) {
666
- if (typeof value !== "object" || value === null) return void 0;
667
- return Reflect.get(value, key);
668
- }
669
- function declared_cap(text) {
670
- try {
671
- return property_of(property_of(JSON.parse(text), ENV_KEY), CAP_KEY);
672
- } catch {
673
- return void 0;
674
- }
675
- }
676
- function bash_output_cap(root) {
677
- const text = document_section.read_optional(path7.join(root, SETTINGS_FILE)) ?? "";
678
- const chars = Number(declared_cap(text));
679
- return Number.isSafeInteger(chars) && chars > NONE ? chars : HARNESS_DEFAULT_CAP_CHARS;
680
- }
681
- var bash_output_cap_reader = { HARNESS_DEFAULT_CAP_CHARS, bash_output_cap };
682
-
683
- // scripts/document/read-set-cost.ts
684
- var NOTHING = 0;
685
- var ONE_LINE = 1;
686
- function cost_of(text) {
687
- return { bytes: Buffer.byteLength(text, "utf8"), tokens: cost_tokens.estimate(text) };
688
- }
689
- function total(costs) {
690
- const running = { bytes: NOTHING, tokens: NOTHING };
691
- for (const cost of costs) {
692
- running.bytes += cost.bytes;
693
- running.tokens += cost.tokens;
694
- }
695
- return running;
696
- }
697
- function add_range(charged, found) {
698
- for (let index = found.first_line; index <= found.last_line; index += ONE_LINE) charged.add(index);
699
- }
700
- function charged_lines(markdown, headings2) {
701
- const charged = /* @__PURE__ */ new Set();
702
- for (const heading of headings2) {
703
- const found = document_section.section(markdown, heading);
704
- if (found === void 0) return void 0;
705
- add_range(charged, found);
706
- }
707
- return charged;
708
- }
709
- function extend_or_start(runs, index) {
710
- const current = runs.at(-1);
711
- if (current?.at(-1) === index - ONE_LINE) current.push(index);
712
- else runs.push([index]);
713
- }
714
- function contiguous_runs(charged) {
715
- const runs = [];
716
- const ascending = [...charged].toSorted((left, right) => left - right);
717
- for (const index of ascending) extend_or_start(runs, index);
718
- return runs;
719
- }
720
- function run_text(lines, run2) {
721
- return run2.map((index) => lines[index] ?? "").join("\n");
722
- }
723
- function scoped_file_cost(markdown, headings2) {
724
- const charged = charged_lines(markdown, headings2);
725
- if (charged === void 0) return cost_of(markdown);
726
- const lines = markdown.split("\n");
727
- return total(contiguous_runs(charged).map((run2) => cost_of(run_text(lines, run2))));
728
- }
729
- var read_set_cost = { cost_of, scoped_file_cost, total };
730
-
731
- // scripts/document/read-set-point-of-use.ts
732
- var POINT_OF_USE_FILES = /* @__PURE__ */ new Set([
733
- "latest-gate.md",
734
- "followup.md",
735
- "chain-rule.md",
736
- "background-commands.md",
737
- "pre-gate-cut.md",
738
- "progress-watcher.md",
739
- "backlogrun-child.md",
740
- "backlogrun-lanes.md",
741
- "backlogrun-progress.md",
742
- "backlogrun-park.md",
743
- "backlogrun-steps.md",
744
- // Read only when a delegated unit goes silent or a lane's pull request conflicts with `main` — a
745
- // failure path, so a run in which nothing fails never reads it.
746
- "backlogrun-recovery.md",
747
- // Read only when `run:step` prints `pnpm josh retrospective` at a run's stop position — the very
748
- // end of a run, never the entry. Kept out of every entry's read for the
749
- // same reason the phase documents above are: no run that never drains its backlog reaches it.
750
- "retrospective.md"
751
- ]);
752
- var DEFERRED_DECISIONS = /* @__PURE__ */ new Set(["delegation.md", "issue-scout.md"]);
753
- var POINT_OF_USE_BY_ENTRY = /* @__PURE__ */ new Map([
754
- ["kickoff", DEFERRED_DECISIONS],
755
- ["fullrun", DEFERRED_DECISIONS],
756
- ["halfrun", DEFERRED_DECISIONS],
757
- ["prrun", DEFERRED_DECISIONS],
758
- ["backlogrun", /* @__PURE__ */ new Set([...DEFERRED_DECISIONS, "fullrun.md", "split-assessment.md"])]
759
- ]);
760
- var NO_PER_ENTRY_FILES = /* @__PURE__ */ new Set();
761
- function is_point_of_use(entry, file) {
762
- if (POINT_OF_USE_FILES.has(file)) return true;
763
- return (POINT_OF_USE_BY_ENTRY.get(entry) ?? NO_PER_ENTRY_FILES).has(file);
764
- }
765
- function point_of_use_files(entry, cited) {
766
- const reached = [...POINT_OF_USE_FILES].filter((file) => cited.has(file));
767
- return [...reached, ...POINT_OF_USE_BY_ENTRY.get(entry) ?? NO_PER_ENTRY_FILES];
768
- }
769
- var read_set_point_of_use = {
770
- POINT_OF_USE_FILES,
771
- POINT_OF_USE_BY_ENTRY,
772
- is_point_of_use,
773
- point_of_use_files
774
- };
775
-
776
- // scripts/document/entry-read-set.ts
777
- var { POINT_OF_USE_FILES: POINT_OF_USE_FILES2, POINT_OF_USE_BY_ENTRY: POINT_OF_USE_BY_ENTRY2, is_point_of_use: is_point_of_use2, point_of_use_files: point_of_use_files2 } = read_set_point_of_use;
778
- var { cost_of: cost_of2, scoped_file_cost: scoped_file_cost2, total: total2 } = read_set_cost;
779
- var SKILL_DIRECTORY = path8.join(".claude", "skills", "workflow-commands");
780
- var SKILL_FILE = "SKILL.md";
781
- var TABLE_SECTION = "1. Which file to read";
782
- var NOTHING2 = 0;
783
- var HEADING_JOINER = '" + "';
784
- var SUBSECTION_PREFIX = "### ";
785
- var TABLE_ROW = /^\|(?<entry>[^|]+)\|(?<files>[^|]+)\|\s*$/u;
786
- var MARKDOWN_NAME = /`(?<name>[\w.-]+\.md)`/gu;
787
- var ENTRY_KEYWORD = /`(?<keyword>[a-z]+)/u;
788
- var SECTION_REFERENCE = /`(?<file>[\w.-]+\.md)` *→ *"(?<heading>[^"]+)"/gu;
789
- var WHITESPACE_RUN = /\s+/gu;
790
- function document_path(root, name) {
791
- const in_project = path8.join(root, SKILL_DIRECTORY, name);
792
- const in_package = path8.join(PACKAGE_DIR, SKILL_DIRECTORY, name);
793
- const project_manifest = path8.join(root, "package.json");
794
- if (root !== "" && existsSync2(project_manifest) && existsSync2(in_package)) return in_package;
795
- return existsSync2(in_project) ? in_project : in_package;
796
- }
797
- function read_document(root, name) {
798
- return document_section.read_optional(document_path(root, name)) ?? "";
799
- }
800
- function unique(names) {
801
- return [...new Set(names)];
802
- }
803
- function all_matches(text, pattern) {
804
- const scanner = new RegExp(pattern.source, pattern.flags);
805
- const found = [];
806
- let match = scanner.exec(text);
807
- while (match !== null) {
808
- found.push(match);
809
- match = scanner.exec(text);
810
- }
811
- return found;
812
- }
813
- function group_of(match, name) {
814
- return match.groups?.[name] ?? "";
815
- }
816
- function names_in(text) {
817
- return all_matches(text, MARKDOWN_NAME).map((match) => group_of(match, "name"));
818
- }
819
- function columns_of(line) {
820
- const groups = TABLE_ROW.exec(line)?.groups;
821
- if (groups === void 0) return void 0;
822
- const { entry = "", files = "" } = groups;
823
- return { entry, files };
824
- }
825
- function to_row(line) {
826
- const columns = columns_of(line);
827
- if (columns === void 0) return void 0;
828
- const { keyword } = ENTRY_KEYWORD.exec(columns.entry)?.groups ?? {};
829
- return keyword === void 0 ? void 0 : { keyword, files: names_in(columns.files) };
830
- }
831
- function push_row(rows, line) {
832
- const row2 = to_row(line);
833
- if (row2 !== void 0 && row2.files.length > NOTHING2) rows.set(row2.keyword, row2.files);
834
- }
835
- function table_rows(root) {
836
- const rows = /* @__PURE__ */ new Map();
837
- const found = document_section.section(read_document(root, SKILL_FILE), TABLE_SECTION);
838
- const lines = (found?.text ?? "").split("\n");
839
- for (const line of lines) {
840
- if (line.startsWith(SUBSECTION_PREFIX)) break;
841
- push_row(rows, line);
842
- }
843
- return rows;
844
- }
845
- function files_for(root, entry) {
846
- const declared = table_rows(root).get(entry) ?? [];
847
- return unique([SKILL_FILE, ...declared]).filter((file) => !is_point_of_use2(entry, file));
848
- }
849
- function fold(text) {
850
- return text.replaceAll(WHITESPACE_RUN, " ").trim();
851
- }
852
- function is_sibling_document(root, name) {
853
- return document_section.read_optional(document_path(root, name)) !== void 0;
854
- }
855
- function is_counted(root, entry, reference, files) {
856
- if (is_point_of_use2(entry, reference.file)) return false;
857
- return !files.includes(reference.file) && is_sibling_document(root, reference.file);
858
- }
859
- function to_reference(match) {
860
- return { file: group_of(match, "file"), heading: fold(group_of(match, "heading")) };
861
- }
862
- function references_from(root, entry, text, files) {
863
- return all_matches(text, SECTION_REFERENCE).map((match) => to_reference(match)).filter((reference) => is_counted(root, entry, reference, files));
864
- }
865
- function sort_key(reference) {
866
- return `${reference.file} ${reference.heading}`;
867
- }
868
- function dedupe(references) {
869
- const seen = /* @__PURE__ */ new Map();
870
- for (const reference of references) seen.set(sort_key(reference), reference);
871
- return [...seen].map(([, reference]) => reference);
872
- }
873
- function sections_for(root, entry, files) {
874
- const found = files.filter((file) => file !== SKILL_FILE).flatMap((file) => references_from(root, entry, read_document(root, file), files));
875
- return dedupe(found).toSorted((left, right) => sort_key(left).localeCompare(sort_key(right)));
876
- }
877
- function read_set(root, entry) {
878
- const files = files_for(root, entry);
879
- return { entry, files, sections: sections_for(root, entry, files) };
880
- }
881
- function section_cost(root, reference) {
882
- const found = document_section.section(read_document(root, reference.file), reference.heading);
883
- return {
884
- ...reference,
885
- // **An unresolvable reference is charged at the whole file.** Reporting it at zero would let a
886
- // broken pointer read as a saving, which is the one direction this measurement must not move.
887
- cost: cost_of2(found?.text ?? read_document(root, reference.file)),
888
- is_resolved: found !== void 0
889
- };
890
- }
891
- function referenced_cost(root, sections) {
892
- const files = unique(sections.map((reference) => reference.file));
893
- return total2(files.map((file) => cost_of2(read_document(root, file))));
894
- }
895
- function headings_for(sections, file) {
896
- return sections.filter((reference) => reference.file === file).map((one) => one.heading);
897
- }
898
- function scoped_cost(root, sections) {
899
- const files = unique(sections.map((reference) => reference.file));
900
- return total2(
901
- files.map((file) => scoped_file_cost2(read_document(root, file), headings_for(sections, file)))
902
- );
903
- }
904
- function file_costs(root, names) {
905
- return names.map((file) => ({ file, cost: cost_of2(read_document(root, file)) }));
906
- }
907
- function point_of_use_cost(root, file, references) {
908
- const markdown = read_document(root, file);
909
- const headings2 = unique(references.filter((one) => one.file === file).map((one) => one.heading));
910
- if (headings2.length === NOTHING2) {
911
- return { file, heading: "", cost: cost_of2(markdown), is_resolved: true };
912
- }
913
- return {
914
- file,
915
- heading: headings2.join(HEADING_JOINER),
916
- cost: scoped_file_cost2(markdown, headings2),
917
- is_resolved: headings2.every(
918
- (heading) => document_section.section(markdown, heading) !== void 0
919
- )
920
- };
921
- }
922
- function path_texts(root, entry, table_text) {
923
- const manifests = files_for(root, entry).filter((file) => file !== SKILL_FILE);
924
- const rows = table_text.split("\n").filter((line) => line.startsWith("|") && line.includes(`\`${entry}\``));
925
- return [...manifests.map((file) => read_document(root, file)), ...rows];
926
- }
927
- function point_of_use_references(root, entry, table_text) {
928
- const manifests = files_for(root, entry).filter((file) => file !== SKILL_FILE);
929
- const texts = [table_text, ...manifests.map((file) => read_document(root, file))];
930
- return texts.flatMap(
931
- (text) => all_matches(text, SECTION_REFERENCE).map((match) => to_reference(match))
932
- );
933
- }
934
- function point_of_use_costs(root, entry, also) {
935
- const table_text = document_section.section(read_document(root, SKILL_FILE), TABLE_SECTION)?.text ?? "";
936
- const references = point_of_use_references(root, entry, table_text);
937
- const named = path_texts(root, entry, table_text).flatMap((text) => names_in(text));
938
- const cited = /* @__PURE__ */ new Set([...also, ...named]);
939
- return point_of_use_files2(entry, cited).map((file) => point_of_use_cost(root, file, references));
940
- }
941
- function costed(root, entry, also = /* @__PURE__ */ new Set()) {
942
- const { files, sections } = read_set(root, entry);
943
- const own_costs = file_costs(root, files);
944
- const section_costs = sections.map((reference) => section_cost(root, reference));
945
- const own = total2(own_costs.map((row2) => row2.cost));
946
- return {
947
- entry,
948
- files: own_costs,
949
- sections: section_costs,
950
- point_of_use: point_of_use_costs(root, entry, also),
951
- bash_output_cap: bash_output_cap_reader.bash_output_cap(root),
952
- whole: total2([own, referenced_cost(root, sections)]),
953
- scoped: total2([own, scoped_cost(root, sections)])
954
- };
955
- }
956
- function entries(root) {
957
- return [...table_rows(root)].map(([keyword]) => keyword);
958
- }
959
- var entry_read_set = {
960
- HARNESS_DEFAULT_CAP_CHARS: bash_output_cap_reader.HARNESS_DEFAULT_CAP_CHARS,
961
- POINT_OF_USE_BY_ENTRY: POINT_OF_USE_BY_ENTRY2,
962
- POINT_OF_USE_FILES: POINT_OF_USE_FILES2,
963
- SECTION_REFERENCE,
964
- SKILL_DIRECTORY,
965
- SKILL_FILE,
966
- TABLE_SECTION,
967
- bash_output_cap: bash_output_cap_reader.bash_output_cap,
968
- cost_of: cost_of2,
969
- costed,
970
- document_path,
971
- entries,
972
- read_set,
973
- total: total2
974
- };
975
-
976
- // scripts/document/read-set-trim.ts
977
- function subtract(left, right) {
978
- return { bytes: left.bytes - right.bytes, tokens: left.tokens - right.tokens };
979
- }
980
- function skill_text(root) {
981
- const path9 = entry_read_set.document_path(root, entry_read_set.SKILL_FILE);
982
- return document_section.read_optional(path9) ?? "";
983
- }
984
- function section_cost2(text, heading) {
985
- return entry_read_set.cost_of(document_section.section(text, heading)?.text ?? "");
986
- }
987
- function unused_skill_cost(root, sections) {
988
- const text = skill_text(root);
989
- return entry_read_set.total(sections.map((heading) => section_cost2(text, heading)));
990
- }
991
- function reduce_skill(file, saving) {
992
- if (file.file !== entry_read_set.SKILL_FILE) return file;
993
- return { file: file.file, cost: subtract(file.cost, saving) };
994
- }
995
- function costed2(root, spec) {
996
- const base = entry_read_set.costed(root, spec.base_entry, spec.reached_point_of_use);
997
- const saving = unused_skill_cost(root, spec.unused_skill_sections);
998
- return {
999
- ...base,
1000
- entry: spec.label,
1001
- files: base.files.map((file) => reduce_skill(file, saving)),
1002
- point_of_use: base.point_of_use.filter((one) => !spec.skipped_point_of_use.has(one.file)),
1003
- whole: subtract(base.whole, saving),
1004
- scoped: subtract(base.scoped, saving)
1005
- };
1006
- }
1007
- var read_set_trim = { costed: costed2 };
1008
-
1009
- // scripts/document/backlogrun-parent-read-set.ts
1010
- var BACKLOGRUN = "backlogrun";
1011
- var UNUSED_SKILL_SECTIONS = [
1012
- "3. What stays resident, and what is read from here"
1013
- ];
1014
- var SKIPPED_POINT_OF_USE = /* @__PURE__ */ new Set();
1015
- var REACHED_POINT_OF_USE = /* @__PURE__ */ new Set([
1016
- "retrospective.md",
1017
- "backlogrun-recovery.md"
1018
- ]);
1019
- function costed3(root) {
1020
- return read_set_trim.costed(root, {
1021
- base_entry: BACKLOGRUN,
1022
- label: BACKLOGRUN,
1023
- unused_skill_sections: UNUSED_SKILL_SECTIONS,
1024
- skipped_point_of_use: SKIPPED_POINT_OF_USE,
1025
- reached_point_of_use: REACHED_POINT_OF_USE
1026
- });
1027
- }
1028
- var backlogrun_parent_read_set = {
1029
- BACKLOGRUN,
1030
- REACHED_POINT_OF_USE,
1031
- UNUSED_SKILL_SECTIONS,
1032
- costed: costed3
1033
- };
1034
-
1035
- // scripts/document/lane-child-read-set.ts
1036
- var LANE_CHILD = "lane-child";
1037
- var FULLRUN = "fullrun";
1038
- var UNUSED_SKILL_SECTIONS2 = [
1039
- "0. The rule that fires before any of them \u2014 explicit invocation",
1040
- "3. What stays resident, and what is read from here"
1041
- ];
1042
- var SKIPPED_POINT_OF_USE2 = /* @__PURE__ */ new Set([
1043
- "backlogrun-child.md",
1044
- "backlogrun-lanes.md",
1045
- "backlogrun-progress.md",
1046
- "backlogrun-steps.md",
1047
- "delegation.md",
1048
- "issue-scout.md",
1049
- "latest-gate.md",
1050
- "progress-watcher.md",
1051
- "retrospective.md"
1052
- ]);
1053
- var REACHED_POINT_OF_USE2 = /* @__PURE__ */ new Set(["backlogrun-park.md", "pre-gate-cut.md"]);
1054
- function costed4(root) {
1055
- return read_set_trim.costed(root, {
1056
- base_entry: FULLRUN,
1057
- label: LANE_CHILD,
1058
- unused_skill_sections: UNUSED_SKILL_SECTIONS2,
1059
- skipped_point_of_use: SKIPPED_POINT_OF_USE2,
1060
- reached_point_of_use: REACHED_POINT_OF_USE2
1061
- });
1062
- }
1063
- var lane_child_read_set = {
1064
- LANE_CHILD,
1065
- REACHED_POINT_OF_USE: REACHED_POINT_OF_USE2,
1066
- SKIPPED_POINT_OF_USE: SKIPPED_POINT_OF_USE2,
1067
- UNUSED_SKILL_SECTIONS: UNUSED_SKILL_SECTIONS2,
1068
- costed: costed4
1069
- };
1070
-
1071
- // scripts/agent/agent-role-profile.ts
1072
- import { z as z2 } from "zod";
1073
-
1074
- // scripts/josh/agent-session-environment.ts
1075
- var SESSION_ID_KEY = "CLAUDE_CODE_SESSION_ID";
1076
- var AGENT_PID_KEY = "CLAUDE_PID";
1077
- var PARENT_SESSION_KEYS = [
1078
- "CLAUDE_CODE_MESSAGING_SOCKET",
1079
- "CLAUDE_CODE_MESSAGING_TOKEN",
1080
- SESSION_ID_KEY,
1081
- "CLAUDE_CODE_CHILD_SESSION"
1082
- ];
1083
- var PROXY_KEYS = [
1084
- "ALL_PROXY",
1085
- "HTTP_PROXY",
1086
- "HTTPS_PROXY",
1087
- "all_proxy",
1088
- "http_proxy",
1089
- "https_proxy",
1090
- "GLOBAL_AGENT_HTTP_PROXY",
1091
- "GLOBAL_AGENT_HTTPS_PROXY"
1092
- ];
1093
- var PROXY_CERTIFICATE_KEY = "NODE_EXTRA_CA_CERTS";
1094
- var LOOPBACK_HOSTS = ["localhost", "ip6-localhost", "[::1]"];
1095
- var LOOPBACK_PREFIX = "127.";
1096
- var NO_HOST = "";
1097
- function parsed_host(value) {
1098
- try {
1099
- return new URL(value).hostname;
1100
- } catch {
1101
- return NO_HOST;
1102
- }
1103
- }
1104
- function proxy_host(value) {
1105
- const direct = parsed_host(value);
1106
- return direct === NO_HOST ? parsed_host(`http://${value}`) : direct;
1107
- }
1108
- function is_loopback_host(host) {
1109
- return host.startsWith(LOOPBACK_PREFIX) || LOOPBACK_HOSTS.includes(host);
1110
- }
1111
- function is_loopback_proxy(value) {
1112
- if (value === void 0 || value === NO_HOST) return false;
1113
- return is_loopback_host(proxy_host(value));
1114
- }
1115
- function is_declared(value) {
1116
- return value !== void 0 && value !== NO_HOST;
1117
- }
1118
- function loopback_proxy_keys(source, is_removed = is_loopback_proxy) {
1119
- const declared = PROXY_KEYS.filter((key) => is_declared(source[key]));
1120
- const matched = declared.filter((key) => is_removed(source[key]));
1121
- const is_certificate_included = matched.length > 0 && matched.length === declared.length;
1122
- return is_certificate_included ? [...matched, PROXY_CERTIFICATE_KEY] : matched;
1123
- }
1124
- function to_removed(keys) {
1125
- return Object.fromEntries(keys.map((key) => [key, void 0]));
1126
- }
1127
- function removed_environment(source = process.env) {
1128
- return to_removed([...PARENT_SESSION_KEYS, ...loopback_proxy_keys(source)]);
1129
- }
1130
- var SCANNER_DIRECTORY = ".safe-chain";
1131
- var PATH_SEPARATOR = /[/\\]/u;
1132
- function is_scanner_certificate(value) {
1133
- return value?.split(PATH_SEPARATOR).includes(SCANNER_DIRECTORY) ?? false;
1134
- }
1135
- var SCANNER_PROXY_KEY = "HTTPS_PROXY";
1136
- function is_scanner_proxy(source) {
1137
- const scanner_proxy = source[SCANNER_PROXY_KEY];
1138
- return function is_match2(value) {
1139
- return value === scanner_proxy && is_loopback_proxy(value);
1140
- };
1141
- }
1142
- function removed_proxy_environment(source = process.env) {
1143
- if (!is_scanner_certificate(source[PROXY_CERTIFICATE_KEY])) return {};
1144
- return to_removed(loopback_proxy_keys(source, is_scanner_proxy(source)));
1145
- }
1146
- var agent_session_environment = {
1147
- AGENT_PID_KEY,
1148
- LOOPBACK_HOSTS,
1149
- PARENT_SESSION_KEYS,
1150
- PROXY_CERTIFICATE_KEY,
1151
- PROXY_KEYS,
1152
- SESSION_ID_KEY,
1153
- removed_environment,
1154
- removed_proxy_environment
1155
- };
1156
-
1157
- // scripts/agent/agent-provider.ts
1158
- import { z } from "zod";
1159
- var EMPTY_LENGTH = 0;
1160
- var PROVIDER_SCHEMA = z.enum(["anthropic", "openai"]);
1161
- var ANTHROPIC_PROVIDER = "anthropic";
1162
- var OPENAI_PROVIDER = "openai";
1163
- var CODEX_SESSION_KEY = "CODEX_THREAD_ID";
1164
- function trimmed(value) {
1165
- const result = value?.trim();
1166
- return result === void 0 || result.length === EMPTY_LENGTH ? void 0 : result;
1167
- }
1168
- function rejection(key, value, expected) {
1169
- return { kind: "rejected", note: `${key}=${value} ${expected}, so the agent was not started` };
1170
- }
1171
- function has_session(environment, keys) {
1172
- return keys.some((key) => trimmed(environment[key]) !== void 0);
1173
- }
1174
- var CONFLICTING_SESSIONS = {
1175
- kind: "rejected",
1176
- note: "both Codex and Claude Code sessions were detected"
1177
- };
1178
- var HANDED_PROVIDER_KEY = "JOSH_AGENT_PROVIDER";
1179
- var DEFAULT_PROVIDER = {
1180
- kind: "provider",
1181
- provider: ANTHROPIC_PROVIDER,
1182
- is_default: true
1183
- };
1184
- var DEFAULT_NOTICE = ` No agent session or ${HANDED_PROVIDER_KEY} was found, so the provider defaulted to ${ANTHROPIC_PROVIDER} (Claude Code).`;
1185
- function handed_provider(environment) {
1186
- const value = trimmed(environment[HANDED_PROVIDER_KEY]);
1187
- if (value === void 0) return DEFAULT_PROVIDER;
1188
- const parsed = PROVIDER_SCHEMA.safeParse(value);
1189
- return parsed.success ? { kind: "provider", provider: parsed.data } : rejection(HANDED_PROVIDER_KEY, value, "is not an allowed provider");
1190
- }
1191
- function detected_provider(environment) {
1192
- const has_codex = has_session(environment, [CODEX_SESSION_KEY]);
1193
- const has_claude = has_session(environment, agent_session_environment.PARENT_SESSION_KEYS);
1194
- if (has_codex === has_claude) return has_codex ? CONFLICTING_SESSIONS : void 0;
1195
- return { kind: "provider", provider: has_codex ? OPENAI_PROVIDER : ANTHROPIC_PROVIDER };
1196
- }
1197
- function resolve_provider(environment = process.env) {
1198
- return detected_provider(environment) ?? handed_provider(environment);
1199
- }
1200
- function default_notice(environment = process.env) {
1201
- const selected = resolve_provider(environment);
1202
- return selected.kind === "provider" && selected.is_default === true ? DEFAULT_NOTICE : "";
1203
- }
1204
- function warn_of_default(environment = process.env) {
1205
- const notice = default_notice(environment).trim();
1206
- if (notice !== "") console.error(notice);
1207
- }
1208
- function has_completion_callback(environment = process.env) {
1209
- const selected = resolve_provider(environment);
1210
- return selected.kind !== "provider" || selected.provider !== OPENAI_PROVIDER;
1211
- }
1212
- function handoff_environment(environment = process.env) {
1213
- const selected = resolve_provider(environment);
1214
- return selected.kind === "provider" ? { [HANDED_PROVIDER_KEY]: selected.provider } : {};
1215
- }
1216
- var agent_provider = {
1217
- ANTHROPIC_PROVIDER,
1218
- CODEX_SESSION_KEY,
1219
- HANDED_PROVIDER_KEY,
1220
- OPENAI_PROVIDER,
1221
- PROVIDER_SCHEMA,
1222
- default_notice,
1223
- handoff_environment,
1224
- has_completion_callback,
1225
- rejection,
1226
- resolve_provider,
1227
- trimmed,
1228
- warn_of_default
1229
- };
1230
-
1231
- // scripts/agent/agent-safe-text.ts
1232
- var FIRST_PRINTABLE_CODE = 32;
1233
- var DELETE_CODE = 127;
1234
- var FIRST_CODE_POINT = 0;
1235
- var EMPTY_LENGTH2 = 0;
1236
- var MAX_VALUE_LENGTH = 4096;
1237
- var MAX_PROMPT_LENGTH = 65536;
1238
- var LINE_FEED = "\n";
1239
- var SPACE = " ";
1240
- function is_control_character(character) {
1241
- const code = character.codePointAt(FIRST_CODE_POINT) ?? FIRST_PRINTABLE_CODE;
1242
- return code < FIRST_PRINTABLE_CODE || code === DELETE_CODE;
1243
- }
1244
- function is_line_feed(character) {
1245
- return character === LINE_FEED;
1246
- }
1247
- function is_never_allowed() {
1248
- return false;
1249
- }
1250
- function is_refused(character, is_allowed) {
1251
- return is_control_character(character) && !is_allowed(character);
1252
- }
1253
- function is_safe_text(value, is_allowed, max_length) {
1254
- if (value.length === EMPTY_LENGTH2 || value.length > max_length) return false;
1255
- for (const character of value) if (is_refused(character, is_allowed)) return false;
1256
- return true;
1257
- }
1258
- function is_safe_value(value) {
1259
- return is_safe_text(value, is_never_allowed, MAX_VALUE_LENGTH);
1260
- }
1261
- function is_safe_prompt(value) {
1262
- return is_safe_text(value, is_line_feed, MAX_PROMPT_LENGTH);
1263
- }
1264
- function printable_character(character) {
1265
- return is_refused(character, is_line_feed) ? SPACE : character;
1266
- }
1267
- function printable(text) {
1268
- return Array.from(text, printable_character).join("");
1269
- }
1270
- var agent_safe_text = {
1271
- MAX_PROMPT_LENGTH,
1272
- MAX_VALUE_LENGTH,
1273
- is_safe_prompt,
1274
- is_safe_value,
1275
- printable
1276
- };
1277
-
1278
- // scripts/agent/agent-role-profile.ts
1279
- var {
1280
- ANTHROPIC_PROVIDER: ANTHROPIC_PROVIDER2,
1281
- CODEX_SESSION_KEY: CODEX_SESSION_KEY2,
1282
- HANDED_PROVIDER_KEY: HANDED_PROVIDER_KEY2,
1283
- OPENAI_PROVIDER: OPENAI_PROVIDER2,
1284
- PROVIDER_SCHEMA: PROVIDER_SCHEMA2,
1285
- default_notice: default_notice2,
1286
- handoff_environment: handoff_environment2,
1287
- has_completion_callback: has_completion_callback2,
1288
- rejection: rejection2,
1289
- resolve_provider: resolve_provider2,
1290
- trimmed: trimmed2,
1291
- warn_of_default: warn_of_default2
1292
- } = agent_provider;
1293
- var ROLE_SCHEMA = z2.enum(["scheduler", "worker", "reviewer"]);
1294
- var EFFORT_SCHEMA = z2.enum(["low", "medium", "high", "xhigh", "max"]);
1295
- var PHASE_SCHEMA = z2.enum(["implementation", "pre-gate"]);
1296
- var PROFILE_SCHEMA = z2.object({
1297
- provider: PROVIDER_SCHEMA2.default("anthropic"),
1298
- role: ROLE_SCHEMA,
1299
- model: z2.string(),
1300
- effort: EFFORT_SCHEMA
1301
- });
1302
- var SCHEDULER = "scheduler";
1303
- var WORKER = "worker";
1304
- var REVIEWER = "reviewer";
1305
- var IMPLEMENTATION_PHASE = "implementation";
1306
- var PRE_GATE_PHASE = "pre-gate";
1307
- var OPENAI_MODEL = "gpt-6.1-sol";
1308
- var ANTHROPIC_MODEL = "claude-opus-5-5";
1309
- var REVIEW_EFFORT = "medium";
1310
- var VERIFICATION_EFFORT = "high";
1311
- function role_profiles(provider, model) {
1312
- return {
1313
- scheduler: { provider, role: SCHEDULER, model, effort: "medium" },
1314
- worker: { provider, role: WORKER, model, effort: "medium" },
1315
- reviewer: { provider, role: REVIEWER, model, effort: REVIEW_EFFORT }
1316
- };
1317
- }
1318
- var DEFAULT_PROFILES = role_profiles(ANTHROPIC_PROVIDER2, ANTHROPIC_MODEL);
1319
- var OPENAI_PROFILES = role_profiles(OPENAI_PROVIDER2, OPENAI_MODEL);
1320
- var PROVIDER_PROFILES = { anthropic: DEFAULT_PROFILES, openai: OPENAI_PROFILES };
1321
- var FIRST_REVIEW_ROUND = 1;
1322
- var VERIFICATION_MODEL = "claude-sonnet-5-5";
1323
- var VERIFICATION_PROFILES = {
1324
- anthropic: {
1325
- ...DEFAULT_PROFILES.reviewer,
1326
- model: VERIFICATION_MODEL,
1327
- effort: VERIFICATION_EFFORT
1328
- },
1329
- openai: { ...OPENAI_PROFILES.reviewer, effort: VERIFICATION_EFFORT }
1330
- };
1331
- var VERIFICATION_KEYS = {
1332
- model: "JOSH_REVIEWER_VERIFICATION_MODEL",
1333
- effort: "JOSH_REVIEWER_VERIFICATION_EFFORT"
1334
- };
1335
- var SHIP_EFFORT = "low";
1336
- var PHASE_EFFORT = {
1337
- worker: { [PRE_GATE_PHASE]: SHIP_EFFORT }
1338
- };
1339
- var PHASE_MODEL_KEYS = {
1340
- worker: { [PRE_GATE_PHASE]: "JOSH_WORKER_SHIP_MODEL" }
1341
- };
1342
- var ENV_KEYS = {
1343
- scheduler: { model: "JOSH_SCHEDULER_MODEL", effort: "JOSH_SCHEDULER_EFFORT" },
1344
- worker: { model: "JOSH_WORKER_MODEL", effort: "JOSH_WORKER_EFFORT" },
1345
- reviewer: { model: "JOSH_REVIEWER_MODEL", effort: "JOSH_REVIEWER_EFFORT" }
1346
- };
1347
- var LEGACY_WORKER_KEYS = { model: "JOSH_LANE_MODEL", effort: "JOSH_LANE_EFFORT" };
1348
- var { MAX_VALUE_LENGTH: MAX_VALUE_LENGTH2, is_safe_prompt: is_safe_prompt2, is_safe_value: is_safe_value2, printable: printable2 } = agent_safe_text;
1349
- function is_verification(role, round) {
1350
- return role === REVIEWER && round !== void 0 && round > FIRST_REVIEW_ROUND;
1351
- }
1352
- function override_keys(role, field, round) {
1353
- const key = ENV_KEYS[role][field];
1354
- if (role === WORKER) return [key, LEGACY_WORKER_KEYS[field]];
1355
- return is_verification(role, round) ? [VERIFICATION_KEYS[field], key] : [key];
1356
- }
1357
- function override_value(role, field, environment, round) {
1358
- const keys = override_keys(role, field, round);
1359
- const key = keys.find((candidate) => trimmed2(environment[candidate]) !== void 0);
1360
- return key === void 0 ? { key: keys[0], value: void 0 } : { key, value: trimmed2(environment[key]) };
1361
- }
1362
- function phase_entry(table, role, phase) {
1363
- const parsed = PHASE_SCHEMA.safeParse(phase);
1364
- return parsed.success ? table[role]?.[parsed.data] : void 0;
1365
- }
1366
- function phase_model(role, provider, phase, environment) {
1367
- const key = provider === OPENAI_PROVIDER2 ? void 0 : phase_entry(PHASE_MODEL_KEYS, role, phase);
1368
- if (key === void 0) return void 0;
1369
- const value = trimmed2(environment[key]);
1370
- return value === void 0 ? void 0 : { key, value };
1371
- }
1372
- function model_override(role, environment, provider, stage) {
1373
- const phased = phase_model(role, provider, stage.phase, environment);
1374
- if (phased !== void 0) return phased;
1375
- return provider === OPENAI_PROVIDER2 ? { key: ENV_KEYS[role].model, value: void 0 } : override_value(role, "model", environment, stage.round);
1376
- }
1377
- function resolved_effort(override, fallback) {
1378
- const parsed = EFFORT_SCHEMA.safeParse(override.value ?? fallback);
1379
- return parsed.success ? { kind: "effort", effort: parsed.data } : rejection2(override.key, override.value ?? "", "is not an allowed effort");
1380
- }
1381
- function validate(profile, model_key) {
1382
- if (!is_safe_value2(profile.model)) {
1383
- return rejection2(model_key, profile.model, "is not a safe model");
1384
- }
1385
- return { kind: "profile", profile };
1386
- }
1387
- function phase_effort(role, phase, fallback) {
1388
- return phase_entry(PHASE_EFFORT, role, phase) ?? fallback;
1389
- }
1390
- function overridden_effort(profile, phase, environment) {
1391
- const parsed = EFFORT_SCHEMA.safeParse(override_value(profile.role, "effort", environment).value);
1392
- return parsed.success ? parsed.data : phase_effort(profile.role, phase, profile.effort);
1393
- }
1394
- function with_phase(profile, phase, environment = process.env) {
1395
- const effort = overridden_effort(profile, phase, environment);
1396
- const model = phase_model(profile.role, profile.provider, phase, environment);
1397
- if (model === void 0) return { kind: "profile", profile: { ...profile, effort } };
1398
- return validate({ ...profile, model: model.value, effort }, model.key);
1399
- }
1400
- function stage_defaults(provider, role, round) {
1401
- return is_verification(role, round) ? VERIFICATION_PROFILES[provider] : PROVIDER_PROFILES[provider][role];
1402
- }
1403
- function resolve_stage(role, environment, stage) {
1404
- const selected = resolve_provider2(environment);
1405
- if (selected.kind === "rejected") return selected;
1406
- const defaults = stage_defaults(selected.provider, role, stage.round);
1407
- const model = model_override(role, environment, selected.provider, stage);
1408
- const effort = override_value(role, "effort", environment, stage.round);
1409
- const resolved = resolved_effort(effort, phase_effort(role, stage.phase, defaults.effort));
1410
- if (resolved.kind === "rejected") return resolved;
1411
- const profile = {
1412
- provider: selected.provider,
1413
- role,
1414
- model: model.value ?? defaults.model,
1415
- effort: resolved.effort
1416
- };
1417
- return validate(profile, model.key);
1418
- }
1419
- function resolve(role, environment = process.env, phase) {
1420
- return resolve_stage(role, environment, { phase });
1421
- }
1422
- function resolve_review(round, environment = process.env) {
1423
- return resolve_stage(REVIEWER, environment, { round });
1424
- }
1425
- function describe(profile) {
1426
- return `provider=${profile.provider} role=${profile.role} model=${profile.model} effort=${profile.effort}`;
1427
- }
1428
- function describe_review(round, profile) {
1429
- return `review round ${String(round)} \xB7 ${describe(profile)}`;
1430
- }
1431
- function parse(value) {
1432
- const parsed = PROFILE_SCHEMA.safeParse(value);
1433
- return parsed.success && is_safe_value2(parsed.data.model) ? parsed.data : void 0;
1434
- }
1435
- var agent_role_profile = {
1436
- CODEX_SESSION_KEY: CODEX_SESSION_KEY2,
1437
- DEFAULT_PROFILES,
1438
- HANDED_PROVIDER_KEY: HANDED_PROVIDER_KEY2,
1439
- IMPLEMENTATION_PHASE,
1440
- MAX_VALUE_LENGTH: MAX_VALUE_LENGTH2,
1441
- OPENAI_PROFILES,
1442
- PRE_GATE_PHASE,
1443
- PROFILE_SCHEMA,
1444
- REVIEWER,
1445
- SCHEDULER,
1446
- VERIFICATION_PROFILES,
1447
- WORKER,
1448
- default_notice: default_notice2,
1449
- describe,
1450
- describe_review,
1451
- handoff_environment: handoff_environment2,
1452
- has_completion_callback: has_completion_callback2,
1453
- is_safe_prompt: is_safe_prompt2,
1454
- is_safe_value: is_safe_value2,
1455
- parse,
1456
- printable: printable2,
1457
- resolve,
1458
- resolve_provider: resolve_provider2,
1459
- resolve_review,
1460
- warn_of_default: warn_of_default2,
1461
- with_phase
1462
- };
1463
-
1464
- // scripts/time-runtime/time-instant.ts
1465
- function parse_instant(raw) {
1466
- if (raw === null || raw === void 0) return void 0;
1467
- const parsed = Date.parse(raw);
1468
- return Number.isNaN(parsed) ? void 0 : parsed;
1469
- }
1470
- var time_instant = { parse_instant };
1471
-
1472
- // scripts/cost-runtime/cost-usage.ts
1473
- import { z as z3 } from "zod";
1474
- var CACHE_CREATION_SCHEMA = z3.object({
1475
- ephemeral_1h_input_tokens: z3.number().nullish(),
1476
- ephemeral_5m_input_tokens: z3.number().nullish()
1477
- });
1478
- var USAGE_SCHEMA = z3.object({
1479
- input_tokens: z3.number(),
1480
- cache_creation_input_tokens: z3.number().nullish(),
1481
- cache_read_input_tokens: z3.number().nullish(),
1482
- output_tokens: z3.number(),
1483
- output_tokens_details: z3.object({ thinking_tokens: z3.number().nullish() }).nullish(),
1484
- cache_creation: CACHE_CREATION_SCHEMA.nullish()
1485
- });
1486
- var MESSAGE_SCHEMA = z3.object({
1487
- id: z3.string().nullish(),
1488
- model: z3.string().nullish(),
1489
- usage: USAGE_SCHEMA.nullish()
1490
- });
1491
- var LINE_SCHEMA = z3.object({
1492
- type: z3.string(),
1493
- requestId: z3.string().nullish(),
1494
- uuid: z3.string().nullish(),
1495
- gitBranch: z3.string().nullish(),
1496
- timestamp: z3.string().nullish(),
1497
- message: MESSAGE_SCHEMA.nullish()
1498
- });
1499
- var SYNTHETIC_MODEL = "<synthetic>";
1500
- var EMPTY_TOTALS = {
1501
- input_tokens: 0,
1502
- cache_write_5m_tokens: 0,
1503
- cache_write_1h_tokens: 0,
1504
- cache_read_tokens: 0,
1505
- output_tokens: 0,
1506
- thinking_tokens: 0,
1507
- thinking_measured: false
1508
- };
1509
- var UNKNOWN_MODEL = "unknown";
1510
- var UNKNOWN_BRANCH = "";
1511
- function split_cache_write(usage) {
1512
- const total3 = usage.cache_creation_input_tokens ?? 0;
1513
- const detail = usage.cache_creation;
1514
- if (!detail) return { write_5m: total3, write_1h: 0 };
1515
- const write_1h = detail.ephemeral_1h_input_tokens ?? 0;
1516
- return { write_5m: detail.ephemeral_5m_input_tokens ?? total3 - write_1h, write_1h };
1517
- }
1518
- function thinking_usage(usage) {
1519
- const raw = usage.output_tokens_details?.thinking_tokens;
1520
- return { tokens: raw ?? 0, measured: raw !== null && raw !== void 0 };
1521
- }
1522
- function to_totals(usage) {
1523
- const { write_5m, write_1h } = split_cache_write(usage);
1524
- const thinking = thinking_usage(usage);
1525
- return {
1526
- input_tokens: usage.input_tokens,
1527
- cache_write_5m_tokens: write_5m,
1528
- cache_write_1h_tokens: write_1h,
1529
- cache_read_tokens: usage.cache_read_input_tokens ?? 0,
1530
- output_tokens: usage.output_tokens,
1531
- thinking_tokens: thinking.tokens,
1532
- thinking_measured: thinking.measured
1533
- };
1534
- }
1535
- function declared_id(data) {
1536
- return data.requestId ?? data.message?.id ?? data.uuid ?? void 0;
1537
- }
1538
- function request_id_of(data, usage) {
1539
- const fallback = `${data.timestamp ?? ""}-${String(usage.output_tokens)}`;
1540
- return declared_id(data) ?? fallback;
1541
- }
1542
- function to_record(data, usage) {
1543
- return {
1544
- request_id: request_id_of(data, usage),
1545
- model: data.message?.model ?? UNKNOWN_MODEL,
1546
- branch: data.gitBranch ?? UNKNOWN_BRANCH,
1547
- at_ms: time_instant.parse_instant(data.timestamp),
1548
- totals: to_totals(usage)
1549
- };
1550
- }
1551
- var ASSISTANT_TYPE = "assistant";
1552
- function is_priced_line(data) {
1553
- return data.type === ASSISTANT_TYPE && data.message?.model !== SYNTHETIC_MODEL;
1554
- }
1555
- function classify(data) {
1556
- if (!is_priced_line(data)) return { kind: "skipped" };
1557
- const usage = data.message?.usage;
1558
- return usage ? { kind: "record", record: to_record(data, usage) } : { kind: "no_usage" };
1559
- }
1560
- function parse_line(line) {
1561
- if (line.trim() === "") return { kind: "skipped" };
1562
- const parsed = LINE_SCHEMA.safeParse(json_value.parse_or_undefined(line));
1563
- return parsed.success ? classify(parsed.data) : { kind: "malformed" };
1564
- }
1565
- function later_instant(left, right) {
1566
- if (left === void 0) return right;
1567
- if (right === void 0) return left;
1568
- return Math.max(left, right);
1569
- }
1570
- function dedupe2(records) {
1571
- const by_id = /* @__PURE__ */ new Map();
1572
- for (const record of records) {
1573
- const seen = by_id.get(record.request_id);
1574
- const at_ms = later_instant(seen?.at_ms, record.at_ms);
1575
- by_id.set(record.request_id, { ...seen ?? record, at_ms });
1576
- }
1577
- return [...by_id.values()];
1578
- }
1579
- function add_totals(left, right) {
1580
- return {
1581
- input_tokens: left.input_tokens + right.input_tokens,
1582
- cache_write_5m_tokens: left.cache_write_5m_tokens + right.cache_write_5m_tokens,
1583
- cache_write_1h_tokens: left.cache_write_1h_tokens + right.cache_write_1h_tokens,
1584
- cache_read_tokens: left.cache_read_tokens + right.cache_read_tokens,
1585
- output_tokens: left.output_tokens + right.output_tokens,
1586
- thinking_tokens: left.thinking_tokens + right.thinking_tokens,
1587
- thinking_measured: left.thinking_measured || right.thinking_measured
1588
- };
1589
- }
1590
- function sum_totals(records) {
1591
- let total3 = EMPTY_TOTALS;
1592
- for (const record of records) total3 = add_totals(total3, record.totals);
1593
- return total3;
1594
- }
1595
- function billed_input(totals) {
1596
- return totals.input_tokens + totals.cache_write_5m_tokens + totals.cache_write_1h_tokens + totals.cache_read_tokens;
1597
- }
1598
- var cost_usage = {
1599
- EMPTY_TOTALS,
1600
- UNKNOWN_MODEL,
1601
- SYNTHETIC_MODEL,
1602
- parse_line,
1603
- dedupe: dedupe2,
1604
- add_totals,
1605
- sum_totals,
1606
- billed_input
1607
- };
1608
-
1609
- // scripts/cost-runtime/cost-pricing.ts
1610
- var CACHE_WRITE_5M_MULTIPLIER = 1.25;
1611
- var CACHE_WRITE_1H_MULTIPLIER = 2;
1612
- var DEFAULT_CACHE_READ_MULTIPLIER = 0.1;
1613
- var HALVED_CACHE_READ_MULTIPLIER = 0.05;
1614
- var QUARTERED_CACHE_READ_MULTIPLIER = 0.025;
1615
- var TOKENS_PER_MILLION = 1e6;
1616
- var LONG_PROMPT_SUFFIX = ":long-prompt";
1617
- var LONG_PROMPT_THRESHOLD = 1e5;
1618
- var MODEL_PRICES = {
1619
- "claude-fable-5-1": {
1620
- input: 10,
1621
- output: 50,
1622
- cache_read_multiplier: QUARTERED_CACHE_READ_MULTIPLIER
1623
- },
1624
- "claude-mythos-5-1": {
1625
- input: 10,
1626
- output: 50,
1627
- cache_read_multiplier: QUARTERED_CACHE_READ_MULTIPLIER
1628
- },
1629
- "claude-fable-5": { input: 10, output: 50 },
1630
- "claude-mythos-5": { input: 10, output: 50 },
1631
- "claude-opus-5-5": { input: 4, output: 20, cache_read_multiplier: HALVED_CACHE_READ_MULTIPLIER },
1632
- "claude-opus-5": { input: 5, output: 25 },
1633
- "claude-opus-4-8": { input: 5, output: 25 },
1634
- "claude-opus-4-7": { input: 5, output: 25 },
1635
- "claude-opus-4-6": { input: 5, output: 25 },
1636
- "claude-sonnet-5-5": {
1637
- input: 2,
1638
- output: 10,
1639
- cache_read_multiplier: HALVED_CACHE_READ_MULTIPLIER
1640
- },
1641
- "claude-sonnet-5": { input: 2, output: 10 },
1642
- "claude-sonnet-4-6": { input: 3, output: 15 },
1643
- "claude-haiku-5-5": { input: 0.1, output: 0.5 },
1644
- [`claude-haiku-5-5${LONG_PROMPT_SUFFIX}`]: { input: 0.5, output: 2.5 },
1645
- "claude-haiku-4-5": { input: 1, output: 5 }
1646
- };
1647
- var CONTEXT_MARKER = "[";
1648
- var DATE_SUFFIX = /-\d{8}$/u;
1649
- function known_id(model) {
1650
- const base = model.split(CONTEXT_MARKER)[0] ?? model;
1651
- return [base, base.replace(DATE_SUFFIX, "")].find((id) => Object.hasOwn(MODEL_PRICES, id));
1652
- }
1653
- function resolve_price(model) {
1654
- const id = known_id(model);
1655
- return id === void 0 ? void 0 : MODEL_PRICES[id];
1656
- }
1657
- function cache_read_multiplier(price) {
1658
- return price.cache_read_multiplier ?? DEFAULT_CACHE_READ_MULTIPLIER;
1659
- }
1660
- function cache_read_multiplier_of(model) {
1661
- const price = model === void 0 ? void 0 : resolve_price(model);
1662
- return price === void 0 ? DEFAULT_CACHE_READ_MULTIPLIER : cache_read_multiplier(price);
1663
- }
1664
- function estimate_cost(totals, price) {
1665
- const weighted_input = totals.input_tokens + totals.cache_write_5m_tokens * CACHE_WRITE_5M_MULTIPLIER + totals.cache_write_1h_tokens * CACHE_WRITE_1H_MULTIPLIER + totals.cache_read_tokens * cache_read_multiplier(price);
1666
- return (weighted_input * price.input + totals.output_tokens * price.output) / TOKENS_PER_MILLION;
1667
- }
1668
- function priced(tokens, rate) {
1669
- return tokens * rate / TOKENS_PER_MILLION;
1670
- }
1671
- function estimate_composition(totals, price) {
1672
- return {
1673
- input_usd: priced(totals.input_tokens, price.input),
1674
- cache_write_5m_usd: priced(
1675
- totals.cache_write_5m_tokens * CACHE_WRITE_5M_MULTIPLIER,
1676
- price.input
1677
- ),
1678
- cache_write_1h_usd: priced(
1679
- totals.cache_write_1h_tokens * CACHE_WRITE_1H_MULTIPLIER,
1680
- price.input
1681
- ),
1682
- cache_read_usd: priced(totals.cache_read_tokens * cache_read_multiplier(price), price.input),
1683
- output_usd: priced(totals.output_tokens, price.output)
1684
- };
1685
- }
1686
- function to_model_cost(model, totals) {
1687
- const price = resolve_price(model);
1688
- if (price === void 0) return { model, totals };
1689
- return { model, totals, cost_usd: estimate_cost(totals, price) };
1690
- }
1691
- function billed_model(usage) {
1692
- const long_id = `${known_id(usage.model) ?? usage.model}${LONG_PROMPT_SUFFIX}`;
1693
- const is_long = cost_usage.billed_input(usage.totals) > LONG_PROMPT_THRESHOLD;
1694
- return is_long && Object.hasOwn(MODEL_PRICES, long_id) ? long_id : usage.model;
1695
- }
1696
- function cost_by_model(records) {
1697
- const grouped = /* @__PURE__ */ new Map();
1698
- for (const record of records) {
1699
- const model = billed_model(record);
1700
- const running = grouped.get(model) ?? cost_usage.EMPTY_TOTALS;
1701
- grouped.set(model, cost_usage.add_totals(running, record.totals));
1702
- }
1703
- return [...grouped].map(([model, totals]) => to_model_cost(model, totals));
1704
- }
1705
- function total_cost(costs) {
1706
- return {
1707
- usd: costs.reduce((sum, entry) => sum + (entry.cost_usd ?? 0), 0),
1708
- unpriced: costs.filter((entry) => entry.cost_usd === void 0).map((entry) => entry.model)
1709
- };
1710
- }
1711
- function cost_of3(records) {
1712
- return total_cost(cost_by_model(records)).usd;
1713
- }
1714
- var cost_pricing = {
1715
- CACHE_WRITE_5M_MULTIPLIER,
1716
- CACHE_WRITE_1H_MULTIPLIER,
1717
- DEFAULT_CACHE_READ_MULTIPLIER,
1718
- LONG_PROMPT_THRESHOLD,
1719
- resolve_price,
1720
- cache_read_multiplier_of,
1721
- estimate_cost,
1722
- estimate_composition,
1723
- cost_by_model,
1724
- total_cost,
1725
- cost_of: cost_of3
1726
- };
1727
93
 
1728
94
  // scripts/document/read-set-pricing.ts
1729
95
  var ASSUMED_REQUESTS = 118;
@@ -1743,20 +109,25 @@ var read_set_pricing = {
1743
109
  };
1744
110
 
1745
111
  // scripts/document/read-set-cli.ts
1746
- var { BACKLOGRUN: BACKLOGRUN2 } = backlogrun_parent_read_set;
112
+ var __josh_meta = import.meta;
113
+ var __josh_source_url = new URL("../../scripts/document/read-set-cli.ts", __josh_meta.url).href;
114
+ var __josh_source_filename = __josh_file_path(__josh_source_url);
115
+ var __josh_source_dirname = __josh_dirname(__josh_source_filename);
116
+ var { BACKLOGRUN } = backlogrun_parent_read_set;
1747
117
  var ARGV_OFFSET = 2;
1748
118
  var FAILURE_EXIT_CODE = 1;
1749
119
  var FLAG_PREFIX = "-";
1750
120
  var JSON_FLAG = "--json";
121
+ var BYTES_FLAG = "--bytes";
1751
122
  var JSON_INDENT = 2;
1752
- var NOTHING3 = 0;
123
+ var NOTHING = 0;
1753
124
  var PERCENT = 100;
1754
125
  var LABEL_GUTTER = 4;
1755
126
  var NUMBER_WIDTH = 9;
1756
127
  var DOLLAR_WIDTH = 7;
1757
128
  var DOLLAR_DECIMALS = 2;
1758
129
  var PREMISE = ` $ = cost per run, assuming a ${String(read_set_pricing.ASSUMED_REQUESTS)}-request run (each entry-read token re-read from cache per request)`;
1759
- var USAGE = "Usage: josh read:set [<entry>] [--json]";
130
+ var USAGE = "Usage: josh read:set [<entry>] [--json | --bytes]";
1760
131
  var WHOLE_LABEL = "whole \u2014 every referenced file read in full";
1761
132
  var SCOPED_LABEL = "scoped \u2014 referenced sections only";
1762
133
  var TOTAL_READ_LABEL = "total read \u2014 scoped entry plus point-of-use reached";
@@ -1765,12 +136,13 @@ var POINT_OF_USE_LABEL = "-- read at the point of use, not at the entry --";
1765
136
  var LANE_CHILD_NOTE = [
1766
137
  " a dispatched lane child (`JOSH_LANE_CHILD`) reads this trimmed set:",
1767
138
  " - skips the point-of-use documents the parent owns \u2014 child dispatch, lane opening, the progress watcher and the hand-off",
1768
- " - omits SKILL.md \xA70/\xA73 \u2014 dispatch already authorized the run and a leaf child edits no rule"
139
+ " - reads fullrun-lane.md instead of SKILL.md, fullrun.md and entry-sequence.md"
1769
140
  ];
1770
141
  var BACKLOGRUN_PARENT_NOTE = [
1771
142
  " the backlogrun parent (scheduler) reads this trimmed set:",
1772
143
  " - omits SKILL.md \xA73 \u2014 the parent edits no rule mid-run",
1773
- " - keeps every point-of-use document \u2014 the parent is the one dispatching children and running lanes"
144
+ " - skips the documents of a child\u2019s stages \u2014 the gate, the ship and fullrun.md",
145
+ " - reads the sections run:step prints at its own stages beside the ones its manifest names"
1774
146
  ];
1775
147
  var FETCH_RULE = "fetch: one `Read` call per file \u2014 never `cat`, and never two files in one command.";
1776
148
  var OVER_CAP_NOTE = " Read (over the Bash cap)";
@@ -1789,21 +161,21 @@ function row(label, cost, width, note = "") {
1789
161
  function fetch_note(bytes, cap) {
1790
162
  return bytes > cap ? OVER_CAP_NOTE : UNDER_CAP_NOTE;
1791
163
  }
1792
- function section_label(section2) {
1793
- const mark = section2.is_resolved ? "" : " (unresolved \u2014 charged whole)";
1794
- return `${section2.file} \u2192 "${section2.heading}"${mark}`;
164
+ function section_label(section) {
165
+ const mark = section.is_resolved ? "" : " (unresolved \u2014 charged whole)";
166
+ return `${section.file} \u2192 "${section.heading}"${mark}`;
1795
167
  }
1796
- function point_of_use_label(section2) {
1797
- return section2.heading === "" ? section2.file : section_label(section2);
168
+ function point_of_use_label(section) {
169
+ return section.heading === "" ? section.file : section_label(section);
1798
170
  }
1799
171
  function saved_percent(report) {
1800
- if (report.whole.tokens === NOTHING3) return NOTHING3;
172
+ if (report.whole.tokens === NOTHING) return NOTHING;
1801
173
  return Math.round((report.whole.tokens - report.scoped.tokens) / report.whole.tokens * PERCENT);
1802
174
  }
1803
175
  function labels_of(report) {
1804
176
  return [
1805
177
  ...report.files.map((entry) => entry.file),
1806
- ...report.sections.map((section2) => section_label(section2)),
178
+ ...report.sections.map((section) => section_label(section)),
1807
179
  ...report.point_of_use.map((entry) => point_of_use_label(entry)),
1808
180
  WHOLE_LABEL,
1809
181
  SCOPED_LABEL,
@@ -1822,7 +194,7 @@ function file_lines(report, width) {
1822
194
  );
1823
195
  }
1824
196
  function point_of_use_lines(report, width) {
1825
- if (report.point_of_use.length === NOTHING3) return [];
197
+ if (report.point_of_use.length === NOTHING) return [];
1826
198
  return [
1827
199
  ` ${POINT_OF_USE_LABEL}`,
1828
200
  ...report.point_of_use.map((entry) => row(point_of_use_label(entry), entry.cost, width))
@@ -1838,10 +210,10 @@ function fetch_lines(report) {
1838
210
  ];
1839
211
  }
1840
212
  function section_lines(report, width) {
1841
- if (report.sections.length === NOTHING3) return [];
213
+ if (report.sections.length === NOTHING) return [];
1842
214
  return [
1843
215
  ` ${SECTION_LABEL}`,
1844
- ...report.sections.map((section2) => row(section_label(section2), section2.cost, width))
216
+ ...report.sections.map((section) => row(section_label(section), section.cost, width))
1845
217
  ];
1846
218
  }
1847
219
  function total_lines(report, width) {
@@ -1859,7 +231,7 @@ function note_lines(report) {
1859
231
  if (report.entry === lane_child_read_set.LANE_CHILD) {
1860
232
  return [...LANE_CHILD_NOTE, lane_instructions.resident_line(), ""];
1861
233
  }
1862
- if (report.entry === BACKLOGRUN2) return [...BACKLOGRUN_PARENT_NOTE, ""];
234
+ if (report.entry === BACKLOGRUN) return [...BACKLOGRUN_PARENT_NOTE, ""];
1863
235
  return [];
1864
236
  }
1865
237
  function report_lines(report) {
@@ -1880,7 +252,7 @@ function known_entries(root) {
1880
252
  }
1881
253
  function wanted_entries(argv, root) {
1882
254
  const named = argv.filter((value) => !value.startsWith(FLAG_PREFIX));
1883
- return named.length > NOTHING3 ? named : known_entries(root);
255
+ return named.length > NOTHING ? named : known_entries(root);
1884
256
  }
1885
257
  function unknown_entries(wanted, root) {
1886
258
  const known = known_entries(root);
@@ -1888,29 +260,33 @@ function unknown_entries(wanted, root) {
1888
260
  }
1889
261
  function costed_entry(root, entry) {
1890
262
  if (entry === lane_child_read_set.LANE_CHILD) return lane_child_read_set.costed(root);
1891
- if (entry === BACKLOGRUN2) return backlogrun_parent_read_set.costed(root);
263
+ if (entry === BACKLOGRUN) return backlogrun_parent_read_set.costed(root);
1892
264
  return entry_read_set.costed(root, entry);
1893
265
  }
1894
- function printed(reports, is_json) {
1895
- if (is_json) return JSON.stringify(reports, void 0, JSON_INDENT);
266
+ function printed(reports, argv) {
267
+ if (argv.includes(JSON_FLAG)) return JSON.stringify(reports, void 0, JSON_INDENT);
268
+ if (argv.includes(BYTES_FLAG)) {
269
+ return reports.map((report) => String(total_read(report).bytes)).join("\n");
270
+ }
1896
271
  return reports.flatMap((report) => report_lines(report)).join("\n");
1897
272
  }
1898
273
  function run(argv, root = process.cwd()) {
1899
274
  const wanted = wanted_entries(argv, root);
1900
275
  const unknown = unknown_entries(wanted, root);
1901
- if (wanted.length === NOTHING3 || unknown.length > NOTHING3) {
276
+ if (wanted.length === NOTHING || unknown.length > NOTHING) {
1902
277
  console.error(`${USAGE}
1903
278
  Known entries: ${known_entries(root).join(", ")}`);
1904
279
  return FAILURE_EXIT_CODE;
1905
280
  }
1906
281
  const reports = wanted.map((entry) => costed_entry(root, entry));
1907
- console.info(printed(reports, argv.includes(JSON_FLAG)));
282
+ console.info(printed(reports, argv));
1908
283
  return 0;
1909
284
  }
1910
285
  function main(argv) {
1911
286
  process.exitCode = run(argv);
1912
287
  }
1913
288
  var read_set_cli = {
289
+ BYTES_FLAG,
1914
290
  FETCH_RULE,
1915
291
  JSON_FLAG,
1916
292
  POINT_OF_USE_LABEL,
@@ -1921,7 +297,7 @@ var read_set_cli = {
1921
297
  run,
1922
298
  saved_percent
1923
299
  };
1924
- if (process.argv[1] === fileURLToPath3(import.meta.url)) main(process.argv.slice(ARGV_OFFSET));
300
+ if (process.argv[1] === fileURLToPath(__josh_source_url)) main(process.argv.slice(ARGV_OFFSET));
1925
301
  export {
1926
302
  read_set_cli
1927
303
  };