@joshuafolkken/kit 1.3044.0 → 1.3099.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +274 -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-2CNVIA35.js +335 -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-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-33TAOZUE.js +29 -0
- package/dist/commands/chunk-36XHHYNU.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-3LUPGBW4.js +137 -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-3VLDFM5I.js +426 -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-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-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-6AHAY5VZ.js +69 -0
- package/dist/commands/chunk-6FN37DER.js +330 -0
- package/dist/commands/chunk-6JD4VNO4.js +124 -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-7EAYFMDN.js +235 -0
- package/dist/commands/chunk-7HP3FQGQ.js +51 -0
- package/dist/commands/chunk-7HYYHCTN.js +402 -0
- package/dist/commands/chunk-7JOOMFDI.js +155 -0
- package/dist/commands/chunk-7K5ITPHR.js +338 -0
- package/dist/commands/chunk-7OEBSPPU.js +321 -0
- package/dist/commands/chunk-7ULYLGUK.js +492 -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-ABM2MZBF.js +161 -0
- package/dist/commands/chunk-AN7BFVHU.js +244 -0
- package/dist/commands/chunk-AQCVEQSM.js +99 -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-B73IIRMS.js +207 -0
- package/dist/commands/chunk-BBLEC4YQ.js +109 -0
- package/dist/commands/chunk-BDSG6JKH.js +977 -0
- package/dist/commands/chunk-BFKTUD3V.js +33 -0
- package/dist/commands/chunk-BLRXHK2V.js +17 -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-C7FGDZWP.js +224 -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-EHPTXSAT.js +315 -0
- package/dist/commands/chunk-EHVEWJQ4.js +33 -0
- package/dist/commands/chunk-EMFSPPMH.js +98 -0
- package/dist/commands/chunk-EPICTV2P.js +46 -0
- package/dist/commands/chunk-ES42XPAD.js +123 -0
- package/dist/commands/chunk-ESUY7KTZ.js +137 -0
- package/dist/commands/chunk-EVVQJJFV.js +507 -0
- package/dist/commands/chunk-EWXXEGXL.js +149 -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-F57LACNC.js +84 -0
- package/dist/commands/chunk-F5N2QIFD.js +213 -0
- package/dist/commands/chunk-F7B4ESZE.js +80 -0
- package/dist/commands/chunk-FA7CN75F.js +160 -0
- package/dist/commands/chunk-FDASVHZD.js +241 -0
- package/dist/commands/chunk-FEYZ575X.js +278 -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-FTAWHAI7.js +170 -0
- package/dist/commands/chunk-G2DNS74C.js +53 -0
- package/dist/commands/chunk-G3BBCAAH.js +90 -0
- package/dist/commands/chunk-G75GWNNY.js +101 -0
- package/dist/commands/chunk-GA2YSPFH.js +32 -0
- package/dist/commands/chunk-GABDPTDK.js +907 -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-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-HHS3LYLV.js +30 -0
- package/dist/commands/chunk-HQZ65PJE.js +167 -0
- package/dist/commands/chunk-HRN73FQJ.js +77 -0
- package/dist/commands/chunk-HSZECERZ.js +271 -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-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-IY3DSDRW.js +173 -0
- package/dist/commands/chunk-J2RUI4KN.js +47 -0
- package/dist/commands/chunk-J3PCRUVY.js +1223 -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-JU2MAYQ3.js +997 -0
- package/dist/commands/chunk-JUCJ4Y42.js +77 -0
- package/dist/commands/chunk-K3OZBV3L.js +49 -0
- package/dist/commands/chunk-K6P5PISC.js +114 -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-KIS7JFNP.js +217 -0
- package/dist/commands/chunk-KJPZPTS4.js +245 -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-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-MDGPJOLK.js +351 -0
- package/dist/commands/chunk-MDKRTUE4.js +288 -0
- package/dist/commands/chunk-MFZVRWRS.js +34 -0
- package/dist/commands/chunk-MHF6BDQI.js +128 -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-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-OHN3QARP.js +769 -0
- package/dist/commands/chunk-OKBZGLD5.js +393 -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-OZN4HOZT.js +74 -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-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-RAQ3E6OT.js +258 -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-S5GX3H4P.js +91 -0
- package/dist/commands/chunk-SC57VV6A.js +60 -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-SOETJZWH.js +7672 -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-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-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-UUA63LCI.js +77 -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-UY62WJV6.js +120 -0
- package/dist/commands/chunk-UZDKCGDC.js +198 -0
- package/dist/commands/chunk-VAHQ4AFM.js +585 -0
- package/dist/commands/chunk-VCWNMRH7.js +71 -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-VPRQFM2T.js +37 -0
- package/dist/commands/chunk-VTLWODJ2.js +133 -0
- package/dist/commands/chunk-VUCDGQ6Y.js +260 -0
- package/dist/commands/chunk-VY7ZJMDT.js +469 -0
- package/dist/commands/chunk-W4BR6QNU.js +1241 -0
- package/dist/commands/chunk-W7X7MZZN.js +449 -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-WORHUJ6T.js +73 -0
- package/dist/commands/chunk-WR5PKCQW.js +61 -0
- package/dist/commands/chunk-WR73HTRG.js +121 -0
- package/dist/commands/chunk-WRHMYSW7.js +36 -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-XDR2BRDL.js +216 -0
- package/dist/commands/chunk-XRQMVAB4.js +85 -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-YANDBVAT.js +430 -0
- package/dist/commands/chunk-YD7XK2TX.js +550 -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-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-YT5JR2CB.js +105 -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-Z2NUK47W.js +1314 -0
- package/dist/commands/chunk-Z5GZV4DV.js +16 -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-ZGANVZCA.js +92 -0
- package/dist/commands/chunk-ZGEUWHFF.js +297 -0
- package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
- package/dist/commands/chunk-ZI3SABMH.js +347 -0
- package/dist/commands/chunk-ZIIUBGON.js +773 -0
- package/dist/commands/chunk-ZJJLROJY.js +269 -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 +170 -159
- 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 +1999 -1954
- 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 +173 -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-XBDH2IOH.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 +543 -518
- 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 +970 -668
- package/dist/inputs.json +77 -68
- 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/followup/git-followup-finish.ts +16 -1
- 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/gate/verification-inputs.ts +2 -1
- 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 +11 -6
- package/scripts/run/board/run-board-read.ts +29 -69
- package/scripts/run/board/run-board-reason.ts +12 -0
- package/scripts/run/board/run-board-render-lanes.ts +26 -9
- package/scripts/run/board/run-board-render-lead.ts +9 -0
- package/scripts/run/board/run-board-retry-wait.ts +35 -0
- package/scripts/run/board/run-board-root-layout.ts +69 -0
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +6 -4
- package/scripts/run/board/run-board-single.ts +69 -4
- package/scripts/run/board/run-board-span-read.ts +85 -0
- package/scripts/run/board/run-board-tick.ts +12 -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/hold/run-hold-ended.ts +50 -0
- 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-pinned-cache-logic.ts +13 -7
- package/scripts/test/test-pinned-cache.ts +33 -11
- package/scripts/test/test-related-cap.ts +7 -3
- package/scripts/test/test-related-imports.ts +92 -0
- package/scripts/test/test-runner-config.ts +19 -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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { backlog_drive_retrospective_unit } from '#scripts/backlog/backlog-drive-retrospective-unit'
|
|
1
2
|
import { epic_triage } from '#scripts/epic/epic-triage'
|
|
2
3
|
import { josh_command, type JoshResult } from '#scripts/josh/josh-run'
|
|
3
4
|
import { run_carry, type CarryRead, type RunCarry } from '#scripts/run/carry/run-carry'
|
|
@@ -16,6 +17,8 @@ const TRUNCATION_MARK = '... '
|
|
|
16
17
|
const ERROR_PREFIX = 'error '
|
|
17
18
|
const { WINDOW_MINUTES } = run_wake_window
|
|
18
19
|
const WINDOW_VERDICT = 'window'
|
|
20
|
+
// `backlog-drive.ts`'s drain owing the retrospective.
|
|
21
|
+
const WATCH_VERDICT = 'watch'
|
|
19
22
|
const { TRIAGE_VERDICT } = epic_triage
|
|
20
23
|
|
|
21
24
|
function driver_args(invocation: string): ReadonlyArray<string> | undefined {
|
|
@@ -74,11 +77,24 @@ const NEXT_BY_VERDICT: ReadonlyArray<readonly [string, string]> = [
|
|
|
74
77
|
const NEXT_DEFAULT = `act on the result by the sections below, ${HAND_BACK}`
|
|
75
78
|
// **A triage session is woken beside the driver, never in its place** (joshuafolkken/kit#7120): the
|
|
76
79
|
// record stays the supervisor's, so the session counts nothing and its turn end hands nothing back.
|
|
77
|
-
const
|
|
78
|
-
"\nNext: the carry record stays the supervisor's, whose driver keeps collecting and filling lanes beside this session
|
|
80
|
+
const BESIDE =
|
|
81
|
+
"\nNext: the carry record stays the supervisor's, whose driver keeps collecting and filling lanes beside this session"
|
|
82
|
+
const NEXT_BESIDE = `${BESIDE}, so run no pnpm josh run:carry; act on the result by the sections below, then end the turn`
|
|
83
|
+
|
|
84
|
+
// **A drain's retrospective runs beside the driver too** (joshuafolkken/kit#7506): handed over, the
|
|
85
|
+
// record left the backlog unread until the session ended and the next pass re-drove, so an issue
|
|
86
|
+
// filed meanwhile waited on the retrospective. Beside it, the driver's re-drive dispatches that issue,
|
|
87
|
+
// and the session's process on the resume line holds the next `watch` back until it has ended
|
|
88
|
+
// (`backlog_drive_park_triage.hand_back`). The record stays this process's, so the close names it.
|
|
89
|
+
const BESIDE_VERDICTS: ReadonlySet<string> = new Set([TRIAGE_VERDICT, WATCH_VERDICT])
|
|
79
90
|
|
|
80
91
|
function next_move(verdict: string): string {
|
|
81
92
|
if (verdict === TRIAGE_VERDICT) return NEXT_BESIDE
|
|
93
|
+
|
|
94
|
+
if (verdict === WATCH_VERDICT) {
|
|
95
|
+
return `${BESIDE}. ${backlog_drive_retrospective_unit.brief_of(String(process.pid))} Then end the turn`
|
|
96
|
+
}
|
|
97
|
+
|
|
82
98
|
const found = NEXT_BY_VERDICT.find(([prefix]) => verdict.startsWith(prefix))
|
|
83
99
|
|
|
84
100
|
return `\nNext: ${ALREADY_CLAIMED} ${found?.[1] ?? NEXT_DEFAULT}`
|
|
@@ -102,7 +118,7 @@ function judged(verdict: string, resume: string, details: string): DriveResult {
|
|
|
102
118
|
return { kind: 'failed', note: `backlog:drive returned an invalid resume line: ${resume}` }
|
|
103
119
|
}
|
|
104
120
|
|
|
105
|
-
const kind = verdict
|
|
121
|
+
const kind = BESIDE_VERDICTS.has(verdict) ? 'triage' : 'judgment'
|
|
106
122
|
|
|
107
123
|
return { kind, material: handoff_material(verdict, resume, details) }
|
|
108
124
|
}
|
|
@@ -145,13 +161,22 @@ function read_result(result: JoshResult | undefined, target: string): DriveResul
|
|
|
145
161
|
// **A record this process already owns is claimed again.** A driver that failed leaves the record
|
|
146
162
|
// adopted for the supervisor and not handed off, and the restarted pass re-drives it from here; only a
|
|
147
163
|
// record another live process holds is refused.
|
|
164
|
+
//
|
|
165
|
+
// **A record this process already holds is kept as it is, never rewritten** (joshuafolkken/kit#7506):
|
|
166
|
+
// the adopt removes and re-creates it from this read, so a beside session's `run:carry
|
|
167
|
+
// --retrospective` landing between the two would lose its mark or read no record to close.
|
|
168
|
+
function standing_of(carry: RunCarry): 'adopt' | 'kept' | 'refused' {
|
|
169
|
+
if (carry.is_handed_off === true) return 'adopt'
|
|
170
|
+
if (run_carry.is_held_by_self(carry)) return 'kept'
|
|
171
|
+
|
|
172
|
+
return run_carry.is_held_by_another(carry) ? 'refused' : 'adopt'
|
|
173
|
+
}
|
|
174
|
+
|
|
148
175
|
function claim_record(target: string, invocation: string): boolean {
|
|
149
176
|
const current = run_carry.read_carry(target)
|
|
150
177
|
if (current.kind !== 'carried' || current.carry.invocation !== invocation) return false
|
|
151
|
-
|
|
152
|
-
if (
|
|
153
|
-
return false
|
|
154
|
-
}
|
|
178
|
+
const standing = standing_of(current.carry)
|
|
179
|
+
if (standing !== 'adopt') return standing === 'kept'
|
|
155
180
|
|
|
156
181
|
const owner = {
|
|
157
182
|
...run_carry.owner_of(process.pid),
|
|
@@ -19,10 +19,7 @@ import { run_carry_reclaim } from '#scripts/run/carry/run-carry-reclaim'
|
|
|
19
19
|
// The adoption also recovers a record whose owner died without a cut (`run-wake.ts` →
|
|
20
20
|
// `decide_not_handed_off`): it rewrites the owner and clears any hand-off, whoever held it.
|
|
21
21
|
//
|
|
22
|
-
//
|
|
23
|
-
// transcript nor its pid is known here: it is adopted with the pid-less owner `run:carry --resume`
|
|
24
|
-
// writes for it, and its pid is never moved onto the record — a pid it cannot match would make its
|
|
25
|
-
// own counts a foreign live owner's.
|
|
22
|
+
// Codex authenticates with a launch identity; the launched PID supplies liveness independently.
|
|
26
23
|
//
|
|
27
24
|
// `hand_off` is the older recovery the backlog preflight still runs: it marks the record handed off,
|
|
28
25
|
// as a `--cut` does, so a later claim over it reads `resume` rather than `standing`.
|
|
@@ -34,7 +31,9 @@ interface WakeSession {
|
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
function session_owner(session: WakeSession): CarryOwner {
|
|
37
|
-
if (session.provider === agent_provider.OPENAI_PROVIDER)
|
|
34
|
+
if (session.provider === agent_provider.OPENAI_PROVIDER) {
|
|
35
|
+
return { session: session.session_id, is_headless: true }
|
|
36
|
+
}
|
|
38
37
|
|
|
39
38
|
const directory = cost_transcript.transcript_directory(session.worktree)
|
|
40
39
|
const transcript = run_carry_conversation.transcript_of(session.session_id, directory)
|
|
@@ -60,11 +59,13 @@ function hand_to(target: string, owner: CarryOwner): void {
|
|
|
60
59
|
run_carry.adopt_carry(target, read.carry, { ...owner, provider: read.carry.scheduler_provider })
|
|
61
60
|
}
|
|
62
61
|
|
|
63
|
-
// Through
|
|
62
|
+
// Through the shared reclaim writer, authenticated by transcript or launch identity.
|
|
64
63
|
function hand_on(target: string, owner: CarryOwner, pid: number): void {
|
|
65
|
-
if (owner.transcript === undefined) return
|
|
64
|
+
if (owner.transcript === undefined && owner.session === undefined) return
|
|
66
65
|
|
|
67
|
-
|
|
66
|
+
const process_owner = run_carry.owner_of(pid, undefined, owner.transcript)
|
|
67
|
+
|
|
68
|
+
run_carry_reclaim.reclaim_at(target, { ...process_owner, session: owner.session })
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
// **The launched pid is the supervisor's own write, so it is no sign the session picked the run up**:
|
|
@@ -30,6 +30,8 @@ const STOPPED_BY_PERSON: LoopStop = { reason: STOPPED_REASON, note: undefined }
|
|
|
30
30
|
const CODE_CHANGED: LoopStop = { reason: RELOAD_REASON, note: undefined }
|
|
31
31
|
|
|
32
32
|
interface LoopPorts {
|
|
33
|
+
refresh?: () => void
|
|
34
|
+
session_failure?: () => string | undefined
|
|
33
35
|
// The carry record, re-read every pass rather than cached: it is written by the parent loop of a
|
|
34
36
|
// different session, which is the whole point of reading it here.
|
|
35
37
|
read_carry: () => CarryRead
|
|
@@ -200,14 +202,25 @@ async function retry_closes(ports: LoopPorts): Promise<void> {
|
|
|
200
202
|
// stopping any lane. A record already removed ends the loop before this pass is reached, and a carry
|
|
201
203
|
// record that ended or became unreadable stops the run before the code is checked, so a reload never
|
|
202
204
|
// hands a finished run to a successor.
|
|
205
|
+
async function preflight_stop(
|
|
206
|
+
decision: WakeDecision,
|
|
207
|
+
ports: LoopPorts,
|
|
208
|
+
): Promise<LoopStop | undefined> {
|
|
209
|
+
if (decision.kind === 'stop') return undefined
|
|
210
|
+
const failure = ports.session_failure?.()
|
|
211
|
+
if (failure !== undefined) return { reason: FAILED_REASON, note: failure }
|
|
212
|
+
|
|
213
|
+
return (await ports.is_code_stale()) ? CODE_CHANGED : undefined
|
|
214
|
+
}
|
|
215
|
+
|
|
203
216
|
async function run_pass(
|
|
204
217
|
target: string,
|
|
205
218
|
wake: RunWake,
|
|
206
219
|
ports: LoopPorts,
|
|
207
220
|
): Promise<LoopStop | undefined> {
|
|
208
221
|
const decision = await decide_pass(wake, ports)
|
|
209
|
-
|
|
210
|
-
if (
|
|
222
|
+
const stop = await preflight_stop(decision, ports)
|
|
223
|
+
if (stop !== undefined) return stop
|
|
211
224
|
|
|
212
225
|
await retry_closes(ports)
|
|
213
226
|
|
|
@@ -254,12 +267,19 @@ function without_release_gap(ports: LoopPorts): LoopPorts {
|
|
|
254
267
|
}
|
|
255
268
|
}
|
|
256
269
|
|
|
270
|
+
function refreshed_wake(target: string, ports: LoopPorts): RunWake | undefined {
|
|
271
|
+
if (run_wake.read_own_wake(target) === undefined) return undefined
|
|
272
|
+
ports.refresh?.()
|
|
273
|
+
|
|
274
|
+
return run_wake.read_own_wake(target)
|
|
275
|
+
}
|
|
276
|
+
|
|
257
277
|
async function run_loop(target: string, ports: LoopPorts, interval_ms: number): Promise<LoopStop> {
|
|
258
278
|
const continuous = without_release_gap(ports)
|
|
259
279
|
|
|
260
280
|
return await poll.wait_for(
|
|
261
281
|
async () => {
|
|
262
|
-
const wake =
|
|
282
|
+
const wake = refreshed_wake(target, continuous)
|
|
263
283
|
|
|
264
284
|
return wake === undefined ? STOPPED_BY_PERSON : await run_pass(target, wake, continuous)
|
|
265
285
|
},
|
|
@@ -5,8 +5,10 @@ import { lane_close } from '#scripts/lane/lane-close'
|
|
|
5
5
|
import { lane_withdraw_closed } from '#scripts/lane/lane-withdraw-closed'
|
|
6
6
|
import { poll } from '#scripts/lib/poll'
|
|
7
7
|
import { run_carry, type CarryOwner, type RunCarry } from '#scripts/run/carry/run-carry'
|
|
8
|
+
import { run_carry_session } from '#scripts/run/carry/run-carry-session'
|
|
8
9
|
import { run_event_setup } from '#scripts/run/event/run-event-setup'
|
|
9
10
|
import { run_headless } from '#scripts/run/run-headless'
|
|
11
|
+
import { run_wake_codex } from './run-wake-codex'
|
|
10
12
|
import type { WakeContext } from './run-wake-describe'
|
|
11
13
|
import { run_wake_driver } from './run-wake-driver'
|
|
12
14
|
import { run_wake_handoff } from './run-wake-handoff'
|
|
@@ -66,7 +68,12 @@ function launch_session(
|
|
|
66
68
|
if (built === undefined) return { kind: 'failed', note: UNSAFE_INVOCATION_NOTE }
|
|
67
69
|
if (built.kind === 'rejected') return { kind: 'failed', note: built.note }
|
|
68
70
|
|
|
69
|
-
const target = {
|
|
71
|
+
const target = {
|
|
72
|
+
cwd: context.worktree,
|
|
73
|
+
env: session.environment,
|
|
74
|
+
log_path: run_wake_codex.log_path(context, session.id, profile),
|
|
75
|
+
}
|
|
76
|
+
if (profile.provider === 'openai') note_to_stderr(`session output: ${target.log_path}`)
|
|
70
77
|
|
|
71
78
|
return run_wake_session.launch({ argv: built.argv, ...target, profile }, note_to_stderr)
|
|
72
79
|
}
|
|
@@ -136,7 +143,10 @@ function session_ports(context: WakeContext, profile: AgentProfile): SessionPort
|
|
|
136
143
|
wake_session(context, invocation, profile, {
|
|
137
144
|
id: session_id,
|
|
138
145
|
material,
|
|
139
|
-
environment:
|
|
146
|
+
environment:
|
|
147
|
+
profile.provider === 'openai'
|
|
148
|
+
? { ...run_headless.environment(), [run_carry_session.KEY]: session_id }
|
|
149
|
+
: run_headless.environment(),
|
|
140
150
|
}),
|
|
141
151
|
wake_beside: (invocation, session_id, material) =>
|
|
142
152
|
wake_beside(context, invocation, profile, {
|
|
@@ -164,7 +174,11 @@ function ports_for(
|
|
|
164
174
|
|
|
165
175
|
return {
|
|
166
176
|
is_code_stale,
|
|
167
|
-
|
|
177
|
+
refresh: () => {
|
|
178
|
+
run_wake_codex.refresh(context)
|
|
179
|
+
},
|
|
180
|
+
session_failure: () => run_wake_codex.failure(context),
|
|
181
|
+
read_carry: () => run_wake_codex.read_carry(context),
|
|
168
182
|
is_owner_live: (read) => read.kind === 'carried' && is_session_at_work(read.carry),
|
|
169
183
|
has_work: async () => true,
|
|
170
184
|
...session_ports(context, profile),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { backlog_dispatch_bound } from '#scripts/backlog/backlog-dispatch-bound'
|
|
1
2
|
import { process_identity } from '#scripts/josh/process-identity'
|
|
2
3
|
import { poll } from '#scripts/lib/poll'
|
|
3
4
|
import { MS_PER_SECOND } from '#scripts/lib/timeouts'
|
|
@@ -13,8 +14,10 @@ import { run_wake_stop } from './run-wake-stop'
|
|
|
13
14
|
// bound, is a reload that failed.
|
|
14
15
|
|
|
15
16
|
const TAKEOVER_INTERVAL_MS = MS_PER_SECOND
|
|
16
|
-
// A cold `tsx` start claims within seconds
|
|
17
|
-
|
|
17
|
+
// A cold `tsx` start claims within seconds. The successor still has a driver to start after its claim,
|
|
18
|
+
// so the claim gets what the dispatch bound leaves after that start (joshuafolkken/kit#7507).
|
|
19
|
+
const TAKEOVER_WAIT_MS = backlog_dispatch_bound.NOTICE_MS
|
|
20
|
+
const TAKEOVER_ATTEMPTS = TAKEOVER_WAIT_MS / TAKEOVER_INTERVAL_MS
|
|
18
21
|
|
|
19
22
|
type TakeoverResult = 'taken' | 'died' | 'unclaimed'
|
|
20
23
|
|
|
@@ -60,7 +63,7 @@ async function await_takeover(
|
|
|
60
63
|
return result
|
|
61
64
|
}
|
|
62
65
|
|
|
63
|
-
const run_wake_takeover = { await_takeover, ports_of }
|
|
66
|
+
const run_wake_takeover = { TAKEOVER_WAIT_MS, await_takeover, ports_of }
|
|
64
67
|
|
|
65
68
|
export type { TakeoverPorts, TakeoverResult }
|
|
66
69
|
export { run_wake_takeover }
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { backlog_dispatch_bound } from '#scripts/backlog/backlog-dispatch-bound'
|
|
1
2
|
import { MS_PER_MINUTE } from '#scripts/lib/timeouts'
|
|
2
3
|
|
|
3
4
|
// **The driver is bounded so the supervisor reaches its pass boundary between dispatches**
|
|
@@ -10,6 +11,8 @@ const WINDOW_MS = WINDOW_MINUTES * MS_PER_MINUTE
|
|
|
10
11
|
// **The supervisor's pause between passes is its own, not the driver's offer interval**
|
|
11
12
|
// (joshuafolkken/kit#6718): a pass reads local records, and the backlog only through the driver, so
|
|
12
13
|
// stretching the offer interval for the REST budget must not slow how soon a judgment hand-off is seen.
|
|
13
|
-
|
|
14
|
+
// A pass may start a fresh driver, so the pause is what the dispatch bound leaves after that start
|
|
15
|
+
// (joshuafolkken/kit#7507).
|
|
16
|
+
const PASS_INTERVAL_MS = backlog_dispatch_bound.NOTICE_MS
|
|
14
17
|
|
|
15
18
|
export const run_wake_window = { WINDOW_MINUTES, WINDOW_MS, PASS_INTERVAL_MS }
|
|
@@ -45,6 +45,8 @@ interface RunWake {
|
|
|
45
45
|
woke: number
|
|
46
46
|
// The grace window is measured from this; cleared when the woken session claims the record.
|
|
47
47
|
woke_at?: string | undefined
|
|
48
|
+
// Kept after claim so legacy shared-log completion can authenticate the launch.
|
|
49
|
+
launch_at?: string | undefined
|
|
48
50
|
// Launches for the current cut: what was started, against `woke`'s what arrived.
|
|
49
51
|
attempts?: number | undefined
|
|
50
52
|
// Named in the failure warning, never killed — a slow session is still doing the run's work.
|
|
@@ -100,6 +102,7 @@ const run_wake_schema = process_owner_schema.extend({
|
|
|
100
102
|
started_at: z.string(),
|
|
101
103
|
woke: z.number(),
|
|
102
104
|
woke_at: z.string().optional(),
|
|
105
|
+
launch_at: z.string().optional(),
|
|
103
106
|
// Every optional `RunWake` field must be listed: `z.object` strips undeclared ones on the round trip.
|
|
104
107
|
attempts: z.number().optional(),
|
|
105
108
|
woke_pid: z.number().optional(),
|
|
@@ -199,6 +202,7 @@ function carried_state(existing: RunWake | undefined, invocation: string): Parti
|
|
|
199
202
|
return {
|
|
200
203
|
woke: existing.woke,
|
|
201
204
|
woke_at: existing.woke_at,
|
|
205
|
+
launch_at: existing.launch_at,
|
|
202
206
|
attempts: existing.attempts,
|
|
203
207
|
woke_pid: existing.woke_pid,
|
|
204
208
|
spawned: existing.spawned,
|
|
@@ -266,6 +270,7 @@ function count_claim(wake: RunWake): RunWake {
|
|
|
266
270
|
return {
|
|
267
271
|
...wake,
|
|
268
272
|
woke,
|
|
273
|
+
launch_at: wake.woke_at ?? wake.launch_at,
|
|
269
274
|
woke_at: undefined,
|
|
270
275
|
attempts: undefined,
|
|
271
276
|
idle_since: undefined,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs'
|
|
2
2
|
import path from 'node:path'
|
|
3
|
+
import { is_workflow_destination } from '#scripts/claude/workflow-destination'
|
|
3
4
|
import { init_ai_copy } from '#scripts/init/init-ai-copy'
|
|
4
5
|
import { transform_copied_content } from '#scripts/init/init-copy-content'
|
|
5
6
|
import { init_logic } from '#scripts/init/init-logic'
|
|
@@ -7,7 +8,9 @@ import { PACKAGE_DIR, PROJECT_ROOT } from '#scripts/init/init-paths'
|
|
|
7
8
|
import type { ProjectShape } from '#scripts/init/project-profile'
|
|
8
9
|
import { security_policy } from '#scripts/init/security-policy'
|
|
9
10
|
import { file_reader } from '#scripts/lib/read-file'
|
|
11
|
+
import { managed_marker_logic } from '#scripts/managed-marker/managed-marker-logic'
|
|
10
12
|
import { pack_hook } from '#scripts/safe-chain/pack-hook'
|
|
13
|
+
import { KIT_PACKAGE_NAME } from '#scripts/version/kit-descriptor'
|
|
11
14
|
import { claude_settings_merge } from './claude-settings-merge'
|
|
12
15
|
import { copy_directory_failure, directory_copy_blocker } from './directory-copy-guard'
|
|
13
16
|
import { file_content } from './file-content'
|
|
@@ -20,7 +23,21 @@ const CLAUDE_MD_FILENAME = 'CLAUDE.md'
|
|
|
20
23
|
const CLAUDE_SETTINGS_FILE = '.claude/settings.json'
|
|
21
24
|
const CODEX_HOOKS_FILE = '.codex/hooks.json'
|
|
22
25
|
|
|
26
|
+
function keep_custom_workflow(destination: string): boolean {
|
|
27
|
+
if (!is_workflow_destination(destination)) return false
|
|
28
|
+
const existing = file_reader.read_optional(destination)
|
|
29
|
+
if (existing === undefined) return false
|
|
30
|
+
const marker = `${managed_marker_logic.MARKER_PREFIX} ${KIT_PACKAGE_NAME}`
|
|
31
|
+
if (existing.split(/\r?\n/u, 1)[0] === marker) return false
|
|
32
|
+
console.warn(
|
|
33
|
+
` ⚠ kept ${destination} (custom workflow; migrate its acquisition settings manually)`,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
return true
|
|
37
|
+
}
|
|
38
|
+
|
|
23
39
|
function sync_ai_file(source_path: string, destination_path: string): boolean {
|
|
40
|
+
if (keep_custom_workflow(destination_path)) return false
|
|
24
41
|
const content = readFileSync(source_path, 'utf8')
|
|
25
42
|
|
|
26
43
|
return file_content.write_text_if_changed(
|
|
@@ -35,7 +35,17 @@ function sync_with_merge(
|
|
|
35
35
|
// lines, including env-var forms: npmrcAuthFile can opt the file into authentication from a deploy
|
|
36
36
|
// dashboard that sync cannot inspect.
|
|
37
37
|
function sync_npmrc(destination_path: string): void {
|
|
38
|
-
|
|
38
|
+
const existing = existsSync(destination_path) ? readFileSync(destination_path, 'utf8') : ''
|
|
39
|
+
const merged = init_logic.merge_npmrc(existing, path.dirname(destination_path))
|
|
40
|
+
|
|
41
|
+
if (merged === existing) {
|
|
42
|
+
console.info(' ✔ unchanged .npmrc')
|
|
43
|
+
|
|
44
|
+
return
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
file_content.write_contained(destination_path, merged)
|
|
48
|
+
console.info(' ✔ synced .npmrc')
|
|
39
49
|
}
|
|
40
50
|
|
|
41
51
|
// Union-merge kit's .gitignore entries into the consumer file instead of overwriting it,
|
package/scripts/sync/sync.ts
CHANGED
|
@@ -194,7 +194,11 @@ function sync_consumer_resolved_development_deps(destination_path: string): void
|
|
|
194
194
|
function sync_prepare_lefthook_warning(destination_path: string): void {
|
|
195
195
|
sync_package_json_with(
|
|
196
196
|
destination_path,
|
|
197
|
-
(existing) =>
|
|
197
|
+
(existing) =>
|
|
198
|
+
init_logic.upgrade_npm_lifecycle(
|
|
199
|
+
init_logic.upgrade_prepare_lefthook_warning(existing),
|
|
200
|
+
path.dirname(destination_path),
|
|
201
|
+
),
|
|
198
202
|
' ✔ synced prepare lefthook install warning (run `pnpm install`)',
|
|
199
203
|
)
|
|
200
204
|
}
|
|
@@ -17,13 +17,14 @@ import type { RedProbe, RedVerdict } from './test-red-logic'
|
|
|
17
17
|
// failed before the revert reads red too — and a red kept past any of those, or past an edit to the test
|
|
18
18
|
// that failed, would pass an unpinned hunk. A test added or edited elsewhere cannot make that test
|
|
19
19
|
// pass, so it keeps the red. A red with no failed file recorded holds only while no test file changed either.
|
|
20
|
-
// **A `green` or `no-test` one holds while no test file's path or content changed
|
|
21
|
-
//
|
|
22
|
-
//
|
|
20
|
+
// **A `green` or `no-test` one holds while no test file's path or content changed, nor the test
|
|
21
|
+
// runner's configuration** (`test_contents`, joshuafolkken/kit#7521 — a widened `include` runs a test
|
|
22
|
+
// that never ran): it is only rechecked when a test could have come to reach it, and a stale one stops a
|
|
23
|
+
// lane rather than passing it.
|
|
23
24
|
// **Past those tree-wide digests, a verdict also holds while its own `basis` is the same**
|
|
24
25
|
// (joshuafolkken/kit#4873): for a `red`, the base commit, the changed non-code and whole-suite files,
|
|
25
26
|
// and each failed test's import closure; for any other, the tests whose imports reach the hunk's file,
|
|
26
|
-
// with their content. An edit outside them keeps the verdict; with no basis — no import graph, no
|
|
27
|
+
// with their content, and the test runner's configuration. An edit outside them keeps the verdict; with no basis — no import graph, no
|
|
27
28
|
// failed file recorded — only the tree-wide digests hold it, as before.
|
|
28
29
|
// **A `red` verdict also holds while `pruned` reads the same** (joshuafolkken/kit#5004): the code
|
|
29
30
|
// change since differs only by lines removed from `green` hunks (`test-pinned-prune-logic.ts`).
|
|
@@ -219,11 +220,16 @@ function fresh_verdict(
|
|
|
219
220
|
return { verdict: entry.verdict, failed: Object.keys(entry.tests) }
|
|
220
221
|
}
|
|
221
222
|
|
|
222
|
-
// A `green` or `no-test` verdict's basis: each test whose imports reach the hunk's file, with its content
|
|
223
|
-
|
|
223
|
+
// A `green` or `no-test` verdict's basis: each test whose imports reach the hunk's file, with its content,
|
|
224
|
+
// and `config`, the test runner's configuration — which of those tests a run collects.
|
|
225
|
+
function related_basis(
|
|
226
|
+
tests: ReadonlyArray<string>,
|
|
227
|
+
digests: ReadonlyMap<string, string>,
|
|
228
|
+
config: string,
|
|
229
|
+
): Basis {
|
|
224
230
|
const pairs = sorted(tests).map((file) => [file, digests.get(file) ?? ''] as const)
|
|
225
231
|
|
|
226
|
-
return { digest: digest_of(JSON.stringify(pairs)), related: Object.fromEntries(pairs) }
|
|
232
|
+
return { digest: digest_of(JSON.stringify([config, pairs])), related: Object.fromEntries(pairs) }
|
|
227
233
|
}
|
|
228
234
|
|
|
229
235
|
// The tests added or edited since `before` was read; `undefined` once one of its tests is gone or no
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs'
|
|
2
2
|
import { readFile } from 'node:fs/promises'
|
|
3
3
|
import path from 'node:path'
|
|
4
|
+
import { config_fingerprint } from '#eslint/config-fingerprint.js'
|
|
4
5
|
import { changed_paths } from '#scripts/git/changed-paths'
|
|
5
6
|
import { git_spawn } from '#scripts/git/git-spawn'
|
|
6
7
|
import { run_record_path } from '#scripts/josh/run-record-path'
|
|
@@ -18,6 +19,7 @@ import type { Hunk } from './test-pinned-logic'
|
|
|
18
19
|
import { test_pinned_prune_logic, type CodeChange } from './test-pinned-prune-logic'
|
|
19
20
|
import { test_pinned_reach, type Reach } from './test-pinned-reach'
|
|
20
21
|
import type { RedProbe } from './test-red-logic'
|
|
22
|
+
import { test_runner_config } from './test-runner-config'
|
|
21
23
|
|
|
22
24
|
// The reads and writes of `josh test:pinned`'s verdict cache (joshuafolkken/kit#4706); what a key is and
|
|
23
25
|
// when an entry holds is `test-pinned-cache-logic.ts`. `josh run:review` calls the same `test_pinned.run`,
|
|
@@ -31,9 +33,11 @@ const LINE_BREAK = '\n'
|
|
|
31
33
|
// Peels a ref or tag to the commit it names, so a branch name and its SHA key the same change.
|
|
32
34
|
const AS_COMMIT = '^{commit}'
|
|
33
35
|
|
|
36
|
+
// `config` is one digest over the test runner's configuration files, which `test_contents` covers too.
|
|
34
37
|
interface TreeRead {
|
|
35
38
|
test_digests: ReadonlyMap<string, string>
|
|
36
39
|
code: CodeChange
|
|
40
|
+
config: string
|
|
37
41
|
test_contents: string
|
|
38
42
|
change: string
|
|
39
43
|
}
|
|
@@ -45,6 +49,7 @@ interface LoadedCache extends VerdictCache {
|
|
|
45
49
|
base: string
|
|
46
50
|
freshness: Freshness
|
|
47
51
|
test_digests: ReadonlyMap<string, string>
|
|
52
|
+
config: string
|
|
48
53
|
reach: Reach
|
|
49
54
|
code: CodeChange
|
|
50
55
|
hunks: ReadonlyArray<Hunk>
|
|
@@ -79,11 +84,11 @@ async function contents_of(files: ReadonlyArray<string>): Promise<Map<string, st
|
|
|
79
84
|
return new Map(existing.map((file, index) => [file, texts[index] ?? '']))
|
|
80
85
|
}
|
|
81
86
|
|
|
82
|
-
// Every
|
|
83
|
-
async function
|
|
87
|
+
// Every file in the work tree `is_kept` accepts, tracked or untracked but not ignored.
|
|
88
|
+
async function work_tree_files(is_kept: (file: string) => boolean): Promise<Array<string>> {
|
|
84
89
|
const listed = await test_pinned_reach.work_tree_files()
|
|
85
90
|
|
|
86
|
-
return listed.filter((file) =>
|
|
91
|
+
return listed.filter((file) => is_kept(file))
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
// The digest of each named file the work tree still holds.
|
|
@@ -95,9 +100,20 @@ async function digests_of(files: ReadonlyArray<string>): Promise<Map<string, str
|
|
|
95
100
|
)
|
|
96
101
|
}
|
|
97
102
|
|
|
98
|
-
// Each
|
|
99
|
-
async function
|
|
100
|
-
return await digests_of(await
|
|
103
|
+
// Each work tree file's content digest `is_kept` accepts, keyed by its path.
|
|
104
|
+
async function kept_digests_of(is_kept: (file: string) => boolean): Promise<Map<string, string>> {
|
|
105
|
+
return await digests_of(await work_tree_files(is_kept))
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Each test runner configuration file and every local module it imports — where an `include` list may
|
|
109
|
+
// sit, as `tools/test/vitest-include-globs.ts` does here — with its content digest.
|
|
110
|
+
async function config_digests_of(): Promise<Map<string, string>> {
|
|
111
|
+
const configs = await work_tree_files((file) => test_runner_config.is_config(file))
|
|
112
|
+
const reached = config_fingerprint.list_reachable_modules(
|
|
113
|
+
configs.map((file) => path.resolve(file)),
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
return await digests_of([...reached].map((file) => path.relative(process.cwd(), file)))
|
|
101
117
|
}
|
|
102
118
|
|
|
103
119
|
// One digest over every test file's path and content.
|
|
@@ -123,13 +139,19 @@ async function code_change(base: string): Promise<CodeChange> {
|
|
|
123
139
|
return { commit: commit.trim(), code, digests: await digests_of(code) }
|
|
124
140
|
}
|
|
125
141
|
|
|
126
|
-
// The work tree's tree-wide digests, with what they were read off.
|
|
142
|
+
// The work tree's tree-wide digests, with what they were read off. A test runner configuration change
|
|
143
|
+
// can make a test run that never ran, so it moves `test_contents` as a test file would
|
|
144
|
+
// (joshuafolkken/kit#7521).
|
|
127
145
|
async function read_tree(base: string): Promise<TreeRead> {
|
|
128
|
-
const [test_digests, code] = await Promise.all([
|
|
129
|
-
|
|
146
|
+
const [test_digests, configs, code] = await Promise.all([
|
|
147
|
+
kept_digests_of((file) => test_declared_logic.is_test_file(file)),
|
|
148
|
+
config_digests_of(),
|
|
149
|
+
code_change(base),
|
|
150
|
+
])
|
|
151
|
+
const test_contents = contents_digest(new Map([...test_digests, ...configs]))
|
|
130
152
|
const change = test_pinned_cache_logic.change_of(code.commit, code.code, code.digests)
|
|
131
153
|
|
|
132
|
-
return { test_digests, code, test_contents, change }
|
|
154
|
+
return { test_digests, code, config: contents_digest(configs), test_contents, change }
|
|
133
155
|
}
|
|
134
156
|
|
|
135
157
|
// The cache file's text and what the work tree holds now, with the files `hunks` and the recorded
|
|
@@ -176,7 +198,7 @@ async function basis_of(
|
|
|
176
198
|
if (probe.verdict !== 'red') {
|
|
177
199
|
const tests = await cache.reach.related(file)
|
|
178
200
|
|
|
179
|
-
return tests && test_pinned_cache_logic.related_basis(tests, cache.test_digests)
|
|
201
|
+
return tests && test_pinned_cache_logic.related_basis(tests, cache.test_digests, cache.config)
|
|
180
202
|
}
|
|
181
203
|
|
|
182
204
|
const digest = await cache.reach.failed(probe.failed)
|
|
@@ -4,11 +4,12 @@ import { direct_importers } from './direct-importers'
|
|
|
4
4
|
import { test_declared_logic } from './test-declared-logic'
|
|
5
5
|
import { test_pinned_logic } from './test-pinned-logic'
|
|
6
6
|
import { test_pinned_reach, type ReachedCount } from './test-pinned-reach'
|
|
7
|
+
import { test_related_imports } from './test-related-imports'
|
|
7
8
|
import { test_related_pins } from './test-related-pins'
|
|
8
9
|
import { related_scope } from './test-related-scope'
|
|
9
10
|
|
|
10
11
|
// **A change whose imports reach more than `test_pinned_logic.MAX_TEST_FILES` test files runs only the
|
|
11
|
-
// tests importing its widest files directly** (
|
|
12
|
+
// tests importing its widest files directly when their imports are unchanged** (#7453, #5532, #5702), as a file every test imports does
|
|
12
13
|
// (`direct-importers.ts`): the tests past them stay unchecked here, for `josh gate`'s whole suite and
|
|
13
14
|
// CI to run. `--keep-whole-suite` (the gate's unit leg) lifts the cap outside a lane
|
|
14
15
|
// (`test-related-whole.ts`), and so does a missing graph.
|
|
@@ -85,7 +86,8 @@ async function direct_of(
|
|
|
85
86
|
root: string,
|
|
86
87
|
over_cap: ReadonlyArray<string>,
|
|
87
88
|
): Promise<Array<[string, Array<string>]>> {
|
|
88
|
-
const
|
|
89
|
+
const stable = await test_related_imports.stable_files(root, over_cap)
|
|
90
|
+
const importers = await direct_importers.importers_of(root, stable)
|
|
89
91
|
const narrowed = [...importers].filter(([, tests]) => tests.length > 0)
|
|
90
92
|
|
|
91
93
|
return narrowed.map(([file, tests]) => [file, test_related_pins.with_pins(file, tests)])
|
|
@@ -96,7 +98,9 @@ async function split_of(
|
|
|
96
98
|
root: string,
|
|
97
99
|
files: ReadonlyArray<string>,
|
|
98
100
|
): Promise<[Map<string, Array<string>>, Array<string>]> {
|
|
99
|
-
const
|
|
101
|
+
const shared = direct_importers.every_test_imports_of(files)
|
|
102
|
+
const stable = await test_related_imports.stable_files(root, shared)
|
|
103
|
+
const every_test = await direct_importers.every_test_importers(root, stable)
|
|
100
104
|
|
|
101
105
|
return [every_test, candidates_of(root, files, every_test)]
|
|
102
106
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs'
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import { change_base } from '#scripts/git/change-base'
|
|
4
|
+
import { git_spawn } from '#scripts/git/git-spawn'
|
|
5
|
+
import type ts from 'typescript'
|
|
6
|
+
|
|
7
|
+
type TypeScript = typeof ts
|
|
8
|
+
|
|
9
|
+
interface Comparison {
|
|
10
|
+
base: string
|
|
11
|
+
typescript: TypeScript
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// A new import can break an indirect test's mock while every direct importer passes (#7453).
|
|
15
|
+
// Only unchanged import declarations and targets may use the direct-only cap. Unknown history keeps reach.
|
|
16
|
+
function is_loading(typescript: TypeScript, node: ts.Node, source: ts.SourceFile): boolean {
|
|
17
|
+
if (!typescript.isCallExpression(node)) return false
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
node.expression.kind === typescript.SyntaxKind.ImportKeyword ||
|
|
21
|
+
node.expression.getText(source) === 'require'
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function signature(typescript: TypeScript, file: string, content: string): string {
|
|
26
|
+
const source = typescript.createSourceFile(file, content, typescript.ScriptTarget.Latest)
|
|
27
|
+
const declarations: Array<string> = []
|
|
28
|
+
|
|
29
|
+
function visit(node: ts.Node): void {
|
|
30
|
+
if (
|
|
31
|
+
typescript.isImportDeclaration(node) ||
|
|
32
|
+
typescript.isExportDeclaration(node) ||
|
|
33
|
+
is_loading(typescript, node, source)
|
|
34
|
+
) {
|
|
35
|
+
declarations.push(node.getText(source))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
typescript.forEachChild(node, visit)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
visit(source)
|
|
42
|
+
|
|
43
|
+
return JSON.stringify(declarations)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function is_stable(root: string, file: string, comparison: Comparison): Promise<boolean> {
|
|
47
|
+
if (path.extname(file) === '.svelte') return false
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const before = await git_spawn.read(['-C', root, 'show', `${comparison.base}:${file}`])
|
|
51
|
+
const current = readFileSync(path.join(root, file), 'utf8')
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
signature(comparison.typescript, file, before) ===
|
|
55
|
+
signature(comparison.typescript, file, current)
|
|
56
|
+
)
|
|
57
|
+
} catch {
|
|
58
|
+
return false
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function compare(root: string, files: ReadonlyArray<string>): Promise<Array<boolean>> {
|
|
63
|
+
try {
|
|
64
|
+
const base = await change_base.resolved_through_merge()
|
|
65
|
+
if (base === undefined) return files.map(() => false)
|
|
66
|
+
const { default: typescript } = await import('typescript')
|
|
67
|
+
|
|
68
|
+
return await Promise.all(
|
|
69
|
+
files.map(async (file) => await is_stable(root, file, { base, typescript })),
|
|
70
|
+
)
|
|
71
|
+
} catch {
|
|
72
|
+
return files.map(() => false)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async function stable_files(root: string, files: ReadonlyArray<string>): Promise<Array<string>> {
|
|
77
|
+
if (files.length === 0) return []
|
|
78
|
+
const stable = await compare(root, files)
|
|
79
|
+
const retained = files.filter((_file, index) => stable[index] !== true)
|
|
80
|
+
|
|
81
|
+
if (retained.length > 0) {
|
|
82
|
+
process.stdout.write(
|
|
83
|
+
`josh test:related: keeping full reach (imports changed or unknown): ${retained.join(', ')}\n`,
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return files.filter((_file, index) => stable[index] === true)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const test_related_imports = { stable_files }
|
|
91
|
+
|
|
92
|
+
export { test_related_imports }
|