@joshuafolkken/kit 1.3044.0 → 1.3092.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
- package/.claude/skills/workflow-commands/halfrun.md +3 -2
- package/.claude/skills/workflow-commands/kickoff.md +9 -2
- package/.claude/skills/workflow-commands/prerequisite.md +2 -0
- package/.claude/skills/workflow-commands/retrospective.md +2 -1
- package/.claude/skills/workflow-commands/split-assessment.md +4 -0
- package/.github/workflows/ci.yml +0 -20
- package/.github/workflows/pr-classification.yml +0 -5
- package/.github/workflows/publish.yml +0 -1
- package/.github/workflows/sonar-qube.yml +0 -5
- package/README.md +2 -0
- package/SECURITY.md +2 -1
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +29 -20
- package/dist/commands/auto-ok-judge-cli.js +43 -33
- package/dist/commands/auto-ok-main.js +73 -74
- package/dist/commands/backlog-budget-main.js +5 -6
- package/dist/commands/backlog-drive-cli.js +286 -305
- package/dist/commands/backlog-next-main.js +111 -108
- package/dist/commands/backlog-offer-main.js +148 -112
- package/dist/commands/backlog-plan-cli.js +123 -120
- package/dist/commands/backlog-triage-cli.js +131 -128
- package/dist/commands/backlogrun-cli.js +273 -264
- package/dist/commands/behavior-cli.js +23 -26
- package/dist/commands/bytes-command.js +56 -59
- package/dist/commands/cases-cli.js +4 -5
- package/dist/commands/check-commit-message-main.js +3 -4
- package/dist/commands/check-related.js +125 -119
- package/dist/commands/chunk-26JL4UU4.js +365 -0
- package/dist/commands/chunk-2BIVHPCA.js +85 -0
- package/dist/commands/chunk-2CKJODCK.js +245 -0
- package/dist/commands/chunk-2E6PSONB.js +46 -0
- package/dist/commands/chunk-2GA4775H.js +77 -0
- package/dist/commands/chunk-2O64H5UJ.js +462 -0
- package/dist/commands/chunk-2OEXY4GM.js +252 -0
- package/dist/commands/chunk-2OMIHPPE.js +51 -0
- package/dist/commands/chunk-2ONSHOAY.js +46 -0
- package/dist/commands/chunk-2Q7MGFYB.js +1208 -0
- package/dist/commands/chunk-2SA3W4JF.js +41 -0
- package/dist/commands/chunk-2VY7CJ2R.js +212 -0
- package/dist/commands/chunk-2WRDAQPJ.js +74 -0
- package/dist/commands/chunk-2XLR7R6E.js +541 -0
- package/dist/commands/chunk-2XZF3YFY.js +47 -0
- package/dist/commands/chunk-33TAOZUE.js +29 -0
- package/dist/commands/chunk-374XGAWD.js +158 -0
- package/dist/commands/chunk-3CJNQU7P.js +179 -0
- package/dist/commands/chunk-3D5T6KMW.js +59 -0
- package/dist/commands/chunk-3EW5LTN3.js +114 -0
- package/dist/commands/chunk-3F3RNIG2.js +128 -0
- package/dist/commands/chunk-3FLTEJZY.js +74 -0
- package/dist/commands/chunk-3JWPTRNI.js +60 -0
- package/dist/commands/chunk-3MQTOUXT.js +94 -0
- package/dist/commands/chunk-3PCUERXE.js +19 -0
- package/dist/commands/chunk-3U6A5WON.js +173 -0
- package/dist/commands/chunk-3YT3RCSI.js +140 -0
- package/dist/commands/chunk-43DU7DYZ.js +540 -0
- package/dist/commands/chunk-43H725LG.js +132 -0
- package/dist/commands/chunk-46STCE6Q.js +48 -0
- package/dist/commands/chunk-46WEC6HZ.js +82 -0
- package/dist/commands/chunk-47J4KOZP.js +46 -0
- package/dist/commands/chunk-47W7PF4T.js +22 -0
- package/dist/commands/chunk-4F4KARQN.js +229 -0
- package/dist/commands/chunk-4GUGC4IW.js +338 -0
- package/dist/commands/chunk-4HB7NWXP.js +263 -0
- package/dist/commands/chunk-4HOTJAO6.js +89 -0
- package/dist/commands/chunk-4I5AA4P5.js +237 -0
- package/dist/commands/chunk-4IDINPBE.js +525 -0
- package/dist/commands/chunk-4K7KLR7L.js +69 -0
- package/dist/commands/chunk-4MGTNY2L.js +347 -0
- package/dist/commands/chunk-4NSIW3UB.js +104 -0
- package/dist/commands/chunk-4YTKV6WV.js +37 -0
- package/dist/commands/chunk-5ARNFMQK.js +1263 -0
- package/dist/commands/chunk-5AZTSESD.js +114 -0
- package/dist/commands/chunk-5FUI2MLY.js +89 -0
- package/dist/commands/chunk-5GI5GLC4.js +214 -0
- package/dist/commands/chunk-5IHEBIPD.js +333 -0
- package/dist/commands/chunk-5KAW5GPF.js +44 -0
- package/dist/commands/chunk-5KSJEWXR.js +77 -0
- package/dist/commands/chunk-5OF2B4BF.js +35 -0
- package/dist/commands/chunk-5PLJ7R3D.js +126 -0
- package/dist/commands/chunk-5PPWXOCF.js +64 -0
- package/dist/commands/chunk-5VQCL33M.js +46 -0
- package/dist/commands/chunk-5Y7FOJLX.js +186 -0
- package/dist/commands/chunk-5YTEMF4O.js +110 -0
- package/dist/commands/chunk-62NYXZCC.js +241 -0
- package/dist/commands/chunk-6KUA7MRG.js +64 -0
- package/dist/commands/chunk-6LDEZFYR.js +88 -0
- package/dist/commands/chunk-6NXIZMIK.js +122 -0
- package/dist/commands/chunk-6O45F6YI.js +86 -0
- package/dist/commands/chunk-6OHJBQDE.js +184 -0
- package/dist/commands/chunk-6WDCCG3M.js +1249 -0
- package/dist/commands/chunk-6ZHXEQAI.js +715 -0
- package/dist/commands/chunk-736NECRD.js +16 -0
- package/dist/commands/chunk-77LEKVEE.js +32 -0
- package/dist/commands/chunk-7CX5VYOL.js +50 -0
- package/dist/commands/chunk-7DGHFBU7.js +247 -0
- package/dist/commands/chunk-7E43YW53.js +128 -0
- package/dist/commands/chunk-7EAYFMDN.js +235 -0
- package/dist/commands/chunk-7HP3FQGQ.js +51 -0
- package/dist/commands/chunk-7JOOMFDI.js +155 -0
- package/dist/commands/chunk-7OEBSPPU.js +321 -0
- package/dist/commands/chunk-A3JYZWBS.js +803 -0
- package/dist/commands/chunk-A3LCN4KA.js +84 -0
- package/dist/commands/chunk-ABLXBG6C.js +98 -0
- package/dist/commands/chunk-AN7BFVHU.js +244 -0
- package/dist/commands/chunk-AQCVEQSM.js +99 -0
- package/dist/commands/chunk-AT46EY7H.js +393 -0
- package/dist/commands/chunk-AU563VKH.js +75 -0
- package/dist/commands/chunk-AUTD5FV2.js +1077 -0
- package/dist/commands/chunk-AV26CMY6.js +304 -0
- package/dist/commands/chunk-B2PJEV3S.js +246 -0
- package/dist/commands/chunk-B545ENGY.js +214 -0
- package/dist/commands/chunk-B5HP6T4L.js +170 -0
- package/dist/commands/chunk-B5XYAWNN.js +37 -0
- package/dist/commands/chunk-B73IIRMS.js +207 -0
- package/dist/commands/chunk-BAEDHPXW.js +160 -0
- package/dist/commands/chunk-BDSG6JKH.js +977 -0
- package/dist/commands/chunk-BE6F4YK2.js +769 -0
- package/dist/commands/chunk-BFKTUD3V.js +33 -0
- package/dist/commands/chunk-BLRXHK2V.js +17 -0
- package/dist/commands/chunk-BLUAO4QW.js +173 -0
- package/dist/commands/chunk-BML6MEUB.js +326 -0
- package/dist/commands/chunk-BPDNGJXY.js +63 -0
- package/dist/commands/chunk-BQLKWGGC.js +118 -0
- package/dist/commands/chunk-BRMJVCP7.js +167 -0
- package/dist/commands/chunk-BRWR5YKU.js +268 -0
- package/dist/commands/chunk-BUZAYEBD.js +319 -0
- package/dist/commands/chunk-BVUL57IX.js +139 -0
- package/dist/commands/chunk-CC4BIGCA.js +20 -0
- package/dist/commands/chunk-CCHJZEF5.js +4220 -0
- package/dist/commands/chunk-CDK7QZWG.js +44 -0
- package/dist/commands/chunk-CDYFUCDC.js +72 -0
- package/dist/commands/chunk-CEADAQIL.js +170 -0
- package/dist/commands/chunk-CNL3SLM6.js +116 -0
- package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
- package/dist/commands/chunk-CTXJVMHW.js +48 -0
- package/dist/commands/chunk-CUWT6UQO.js +13 -0
- package/dist/commands/chunk-CVRDJCOE.js +125 -0
- package/dist/commands/chunk-D6CF5QGM.js +80 -0
- package/dist/commands/chunk-DACNQAXC.js +20 -0
- package/dist/commands/chunk-DDOS32JU.js +74 -0
- package/dist/commands/chunk-DDZVMXZD.js +481 -0
- package/dist/commands/chunk-DF6QD4AF.js +52 -0
- package/dist/commands/chunk-DFEXNB44.js +159 -0
- package/dist/commands/chunk-DHDKG5HZ.js +151 -0
- package/dist/commands/chunk-DHJRFBKO.js +223 -0
- package/dist/commands/chunk-DKDWOE3C.js +78 -0
- package/dist/commands/chunk-DKO5VTEH.js +65 -0
- package/dist/commands/chunk-DLHH3MLS.js +85 -0
- package/dist/commands/chunk-DOYNK72G.js +81 -0
- package/dist/commands/chunk-DS53UUDH.js +679 -0
- package/dist/commands/chunk-DUA4E4ES.js +230 -0
- package/dist/commands/chunk-DURHGVRC.js +33 -0
- package/dist/commands/chunk-DVCMQMRN.js +191 -0
- package/dist/commands/chunk-E3YKMCCJ.js +108 -0
- package/dist/commands/chunk-E4F2RTKC.js +272 -0
- package/dist/commands/chunk-E4PFCTXN.js +127 -0
- package/dist/commands/chunk-EAOTR2WL.js +24 -0
- package/dist/commands/chunk-EE4VOZJP.js +167 -0
- package/dist/commands/chunk-EHVEWJQ4.js +33 -0
- package/dist/commands/chunk-EMFSPPMH.js +98 -0
- package/dist/commands/chunk-EN65ZS3S.js +73 -0
- package/dist/commands/chunk-ES42XPAD.js +123 -0
- package/dist/commands/chunk-ESUY7KTZ.js +137 -0
- package/dist/commands/chunk-ET6IRQ3L.js +330 -0
- package/dist/commands/chunk-EWCUT7U2.js +1314 -0
- package/dist/commands/chunk-EWXXEGXL.js +149 -0
- package/dist/commands/chunk-EZYW54OQ.js +7569 -0
- package/dist/commands/chunk-F2RDEF2J.js +205 -0
- package/dist/commands/chunk-F2U46HAE.js +52 -0
- package/dist/commands/chunk-F2VYWU6Z.js +653 -0
- package/dist/commands/chunk-F4SGOTUF.js +36 -0
- package/dist/commands/chunk-F4YMLVWN.js +183 -0
- package/dist/commands/chunk-F5N2QIFD.js +213 -0
- package/dist/commands/chunk-F7B4ESZE.js +80 -0
- package/dist/commands/chunk-FJM2HWKW.js +299 -0
- package/dist/commands/chunk-FJMXUDEY.js +3985 -0
- package/dist/commands/chunk-FM7VVAK6.js +426 -0
- package/dist/commands/chunk-FQWRM5FC.js +67 -0
- package/dist/commands/chunk-FT33ZCSB.js +298 -0
- package/dist/commands/chunk-G2DNS74C.js +53 -0
- package/dist/commands/chunk-G75GWNNY.js +101 -0
- package/dist/commands/chunk-GA2YSPFH.js +32 -0
- package/dist/commands/chunk-GAVSK6P6.js +230 -0
- package/dist/commands/chunk-GB2BRQVL.js +300 -0
- package/dist/commands/chunk-GBMZXFFC.js +44 -0
- package/dist/commands/chunk-GDP7QXYE.js +76 -0
- package/dist/commands/chunk-GGWXF7RJ.js +70 -0
- package/dist/commands/chunk-GHOTKHI4.js +30 -0
- package/dist/commands/chunk-GMVN6ZP2.js +48 -0
- package/dist/commands/chunk-GNTTGRCX.js +133 -0
- package/dist/commands/chunk-GOY5JECO.js +130 -0
- package/dist/commands/chunk-GVDRRBHZ.js +507 -0
- package/dist/commands/chunk-GWTBIGYC.js +550 -0
- package/dist/commands/chunk-GZL6ISVM.js +72 -0
- package/dist/commands/chunk-HALHQILI.js +51 -0
- package/dist/commands/chunk-HAT7AFBF.js +85 -0
- package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
- package/dist/commands/chunk-HE3GOMR7.js +88 -0
- package/dist/commands/chunk-HEFUC4ZW.js +65 -0
- package/dist/commands/chunk-HESWKELD.js +60 -0
- package/dist/commands/chunk-HNFBEB4L.js +77 -0
- package/dist/commands/chunk-HRN73FQJ.js +77 -0
- package/dist/commands/chunk-HYE3MBAN.js +113 -0
- package/dist/commands/chunk-IAB6LCJL.js +18 -0
- package/dist/commands/chunk-IAGENI2U.js +42 -0
- package/dist/commands/chunk-ICPVBHIX.js +48 -0
- package/dist/commands/chunk-IEKW3ON6.js +161 -0
- package/dist/commands/chunk-IOKOHB7P.js +109 -0
- package/dist/commands/chunk-IONGJJYM.js +179 -0
- package/dist/commands/chunk-IP23WOWP.js +126 -0
- package/dist/commands/chunk-IPS7EBE5.js +140 -0
- package/dist/commands/chunk-IXZZSST7.js +459 -0
- package/dist/commands/chunk-J4XHEOOW.js +156 -0
- package/dist/commands/chunk-JDHLHYJJ.js +208 -0
- package/dist/commands/chunk-JEYITIWB.js +423 -0
- package/dist/commands/chunk-JGX7JIW4.js +126 -0
- package/dist/commands/chunk-JHIGDFBS.js +59 -0
- package/dist/commands/chunk-JI2EGXZX.js +53 -0
- package/dist/commands/chunk-JNV3VRK2.js +47 -0
- package/dist/commands/chunk-JPMAW2VZ.js +91 -0
- package/dist/commands/chunk-JQEY6KDP.js +90 -0
- package/dist/commands/chunk-JSJDIEGZ.js +88 -0
- package/dist/commands/chunk-JT5ICRFF.js +44 -0
- package/dist/commands/chunk-JUCJ4Y42.js +77 -0
- package/dist/commands/chunk-K3OZBV3L.js +49 -0
- package/dist/commands/chunk-K5H3CLZZ.js +430 -0
- package/dist/commands/chunk-K6P5PISC.js +114 -0
- package/dist/commands/chunk-KD3SEAMV.js +402 -0
- package/dist/commands/chunk-KDCHY7XO.js +88 -0
- package/dist/commands/chunk-KDGX3JTV.js +51 -0
- package/dist/commands/chunk-KGSEWOKI.js +353 -0
- package/dist/commands/chunk-KHGDZQRG.js +271 -0
- package/dist/commands/chunk-KIS7JFNP.js +217 -0
- package/dist/commands/chunk-KKHD3C2P.js +114 -0
- package/dist/commands/chunk-KKIIY5I5.js +67 -0
- package/dist/commands/chunk-KN46UC77.js +114 -0
- package/dist/commands/chunk-KP2BVAS5.js +125 -0
- package/dist/commands/chunk-KPAJBJXG.js +63 -0
- package/dist/commands/chunk-KPMAJP6D.js +145 -0
- package/dist/commands/chunk-KR6WUAJM.js +122 -0
- package/dist/commands/chunk-KWLNK2NJ.js +391 -0
- package/dist/commands/chunk-L2CLCNXW.js +144 -0
- package/dist/commands/chunk-L7MDU6D7.js +155 -0
- package/dist/commands/chunk-L7VD4MLF.js +78 -0
- package/dist/commands/chunk-LBMAJDGN.js +124 -0
- package/dist/commands/chunk-LBVYFW3I.js +38 -0
- package/dist/commands/chunk-LE3M42CF.js +350 -0
- package/dist/commands/chunk-LIPUSINQ.js +140 -0
- package/dist/commands/chunk-LJVZWE3A.js +1885 -0
- package/dist/commands/chunk-LKSSQVDA.js +49 -0
- package/dist/commands/chunk-LL6G34MF.js +93 -0
- package/dist/commands/chunk-LNQOL2CL.js +321 -0
- package/dist/commands/chunk-LS7P324N.js +72 -0
- package/dist/commands/chunk-LU5EOGFQ.js +50 -0
- package/dist/commands/chunk-LX2ENXHZ.js +197 -0
- package/dist/commands/chunk-M32UPB2D.js +110 -0
- package/dist/commands/chunk-M3UGRNNB.js +103 -0
- package/dist/commands/chunk-M4WG74Q7.js +260 -0
- package/dist/commands/chunk-M5HA2ZCG.js +105 -0
- package/dist/commands/chunk-MDGPJOLK.js +351 -0
- package/dist/commands/chunk-MDKRTUE4.js +288 -0
- package/dist/commands/chunk-MFZVRWRS.js +34 -0
- package/dist/commands/chunk-MHXIJKGP.js +304 -0
- package/dist/commands/chunk-MK4CARBI.js +90 -0
- package/dist/commands/chunk-MLJDW7YN.js +64 -0
- package/dist/commands/chunk-MNLHYAJO.js +80 -0
- package/dist/commands/chunk-MOD3FG4V.js +419 -0
- package/dist/commands/chunk-MRAEJLXL.js +83 -0
- package/dist/commands/chunk-MRW2WYJS.js +68 -0
- package/dist/commands/chunk-MXPCEZL5.js +23 -0
- package/dist/commands/chunk-N2XH7QBY.js +103 -0
- package/dist/commands/chunk-N2ZF6T4E.js +332 -0
- package/dist/commands/chunk-N36NZMAL.js +79 -0
- package/dist/commands/chunk-N4EMFHQ6.js +114 -0
- package/dist/commands/chunk-N4P64UIH.js +211 -0
- package/dist/commands/chunk-NABSSY4P.js +204 -0
- package/dist/commands/chunk-NDQIJBRQ.js +100 -0
- package/dist/commands/chunk-NDR4PCVG.js +29 -0
- package/dist/commands/chunk-NEOCCN6D.js +302 -0
- package/dist/commands/chunk-NFKWFOFM.js +45 -0
- package/dist/commands/chunk-NFUPJBBG.js +516 -0
- package/dist/commands/chunk-NHEBKL7X.js +170 -0
- package/dist/commands/chunk-NHTEC5U4.js +99 -0
- package/dist/commands/chunk-NOSG3RUP.js +84 -0
- package/dist/commands/chunk-NOSODWWK.js +1132 -0
- package/dist/commands/chunk-NPXXYG6Z.js +580 -0
- package/dist/commands/chunk-NR2JDBPV.js +75 -0
- package/dist/commands/chunk-NRULNBYI.js +1153 -0
- package/dist/commands/chunk-NTGF5N3N.js +110 -0
- package/dist/commands/chunk-NTIVNQKF.js +73 -0
- package/dist/commands/chunk-NUCFIYZL.js +119 -0
- package/dist/commands/chunk-NVMV7BYX.js +88 -0
- package/dist/commands/chunk-NYWPTYGL.js +169 -0
- package/dist/commands/chunk-NZ45KOLL.js +104 -0
- package/dist/commands/chunk-O45BX4EL.js +39 -0
- package/dist/commands/chunk-O46T4ANI.js +229 -0
- package/dist/commands/chunk-O5JGV7NA.js +245 -0
- package/dist/commands/chunk-O7ESC4HL.js +566 -0
- package/dist/commands/chunk-OBYLXHCH.js +86 -0
- package/dist/commands/chunk-OKN63ZH5.js +109 -0
- package/dist/commands/chunk-ON4IKRGS.js +469 -0
- package/dist/commands/chunk-OT74RSQO.js +82 -0
- package/dist/commands/chunk-OVCVINYW.js +143 -0
- package/dist/commands/chunk-OZKLVTYI.js +342 -0
- package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
- package/dist/commands/chunk-P43GWYR6.js +185 -0
- package/dist/commands/chunk-P6ASP2DY.js +132 -0
- package/dist/commands/chunk-PBAEJ5PT.js +38 -0
- package/dist/commands/chunk-PCZROH3R.js +100 -0
- package/dist/commands/chunk-PF3PMT2Q.js +46 -0
- package/dist/commands/chunk-PILH72AV.js +170 -0
- package/dist/commands/chunk-PJYTUUTH.js +34 -0
- package/dist/commands/chunk-PKXTISWR.js +58 -0
- package/dist/commands/chunk-PSGLUBSB.js +74 -0
- package/dist/commands/chunk-PUQA7F6Y.js +186 -0
- package/dist/commands/chunk-PVRDJU2B.js +126 -0
- package/dist/commands/chunk-Q3HM2BEH.js +45 -0
- package/dist/commands/chunk-Q42NF2TL.js +47 -0
- package/dist/commands/chunk-Q4ULMZAS.js +106 -0
- package/dist/commands/chunk-QCRUPRQ2.js +207 -0
- package/dist/commands/chunk-QFIKPGMC.js +280 -0
- package/dist/commands/chunk-QSBYULSS.js +100 -0
- package/dist/commands/chunk-QSJCZATC.js +18 -0
- package/dist/commands/chunk-QTJPCXEW.js +23 -0
- package/dist/commands/chunk-QTQAI2M2.js +179 -0
- package/dist/commands/chunk-QTVVFV4Q.js +127 -0
- package/dist/commands/chunk-QX2EMUXV.js +102 -0
- package/dist/commands/chunk-QXBOECGL.js +272 -0
- package/dist/commands/chunk-QXCG3SG4.js +88 -0
- package/dist/commands/chunk-QZVMGAWV.js +307 -0
- package/dist/commands/chunk-R36VZIKU.js +53 -0
- package/dist/commands/chunk-R3F7F3TX.js +94 -0
- package/dist/commands/chunk-R5AABJZJ.js +1062 -0
- package/dist/commands/chunk-R7PYR4HW.js +389 -0
- package/dist/commands/chunk-RDUFVQVJ.js +997 -0
- package/dist/commands/chunk-RESNXNDG.js +54 -0
- package/dist/commands/chunk-RFIOZTXY.js +305 -0
- package/dist/commands/chunk-RFWB2KAV.js +102 -0
- package/dist/commands/chunk-RFXON3FK.js +25 -0
- package/dist/commands/chunk-RGEB5L37.js +66 -0
- package/dist/commands/chunk-RGRLLF2J.js +119 -0
- package/dist/commands/chunk-RLRIMYXM.js +178 -0
- package/dist/commands/chunk-RNB3DQOZ.js +70 -0
- package/dist/commands/chunk-RO4QEZJO.js +172 -0
- package/dist/commands/chunk-RS5HBJY6.js +161 -0
- package/dist/commands/chunk-RV7EQIE4.js +202 -0
- package/dist/commands/chunk-RWPCK3CO.js +41 -0
- package/dist/commands/chunk-RWYSVFIA.js +250 -0
- package/dist/commands/chunk-RYKK75YT.js +289 -0
- package/dist/commands/chunk-S4JE63QE.js +704 -0
- package/dist/commands/chunk-S4OZJIXD.js +134 -0
- package/dist/commands/chunk-SD4EX75H.js +177 -0
- package/dist/commands/chunk-SJITWFNY.js +480 -0
- package/dist/commands/chunk-SKGDMAIA.js +33 -0
- package/dist/commands/chunk-SNSZ25XZ.js +393 -0
- package/dist/commands/chunk-SQZZHK6X.js +119 -0
- package/dist/commands/chunk-SRTEE34O.js +93 -0
- package/dist/commands/chunk-SYTCTLMD.js +285 -0
- package/dist/commands/chunk-T6JUDQMW.js +181 -0
- package/dist/commands/chunk-T6OUNP7E.js +426 -0
- package/dist/commands/chunk-TEXUEBGE.js +208 -0
- package/dist/commands/chunk-TFDVTU6O.js +910 -0
- package/dist/commands/chunk-TFYYXETQ.js +472 -0
- package/dist/commands/chunk-TMFKVJUW.js +121 -0
- package/dist/commands/chunk-TNJU4CXD.js +32 -0
- package/dist/commands/chunk-TRHWBUWE.js +61 -0
- package/dist/commands/chunk-TROCFVCU.js +45 -0
- package/dist/commands/chunk-TTTZZN7F.js +269 -0
- package/dist/commands/chunk-TUBBESHU.js +85 -0
- package/dist/commands/chunk-TVZIFZZN.js +62 -0
- package/dist/commands/chunk-TXRWAL63.js +144 -0
- package/dist/commands/chunk-U46YTYJQ.js +92 -0
- package/dist/commands/chunk-U5EO4QEV.js +48 -0
- package/dist/commands/chunk-UCO333EX.js +47 -0
- package/dist/commands/chunk-UIXQ4IYT.js +445 -0
- package/dist/commands/chunk-UJGNYPMD.js +716 -0
- package/dist/commands/chunk-URZ4RDC4.js +220 -0
- package/dist/commands/chunk-UUH3DE77.js +57 -0
- package/dist/commands/chunk-UVY5ODCM.js +60 -0
- package/dist/commands/chunk-UWMB6EOU.js +45 -0
- package/dist/commands/chunk-UX3HCPLX.js +449 -0
- package/dist/commands/chunk-UY62WJV6.js +120 -0
- package/dist/commands/chunk-V2T5DP3B.js +224 -0
- package/dist/commands/chunk-VAHQ4AFM.js +585 -0
- package/dist/commands/chunk-VCWNMRH7.js +71 -0
- package/dist/commands/chunk-VHLDQ3PH.js +30 -0
- package/dist/commands/chunk-VL5I2IOD.js +332 -0
- package/dist/commands/chunk-VLN6TSPJ.js +139 -0
- package/dist/commands/chunk-VMG3QB6C.js +81 -0
- package/dist/commands/chunk-VO25PMGS.js +58 -0
- package/dist/commands/chunk-VTLWODJ2.js +133 -0
- package/dist/commands/chunk-VXE3V3OC.js +335 -0
- package/dist/commands/chunk-VY7ZJMDT.js +469 -0
- package/dist/commands/chunk-W3MDLQZF.js +137 -0
- package/dist/commands/chunk-W4BR6QNU.js +1241 -0
- package/dist/commands/chunk-WCYRNNKF.js +76 -0
- package/dist/commands/chunk-WEUUJIWQ.js +84 -0
- package/dist/commands/chunk-WNBJK6QE.js +84 -0
- package/dist/commands/chunk-WR5PKCQW.js +61 -0
- package/dist/commands/chunk-WR73HTRG.js +121 -0
- package/dist/commands/chunk-WRNMUQTD.js +95 -0
- package/dist/commands/chunk-WROJTXWZ.js +138 -0
- package/dist/commands/chunk-WTIPX5NG.js +43 -0
- package/dist/commands/chunk-WWLCQREY.js +225 -0
- package/dist/commands/chunk-WXLW7S4M.js +71 -0
- package/dist/commands/chunk-WXXLJQBO.js +67 -0
- package/dist/commands/chunk-X4LYH6Q4.js +56 -0
- package/dist/commands/chunk-XAEL24EG.js +66 -0
- package/dist/commands/chunk-XCCT6GKA.js +74 -0
- package/dist/commands/chunk-XDR2BRDL.js +216 -0
- package/dist/commands/chunk-XRQMVAB4.js +85 -0
- package/dist/commands/chunk-XSKJAG72.js +91 -0
- package/dist/commands/chunk-XTJA34ND.js +492 -0
- package/dist/commands/chunk-XUXCFPDK.js +218 -0
- package/dist/commands/chunk-XXPDFJRI.js +48 -0
- package/dist/commands/chunk-Y6OGDG5I.js +49 -0
- package/dist/commands/chunk-YEAE46TS.js +98 -0
- package/dist/commands/chunk-YEQFAEVW.js +112 -0
- package/dist/commands/chunk-YJZAD4Z5.js +103 -0
- package/dist/commands/chunk-YMAEYY5R.js +278 -0
- package/dist/commands/chunk-YNCF66RK.js +1052 -0
- package/dist/commands/chunk-YOA25SII.js +210 -0
- package/dist/commands/chunk-YOZTZMAT.js +38 -0
- package/dist/commands/chunk-YSGRHVZG.js +897 -0
- package/dist/commands/chunk-YSLGWRQN.js +646 -0
- package/dist/commands/chunk-YTXCLGGL.js +168 -0
- package/dist/commands/chunk-YVHJN2HS.js +74 -0
- package/dist/commands/chunk-YY7XVVSB.js +43 -0
- package/dist/commands/chunk-Z5GZV4DV.js +16 -0
- package/dist/commands/chunk-Z6QLFPFB.js +907 -0
- package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
- package/dist/commands/chunk-ZCD4AV2P.js +73 -0
- package/dist/commands/chunk-ZCHZU6NX.js +799 -0
- package/dist/commands/chunk-ZEH2B3DF.js +239 -0
- package/dist/commands/chunk-ZEUKX3RZ.js +245 -0
- package/dist/commands/chunk-ZGANVZCA.js +92 -0
- package/dist/commands/chunk-ZGBXUY7R.js +198 -0
- package/dist/commands/chunk-ZGEUWHFF.js +297 -0
- package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
- package/dist/commands/chunk-ZIIUBGON.js +773 -0
- package/dist/commands/chunk-ZJ5S4VFD.js +258 -0
- package/dist/commands/chunk-ZNIIA275.js +59 -0
- package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
- package/dist/commands/ci-timing-cli.js +22 -3
- package/dist/commands/code-symbol-cli.js +21 -7
- package/dist/commands/codex-hook-adapter.js +124 -119
- package/dist/commands/command-derive.js +9 -11
- package/dist/commands/cost-audit-main.js +118 -119
- package/dist/commands/cost-main.js +5 -7
- package/dist/commands/cspell-cached.js +55 -57
- package/dist/commands/defect-origin-main.js +42 -37
- package/dist/commands/defect-report-main.js +33 -25
- package/dist/commands/diff-summary-cli.js +3 -4
- package/dist/commands/disposition-cli.js +117 -118
- package/dist/commands/doctor.js +24 -11
- package/dist/commands/document-read-cli.js +50 -53
- package/dist/commands/document-section-main.js +50 -53
- package/dist/commands/dogfood-commit-cli.js +19 -4
- package/dist/commands/effect-audit-cli.js +40 -41
- package/dist/commands/epic-audit-main.js +88 -86
- package/dist/commands/epic-bundle-main.js +122 -119
- package/dist/commands/epic-check.js +37 -31
- package/dist/commands/epic-main.js +129 -126
- package/dist/commands/epic-next-main.js +85 -83
- package/dist/commands/eval-run.js +6 -7
- package/dist/commands/format-edited-cli.js +71 -46
- package/dist/commands/format.js +41 -56
- package/dist/commands/fresh-machine-cli.js +24 -7
- package/dist/commands/gh-usage-cli.js +22 -22
- package/dist/commands/git-followup-workflow.js +158 -158
- package/dist/commands/git-gh-checks-failed-main.js +23 -15
- package/dist/commands/git-workflow.js +52 -53
- package/dist/commands/github-release-cli.js +3 -3
- package/dist/commands/hook-ledger-cli.js +93 -94
- package/dist/commands/init-main.js +40 -40
- package/dist/commands/inputs.json +2020 -1980
- package/dist/commands/issue-ack-cli.js +28 -21
- package/dist/commands/issue-already-done-cli.js +107 -110
- package/dist/commands/issue-body-cli.js +71 -73
- package/dist/commands/issue-cite-main.js +35 -28
- package/dist/commands/issue-comment-main.js +36 -30
- package/dist/commands/issue-consolidate-cli.js +54 -54
- package/dist/commands/issue-file-main.js +274 -148
- package/dist/commands/issue-fold-existing-cli.js +126 -123
- package/dist/commands/issue-fold-main.js +57 -60
- package/dist/commands/issue-lint-main.js +59 -61
- package/dist/commands/issue-measured-cli.js +108 -110
- package/dist/commands/issue-plan-cli.js +156 -155
- package/dist/commands/issue-premise-unmet-cli.js +111 -113
- package/dist/commands/issue-priority-cli.js +38 -32
- package/dist/commands/issue-read-main.js +38 -33
- package/dist/commands/issue-release-class-cli.js +37 -31
- package/dist/commands/issue-release-main.js +35 -29
- package/dist/commands/issue-scout-main.js +123 -120
- package/dist/commands/issue-spill-main.js +149 -144
- package/dist/commands/issue-state-main.js +36 -31
- package/dist/commands/issue-tick-cli.js +37 -31
- package/dist/commands/josh-completion.js +21 -24
- package/dist/commands/lane-adopt-cli.js +53 -55
- package/dist/commands/lane-breakdown-cli.js +193 -172
- package/dist/commands/lane-cli.js +199 -180
- package/dist/commands/lane-launch-main.js +106 -56
- package/dist/commands/lane-limit-cli.js +119 -116
- package/dist/commands/lane-measure-cli.js +408 -245
- package/dist/commands/lane-pause-cli.js +51 -54
- package/dist/commands/lane-plan-cli.js +148 -147
- package/dist/commands/lane-resolve-cli.js +48 -50
- package/dist/commands/lane-restart-cli.js +185 -168
- package/dist/commands/lane-why-cli.js +121 -122
- package/dist/commands/lane-withdraw-cli.js +84 -86
- package/dist/commands/latest-corepack.js +3 -2
- package/dist/commands/latest-if-required-cli.js +12 -15
- package/dist/commands/latest-lane-guard-main.js +2 -3
- package/dist/commands/latest-scope-main.js +5 -7
- package/dist/commands/latest-update.js +3 -2
- package/dist/commands/lines-command.js +8 -10
- package/dist/commands/lint-parallel-main.js +65 -67
- package/dist/commands/lint-related.js +149 -133
- package/dist/commands/lint-rule.js +64 -66
- package/dist/commands/lockfile-policy.js +29 -32
- package/dist/commands/main-merge-main.js +23 -25
- package/dist/commands/main-sync-main.js +23 -24
- package/dist/commands/managed-config-scope-cli.js +11 -10
- package/dist/commands/measure-rerun-cli.js +31 -26
- package/dist/commands/metrics-command.js +97 -100
- package/dist/commands/observation-record-cli.js +24 -14
- package/dist/commands/observations-flush-cli.js +50 -52
- package/dist/commands/overrides-check.js +1 -1
- package/dist/commands/package-scout-cli.js +70 -73
- package/dist/commands/pin-verify-cli.js +21 -2
- package/dist/commands/plan-consumers-main.js +3 -4
- package/dist/commands/plan-scaffold-cli.js +145 -146
- package/dist/commands/pr-classification-main.js +22 -3
- package/dist/commands/pre-commit-lint.js +30 -34
- package/dist/commands/pre-commit-type-check.js +55 -55
- package/dist/commands/pre-push-unit.js +69 -70
- package/dist/commands/pretool-guard-cli.js +111 -113
- package/dist/commands/prevent-main-commit.js +2 -3
- package/dist/commands/project-profile-cli.js +24 -9
- package/dist/commands/propagate.js +31 -23
- package/dist/commands/prose-stale-cli.js +48 -42
- package/dist/commands/publishable-range-check.js +3 -3
- package/dist/commands/read-set-cli.js +58 -61
- package/dist/commands/refactor-scan-cli.js +8 -9
- package/dist/commands/release-cli.js +57 -57
- package/dist/commands/release-scope-main.js +41 -36
- package/dist/commands/rename-cli.js +64 -36
- package/dist/commands/repo-party-cli.js +3 -4
- package/dist/commands/report-template-cli.js +4 -5
- package/dist/commands/reserved-run.js +17 -20
- package/dist/commands/retrospective-cli.js +126 -127
- package/dist/commands/review-attest-cli.js +28 -20
- package/dist/commands/review-brief-main.js +184 -167
- package/dist/commands/review-findings-cli.js +23 -13
- package/dist/commands/review-pair-cli.js +180 -156
- package/dist/commands/review-record-main.js +171 -147
- package/dist/commands/review-round2-cli.js +89 -91
- package/dist/commands/review-stops-cli.js +51 -54
- package/dist/commands/review-submit-cli.js +184 -167
- package/dist/commands/rule-list.js +78 -80
- package/dist/commands/rule-value-cli.js +115 -116
- package/dist/commands/ruleset-check-cli.js +23 -6
- package/dist/commands/run-add-cli.js +115 -75
- package/dist/commands/run-board-main.js +172 -169
- package/dist/commands/run-carry-cli.js +182 -174
- package/dist/commands/run-chain-cli.js +184 -160
- package/dist/commands/run-cut-cli.js +206 -168
- package/dist/commands/run-ending-cli.js +51 -54
- package/dist/commands/run-entry-cli.js +230 -283
- package/dist/commands/run-event-cli.js +18 -21
- package/dist/commands/run-handoff-cli.js +75 -78
- package/dist/commands/run-handoff-lanes-cli.js +48 -51
- package/dist/commands/run-hold-main.js +105 -107
- package/dist/commands/run-liveness-cli.js +47 -49
- package/dist/commands/run-merge-main.js +159 -151
- package/dist/commands/run-next-cli.js +128 -129
- package/dist/commands/run-park-cli.js +137 -140
- package/dist/commands/run-pause-cli.js +190 -186
- package/dist/commands/run-pickup-cli.js +49 -52
- package/dist/commands/run-prep-main.js +124 -125
- package/dist/commands/run-prime-cli.js +175 -147
- package/dist/commands/run-progress-main.js +149 -146
- package/dist/commands/run-report-cli.js +60 -60
- package/dist/commands/run-review-cli.js +229 -214
- package/dist/commands/run-ship-cli.js +258 -252
- package/dist/commands/run-ship-evidence-cli.js +71 -72
- package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
- package/dist/commands/run-ship-wait-main.js +83 -85
- package/dist/commands/run-split-cli.js +176 -172
- package/dist/commands/run-stale-main.js +72 -75
- package/dist/commands/run-status-cli.js +44 -44
- package/dist/commands/run-step-cli.js +213 -211
- package/dist/commands/run-tail-cli.js +23 -18
- package/dist/commands/run-tidy-main.js +67 -69
- package/dist/commands/run-wake-main.js +206 -187
- package/dist/commands/run-watcher-guard-cli.js +63 -66
- package/dist/commands/security-audit-main.js +21 -24
- package/dist/commands/security-audit-provision-main.js +9 -11
- package/dist/commands/selfcheck-cli.js +63 -57
- package/dist/commands/session-language-main.js +70 -73
- package/dist/commands/sonar-hotspots-cli.js +9 -8
- package/dist/commands/sonar-new-code-cli.js +3 -4
- package/dist/commands/split-assess-cli.js +55 -58
- package/dist/commands/split-child-recover-cli.js +38 -39
- package/dist/commands/start.js +64 -64
- package/dist/commands/stash-pop-main.js +4 -5
- package/dist/commands/stash-push-main.js +7 -9
- package/dist/commands/stop-guard.js +180 -176
- package/dist/commands/sync-main.js +30 -15
- package/dist/commands/telegram-test-main.js +29 -22
- package/dist/commands/test-declared.js +29 -15
- package/dist/commands/test-e2e-guard.js +54 -54
- package/dist/commands/test-pinned-main.js +57 -56
- package/dist/commands/test-reach-cli.js +40 -32
- package/dist/commands/test-red-main.js +12 -14
- package/dist/commands/test-related-Z6YY2GFH.js +113 -0
- package/dist/commands/test-related-main.js +89 -89
- package/dist/commands/test-unit-guard-main.js +37 -37
- package/dist/commands/time-cli.js +54 -57
- package/dist/commands/time-density-cli.js +26 -29
- package/dist/commands/tree-status-cli.js +6 -8
- package/dist/commands/type-check-command.js +26 -11
- package/dist/commands/ui-routes-cli.js +5 -6
- package/dist/commands/ui-shot-cli.js +1 -1
- package/dist/commands/uninstall.js +44 -43
- package/dist/commands/unused-members-KVKZDTXD.js +329 -0
- package/dist/commands/unused-members-cli.js +27 -12
- package/dist/commands/upstream-interrupt-main.js +159 -151
- package/dist/commands/verification-gate.js +85 -86
- package/dist/commands/version-check.js +25 -8
- package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
- package/dist/hooks/chunk-46PTTMGE.js +1625 -0
- package/dist/hooks/chunk-5NIBRHWG.js +77 -0
- package/dist/hooks/chunk-76QKN2K3.js +258 -0
- package/dist/hooks/chunk-CHEKMGFP.js +321 -0
- package/dist/hooks/chunk-DCILEVDR.js +5173 -0
- package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
- package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
- package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
- package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
- package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
- package/dist/hooks/codex-hook-adapter.js +11 -12
- package/dist/hooks/daemon.js +2140 -1387
- package/dist/hooks/format-edited.js +6 -6
- package/dist/hooks/inputs.json +521 -497
- package/dist/hooks/pretool-guard.js +8 -8
- package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
- package/dist/hooks/session-lang.js +9 -7
- package/dist/hooks/stop-guard.js +962 -669
- package/dist/inputs.json +63 -54
- package/dist/josh.js +1029 -577
- package/dist/registry-migrate.mjs +33938 -0
- package/dist/version/index.js +4251 -175
- package/package.json +4 -1
- package/prompts/collaboration-workflow/principles.md +4 -1
- package/prompts/collaboration-workflow/rule-delivery.md +1 -1
- package/scripts/agent/codex-launch-identity.ts +70 -0
- package/scripts/auto-ok/auto-ok-cli.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge.ts +3 -1
- package/scripts/backlog/backlog-arrival.ts +1 -1
- package/scripts/backlog/backlog-budget.ts +5 -2
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
- package/scripts/backlog/backlog-drain-flush.ts +38 -3
- package/scripts/backlog/backlog-drive-cli.ts +1 -1
- package/scripts/backlog/backlog-drive-hold.ts +28 -5
- package/scripts/backlog/backlog-drive-launch.ts +37 -15
- package/scripts/backlog/backlog-drive-listing.ts +39 -23
- package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
- package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
- package/scripts/backlog/backlog-hold-codes.ts +7 -0
- package/scripts/backlog/backlog-hold-text.ts +14 -1
- package/scripts/backlog/backlog-measure-close.ts +6 -0
- package/scripts/backlog/backlog-next-shared.ts +20 -2
- package/scripts/backlog/backlog-next.ts +24 -3
- package/scripts/backlog/backlog-offer-cli.ts +69 -16
- package/scripts/build/build-migration.ts +25 -0
- package/scripts/build/build.ts +2 -0
- package/scripts/epic/epic-classify.ts +6 -1
- package/scripts/epic/epic-live.ts +46 -0
- package/scripts/followup/followup-failed-tests.ts +71 -10
- package/scripts/followup/followup-job-rerun.ts +2 -2
- package/scripts/gate/change-scope-action.integration.test.ts +88 -0
- package/scripts/gate/change-scope-action.ts +2 -0
- package/scripts/gate/check-related-order.ts +6 -7
- package/scripts/gate/check-related.ts +18 -8
- package/scripts/gate/core-admission.ts +17 -30
- package/scripts/gate/core-budget-poll.ts +183 -0
- package/scripts/gate/core-budget-timing.ts +1 -1
- package/scripts/gate/core-budget.ts +24 -112
- package/scripts/gate/core-wait-record.ts +52 -7
- package/scripts/gate/machine-capacity.ts +6 -2
- package/scripts/gate/metrics-totals.ts +11 -0
- package/scripts/gate/path-glob.test.ts +18 -0
- package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
- package/scripts/gh/fix-gh-packages-logic.ts +22 -15
- package/scripts/gh/gh-request-tally.ts +4 -0
- package/scripts/hooks/bash-revert.ts +79 -31
- package/scripts/hooks/format-edited-file.ts +6 -8
- package/scripts/hooks/implementation-shell.ts +3 -2
- package/scripts/init/distributed-paths.ts +18 -5
- package/scripts/init/init-actions.ts +16 -1
- package/scripts/init/init-bootstrap.ts +2 -0
- package/scripts/init/init-logic.ts +40 -8
- package/scripts/init/init.ts +11 -3
- package/scripts/issue/defect-rate-cli.ts +19 -13
- package/scripts/issue/issue-file-batch.ts +7 -3
- package/scripts/issue/issue-file-cli.ts +19 -6
- package/scripts/issue/issue-file-main.ts +6 -1
- package/scripts/issue/issue-file-pass.ts +17 -0
- package/scripts/issue/issue-file.ts +3 -0
- package/scripts/issue/issue-not-before.ts +9 -2
- package/scripts/issue/issue-observation-gate.ts +141 -0
- package/scripts/issue/issue-observation-prime.ts +83 -0
- package/scripts/issue/issue-publication-state.ts +61 -0
- package/scripts/issue/issue-publication.ts +144 -0
- package/scripts/issue/issue-sample-prime.ts +2 -0
- package/scripts/issue/issue-search-count.ts +26 -0
- package/scripts/issue/issue-search.ts +128 -3
- package/scripts/issue/issue-spill-cli.ts +4 -0
- package/scripts/issue/upstream-interrupt-cli.ts +21 -5
- package/scripts/josh/josh-commands-ai.ts +1 -1
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-issue-write.ts +9 -0
- package/scripts/josh/josh-commands-run.ts +6 -1
- package/scripts/josh/josh-commands-ship.ts +5 -5
- package/scripts/josh/josh-run.ts +5 -2
- package/scripts/josh/shared-cache.ts +16 -1
- package/scripts/lane/lane-await.ts +15 -0
- package/scripts/lane/lane-cli.ts +2 -0
- package/scripts/lane/lane-dispatch-dependency.ts +102 -0
- package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
- package/scripts/lane/lane-dispatch.ts +44 -5
- package/scripts/lane/lane-early-push-count.ts +21 -0
- package/scripts/lane/lane-install.ts +15 -5
- package/scripts/lane/lane-launch-cli.ts +35 -14
- package/scripts/lane/lane-ledger-kind.ts +2 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
- package/scripts/lane/lane-ledger-schema.ts +15 -1
- package/scripts/lane/lane-ledger-write.ts +4 -1
- package/scripts/lane/lane-relaunch.ts +25 -2
- package/scripts/lane/lane-state-record.ts +2 -0
- package/scripts/lane/lane-state.ts +8 -1
- package/scripts/lane/lane-stats-tables.ts +2 -0
- package/scripts/lane/openai-lane-supervisor.ts +16 -1
- package/scripts/lib/inherited-scope.ts +48 -0
- package/scripts/lint/format-steps.ts +93 -0
- package/scripts/lint/format.ts +6 -49
- package/scripts/lint/lint-related-fix.ts +35 -0
- package/scripts/lint/lint-related.ts +22 -35
- package/scripts/propagate/propagate-steps.ts +9 -4
- package/scripts/registry-migration/migrate-cli.ts +50 -0
- package/scripts/registry-migration/migrate-files.ts +154 -0
- package/scripts/registry-migration/migrate-lock.ts +147 -0
- package/scripts/registry-migration/migrate.ts +235 -0
- package/scripts/registry-migration/npm-acquisition.ts +118 -0
- package/scripts/review/review-record-cli.ts +27 -13
- package/scripts/review/review-record-pinned.ts +15 -6
- package/scripts/run/add/run-add-cli.ts +21 -3
- package/scripts/run/add/run-add.ts +26 -9
- package/scripts/run/board/run-board-layout.ts +2 -2
- package/scripts/run/board/run-board-reason.ts +12 -0
- package/scripts/run/board/run-board-retry-wait.ts +35 -0
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +6 -4
- package/scripts/run/carry/run-carry-reclaim.ts +12 -2
- package/scripts/run/carry/run-carry-session.ts +48 -0
- package/scripts/run/carry/run-carry.ts +21 -14
- package/scripts/run/cut/run-cut-resume.ts +15 -3
- package/scripts/run/cut/run-cut.ts +1 -1
- package/scripts/run/detached-launch.ts +14 -5
- package/scripts/run/early-push-record.ts +6 -2
- package/scripts/run/event/run-event-setup.ts +2 -0
- package/scripts/run/event/run-event-stream-emit.ts +27 -7
- package/scripts/run/hold/run-hold-cli.ts +40 -5
- package/scripts/run/merge/run-merge-cut-release.ts +17 -0
- package/scripts/run/merge/run-merge-human-review.ts +6 -0
- package/scripts/run/merge/run-merge-steps.ts +4 -57
- package/scripts/run/merge/run-merge-waits.ts +54 -0
- package/scripts/run/prime/run-prime-cli.ts +16 -2
- package/scripts/run/review/run-review-cli.ts +5 -7
- package/scripts/run/review/run-review-early-push.ts +19 -8
- package/scripts/run/review/run-review-join-read.ts +33 -6
- package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
- package/scripts/run/review/run-review-pinned-steps.ts +7 -1
- package/scripts/run/run-halfrun-resume.ts +49 -6
- package/scripts/run/run-headless.ts +3 -0
- package/scripts/run/run-pr-return.ts +14 -5
- package/scripts/run/run-repair-attempt.ts +219 -0
- package/scripts/run/ship/run-ship-lap.ts +5 -17
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
- package/scripts/run/ship/run-ship-scoped.ts +66 -30
- package/scripts/run/startup/run-startup-schema.ts +31 -0
- package/scripts/run/startup/run-startup-store.ts +130 -0
- package/scripts/run/startup/run-startup.ts +119 -0
- package/scripts/run/wake/run-wake-codex.ts +144 -0
- package/scripts/run/wake/run-wake-driver.ts +32 -7
- package/scripts/run/wake/run-wake-handoff.ts +9 -8
- package/scripts/run/wake/run-wake-loop.ts +23 -3
- package/scripts/run/wake/run-wake-ports.ts +17 -3
- package/scripts/run/wake/run-wake-takeover.ts +6 -3
- package/scripts/run/wake/run-wake-window.ts +4 -1
- package/scripts/run/wake/run-wake.ts +5 -0
- package/scripts/sync/sync-ai-files.ts +17 -0
- package/scripts/sync/sync-configs.ts +11 -1
- package/scripts/sync/sync.ts +5 -1
- package/scripts/test/test-related-cap.ts +7 -3
- package/scripts/test/test-related-imports.ts +92 -0
- package/scripts/test/vitest-failure-summary.ts +7 -0
- package/scripts/version/npm-registry.ts +45 -7
- package/scripts/version/upgrade-shell-command.ts +34 -2
- package/templates/workflows/ci.yml +0 -15
- package/templates/workflows/github-release.yml +0 -5
- package/dist/commands/chunk-23GH6B3D.js +0 -333
- package/dist/commands/chunk-24OATKOF.js +0 -7534
- package/dist/commands/chunk-24ZDAWML.js +0 -48
- package/dist/commands/chunk-2BB5ZR2F.js +0 -128
- package/dist/commands/chunk-2BJJUTZA.js +0 -59
- package/dist/commands/chunk-2CXT6MBR.js +0 -51
- package/dist/commands/chunk-2DJLAUYB.js +0 -109
- package/dist/commands/chunk-2EZTYLO4.js +0 -179
- package/dist/commands/chunk-2FJJYCBD.js +0 -149
- package/dist/commands/chunk-2PHOLX62.js +0 -43
- package/dist/commands/chunk-2QM72JCJ.js +0 -338
- package/dist/commands/chunk-2VRITY55.js +0 -41
- package/dist/commands/chunk-2XAH3MHV.js +0 -23
- package/dist/commands/chunk-34KZDKQJ.js +0 -304
- package/dist/commands/chunk-352KLSFX.js +0 -67
- package/dist/commands/chunk-36LOGVJ7.js +0 -38
- package/dist/commands/chunk-3AEDZZNL.js +0 -223
- package/dist/commands/chunk-3B2HEFNO.js +0 -51
- package/dist/commands/chunk-3PEXBHRN.js +0 -33
- package/dist/commands/chunk-3Z425MM3.js +0 -61
- package/dist/commands/chunk-3ZOX4G4U.js +0 -88
- package/dist/commands/chunk-452HWOJ7.js +0 -395
- package/dist/commands/chunk-475EFIJV.js +0 -178
- package/dist/commands/chunk-47UZB54M.js +0 -73
- package/dist/commands/chunk-4DN4XVPL.js +0 -716
- package/dist/commands/chunk-4DVM57T7.js +0 -86
- package/dist/commands/chunk-4EADHJVC.js +0 -247
- package/dist/commands/chunk-4HERA2GY.js +0 -95
- package/dist/commands/chunk-4JI35CVO.js +0 -70
- package/dist/commands/chunk-4L4LNWZ7.js +0 -143
- package/dist/commands/chunk-4N32QKJZ.js +0 -170
- package/dist/commands/chunk-4NRSFLG7.js +0 -185
- package/dist/commands/chunk-4OKRPAUT.js +0 -98
- package/dist/commands/chunk-4PUKDAXL.js +0 -42
- package/dist/commands/chunk-4Q64PG46.js +0 -478
- package/dist/commands/chunk-4UDTQVDD.js +0 -278
- package/dist/commands/chunk-4WR2LEZL.js +0 -123
- package/dist/commands/chunk-4ZJOC6OK.js +0 -298
- package/dist/commands/chunk-4ZQM4I7R.js +0 -533
- package/dist/commands/chunk-54X37JEJ.js +0 -170
- package/dist/commands/chunk-56KW5EOK.js +0 -85
- package/dist/commands/chunk-5CG3XU3O.js +0 -74
- package/dist/commands/chunk-5ESZLHDZ.js +0 -514
- package/dist/commands/chunk-5FBRMARM.js +0 -578
- package/dist/commands/chunk-5RG4S66L.js +0 -47
- package/dist/commands/chunk-5UJGACVN.js +0 -137
- package/dist/commands/chunk-5Y7B7FDL.js +0 -44
- package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
- package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
- package/dist/commands/chunk-5ZTQX7OS.js +0 -125
- package/dist/commands/chunk-66NX6EXR.js +0 -29
- package/dist/commands/chunk-66TGK5XL.js +0 -84
- package/dist/commands/chunk-6CFHLMKM.js +0 -555
- package/dist/commands/chunk-6DDK5XWK.js +0 -74
- package/dist/commands/chunk-6GQX752S.js +0 -145
- package/dist/commands/chunk-6HRRZANN.js +0 -55
- package/dist/commands/chunk-6MAZ55GF.js +0 -1241
- package/dist/commands/chunk-6OP63TBT.js +0 -78
- package/dist/commands/chunk-6Q3XUCLM.js +0 -204
- package/dist/commands/chunk-6RUWU2SB.js +0 -45
- package/dist/commands/chunk-6UCWAFQY.js +0 -245
- package/dist/commands/chunk-6WKJ3GDA.js +0 -408
- package/dist/commands/chunk-6YURRFRU.js +0 -461
- package/dist/commands/chunk-6YVURZAJ.js +0 -350
- package/dist/commands/chunk-6Z4YZG7P.js +0 -169
- package/dist/commands/chunk-77BIN247.js +0 -122
- package/dist/commands/chunk-7ABHNNY3.js +0 -529
- package/dist/commands/chunk-7C7FOKJK.js +0 -115
- package/dist/commands/chunk-7HAGC6SW.js +0 -1062
- package/dist/commands/chunk-7KKUFLH5.js +0 -56
- package/dist/commands/chunk-7LJQMM2K.js +0 -102
- package/dist/commands/chunk-7MJYLUF4.js +0 -99
- package/dist/commands/chunk-7NHZCI5Y.js +0 -704
- package/dist/commands/chunk-7OQ56DVW.js +0 -239
- package/dist/commands/chunk-7VWPGTZO.js +0 -260
- package/dist/commands/chunk-7YZXS3AK.js +0 -30
- package/dist/commands/chunk-A4HOQKOG.js +0 -85
- package/dist/commands/chunk-A6T2N7VC.js +0 -159
- package/dist/commands/chunk-AAUDI7WJ.js +0 -250
- package/dist/commands/chunk-AC26ZUG5.js +0 -259
- package/dist/commands/chunk-ACZ52JPI.js +0 -140
- package/dist/commands/chunk-AJ65WNJB.js +0 -230
- package/dist/commands/chunk-AK7SEO4Y.js +0 -177
- package/dist/commands/chunk-AKK56GNX.js +0 -205
- package/dist/commands/chunk-AKQYYHP2.js +0 -461
- package/dist/commands/chunk-ALDAS2WG.js +0 -137
- package/dist/commands/chunk-ANUTT56I.js +0 -85
- package/dist/commands/chunk-AVVMDVGO.js +0 -68
- package/dist/commands/chunk-B3M5WSGN.js +0 -72
- package/dist/commands/chunk-B7ZNIEDV.js +0 -351
- package/dist/commands/chunk-BCUDQWYK.js +0 -77
- package/dist/commands/chunk-BF6YX4HE.js +0 -70
- package/dist/commands/chunk-BHRS7HAM.js +0 -272
- package/dist/commands/chunk-BIKGPT52.js +0 -29
- package/dist/commands/chunk-BJA5U4Q7.js +0 -75
- package/dist/commands/chunk-BMKWSWWE.js +0 -126
- package/dist/commands/chunk-BMTYUJNT.js +0 -59
- package/dist/commands/chunk-BRHPRDDV.js +0 -127
- package/dist/commands/chunk-BRUBX64M.js +0 -33
- package/dist/commands/chunk-BTZJDHQT.js +0 -46
- package/dist/commands/chunk-BYFC6MD2.js +0 -72
- package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
- package/dist/commands/chunk-C2SEDMZ3.js +0 -238
- package/dist/commands/chunk-C54QXJD6.js +0 -4208
- package/dist/commands/chunk-C6QSVO5K.js +0 -56
- package/dist/commands/chunk-CBAKBWSZ.js +0 -332
- package/dist/commands/chunk-CFHRNTE5.js +0 -326
- package/dist/commands/chunk-CGLLAEKZ.js +0 -110
- package/dist/commands/chunk-CHKYPF5O.js +0 -82
- package/dist/commands/chunk-CJBW6BWG.js +0 -800
- package/dist/commands/chunk-CJKPF5DJ.js +0 -156
- package/dist/commands/chunk-CKUKK7JG.js +0 -252
- package/dist/commands/chunk-CMHGDCGN.js +0 -263
- package/dist/commands/chunk-CNGTHSUS.js +0 -750
- package/dist/commands/chunk-CP2J4RV2.js +0 -3987
- package/dist/commands/chunk-CQZI7RIK.js +0 -72
- package/dist/commands/chunk-CWCKCZS6.js +0 -188
- package/dist/commands/chunk-D5HIP4HT.js +0 -289
- package/dist/commands/chunk-D6D6WQR6.js +0 -125
- package/dist/commands/chunk-D7JRJI44.js +0 -297
- package/dist/commands/chunk-D7OAU32Z.js +0 -119
- package/dist/commands/chunk-DAAX7XDS.js +0 -1208
- package/dist/commands/chunk-DBKTFB5V.js +0 -18
- package/dist/commands/chunk-DEZF7QZZ.js +0 -184
- package/dist/commands/chunk-DMD74E3F.js +0 -39
- package/dist/commands/chunk-DPJVKTO4.js +0 -41
- package/dist/commands/chunk-DXJQHJQ4.js +0 -73
- package/dist/commands/chunk-DYZOOWVW.js +0 -912
- package/dist/commands/chunk-EBI2BAKQ.js +0 -47
- package/dist/commands/chunk-EDKOSZ3K.js +0 -88
- package/dist/commands/chunk-EFDVE5P5.js +0 -121
- package/dist/commands/chunk-EGIHAEMT.js +0 -72
- package/dist/commands/chunk-EKLU6QR7.js +0 -507
- package/dist/commands/chunk-ELY76WAR.js +0 -65
- package/dist/commands/chunk-EM3HAZF6.js +0 -52
- package/dist/commands/chunk-EMTZAGT5.js +0 -51
- package/dist/commands/chunk-ENKFCOVY.js +0 -472
- package/dist/commands/chunk-ERG4QRNG.js +0 -224
- package/dist/commands/chunk-EUGNQCYK.js +0 -139
- package/dist/commands/chunk-EW4NPUMQ.js +0 -363
- package/dist/commands/chunk-EWVR5AEX.js +0 -140
- package/dist/commands/chunk-EXDFKKMH.js +0 -113
- package/dist/commands/chunk-EXWB34R2.js +0 -238
- package/dist/commands/chunk-EYMPBHDN.js +0 -61
- package/dist/commands/chunk-EZ7IPKIH.js +0 -20
- package/dist/commands/chunk-EZSO25UZ.js +0 -80
- package/dist/commands/chunk-F6IQHZYY.js +0 -94
- package/dist/commands/chunk-FDS65XOJ.js +0 -212
- package/dist/commands/chunk-FFHEGWPK.js +0 -91
- package/dist/commands/chunk-FGL6DBZU.js +0 -71
- package/dist/commands/chunk-FHFWNNUC.js +0 -144
- package/dist/commands/chunk-FIUCHMCF.js +0 -32
- package/dist/commands/chunk-FJX7AENO.js +0 -74
- package/dist/commands/chunk-FKZ5E4JD.js +0 -97
- package/dist/commands/chunk-FMZWRDKH.js +0 -302
- package/dist/commands/chunk-FOKCRIAN.js +0 -67
- package/dist/commands/chunk-FQGWO2ZH.js +0 -43
- package/dist/commands/chunk-FROACLVU.js +0 -525
- package/dist/commands/chunk-FURNDIT3.js +0 -34
- package/dist/commands/chunk-FVDQNMP6.js +0 -93
- package/dist/commands/chunk-FVVZIJUC.js +0 -425
- package/dist/commands/chunk-FWU3H4TX.js +0 -17
- package/dist/commands/chunk-G3HBYHFA.js +0 -16
- package/dist/commands/chunk-G4E4M2P4.js +0 -299
- package/dist/commands/chunk-G5KSL2Q2.js +0 -151
- package/dist/commands/chunk-G6XC7V6Y.js +0 -58
- package/dist/commands/chunk-GCPP5XIG.js +0 -90
- package/dist/commands/chunk-GITT5A5A.js +0 -198
- package/dist/commands/chunk-GJYMI2CM.js +0 -48
- package/dist/commands/chunk-GLC47H7I.js +0 -285
- package/dist/commands/chunk-GUR54ELE.js +0 -328
- package/dist/commands/chunk-GW4UWR3O.js +0 -126
- package/dist/commands/chunk-GY4DMCKS.js +0 -306
- package/dist/commands/chunk-H6JQRHDC.js +0 -80
- package/dist/commands/chunk-HATKF6VX.js +0 -173
- package/dist/commands/chunk-HG2NZQD5.js +0 -135
- package/dist/commands/chunk-HH3CVIFU.js +0 -93
- package/dist/commands/chunk-HHMMGDMP.js +0 -469
- package/dist/commands/chunk-HI5WPM6C.js +0 -127
- package/dist/commands/chunk-HQGNXR6I.js +0 -245
- package/dist/commands/chunk-HTIDHEEN.js +0 -108
- package/dist/commands/chunk-HVCQYZVD.js +0 -38
- package/dist/commands/chunk-HWEZRNPL.js +0 -66
- package/dist/commands/chunk-HX3FFIO5.js +0 -74
- package/dist/commands/chunk-HXDTA5VU.js +0 -208
- package/dist/commands/chunk-I2KCGKJI.js +0 -107
- package/dist/commands/chunk-I63RNFFR.js +0 -213
- package/dist/commands/chunk-IAD4WLLI.js +0 -98
- package/dist/commands/chunk-IB5TT73I.js +0 -177
- package/dist/commands/chunk-IBAYXCMU.js +0 -156
- package/dist/commands/chunk-IGDJNXX2.js +0 -49
- package/dist/commands/chunk-ILGPZ47M.js +0 -33
- package/dist/commands/chunk-IYJEBWW5.js +0 -44
- package/dist/commands/chunk-J22PSIXR.js +0 -418
- package/dist/commands/chunk-J66YBAAM.js +0 -161
- package/dist/commands/chunk-J6WKZRV2.js +0 -391
- package/dist/commands/chunk-J7IO3AYH.js +0 -179
- package/dist/commands/chunk-JAKC2BHX.js +0 -88
- package/dist/commands/chunk-JCAQ7B6J.js +0 -124
- package/dist/commands/chunk-JHN6RCE6.js +0 -123
- package/dist/commands/chunk-JIGBNCDR.js +0 -88
- package/dist/commands/chunk-JJHWTFWQ.js +0 -76
- package/dist/commands/chunk-JJRKTWLK.js +0 -64
- package/dist/commands/chunk-JKOGWGQM.js +0 -92
- package/dist/commands/chunk-JM6EVOFN.js +0 -172
- package/dist/commands/chunk-JQXPLMCO.js +0 -81
- package/dist/commands/chunk-JV24VP2O.js +0 -81
- package/dist/commands/chunk-JVKXJ763.js +0 -45
- package/dist/commands/chunk-K275REYP.js +0 -37
- package/dist/commands/chunk-K4G3HOKS.js +0 -105
- package/dist/commands/chunk-K64EIHD2.js +0 -138
- package/dist/commands/chunk-KB3OQWDT.js +0 -71
- package/dist/commands/chunk-KCFOP5RI.js +0 -1310
- package/dist/commands/chunk-KGE4AS2Y.js +0 -134
- package/dist/commands/chunk-KIILCKQR.js +0 -220
- package/dist/commands/chunk-KK2SL42W.js +0 -241
- package/dist/commands/chunk-KKIMVXAP.js +0 -280
- package/dist/commands/chunk-KODXWMBX.js +0 -77
- package/dist/commands/chunk-KPSKWTOS.js +0 -208
- package/dist/commands/chunk-KVHNQHX3.js +0 -100
- package/dist/commands/chunk-KWYQR5MK.js +0 -269
- package/dist/commands/chunk-KXHXMERX.js +0 -214
- package/dist/commands/chunk-KZ5BBBMO.js +0 -271
- package/dist/commands/chunk-KZ7HD37E.js +0 -121
- package/dist/commands/chunk-KZSM5M5P.js +0 -89
- package/dist/commands/chunk-KZZWPUJW.js +0 -25
- package/dist/commands/chunk-L7DAL54N.js +0 -347
- package/dist/commands/chunk-LAR76BFA.js +0 -114
- package/dist/commands/chunk-LB557AHJ.js +0 -192
- package/dist/commands/chunk-LJXKVLYI.js +0 -229
- package/dist/commands/chunk-LOOFYHUM.js +0 -773
- package/dist/commands/chunk-LQXFVZTS.js +0 -13
- package/dist/commands/chunk-LT7QSHR4.js +0 -995
- package/dist/commands/chunk-LUXWDMKI.js +0 -426
- package/dist/commands/chunk-LWAXXZPS.js +0 -118
- package/dist/commands/chunk-LX7TIEMI.js +0 -1612
- package/dist/commands/chunk-LZ5QXE5N.js +0 -244
- package/dist/commands/chunk-LZPPSOTP.js +0 -122
- package/dist/commands/chunk-M4UV3BEV.js +0 -313
- package/dist/commands/chunk-M6JDU5EK.js +0 -133
- package/dist/commands/chunk-MDLOETXL.js +0 -211
- package/dist/commands/chunk-MFBNNTBM.js +0 -44
- package/dist/commands/chunk-MGF64OHV.js +0 -32
- package/dist/commands/chunk-MI2OS6TL.js +0 -132
- package/dist/commands/chunk-MLW4S35K.js +0 -389
- package/dist/commands/chunk-MN425CU6.js +0 -63
- package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
- package/dist/commands/chunk-MRORPFSO.js +0 -402
- package/dist/commands/chunk-MUGTOJUL.js +0 -319
- package/dist/commands/chunk-MVHPRYHE.js +0 -91
- package/dist/commands/chunk-MWO6FOSZ.js +0 -393
- package/dist/commands/chunk-MXC4IBZ7.js +0 -104
- package/dist/commands/chunk-N7QTMTST.js +0 -210
- package/dist/commands/chunk-NDBX7LSS.js +0 -32
- package/dist/commands/chunk-NEGJ77RV.js +0 -173
- package/dist/commands/chunk-NEGRE5VW.js +0 -101
- package/dist/commands/chunk-NFPD2P3V.js +0 -53
- package/dist/commands/chunk-NHIW7JE6.js +0 -335
- package/dist/commands/chunk-NILSN7A4.js +0 -158
- package/dist/commands/chunk-NOLFSPOB.js +0 -74
- package/dist/commands/chunk-NSAVEXVR.js +0 -353
- package/dist/commands/chunk-NT67QTZO.js +0 -65
- package/dist/commands/chunk-NU7W6QGT.js +0 -155
- package/dist/commands/chunk-NYWGJLBU.js +0 -19
- package/dist/commands/chunk-OAAVY2JK.js +0 -49
- package/dist/commands/chunk-OGS2DK7I.js +0 -47
- package/dist/commands/chunk-OHNP3QL2.js +0 -186
- package/dist/commands/chunk-OIPV3PWW.js +0 -870
- package/dist/commands/chunk-OIX2363L.js +0 -16
- package/dist/commands/chunk-OJ65BZBV.js +0 -646
- package/dist/commands/chunk-OKZWEVR4.js +0 -352
- package/dist/commands/chunk-OL6IF4JC.js +0 -20
- package/dist/commands/chunk-OMPRILFH.js +0 -29
- package/dist/commands/chunk-OOWGH2RG.js +0 -85
- package/dist/commands/chunk-OP2RFVLS.js +0 -102
- package/dist/commands/chunk-ORKVN2LO.js +0 -56
- package/dist/commands/chunk-OSBWXZJ4.js +0 -492
- package/dist/commands/chunk-OT3UMEWK.js +0 -47
- package/dist/commands/chunk-OVWPZDWP.js +0 -64
- package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
- package/dist/commands/chunk-OX3VQLV2.js +0 -488
- package/dist/commands/chunk-OZJP77UM.js +0 -103
- package/dist/commands/chunk-OZZWRJQI.js +0 -246
- package/dist/commands/chunk-P3H3DKTE.js +0 -69
- package/dist/commands/chunk-P4D5RESF.js +0 -88
- package/dist/commands/chunk-P4KIQRSL.js +0 -119
- package/dist/commands/chunk-P5SOYWH2.js +0 -37
- package/dist/commands/chunk-P7FPXAHP.js +0 -29
- package/dist/commands/chunk-PE7B7242.js +0 -84
- package/dist/commands/chunk-PFO7EYAP.js +0 -45
- package/dist/commands/chunk-PHLOTUB7.js +0 -366
- package/dist/commands/chunk-PTNQCCIB.js +0 -41
- package/dist/commands/chunk-PTZEFQUX.js +0 -211
- package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
- package/dist/commands/chunk-Q7EEIOAD.js +0 -120
- package/dist/commands/chunk-QABRNGQV.js +0 -88
- package/dist/commands/chunk-QAHFPCFR.js +0 -50
- package/dist/commands/chunk-QDFVVRQP.js +0 -92
- package/dist/commands/chunk-QGAERR7D.js +0 -99
- package/dist/commands/chunk-QHWJJ6X5.js +0 -53
- package/dist/commands/chunk-QJRVDE7T.js +0 -307
- package/dist/commands/chunk-QMDKDQKW.js +0 -114
- package/dist/commands/chunk-QOSC5RKD.js +0 -18
- package/dist/commands/chunk-QQ4CIYMF.js +0 -132
- package/dist/commands/chunk-QV5FKMOU.js +0 -80
- package/dist/commands/chunk-QWWTC3XR.js +0 -109
- package/dist/commands/chunk-QXQ56E56.js +0 -27
- package/dist/commands/chunk-R54Z2Z3X.js +0 -114
- package/dist/commands/chunk-R6QE5VJG.js +0 -46
- package/dist/commands/chunk-RG53UFNW.js +0 -418
- package/dist/commands/chunk-RGGEQM6G.js +0 -140
- package/dist/commands/chunk-RH6ZWJOA.js +0 -77
- package/dist/commands/chunk-RHKCWJQX.js +0 -62
- package/dist/commands/chunk-RKIAX4DZ.js +0 -191
- package/dist/commands/chunk-RLBFEHHC.js +0 -300
- package/dist/commands/chunk-RN2YDNLF.js +0 -229
- package/dist/commands/chunk-RRAIRS2T.js +0 -54
- package/dist/commands/chunk-RS764ZMU.js +0 -46
- package/dist/commands/chunk-RUIBQMOV.js +0 -38
- package/dist/commands/chunk-RUQY5TS3.js +0 -83
- package/dist/commands/chunk-RVUJ6F5L.js +0 -181
- package/dist/commands/chunk-RW64VHEB.js +0 -130
- package/dist/commands/chunk-RXYMJPJB.js +0 -114
- package/dist/commands/chunk-S4M6UWR2.js +0 -103
- package/dist/commands/chunk-SASX3W2M.js +0 -99
- package/dist/commands/chunk-SFNBUB6D.js +0 -110
- package/dist/commands/chunk-SJ2ZN575.js +0 -90
- package/dist/commands/chunk-SP7DKYGU.js +0 -1263
- package/dist/commands/chunk-SSL6A3Y4.js +0 -165
- package/dist/commands/chunk-SVAKCXZ7.js +0 -44
- package/dist/commands/chunk-SYOXIKB7.js +0 -705
- package/dist/commands/chunk-SZG5HDNP.js +0 -321
- package/dist/commands/chunk-T25S4QHL.js +0 -52
- package/dist/commands/chunk-T4F33UKZ.js +0 -114
- package/dist/commands/chunk-T4UYEHWG.js +0 -50
- package/dist/commands/chunk-TAEGXID2.js +0 -58
- package/dist/commands/chunk-TCBUX52E.js +0 -701
- package/dist/commands/chunk-TEPYEUYG.js +0 -585
- package/dist/commands/chunk-TFLHYC2F.js +0 -141
- package/dist/commands/chunk-TJKM56WJ.js +0 -109
- package/dist/commands/chunk-TLAB552K.js +0 -445
- package/dist/commands/chunk-TP6L4W3W.js +0 -82
- package/dist/commands/chunk-TR7WWYD5.js +0 -60
- package/dist/commands/chunk-TVZXG4Y4.js +0 -197
- package/dist/commands/chunk-TYNH2R66.js +0 -1150
- package/dist/commands/chunk-U3IVVR4W.js +0 -33
- package/dist/commands/chunk-U5P6G3UV.js +0 -77
- package/dist/commands/chunk-U7XU5RG3.js +0 -86
- package/dist/commands/chunk-UKBBWMLE.js +0 -1189
- package/dist/commands/chunk-ULVVGGTY.js +0 -64
- package/dist/commands/chunk-UNMSZGSG.js +0 -269
- package/dist/commands/chunk-URDT2O2K.js +0 -36
- package/dist/commands/chunk-UTHUX7VU.js +0 -88
- package/dist/commands/chunk-V4Z7G4UH.js +0 -73
- package/dist/commands/chunk-V5FD7DVV.js +0 -48
- package/dist/commands/chunk-VCPGFBMN.js +0 -655
- package/dist/commands/chunk-VGPIQNDB.js +0 -24
- package/dist/commands/chunk-VJE3RJAX.js +0 -23
- package/dist/commands/chunk-VK6D5CWA.js +0 -161
- package/dist/commands/chunk-VOF3N4WO.js +0 -114
- package/dist/commands/chunk-VQVPAVQ3.js +0 -45
- package/dist/commands/chunk-VV4TQYGD.js +0 -38
- package/dist/commands/chunk-W3FX7FYN.js +0 -84
- package/dist/commands/chunk-W7DRUOF7.js +0 -122
- package/dist/commands/chunk-WAEN2RTT.js +0 -161
- package/dist/commands/chunk-WCEUMOKK.js +0 -84
- package/dist/commands/chunk-WJ4NEDNI.js +0 -288
- package/dist/commands/chunk-WMMGXJXP.js +0 -92
- package/dist/commands/chunk-WOFLW2LX.js +0 -26
- package/dist/commands/chunk-WTH6NTXU.js +0 -128
- package/dist/commands/chunk-WWVYEHQT.js +0 -272
- package/dist/commands/chunk-X3TNPALI.js +0 -213
- package/dist/commands/chunk-XC6GG5JR.js +0 -78
- package/dist/commands/chunk-XDF25GSU.js +0 -536
- package/dist/commands/chunk-XFPEUYDV.js +0 -67
- package/dist/commands/chunk-XFWI6WHH.js +0 -60
- package/dist/commands/chunk-XGMRAKSL.js +0 -85
- package/dist/commands/chunk-XHGWMD3L.js +0 -104
- package/dist/commands/chunk-XKSUBUIH.js +0 -116
- package/dist/commands/chunk-XPBF5DG3.js +0 -419
- package/dist/commands/chunk-XUMYPESL.js +0 -160
- package/dist/commands/chunk-XXC32PVL.js +0 -541
- package/dist/commands/chunk-XXN2EZBY.js +0 -133
- package/dist/commands/chunk-XXNEY4B3.js +0 -110
- package/dist/commands/chunk-Y27PTXXI.js +0 -258
- package/dist/commands/chunk-Y4EBUI6M.js +0 -237
- package/dist/commands/chunk-YAU3LYNF.js +0 -60
- package/dist/commands/chunk-YDURQICF.js +0 -204
- package/dist/commands/chunk-YGFOGA7C.js +0 -1153
- package/dist/commands/chunk-YHJ2AJMA.js +0 -66
- package/dist/commands/chunk-YIA6FC3K.js +0 -78
- package/dist/commands/chunk-YM77CF4D.js +0 -183
- package/dist/commands/chunk-YNPRJCEO.js +0 -81
- package/dist/commands/chunk-YTBQAD5W.js +0 -170
- package/dist/commands/chunk-YVH2OLDS.js +0 -104
- package/dist/commands/chunk-ZAAHZY2A.js +0 -19
- package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
- package/dist/commands/chunk-ZLRUHSOP.js +0 -48
- package/dist/commands/chunk-ZNR75OXP.js +0 -444
- package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
- package/dist/commands/chunk-ZVAIIHBE.js +0 -63
- package/dist/commands/chunk-ZYFHYQA7.js +0 -51
- package/dist/commands/chunk-ZZFFSQF4.js +0 -218
- package/dist/commands/chunk-ZZULXNC2.js +0 -47
- package/dist/commands/chunk-ZZXO6TFH.js +0 -232
- package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
- package/dist/commands/test-related-ZCNC46MS.js +0 -113
- package/dist/commands/unused-members-STULPRBU.js +0 -331
- package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
- package/dist/hooks/chunk-5R5YFQR5.js +0 -931
- package/dist/hooks/chunk-6RLY27FT.js +0 -232
- package/dist/hooks/chunk-6YGMIODI.js +0 -86
- package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
- package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
- package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
- package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
- package/dist/hooks/chunk-IURJANNZ.js +0 -1082
- package/dist/hooks/chunk-OV22V63P.js +0 -10980
- package/dist/hooks/chunk-SXABK6UV.js +0 -321
- package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
|
@@ -0,0 +1,907 @@
|
|
|
1
|
+
import {
|
|
2
|
+
test_pinned,
|
|
3
|
+
test_pinned_ledger,
|
|
4
|
+
test_pinned_record
|
|
5
|
+
} from "./chunk-2Q7MGFYB.js";
|
|
6
|
+
import {
|
|
7
|
+
run_ship_planned
|
|
8
|
+
} from "./chunk-PKXTISWR.js";
|
|
9
|
+
import {
|
|
10
|
+
gate_skip
|
|
11
|
+
} from "./chunk-NOSG3RUP.js";
|
|
12
|
+
import {
|
|
13
|
+
test_pinned_logic
|
|
14
|
+
} from "./chunk-ZJ5S4VFD.js";
|
|
15
|
+
import {
|
|
16
|
+
review_finding_ledger
|
|
17
|
+
} from "./chunk-KVURNO74.js";
|
|
18
|
+
import {
|
|
19
|
+
observation_ledger_home
|
|
20
|
+
} from "./chunk-QXBOECGL.js";
|
|
21
|
+
import {
|
|
22
|
+
review_stamps
|
|
23
|
+
} from "./chunk-XSKJAG72.js";
|
|
24
|
+
import {
|
|
25
|
+
gate_tree,
|
|
26
|
+
review_tree
|
|
27
|
+
} from "./chunk-R36VZIKU.js";
|
|
28
|
+
import {
|
|
29
|
+
file_map_stamp
|
|
30
|
+
} from "./chunk-M32UPB2D.js";
|
|
31
|
+
import {
|
|
32
|
+
run_record_path
|
|
33
|
+
} from "./chunk-WL5JHB3I.js";
|
|
34
|
+
import {
|
|
35
|
+
core_budget,
|
|
36
|
+
core_priority
|
|
37
|
+
} from "./chunk-ZCHZU6NX.js";
|
|
38
|
+
import {
|
|
39
|
+
run_ship_detach
|
|
40
|
+
} from "./chunk-FJM2HWKW.js";
|
|
41
|
+
import {
|
|
42
|
+
detached_launch
|
|
43
|
+
} from "./chunk-HDVSZ6CZ.js";
|
|
44
|
+
import {
|
|
45
|
+
poll
|
|
46
|
+
} from "./chunk-SBGTCT2C.js";
|
|
47
|
+
import {
|
|
48
|
+
GATE_COMMAND
|
|
49
|
+
} from "./chunk-TBIX5FRN.js";
|
|
50
|
+
import {
|
|
51
|
+
error_text
|
|
52
|
+
} from "./chunk-CDY4NFQG.js";
|
|
53
|
+
import {
|
|
54
|
+
lane_ledger_write
|
|
55
|
+
} from "./chunk-KIS7JFNP.js";
|
|
56
|
+
import {
|
|
57
|
+
lane_child_marker
|
|
58
|
+
} from "./chunk-XXPDFJRI.js";
|
|
59
|
+
import {
|
|
60
|
+
process_identity
|
|
61
|
+
} from "./chunk-F2RDEF2J.js";
|
|
62
|
+
import {
|
|
63
|
+
stamp_file
|
|
64
|
+
} from "./chunk-VLN6TSPJ.js";
|
|
65
|
+
import {
|
|
66
|
+
PROJECT_ROOT
|
|
67
|
+
} from "./chunk-3CCGKX7Y.js";
|
|
68
|
+
import {
|
|
69
|
+
git_command
|
|
70
|
+
} from "./chunk-IXZZSST7.js";
|
|
71
|
+
import {
|
|
72
|
+
git_location_environment
|
|
73
|
+
} from "./chunk-B77ZMVHS.js";
|
|
74
|
+
import {
|
|
75
|
+
MS_PER_SECOND
|
|
76
|
+
} from "./chunk-WPAQUMHC.js";
|
|
77
|
+
|
|
78
|
+
// scripts/gate/check-related-unplanned.ts
|
|
79
|
+
async function read_unplanned() {
|
|
80
|
+
try {
|
|
81
|
+
return await run_ship_planned.unplanned();
|
|
82
|
+
} catch (error) {
|
|
83
|
+
error_text.trace_swallowed("check_related_unplanned.notice", error);
|
|
84
|
+
return void 0;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async function notice() {
|
|
88
|
+
const found = await read_unplanned();
|
|
89
|
+
if (found === void 0) return void 0;
|
|
90
|
+
await lane_ledger_write.record_unplanned_notice({ issue: found.issue, files: [...found.files] });
|
|
91
|
+
return found.text;
|
|
92
|
+
}
|
|
93
|
+
async function show() {
|
|
94
|
+
const text = await notice();
|
|
95
|
+
if (text !== void 0) console.info(text);
|
|
96
|
+
}
|
|
97
|
+
var check_related_unplanned = { notice, read_unplanned, show };
|
|
98
|
+
|
|
99
|
+
// scripts/run/review/run-review-pinned.ts
|
|
100
|
+
var UNPINNED_OK_FLAG = "--unpinned-ok";
|
|
101
|
+
var OK_ARGUMENT_COUNT = 2;
|
|
102
|
+
var STOP_NOTE = 'Pin each unpinned place with a test that turns red without it, then re-run `pnpm josh run:review`; for a change no test can pin, leave the tree as it is and pass the reason with `pnpm josh run:review --unpinned-ok "<reason>"` \u2014 on this tree and a green gate it judges this answer (or, cut at its first unpinned place, checks the whole change) and re-runs neither the gate nor the pair (`pnpm josh ship --review` forwards it).';
|
|
103
|
+
function ok_reason_of(argv) {
|
|
104
|
+
const [flag, reason = ""] = argv;
|
|
105
|
+
if (flag !== UNPINNED_OK_FLAG || argv.length !== OK_ARGUMENT_COUNT) return void 0;
|
|
106
|
+
return reason.trim() === "" ? void 0 : reason;
|
|
107
|
+
}
|
|
108
|
+
function verdict_of(summary, reason) {
|
|
109
|
+
const { report_text } = test_pinned_logic;
|
|
110
|
+
if (summary.unpinned.length === 0) {
|
|
111
|
+
return summary.is_unchecked === true ? { kind: "unchecked", text: report_text(summary, test_pinned_record.UNCHECKED_NOTE) } : { kind: "clear", text: report_text(summary) };
|
|
112
|
+
}
|
|
113
|
+
if (reason === void 0) return { kind: "stop", text: report_text(summary, `${STOP_NOTE}
|
|
114
|
+
`) };
|
|
115
|
+
const note = `Unpinned accepted by the implementer: ${reason}
|
|
116
|
+
`;
|
|
117
|
+
return { kind: "accepted", text: report_text(summary, note) };
|
|
118
|
+
}
|
|
119
|
+
var run_review_pinned = { STOP_NOTE, UNPINNED_OK_FLAG, ok_reason_of, verdict_of };
|
|
120
|
+
|
|
121
|
+
// scripts/run/review/run-review-pinned-accepted.ts
|
|
122
|
+
import path from "node:path";
|
|
123
|
+
var RECORD_NAME = "josh-unpinned-ok.json";
|
|
124
|
+
var RECORDED_NOTE = "Unpinned accepted by an earlier run on this branch: ";
|
|
125
|
+
async function record_path() {
|
|
126
|
+
const [git_directory] = await git_command.git_directories();
|
|
127
|
+
return git_directory === void 0 ? void 0 : path.join(git_directory, RECORD_NAME);
|
|
128
|
+
}
|
|
129
|
+
async function write(reason, unpinned) {
|
|
130
|
+
const target = await record_path();
|
|
131
|
+
if (target === void 0) return;
|
|
132
|
+
stamp_file.replace_stamp(target, { branch: await git_command.branch(), reason, unpinned });
|
|
133
|
+
}
|
|
134
|
+
function to_accepted(record) {
|
|
135
|
+
const { branch, reason, unpinned } = record;
|
|
136
|
+
if (typeof branch !== "string" || typeof reason !== "string") return void 0;
|
|
137
|
+
return test_pinned_record.is_text_list(unpinned) ? { branch, reason, unpinned } : void 0;
|
|
138
|
+
}
|
|
139
|
+
function read_record(target) {
|
|
140
|
+
const raw = target === void 0 ? void 0 : stamp_file.read_stamp_text(target);
|
|
141
|
+
const record = raw === void 0 ? void 0 : test_pinned_record.parsed(raw);
|
|
142
|
+
return record === void 0 ? void 0 : to_accepted(record);
|
|
143
|
+
}
|
|
144
|
+
async function recorded() {
|
|
145
|
+
const accepted = read_record(await record_path());
|
|
146
|
+
return accepted?.branch === await git_command.branch() ? accepted : void 0;
|
|
147
|
+
}
|
|
148
|
+
function covering_reason(accepted, unpinned) {
|
|
149
|
+
const known = new Set(accepted?.unpinned);
|
|
150
|
+
return unpinned.every((site) => known.has(site)) ? accepted?.reason : void 0;
|
|
151
|
+
}
|
|
152
|
+
async function remember(reason, unpinned) {
|
|
153
|
+
try {
|
|
154
|
+
await write(reason, unpinned);
|
|
155
|
+
} catch (error) {
|
|
156
|
+
error_text.trace_swallowed("run_review_pinned_accepted.remember", error);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async function keep_reason(reason) {
|
|
160
|
+
try {
|
|
161
|
+
const accepted = await recorded();
|
|
162
|
+
await write(reason, accepted?.unpinned ?? []);
|
|
163
|
+
} catch (error) {
|
|
164
|
+
error_text.trace_swallowed("run_review_pinned_accepted.keep_reason", error);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async function earlier_reason(unpinned) {
|
|
168
|
+
try {
|
|
169
|
+
return covering_reason(await recorded(), unpinned);
|
|
170
|
+
} catch (error) {
|
|
171
|
+
error_text.trace_swallowed("run_review_pinned_accepted.earlier_reason", error);
|
|
172
|
+
return void 0;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async function recorded_reason() {
|
|
176
|
+
try {
|
|
177
|
+
const accepted = await recorded();
|
|
178
|
+
return accepted?.reason;
|
|
179
|
+
} catch (error) {
|
|
180
|
+
error_text.trace_swallowed("run_review_pinned_accepted.recorded_reason", error);
|
|
181
|
+
return void 0;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async function judge(summary, reason) {
|
|
185
|
+
if (summary.unpinned.length === 0) return run_review_pinned.verdict_of(summary, reason);
|
|
186
|
+
if (reason !== void 0) {
|
|
187
|
+
await remember(reason, summary.unpinned);
|
|
188
|
+
return run_review_pinned.verdict_of(summary, reason);
|
|
189
|
+
}
|
|
190
|
+
const earlier = summary.is_cut === true ? void 0 : await earlier_reason(summary.unpinned);
|
|
191
|
+
if (earlier === void 0) return run_review_pinned.verdict_of(summary, void 0);
|
|
192
|
+
const note = `${RECORDED_NOTE}${earlier}
|
|
193
|
+
`;
|
|
194
|
+
return { kind: "accepted", text: test_pinned_logic.report_text(summary, note) };
|
|
195
|
+
}
|
|
196
|
+
var run_review_pinned_accepted = { RECORD_NAME, judge, keep_reason, recorded_reason };
|
|
197
|
+
|
|
198
|
+
// scripts/run/review/run-review.ts
|
|
199
|
+
var ADOPT = "adopt";
|
|
200
|
+
var BLOCKED = "blocked";
|
|
201
|
+
function adopt_verdict(is_gate_green) {
|
|
202
|
+
return is_gate_green ? ADOPT : BLOCKED;
|
|
203
|
+
}
|
|
204
|
+
var GATE_GREEN = "green";
|
|
205
|
+
var GATE_RUNNING = "running";
|
|
206
|
+
var GATE_RED = "red";
|
|
207
|
+
var GATE_MOVED = "moved";
|
|
208
|
+
function gate_state(is_green, is_running, is_moved = false) {
|
|
209
|
+
if (is_green) return GATE_GREEN;
|
|
210
|
+
if (is_running) return GATE_RUNNING;
|
|
211
|
+
if (is_moved) return GATE_MOVED;
|
|
212
|
+
return GATE_RED;
|
|
213
|
+
}
|
|
214
|
+
var MOVED_EXIT_CODE = 2;
|
|
215
|
+
var UNPINNED_EXIT_CODE = 3;
|
|
216
|
+
var CODE_ONLY_FLAG = "--code-only";
|
|
217
|
+
function is_gate_settled(state) {
|
|
218
|
+
return state !== GATE_RUNNING;
|
|
219
|
+
}
|
|
220
|
+
var SECONDS_DECIMALS = 1;
|
|
221
|
+
var NO_OVERLAP = 0;
|
|
222
|
+
function format_seconds(seconds) {
|
|
223
|
+
return `${seconds.toFixed(SECONDS_DECIMALS)}s`;
|
|
224
|
+
}
|
|
225
|
+
function span_seconds(from, to) {
|
|
226
|
+
return Math.max(NO_OVERLAP, (Date.parse(to) - Date.parse(from)) / MS_PER_SECOND);
|
|
227
|
+
}
|
|
228
|
+
function overlap_seconds(timing) {
|
|
229
|
+
const start2 = Math.max(Date.parse(timing.gate_started_at), Date.parse(timing.review_started_at));
|
|
230
|
+
const end = Math.min(Date.parse(timing.gate_ended_at), Date.parse(timing.review_ended_at));
|
|
231
|
+
return Math.max(NO_OVERLAP, (end - start2) / MS_PER_SECOND);
|
|
232
|
+
}
|
|
233
|
+
function format_timing(timing) {
|
|
234
|
+
const gate = span_seconds(timing.gate_started_at, timing.gate_ended_at);
|
|
235
|
+
const review = span_seconds(timing.review_started_at, timing.review_ended_at);
|
|
236
|
+
return [
|
|
237
|
+
`gate: ${timing.gate_started_at} \u2192 ${timing.gate_ended_at} (${format_seconds(gate)})`,
|
|
238
|
+
`review: ${timing.review_started_at} \u2192 ${timing.review_ended_at} (${format_seconds(review)})`,
|
|
239
|
+
`overlap: ${format_seconds(overlap_seconds(timing))}`
|
|
240
|
+
].join("\n");
|
|
241
|
+
}
|
|
242
|
+
var run_review = {
|
|
243
|
+
ADOPT,
|
|
244
|
+
BLOCKED,
|
|
245
|
+
CODE_ONLY_FLAG,
|
|
246
|
+
GATE_GREEN,
|
|
247
|
+
GATE_MOVED,
|
|
248
|
+
GATE_RED,
|
|
249
|
+
GATE_RUNNING,
|
|
250
|
+
MOVED_EXIT_CODE,
|
|
251
|
+
UNPINNED_EXIT_CODE,
|
|
252
|
+
adopt_verdict,
|
|
253
|
+
format_timing,
|
|
254
|
+
gate_state,
|
|
255
|
+
is_gate_settled,
|
|
256
|
+
overlap_seconds
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
// scripts/run/review/run-review-steps.ts
|
|
260
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
261
|
+
var PNPM = "pnpm";
|
|
262
|
+
var DIRECTORY_FLAG = "--dir";
|
|
263
|
+
var JOSH_SCRIPT = "josh";
|
|
264
|
+
var GATE_LOG_PREFIX = "josh-run-review-gate-log-";
|
|
265
|
+
var TIMING_PREFIX = "josh-run-review-timing-";
|
|
266
|
+
var START_TREE_PREFIX = "josh-run-review-start-tree-";
|
|
267
|
+
var start_tree_stamp = file_map_stamp.create(START_TREE_PREFIX, PROJECT_ROOT);
|
|
268
|
+
var POLL_INTERVAL_MS = 1e3;
|
|
269
|
+
var MAX_JOIN_WAIT_MS = 6e5;
|
|
270
|
+
var MAX_OPEN_WAIT_MS = 42e4;
|
|
271
|
+
function gate_log_path(root = PROJECT_ROOT) {
|
|
272
|
+
return stamp_file.stamp_path(GATE_LOG_PREFIX, root);
|
|
273
|
+
}
|
|
274
|
+
function timing_path(target = PROJECT_ROOT) {
|
|
275
|
+
return stamp_file.stamp_path(TIMING_PREFIX, target);
|
|
276
|
+
}
|
|
277
|
+
function josh_argv(root, josh_args) {
|
|
278
|
+
return {
|
|
279
|
+
command: PNPM,
|
|
280
|
+
args: [DIRECTORY_FLAG, root, JOSH_SCRIPT, ...josh_args]
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
function launch_josh(josh_args, log_path2, root = PROJECT_ROOT) {
|
|
284
|
+
return detached_launch.launch(
|
|
285
|
+
{
|
|
286
|
+
argv: josh_argv(root, josh_args),
|
|
287
|
+
cwd: root,
|
|
288
|
+
log_path: log_path2,
|
|
289
|
+
env: {
|
|
290
|
+
...git_location_environment.location_free_environment(),
|
|
291
|
+
...core_priority.UNMARKED_ENVIRONMENT
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
(note) => process.stderr.write(`${note}
|
|
295
|
+
`)
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
function launch_gate(root = PROJECT_ROOT) {
|
|
299
|
+
return launch_josh([GATE_COMMAND], gate_log_path(root), root);
|
|
300
|
+
}
|
|
301
|
+
function to_timing(value) {
|
|
302
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
303
|
+
const { gate_started_at, review_started_at } = value;
|
|
304
|
+
if (typeof gate_started_at !== "string" || typeof review_started_at !== "string") return void 0;
|
|
305
|
+
return { gate_started_at, review_started_at };
|
|
306
|
+
}
|
|
307
|
+
function read_timing_start(target = PROJECT_ROOT) {
|
|
308
|
+
const raw = stamp_file.read_stamp_text(timing_path(target));
|
|
309
|
+
if (raw === void 0) return void 0;
|
|
310
|
+
try {
|
|
311
|
+
return to_timing(JSON.parse(raw));
|
|
312
|
+
} catch {
|
|
313
|
+
return void 0;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
function is_green_on_start_tree(base) {
|
|
317
|
+
const start2 = start_tree_stamp.read();
|
|
318
|
+
if (start2 === void 0) return false;
|
|
319
|
+
return gate_skip.reusable_green_gate(start2.files, base) !== void 0;
|
|
320
|
+
}
|
|
321
|
+
async function read_gate_state() {
|
|
322
|
+
const is_running = file_map_stamp.is_writer_running(review_stamps.in_flight_stamp.read());
|
|
323
|
+
const tree = await gate_tree.read_gate_tree();
|
|
324
|
+
const is_green = gate_skip.reusable_green_gate(tree.files, tree.base) !== void 0;
|
|
325
|
+
return run_review.gate_state(is_green, is_running, is_green_on_start_tree(tree.base));
|
|
326
|
+
}
|
|
327
|
+
async function mark_gate_starting() {
|
|
328
|
+
const tree = await review_tree.read_changed_tree();
|
|
329
|
+
review_stamps.in_flight_stamp.write(tree);
|
|
330
|
+
start_tree_stamp.write(tree);
|
|
331
|
+
}
|
|
332
|
+
async function wait_for_gate_finish(max_wait_ms = MAX_JOIN_WAIT_MS, now = () => Date.now()) {
|
|
333
|
+
const started = now();
|
|
334
|
+
let state = await read_gate_state();
|
|
335
|
+
await poll.poll_until(() => run_review.is_gate_settled(state) || now() - started >= max_wait_ms, {
|
|
336
|
+
attempts: Infinity,
|
|
337
|
+
interval_ms: POLL_INTERVAL_MS,
|
|
338
|
+
sleeper: async (milliseconds) => {
|
|
339
|
+
await sleep(milliseconds);
|
|
340
|
+
state = await read_gate_state();
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
return state;
|
|
344
|
+
}
|
|
345
|
+
function read_gate_log(root = PROJECT_ROOT) {
|
|
346
|
+
return stamp_file.read_stamp_text(gate_log_path(root));
|
|
347
|
+
}
|
|
348
|
+
function write_timing_start(start2, target = PROJECT_ROOT) {
|
|
349
|
+
stamp_file.write_stamp(timing_path(target), start2);
|
|
350
|
+
}
|
|
351
|
+
function complete_timing(ended, target = PROJECT_ROOT) {
|
|
352
|
+
const start2 = read_timing_start(target);
|
|
353
|
+
if (start2 === void 0) return void 0;
|
|
354
|
+
return { ...start2, ...ended };
|
|
355
|
+
}
|
|
356
|
+
var run_review_steps = {
|
|
357
|
+
MAX_JOIN_WAIT_MS,
|
|
358
|
+
MAX_OPEN_WAIT_MS,
|
|
359
|
+
POLL_INTERVAL_MS,
|
|
360
|
+
complete_timing,
|
|
361
|
+
gate_log_path,
|
|
362
|
+
launch_gate,
|
|
363
|
+
launch_josh,
|
|
364
|
+
mark_gate_starting,
|
|
365
|
+
read_gate_log,
|
|
366
|
+
read_gate_state,
|
|
367
|
+
read_timing_start,
|
|
368
|
+
start_tree_stamp,
|
|
369
|
+
timing_path,
|
|
370
|
+
wait_for_gate_finish,
|
|
371
|
+
write_timing_start
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
// scripts/run/review/run-review-pinned-steps.ts
|
|
375
|
+
import { randomUUID } from "node:crypto";
|
|
376
|
+
import { setTimeout as sleep2 } from "node:timers/promises";
|
|
377
|
+
var PINNED_COMMAND = "test:pinned";
|
|
378
|
+
var REMAINING_ORIGIN = "pre-detach";
|
|
379
|
+
var LAUNCH_PREFIX = "josh-run-review-pinned-launch-";
|
|
380
|
+
var LOG_PREFIX = "josh-run-review-pinned-log-";
|
|
381
|
+
var MS_PER_SECOND2 = 1e3;
|
|
382
|
+
var LOST_NOTE = "its process ended without an answer";
|
|
383
|
+
var STOP_SIGNAL = "SIGTERM";
|
|
384
|
+
var GRACE_MS = 12e4;
|
|
385
|
+
var READ_COMMAND = "pnpm josh run:review --pinned";
|
|
386
|
+
var STILL_RUNNING_NOTE = `it is still running on this tree; wait for its answer with \`${READ_COMMAND}\` (a lane child: the ship's pre-detach reads it)`;
|
|
387
|
+
var TIMED_OUT_NOTE = `no answer within ${String(GRACE_MS / MS_PER_SECOND2)}s of the gate and the review`;
|
|
388
|
+
var QUEUED_NOTE = "it was still waiting for cores when the gate and the review ended";
|
|
389
|
+
var FIXING_NOTE = "round 1 has fixes to make \u2014 it is left running, and the round's `josh review:record` starts it again on the fixed tree for the ship's pre-detach to read";
|
|
390
|
+
var ALONE_GRACE_MS = 9e5;
|
|
391
|
+
var ALONE_TIMED_OUT_NOTE = `no answer within ${String(ALONE_GRACE_MS / MS_PER_SECOND2)}s of the read`;
|
|
392
|
+
function launch_path(root = PROJECT_ROOT) {
|
|
393
|
+
return stamp_file.stamp_path(LAUNCH_PREFIX, root);
|
|
394
|
+
}
|
|
395
|
+
function log_path(root = PROJECT_ROOT) {
|
|
396
|
+
return stamp_file.stamp_path(LOG_PREFIX, root, ".log");
|
|
397
|
+
}
|
|
398
|
+
function launch_with({ root, token, argv, origin, reason, tree }) {
|
|
399
|
+
const launched = run_review_steps.launch_josh(argv, log_path(root), root);
|
|
400
|
+
if (launched.kind === "launched") {
|
|
401
|
+
const { pid } = launched;
|
|
402
|
+
stamp_file.write_stamp(launch_path(root), {
|
|
403
|
+
pid,
|
|
404
|
+
token,
|
|
405
|
+
reason,
|
|
406
|
+
start: process_identity.read_start(pid),
|
|
407
|
+
tree,
|
|
408
|
+
launched_at: Date.now(),
|
|
409
|
+
origin
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
return launched;
|
|
413
|
+
}
|
|
414
|
+
function launch(root = PROJECT_ROOT, reason, tree) {
|
|
415
|
+
const token = randomUUID();
|
|
416
|
+
const origin = test_pinned_ledger.BACKGROUND_ORIGIN;
|
|
417
|
+
const argv = test_pinned_record.launch_argv(token, reason, origin);
|
|
418
|
+
return launch_with({ root, token, argv, origin, reason, tree });
|
|
419
|
+
}
|
|
420
|
+
function launch_remaining(root = PROJECT_ROOT, tree) {
|
|
421
|
+
const token = randomUUID();
|
|
422
|
+
const origin = REMAINING_ORIGIN;
|
|
423
|
+
const argv = test_pinned_record.launch_argv(token, void 0, origin, true);
|
|
424
|
+
return launch_with({ root, token, argv, origin, tree });
|
|
425
|
+
}
|
|
426
|
+
function optional_text(value) {
|
|
427
|
+
return typeof value === "string" ? value : void 0;
|
|
428
|
+
}
|
|
429
|
+
function origin_of(value) {
|
|
430
|
+
return typeof value === "string" ? test_pinned_ledger.origin_of(value) : void 0;
|
|
431
|
+
}
|
|
432
|
+
function to_launch(value) {
|
|
433
|
+
const { pid, token, reason, start: start2, tree, launched_at, origin } = value;
|
|
434
|
+
if (typeof pid !== "number" || typeof token !== "string") return void 0;
|
|
435
|
+
return {
|
|
436
|
+
pid,
|
|
437
|
+
token,
|
|
438
|
+
reason: optional_text(reason),
|
|
439
|
+
start: optional_text(start2),
|
|
440
|
+
tree: optional_text(tree),
|
|
441
|
+
launched_at: typeof launched_at === "number" ? launched_at : void 0,
|
|
442
|
+
origin: origin_of(origin)
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
function read_launch(root) {
|
|
446
|
+
const raw = stamp_file.read_stamp_text(launch_path(root));
|
|
447
|
+
if (raw === void 0) return void 0;
|
|
448
|
+
try {
|
|
449
|
+
return to_launch(JSON.parse(raw));
|
|
450
|
+
} catch {
|
|
451
|
+
return void 0;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
function read_answer(root, { pid, token, start: start2 }) {
|
|
455
|
+
const summary = test_pinned_record.read(token, root);
|
|
456
|
+
if (summary !== void 0) return summary;
|
|
457
|
+
if (process_identity.is_same_process(pid, start2) !== false) return void 0;
|
|
458
|
+
return test_pinned_record.read(token, root) ?? test_pinned_record.not_run_summary(new Error(LOST_NOTE));
|
|
459
|
+
}
|
|
460
|
+
function signal_group(pid) {
|
|
461
|
+
try {
|
|
462
|
+
process.kill(-pid, STOP_SIGNAL);
|
|
463
|
+
} catch {
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
function discard(launched) {
|
|
467
|
+
signal_group(launched.pid);
|
|
468
|
+
if (launched.launched_at === void 0) return;
|
|
469
|
+
void test_pinned_ledger.record_discarded(Date.now() - launched.launched_at, launched.origin);
|
|
470
|
+
}
|
|
471
|
+
function stop_last(launched) {
|
|
472
|
+
if (process_identity.is_same_process(launched.pid, launched.start) === true) discard(launched);
|
|
473
|
+
}
|
|
474
|
+
function stop_current(launched) {
|
|
475
|
+
if (process_identity.is_same_process(launched.pid, launched.start) !== false) discard(launched);
|
|
476
|
+
}
|
|
477
|
+
function clear(root = PROJECT_ROOT) {
|
|
478
|
+
const last = read_launch(root);
|
|
479
|
+
if (last !== void 0) {
|
|
480
|
+
stop_last(last);
|
|
481
|
+
test_pinned_record.clear(last.token, root);
|
|
482
|
+
}
|
|
483
|
+
stamp_file.remove_stamp(launch_path(root));
|
|
484
|
+
}
|
|
485
|
+
function is_queued(root) {
|
|
486
|
+
return core_budget.live_reservations().some(
|
|
487
|
+
({ reservation }) => reservation.command === PINNED_COMMAND && reservation.checkout === root && reservation.admitted_at === void 0
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
function stopped(launched, note) {
|
|
491
|
+
stop_current(launched);
|
|
492
|
+
return test_pinned_record.not_run_summary(new Error(note));
|
|
493
|
+
}
|
|
494
|
+
async function poll_within_grace(root, launched, now, grace_ms = GRACE_MS) {
|
|
495
|
+
const started = now();
|
|
496
|
+
let summary = read_answer(root, launched);
|
|
497
|
+
await poll.poll_until(() => summary !== void 0 || now() - started >= grace_ms, {
|
|
498
|
+
attempts: Infinity,
|
|
499
|
+
interval_ms: run_review_steps.POLL_INTERVAL_MS,
|
|
500
|
+
sleeper: async (milliseconds) => {
|
|
501
|
+
await sleep2(milliseconds);
|
|
502
|
+
summary = read_answer(root, launched);
|
|
503
|
+
}
|
|
504
|
+
});
|
|
505
|
+
return summary;
|
|
506
|
+
}
|
|
507
|
+
function given_up(launched, note, is_left_running) {
|
|
508
|
+
if (!is_left_running) return stopped(launched, note);
|
|
509
|
+
return test_pinned_record.not_run_summary(new Error(`${note} \u2014 ${STILL_RUNNING_NOTE}`));
|
|
510
|
+
}
|
|
511
|
+
async function poll_answer(root, launched, now, is_left_running) {
|
|
512
|
+
const summary = read_answer(root, launched);
|
|
513
|
+
if (summary !== void 0) return summary;
|
|
514
|
+
if (is_queued(root)) return given_up(launched, QUEUED_NOTE, is_left_running);
|
|
515
|
+
const late = await poll_within_grace(root, launched, now);
|
|
516
|
+
return late ?? given_up(launched, TIMED_OUT_NOTE, is_left_running);
|
|
517
|
+
}
|
|
518
|
+
function launched_reason(root = PROJECT_ROOT) {
|
|
519
|
+
return read_launch(root)?.reason;
|
|
520
|
+
}
|
|
521
|
+
function carry_reason(reason, root = PROJECT_ROOT) {
|
|
522
|
+
const launched = read_launch(root);
|
|
523
|
+
if (launched !== void 0) stamp_file.write_stamp(launch_path(root), { ...launched, reason });
|
|
524
|
+
}
|
|
525
|
+
function launched_tree(root = PROJECT_ROOT) {
|
|
526
|
+
return read_launch(root)?.tree;
|
|
527
|
+
}
|
|
528
|
+
function is_remaining(root = PROJECT_ROOT) {
|
|
529
|
+
return read_launch(root)?.origin === REMAINING_ORIGIN;
|
|
530
|
+
}
|
|
531
|
+
async function wait_for_answer(root = PROJECT_ROOT, now = () => Date.now(), is_left_running = true) {
|
|
532
|
+
const launched = read_launch(root);
|
|
533
|
+
if (launched === void 0) return void 0;
|
|
534
|
+
return await poll_answer(root, launched, now, is_left_running);
|
|
535
|
+
}
|
|
536
|
+
function answer_now(root = PROJECT_ROOT, pending_note = FIXING_NOTE) {
|
|
537
|
+
const launched = read_launch(root);
|
|
538
|
+
if (launched === void 0) return void 0;
|
|
539
|
+
return read_answer(root, launched) ?? test_pinned_record.not_run_summary(new Error(pending_note));
|
|
540
|
+
}
|
|
541
|
+
function is_answered(root = PROJECT_ROOT) {
|
|
542
|
+
const launched = read_launch(root);
|
|
543
|
+
return launched !== void 0 && test_pinned_record.read(launched.token, root) !== void 0;
|
|
544
|
+
}
|
|
545
|
+
function is_pending(root = PROJECT_ROOT) {
|
|
546
|
+
const launched = read_launch(root);
|
|
547
|
+
return launched !== void 0 && read_answer(root, launched) === void 0;
|
|
548
|
+
}
|
|
549
|
+
function is_live(root = PROJECT_ROOT) {
|
|
550
|
+
const launched = read_launch(root);
|
|
551
|
+
return launched !== void 0 && process_identity.is_same_process(launched.pid, launched.start) === true;
|
|
552
|
+
}
|
|
553
|
+
async function wait_alone(root = PROJECT_ROOT, now = () => Date.now()) {
|
|
554
|
+
const launched = read_launch(root);
|
|
555
|
+
if (launched === void 0) return void 0;
|
|
556
|
+
const summary = await poll_within_grace(root, launched, now, ALONE_GRACE_MS);
|
|
557
|
+
return summary ?? stopped(launched, ALONE_TIMED_OUT_NOTE);
|
|
558
|
+
}
|
|
559
|
+
var run_review_pinned_steps = {
|
|
560
|
+
FIXING_NOTE,
|
|
561
|
+
answer_now,
|
|
562
|
+
carry_reason,
|
|
563
|
+
clear,
|
|
564
|
+
is_answered,
|
|
565
|
+
is_live,
|
|
566
|
+
is_pending,
|
|
567
|
+
is_remaining,
|
|
568
|
+
launch,
|
|
569
|
+
launch_remaining,
|
|
570
|
+
launched_reason,
|
|
571
|
+
launched_tree,
|
|
572
|
+
log_path,
|
|
573
|
+
wait_alone,
|
|
574
|
+
wait_for_answer
|
|
575
|
+
};
|
|
576
|
+
|
|
577
|
+
// scripts/run/review/run-review-pinned-tree.ts
|
|
578
|
+
import { createHash } from "node:crypto";
|
|
579
|
+
function digest_of({ files, base }) {
|
|
580
|
+
const entries = Object.entries(files);
|
|
581
|
+
if (base === void 0 || entries.length === 0) return void 0;
|
|
582
|
+
const code = entries.filter(([file]) => !run_record_path.is_run_record(file)).toSorted(([left], [right]) => left.localeCompare(right));
|
|
583
|
+
return createHash("sha256").update(JSON.stringify([base, code])).digest("hex");
|
|
584
|
+
}
|
|
585
|
+
async function key() {
|
|
586
|
+
return digest_of(await gate_tree.read_gate_tree());
|
|
587
|
+
}
|
|
588
|
+
var run_review_pinned_tree = { digest_of, key };
|
|
589
|
+
|
|
590
|
+
// scripts/run/review/run-review-pinned-join.ts
|
|
591
|
+
import { setTimeout as sleep3 } from "node:timers/promises";
|
|
592
|
+
var PENDING_NOTE = "`josh test:pinned` is still running; the hunks below are unpinned by the verdicts it already reached; the round is not stopped on them:";
|
|
593
|
+
var RESTARTED_NOTE = "started again on the moved tree \u2014 it is left running for the ship's pre-detach to read";
|
|
594
|
+
async function moved_tree(root) {
|
|
595
|
+
const launched = run_review_pinned_steps.launched_tree(root);
|
|
596
|
+
if (launched === void 0) return void 0;
|
|
597
|
+
const current = await run_review_pinned_tree.key();
|
|
598
|
+
return current === launched ? void 0 : current;
|
|
599
|
+
}
|
|
600
|
+
function restart(root, tree) {
|
|
601
|
+
const reason = run_review_pinned_steps.launched_reason(root);
|
|
602
|
+
run_review_pinned_steps.clear(root);
|
|
603
|
+
return run_review_pinned_steps.launch(root, reason, tree).kind === "launched";
|
|
604
|
+
}
|
|
605
|
+
async function restart_if_moved(root = PROJECT_ROOT) {
|
|
606
|
+
const tree = await moved_tree(root);
|
|
607
|
+
return tree !== void 0 && restart(root, tree);
|
|
608
|
+
}
|
|
609
|
+
async function is_restarted(root) {
|
|
610
|
+
try {
|
|
611
|
+
return await restart_if_moved(root);
|
|
612
|
+
} catch (error) {
|
|
613
|
+
error_text.trace_swallowed("run_review_pinned_join.is_restarted", error);
|
|
614
|
+
return false;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
async function cached_summary() {
|
|
618
|
+
try {
|
|
619
|
+
const report = await test_pinned.cached(test_pinned_logic.DEFAULT_MAX_HUNKS);
|
|
620
|
+
return report.unpinned.length === 0 && !test_pinned_logic.has_unchecked(report) ? void 0 : test_pinned_record.partial_summary(report, PENDING_NOTE);
|
|
621
|
+
} catch (error) {
|
|
622
|
+
error_text.trace_swallowed("run_review_pinned_join.cached_summary", error);
|
|
623
|
+
return void 0;
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
async function fixing_answer(root, note) {
|
|
627
|
+
const cached = run_review_pinned_steps.is_pending(root) ? await cached_summary() : void 0;
|
|
628
|
+
return cached ?? run_review_pinned_steps.answer_now(root, note);
|
|
629
|
+
}
|
|
630
|
+
async function graceless_note(root, is_fixing) {
|
|
631
|
+
const is_fresh = await is_restarted(root);
|
|
632
|
+
if (is_fixing) return run_review_pinned_steps.FIXING_NOTE;
|
|
633
|
+
return is_fresh ? RESTARTED_NOTE : void 0;
|
|
634
|
+
}
|
|
635
|
+
async function wait_for_join(root = PROJECT_ROOT, now, is_fixing = false) {
|
|
636
|
+
if (run_ship_detach.is_supervised()) {
|
|
637
|
+
return await run_review_pinned_steps.wait_for_answer(root, now, false);
|
|
638
|
+
}
|
|
639
|
+
const note = await graceless_note(root, is_fixing);
|
|
640
|
+
return note === void 0 ? await run_review_pinned_steps.wait_for_answer(root, now) : await fixing_answer(root, note);
|
|
641
|
+
}
|
|
642
|
+
async function is_launched_on_current_tree(root) {
|
|
643
|
+
const launched = run_review_pinned_steps.launched_tree(root);
|
|
644
|
+
if (launched === void 0) return false;
|
|
645
|
+
try {
|
|
646
|
+
return launched === await run_review_pinned_tree.key();
|
|
647
|
+
} catch (error) {
|
|
648
|
+
error_text.trace_swallowed("run_review_pinned_join.is_launched_on_current_tree", error);
|
|
649
|
+
return false;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
async function waited_answer(root) {
|
|
653
|
+
const summary = await run_review_pinned_steps.wait_alone(root);
|
|
654
|
+
return run_review_pinned_steps.is_answered(root) ? summary : void 0;
|
|
655
|
+
}
|
|
656
|
+
async function settle_elsewhere(root) {
|
|
657
|
+
if (run_review_pinned_steps.is_live(root)) await run_review_pinned_steps.wait_alone(root);
|
|
658
|
+
run_review_pinned_steps.clear(root);
|
|
659
|
+
}
|
|
660
|
+
async function answer_on_tree(root = PROJECT_ROOT) {
|
|
661
|
+
if (await is_launched_on_current_tree(root)) return await waited_answer(root);
|
|
662
|
+
await settle_elsewhere(root);
|
|
663
|
+
return void 0;
|
|
664
|
+
}
|
|
665
|
+
async function finished_on_tree(root = PROJECT_ROOT) {
|
|
666
|
+
if (!run_review_pinned_steps.is_answered(root)) return void 0;
|
|
667
|
+
return await is_launched_on_current_tree(root) ? run_review_pinned_steps.answer_now(root) : void 0;
|
|
668
|
+
}
|
|
669
|
+
async function poll_pause() {
|
|
670
|
+
await sleep3(run_review_steps.POLL_INTERVAL_MS);
|
|
671
|
+
}
|
|
672
|
+
function is_ended(root) {
|
|
673
|
+
return run_review_pinned_steps.is_answered(root) || !run_review_pinned_steps.is_live(root);
|
|
674
|
+
}
|
|
675
|
+
async function is_coming_on_tree(root) {
|
|
676
|
+
return !is_ended(root) && await is_launched_on_current_tree(root);
|
|
677
|
+
}
|
|
678
|
+
async function wait_on_tree(root, is_within, pause) {
|
|
679
|
+
await poll.poll_until(async () => !is_within() || !await is_coming_on_tree(root), {
|
|
680
|
+
attempts: Infinity,
|
|
681
|
+
interval_ms: run_review_steps.POLL_INTERVAL_MS,
|
|
682
|
+
sleeper: pause
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
async function settled_on_tree(root, grace_ms, now = () => Date.now(), pause = poll_pause) {
|
|
686
|
+
const started = now();
|
|
687
|
+
await wait_on_tree(root, () => now() - started < grace_ms, pause);
|
|
688
|
+
return await finished_on_tree(root);
|
|
689
|
+
}
|
|
690
|
+
var run_review_pinned_join = {
|
|
691
|
+
answer_on_tree,
|
|
692
|
+
finished_on_tree,
|
|
693
|
+
restart_if_moved,
|
|
694
|
+
settled_on_tree,
|
|
695
|
+
wait_for_join
|
|
696
|
+
};
|
|
697
|
+
|
|
698
|
+
// scripts/run/review/run-review-pinned-remaining.ts
|
|
699
|
+
var MOVED_NOTE = "the tree moved while collecting remaining verdicts";
|
|
700
|
+
async function is_current(tree) {
|
|
701
|
+
return tree !== void 0 && tree === await run_review_pinned_tree.key();
|
|
702
|
+
}
|
|
703
|
+
async function start(root = PROJECT_ROOT) {
|
|
704
|
+
try {
|
|
705
|
+
const tree = await run_review_pinned_tree.key();
|
|
706
|
+
if (tree === void 0) return { kind: "failed", note: "could not read the current tree" };
|
|
707
|
+
run_review_pinned_steps.clear(root);
|
|
708
|
+
return run_review_pinned_steps.launch_remaining(root, tree);
|
|
709
|
+
} catch (error) {
|
|
710
|
+
error_text.trace_swallowed("run_review_pinned_remaining.start", error);
|
|
711
|
+
return { kind: "failed", note: String(error) };
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
function is_failed(summary) {
|
|
715
|
+
return summary?.counts === void 0 && summary?.is_unchecked === true;
|
|
716
|
+
}
|
|
717
|
+
async function recover_failed(summary, root) {
|
|
718
|
+
try {
|
|
719
|
+
const report = await test_pinned.cached(test_pinned_logic.DEFAULT_MAX_HUNKS);
|
|
720
|
+
if (report.is_stale === true || report.unpinned.length === 0) return summary;
|
|
721
|
+
const known = test_pinned_record.summary_of(report, root);
|
|
722
|
+
return { ...known, is_cut: true, is_unchecked: true, text: `${known.text}${summary.text}` };
|
|
723
|
+
} catch (error) {
|
|
724
|
+
error_text.trace_swallowed("run_review_pinned_remaining.recover_failed", error);
|
|
725
|
+
return summary;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
async function current_answer(root) {
|
|
729
|
+
const summary = await run_review_pinned_steps.wait_alone(root);
|
|
730
|
+
const tree = await run_review_pinned_tree.key();
|
|
731
|
+
if (tree === void 0 || run_review_pinned_steps.launched_tree(root) !== tree) {
|
|
732
|
+
return test_pinned_record.not_run_summary(MOVED_NOTE);
|
|
733
|
+
}
|
|
734
|
+
const answer = is_failed(summary) ? await recover_failed(summary, root) : summary;
|
|
735
|
+
return await is_current(tree) ? answer : test_pinned_record.not_run_summary(MOVED_NOTE);
|
|
736
|
+
}
|
|
737
|
+
async function relaunched_answer(root) {
|
|
738
|
+
const launched = await start(root);
|
|
739
|
+
return launched.kind === "launched" ? await current_answer(root) : test_pinned_record.not_run_summary(launched.note);
|
|
740
|
+
}
|
|
741
|
+
async function read(root = PROJECT_ROOT) {
|
|
742
|
+
if (!run_review_pinned_steps.is_remaining(root)) return void 0;
|
|
743
|
+
if (run_review_pinned_steps.launched_tree(root) === await run_review_pinned_tree.key()) {
|
|
744
|
+
return await current_answer(root);
|
|
745
|
+
}
|
|
746
|
+
return await run_review_pinned_join.answer_on_tree(root) ?? await relaunched_answer(root);
|
|
747
|
+
}
|
|
748
|
+
function incomplete(summary) {
|
|
749
|
+
return {
|
|
750
|
+
...summary,
|
|
751
|
+
text: `${summary.text}Remaining probe incomplete: no current-tree answer
|
|
752
|
+
`
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
function collected(summary, answer) {
|
|
756
|
+
if (answer === void 0) return incomplete(summary);
|
|
757
|
+
return answer.counts === void 0 && answer.is_unchecked === true ? { ...summary, text: `${summary.text}${answer.text}` } : answer;
|
|
758
|
+
}
|
|
759
|
+
function is_collectable(summary, root) {
|
|
760
|
+
return summary.is_cut === true && run_review_pinned_steps.launched_reason(root) === void 0;
|
|
761
|
+
}
|
|
762
|
+
async function collect_current(summary, root) {
|
|
763
|
+
const tree = await run_review_pinned_tree.key();
|
|
764
|
+
const answer = await read(root) ?? await relaunched_answer(root);
|
|
765
|
+
return await is_current(tree) ? collected(summary, answer) : test_pinned_record.not_run_summary(MOVED_NOTE);
|
|
766
|
+
}
|
|
767
|
+
async function collect(summary, root = PROJECT_ROOT) {
|
|
768
|
+
return summary !== void 0 && is_collectable(summary, root) ? await collect_current(summary, root) : summary;
|
|
769
|
+
}
|
|
770
|
+
var run_review_pinned_remaining = { collect, read, start };
|
|
771
|
+
|
|
772
|
+
// scripts/run/review/run-review-join-read.ts
|
|
773
|
+
var DUE_PREFIX = "josh-run-review-join-due-";
|
|
774
|
+
function due_path(root) {
|
|
775
|
+
return stamp_file.stamp_path(DUE_PREFIX, root);
|
|
776
|
+
}
|
|
777
|
+
function mark_due(root = PROJECT_ROOT) {
|
|
778
|
+
try {
|
|
779
|
+
stamp_file.replace_stamp(due_path(root), { due: true });
|
|
780
|
+
} catch (error) {
|
|
781
|
+
error_text.trace_swallowed("run_review_join_read.mark_due", error);
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
function is_due(root = PROJECT_ROOT) {
|
|
785
|
+
return stamp_file.read_stamp_text(due_path(root)) !== void 0;
|
|
786
|
+
}
|
|
787
|
+
async function verdict(wait) {
|
|
788
|
+
const summary = await wait();
|
|
789
|
+
if (summary === void 0) return void 0;
|
|
790
|
+
if (summary.is_partial === true) {
|
|
791
|
+
return { summary, is_stop: false, text: test_pinned_logic.report_text(summary) };
|
|
792
|
+
}
|
|
793
|
+
const judged = await run_review_pinned_accepted.judge(
|
|
794
|
+
summary,
|
|
795
|
+
run_review_pinned_steps.launched_reason()
|
|
796
|
+
);
|
|
797
|
+
return { summary, is_stop: judged.kind === "stop", text: judged.text };
|
|
798
|
+
}
|
|
799
|
+
async function read_with(wait, root = PROJECT_ROOT) {
|
|
800
|
+
stamp_file.remove_stamp(due_path(root));
|
|
801
|
+
return await verdict(wait);
|
|
802
|
+
}
|
|
803
|
+
async function read2(root = PROJECT_ROOT, is_fixing = false) {
|
|
804
|
+
return await read_with(
|
|
805
|
+
async () => await run_review_pinned_remaining.collect(
|
|
806
|
+
await run_review_pinned_join.wait_for_join(root, void 0, is_fixing),
|
|
807
|
+
root
|
|
808
|
+
),
|
|
809
|
+
root
|
|
810
|
+
);
|
|
811
|
+
}
|
|
812
|
+
async function read_finished(root = PROJECT_ROOT) {
|
|
813
|
+
return await read_with(
|
|
814
|
+
async () => await run_review_pinned_remaining.read(root) ?? await run_review_pinned_remaining.collect(
|
|
815
|
+
await run_review_pinned_join.finished_on_tree(root),
|
|
816
|
+
root
|
|
817
|
+
),
|
|
818
|
+
root
|
|
819
|
+
);
|
|
820
|
+
}
|
|
821
|
+
async function read_remaining() {
|
|
822
|
+
return await read_with(
|
|
823
|
+
async () => await run_review_pinned_remaining.read() ?? await run_review_pinned_remaining.collect(await run_review_pinned_steps.wait_alone())
|
|
824
|
+
);
|
|
825
|
+
}
|
|
826
|
+
var run_review_join_read = {
|
|
827
|
+
is_due,
|
|
828
|
+
mark_due,
|
|
829
|
+
read: read2,
|
|
830
|
+
read_finished,
|
|
831
|
+
read_remaining,
|
|
832
|
+
read_with,
|
|
833
|
+
verdict
|
|
834
|
+
};
|
|
835
|
+
|
|
836
|
+
// scripts/review/review-record-pinned.ts
|
|
837
|
+
function started_line() {
|
|
838
|
+
return `test:pinned restarted in the background on the tree this round's fixes moved. Where it names unpinned places, the ship's pre-detach stops on them: pin each with a test that turns red without it, or ship with \`--unpinned-ok "<reason>"\`.`;
|
|
839
|
+
}
|
|
840
|
+
async function restart_if_moved2(root = PROJECT_ROOT) {
|
|
841
|
+
try {
|
|
842
|
+
const is_started = await run_review_pinned_join.restart_if_moved(root);
|
|
843
|
+
if (is_started) console.info(started_line());
|
|
844
|
+
return is_started;
|
|
845
|
+
} catch (error) {
|
|
846
|
+
error_text.trace_swallowed("review_record_pinned.restart_if_moved", error);
|
|
847
|
+
return false;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
var CHOICE_LINE = 'Unpinned before the ship: pin each place above with a test that turns red without it, or ship with `--unpinned-ok "<reason>"`.\n';
|
|
851
|
+
function show_stop(joined) {
|
|
852
|
+
if (joined === void 0) return;
|
|
853
|
+
const text = joined.is_stop ? test_pinned_logic.report_text(joined.summary, CHOICE_LINE) : joined.text;
|
|
854
|
+
if (joined.is_stop || [joined.summary.is_unchecked, joined.summary.is_partial].includes(true)) {
|
|
855
|
+
console.info(text.trimEnd());
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
async function read_skipped_join(root = PROJECT_ROOT) {
|
|
859
|
+
try {
|
|
860
|
+
if (run_review_join_read.is_due(root) || run_review_pinned_steps.is_remaining(root)) {
|
|
861
|
+
show_stop(await run_review_join_read.read_finished(root));
|
|
862
|
+
}
|
|
863
|
+
} catch (error) {
|
|
864
|
+
error_text.trace_swallowed("review_record_pinned.read_skipped_join", error);
|
|
865
|
+
}
|
|
866
|
+
await check_related_unplanned.show();
|
|
867
|
+
}
|
|
868
|
+
async function is_round_recorded(root) {
|
|
869
|
+
const issue = lane_child_marker.marked_issue();
|
|
870
|
+
if (issue === void 0) return false;
|
|
871
|
+
const content = await observation_ledger_home.read(root);
|
|
872
|
+
return content !== void 0 && review_finding_ledger.has_issue_record(content, Number(issue));
|
|
873
|
+
}
|
|
874
|
+
async function is_restartable_before_record(root) {
|
|
875
|
+
if (!lane_child_marker.is_child_of(root) || run_ship_detach.is_supervised()) return false;
|
|
876
|
+
return !await is_round_recorded(root);
|
|
877
|
+
}
|
|
878
|
+
async function restart_in_lane(root = PROJECT_ROOT) {
|
|
879
|
+
try {
|
|
880
|
+
return await is_restartable_before_record(root) && await restart_if_moved2(root);
|
|
881
|
+
} catch (error) {
|
|
882
|
+
error_text.trace_swallowed("review_record_pinned.restart_in_lane", error);
|
|
883
|
+
return false;
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
var review_record_pinned = {
|
|
887
|
+
CHOICE_LINE,
|
|
888
|
+
read_skipped_join,
|
|
889
|
+
restart_if_moved: restart_if_moved2,
|
|
890
|
+
restart_in_lane,
|
|
891
|
+
started_line
|
|
892
|
+
};
|
|
893
|
+
|
|
894
|
+
export {
|
|
895
|
+
check_related_unplanned,
|
|
896
|
+
run_review_pinned,
|
|
897
|
+
run_review_pinned_accepted,
|
|
898
|
+
GATE_GREEN,
|
|
899
|
+
run_review,
|
|
900
|
+
run_review_steps,
|
|
901
|
+
run_review_pinned_steps,
|
|
902
|
+
run_review_pinned_tree,
|
|
903
|
+
run_review_pinned_join,
|
|
904
|
+
run_review_pinned_remaining,
|
|
905
|
+
run_review_join_read,
|
|
906
|
+
review_record_pinned
|
|
907
|
+
};
|