@joshuafolkken/kit 1.3044.0 → 1.3092.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
- package/.claude/skills/workflow-commands/halfrun.md +3 -2
- package/.claude/skills/workflow-commands/kickoff.md +9 -2
- package/.claude/skills/workflow-commands/prerequisite.md +2 -0
- package/.claude/skills/workflow-commands/retrospective.md +2 -1
- package/.claude/skills/workflow-commands/split-assessment.md +4 -0
- package/.github/workflows/ci.yml +0 -20
- package/.github/workflows/pr-classification.yml +0 -5
- package/.github/workflows/publish.yml +0 -1
- package/.github/workflows/sonar-qube.yml +0 -5
- package/README.md +2 -0
- package/SECURITY.md +2 -1
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +29 -20
- package/dist/commands/auto-ok-judge-cli.js +43 -33
- package/dist/commands/auto-ok-main.js +73 -74
- package/dist/commands/backlog-budget-main.js +5 -6
- package/dist/commands/backlog-drive-cli.js +286 -305
- package/dist/commands/backlog-next-main.js +111 -108
- package/dist/commands/backlog-offer-main.js +148 -112
- package/dist/commands/backlog-plan-cli.js +123 -120
- package/dist/commands/backlog-triage-cli.js +131 -128
- package/dist/commands/backlogrun-cli.js +273 -264
- package/dist/commands/behavior-cli.js +23 -26
- package/dist/commands/bytes-command.js +56 -59
- package/dist/commands/cases-cli.js +4 -5
- package/dist/commands/check-commit-message-main.js +3 -4
- package/dist/commands/check-related.js +125 -119
- package/dist/commands/chunk-26JL4UU4.js +365 -0
- package/dist/commands/chunk-2BIVHPCA.js +85 -0
- package/dist/commands/chunk-2CKJODCK.js +245 -0
- package/dist/commands/chunk-2E6PSONB.js +46 -0
- package/dist/commands/chunk-2GA4775H.js +77 -0
- package/dist/commands/chunk-2O64H5UJ.js +462 -0
- package/dist/commands/chunk-2OEXY4GM.js +252 -0
- package/dist/commands/chunk-2OMIHPPE.js +51 -0
- package/dist/commands/chunk-2ONSHOAY.js +46 -0
- package/dist/commands/chunk-2Q7MGFYB.js +1208 -0
- package/dist/commands/chunk-2SA3W4JF.js +41 -0
- package/dist/commands/chunk-2VY7CJ2R.js +212 -0
- package/dist/commands/chunk-2WRDAQPJ.js +74 -0
- package/dist/commands/chunk-2XLR7R6E.js +541 -0
- package/dist/commands/chunk-2XZF3YFY.js +47 -0
- package/dist/commands/chunk-33TAOZUE.js +29 -0
- package/dist/commands/chunk-374XGAWD.js +158 -0
- package/dist/commands/chunk-3CJNQU7P.js +179 -0
- package/dist/commands/chunk-3D5T6KMW.js +59 -0
- package/dist/commands/chunk-3EW5LTN3.js +114 -0
- package/dist/commands/chunk-3F3RNIG2.js +128 -0
- package/dist/commands/chunk-3FLTEJZY.js +74 -0
- package/dist/commands/chunk-3JWPTRNI.js +60 -0
- package/dist/commands/chunk-3MQTOUXT.js +94 -0
- package/dist/commands/chunk-3PCUERXE.js +19 -0
- package/dist/commands/chunk-3U6A5WON.js +173 -0
- package/dist/commands/chunk-3YT3RCSI.js +140 -0
- package/dist/commands/chunk-43DU7DYZ.js +540 -0
- package/dist/commands/chunk-43H725LG.js +132 -0
- package/dist/commands/chunk-46STCE6Q.js +48 -0
- package/dist/commands/chunk-46WEC6HZ.js +82 -0
- package/dist/commands/chunk-47J4KOZP.js +46 -0
- package/dist/commands/chunk-47W7PF4T.js +22 -0
- package/dist/commands/chunk-4F4KARQN.js +229 -0
- package/dist/commands/chunk-4GUGC4IW.js +338 -0
- package/dist/commands/chunk-4HB7NWXP.js +263 -0
- package/dist/commands/chunk-4HOTJAO6.js +89 -0
- package/dist/commands/chunk-4I5AA4P5.js +237 -0
- package/dist/commands/chunk-4IDINPBE.js +525 -0
- package/dist/commands/chunk-4K7KLR7L.js +69 -0
- package/dist/commands/chunk-4MGTNY2L.js +347 -0
- package/dist/commands/chunk-4NSIW3UB.js +104 -0
- package/dist/commands/chunk-4YTKV6WV.js +37 -0
- package/dist/commands/chunk-5ARNFMQK.js +1263 -0
- package/dist/commands/chunk-5AZTSESD.js +114 -0
- package/dist/commands/chunk-5FUI2MLY.js +89 -0
- package/dist/commands/chunk-5GI5GLC4.js +214 -0
- package/dist/commands/chunk-5IHEBIPD.js +333 -0
- package/dist/commands/chunk-5KAW5GPF.js +44 -0
- package/dist/commands/chunk-5KSJEWXR.js +77 -0
- package/dist/commands/chunk-5OF2B4BF.js +35 -0
- package/dist/commands/chunk-5PLJ7R3D.js +126 -0
- package/dist/commands/chunk-5PPWXOCF.js +64 -0
- package/dist/commands/chunk-5VQCL33M.js +46 -0
- package/dist/commands/chunk-5Y7FOJLX.js +186 -0
- package/dist/commands/chunk-5YTEMF4O.js +110 -0
- package/dist/commands/chunk-62NYXZCC.js +241 -0
- package/dist/commands/chunk-6KUA7MRG.js +64 -0
- package/dist/commands/chunk-6LDEZFYR.js +88 -0
- package/dist/commands/chunk-6NXIZMIK.js +122 -0
- package/dist/commands/chunk-6O45F6YI.js +86 -0
- package/dist/commands/chunk-6OHJBQDE.js +184 -0
- package/dist/commands/chunk-6WDCCG3M.js +1249 -0
- package/dist/commands/chunk-6ZHXEQAI.js +715 -0
- package/dist/commands/chunk-736NECRD.js +16 -0
- package/dist/commands/chunk-77LEKVEE.js +32 -0
- package/dist/commands/chunk-7CX5VYOL.js +50 -0
- package/dist/commands/chunk-7DGHFBU7.js +247 -0
- package/dist/commands/chunk-7E43YW53.js +128 -0
- package/dist/commands/chunk-7EAYFMDN.js +235 -0
- package/dist/commands/chunk-7HP3FQGQ.js +51 -0
- package/dist/commands/chunk-7JOOMFDI.js +155 -0
- package/dist/commands/chunk-7OEBSPPU.js +321 -0
- package/dist/commands/chunk-A3JYZWBS.js +803 -0
- package/dist/commands/chunk-A3LCN4KA.js +84 -0
- package/dist/commands/chunk-ABLXBG6C.js +98 -0
- package/dist/commands/chunk-AN7BFVHU.js +244 -0
- package/dist/commands/chunk-AQCVEQSM.js +99 -0
- package/dist/commands/chunk-AT46EY7H.js +393 -0
- package/dist/commands/chunk-AU563VKH.js +75 -0
- package/dist/commands/chunk-AUTD5FV2.js +1077 -0
- package/dist/commands/chunk-AV26CMY6.js +304 -0
- package/dist/commands/chunk-B2PJEV3S.js +246 -0
- package/dist/commands/chunk-B545ENGY.js +214 -0
- package/dist/commands/chunk-B5HP6T4L.js +170 -0
- package/dist/commands/chunk-B5XYAWNN.js +37 -0
- package/dist/commands/chunk-B73IIRMS.js +207 -0
- package/dist/commands/chunk-BAEDHPXW.js +160 -0
- package/dist/commands/chunk-BDSG6JKH.js +977 -0
- package/dist/commands/chunk-BE6F4YK2.js +769 -0
- package/dist/commands/chunk-BFKTUD3V.js +33 -0
- package/dist/commands/chunk-BLRXHK2V.js +17 -0
- package/dist/commands/chunk-BLUAO4QW.js +173 -0
- package/dist/commands/chunk-BML6MEUB.js +326 -0
- package/dist/commands/chunk-BPDNGJXY.js +63 -0
- package/dist/commands/chunk-BQLKWGGC.js +118 -0
- package/dist/commands/chunk-BRMJVCP7.js +167 -0
- package/dist/commands/chunk-BRWR5YKU.js +268 -0
- package/dist/commands/chunk-BUZAYEBD.js +319 -0
- package/dist/commands/chunk-BVUL57IX.js +139 -0
- package/dist/commands/chunk-CC4BIGCA.js +20 -0
- package/dist/commands/chunk-CCHJZEF5.js +4220 -0
- package/dist/commands/chunk-CDK7QZWG.js +44 -0
- package/dist/commands/chunk-CDYFUCDC.js +72 -0
- package/dist/commands/chunk-CEADAQIL.js +170 -0
- package/dist/commands/chunk-CNL3SLM6.js +116 -0
- package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
- package/dist/commands/chunk-CTXJVMHW.js +48 -0
- package/dist/commands/chunk-CUWT6UQO.js +13 -0
- package/dist/commands/chunk-CVRDJCOE.js +125 -0
- package/dist/commands/chunk-D6CF5QGM.js +80 -0
- package/dist/commands/chunk-DACNQAXC.js +20 -0
- package/dist/commands/chunk-DDOS32JU.js +74 -0
- package/dist/commands/chunk-DDZVMXZD.js +481 -0
- package/dist/commands/chunk-DF6QD4AF.js +52 -0
- package/dist/commands/chunk-DFEXNB44.js +159 -0
- package/dist/commands/chunk-DHDKG5HZ.js +151 -0
- package/dist/commands/chunk-DHJRFBKO.js +223 -0
- package/dist/commands/chunk-DKDWOE3C.js +78 -0
- package/dist/commands/chunk-DKO5VTEH.js +65 -0
- package/dist/commands/chunk-DLHH3MLS.js +85 -0
- package/dist/commands/chunk-DOYNK72G.js +81 -0
- package/dist/commands/chunk-DS53UUDH.js +679 -0
- package/dist/commands/chunk-DUA4E4ES.js +230 -0
- package/dist/commands/chunk-DURHGVRC.js +33 -0
- package/dist/commands/chunk-DVCMQMRN.js +191 -0
- package/dist/commands/chunk-E3YKMCCJ.js +108 -0
- package/dist/commands/chunk-E4F2RTKC.js +272 -0
- package/dist/commands/chunk-E4PFCTXN.js +127 -0
- package/dist/commands/chunk-EAOTR2WL.js +24 -0
- package/dist/commands/chunk-EE4VOZJP.js +167 -0
- package/dist/commands/chunk-EHVEWJQ4.js +33 -0
- package/dist/commands/chunk-EMFSPPMH.js +98 -0
- package/dist/commands/chunk-EN65ZS3S.js +73 -0
- package/dist/commands/chunk-ES42XPAD.js +123 -0
- package/dist/commands/chunk-ESUY7KTZ.js +137 -0
- package/dist/commands/chunk-ET6IRQ3L.js +330 -0
- package/dist/commands/chunk-EWCUT7U2.js +1314 -0
- package/dist/commands/chunk-EWXXEGXL.js +149 -0
- package/dist/commands/chunk-EZYW54OQ.js +7569 -0
- package/dist/commands/chunk-F2RDEF2J.js +205 -0
- package/dist/commands/chunk-F2U46HAE.js +52 -0
- package/dist/commands/chunk-F2VYWU6Z.js +653 -0
- package/dist/commands/chunk-F4SGOTUF.js +36 -0
- package/dist/commands/chunk-F4YMLVWN.js +183 -0
- package/dist/commands/chunk-F5N2QIFD.js +213 -0
- package/dist/commands/chunk-F7B4ESZE.js +80 -0
- package/dist/commands/chunk-FJM2HWKW.js +299 -0
- package/dist/commands/chunk-FJMXUDEY.js +3985 -0
- package/dist/commands/chunk-FM7VVAK6.js +426 -0
- package/dist/commands/chunk-FQWRM5FC.js +67 -0
- package/dist/commands/chunk-FT33ZCSB.js +298 -0
- package/dist/commands/chunk-G2DNS74C.js +53 -0
- package/dist/commands/chunk-G75GWNNY.js +101 -0
- package/dist/commands/chunk-GA2YSPFH.js +32 -0
- package/dist/commands/chunk-GAVSK6P6.js +230 -0
- package/dist/commands/chunk-GB2BRQVL.js +300 -0
- package/dist/commands/chunk-GBMZXFFC.js +44 -0
- package/dist/commands/chunk-GDP7QXYE.js +76 -0
- package/dist/commands/chunk-GGWXF7RJ.js +70 -0
- package/dist/commands/chunk-GHOTKHI4.js +30 -0
- package/dist/commands/chunk-GMVN6ZP2.js +48 -0
- package/dist/commands/chunk-GNTTGRCX.js +133 -0
- package/dist/commands/chunk-GOY5JECO.js +130 -0
- package/dist/commands/chunk-GVDRRBHZ.js +507 -0
- package/dist/commands/chunk-GWTBIGYC.js +550 -0
- package/dist/commands/chunk-GZL6ISVM.js +72 -0
- package/dist/commands/chunk-HALHQILI.js +51 -0
- package/dist/commands/chunk-HAT7AFBF.js +85 -0
- package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
- package/dist/commands/chunk-HE3GOMR7.js +88 -0
- package/dist/commands/chunk-HEFUC4ZW.js +65 -0
- package/dist/commands/chunk-HESWKELD.js +60 -0
- package/dist/commands/chunk-HNFBEB4L.js +77 -0
- package/dist/commands/chunk-HRN73FQJ.js +77 -0
- package/dist/commands/chunk-HYE3MBAN.js +113 -0
- package/dist/commands/chunk-IAB6LCJL.js +18 -0
- package/dist/commands/chunk-IAGENI2U.js +42 -0
- package/dist/commands/chunk-ICPVBHIX.js +48 -0
- package/dist/commands/chunk-IEKW3ON6.js +161 -0
- package/dist/commands/chunk-IOKOHB7P.js +109 -0
- package/dist/commands/chunk-IONGJJYM.js +179 -0
- package/dist/commands/chunk-IP23WOWP.js +126 -0
- package/dist/commands/chunk-IPS7EBE5.js +140 -0
- package/dist/commands/chunk-IXZZSST7.js +459 -0
- package/dist/commands/chunk-J4XHEOOW.js +156 -0
- package/dist/commands/chunk-JDHLHYJJ.js +208 -0
- package/dist/commands/chunk-JEYITIWB.js +423 -0
- package/dist/commands/chunk-JGX7JIW4.js +126 -0
- package/dist/commands/chunk-JHIGDFBS.js +59 -0
- package/dist/commands/chunk-JI2EGXZX.js +53 -0
- package/dist/commands/chunk-JNV3VRK2.js +47 -0
- package/dist/commands/chunk-JPMAW2VZ.js +91 -0
- package/dist/commands/chunk-JQEY6KDP.js +90 -0
- package/dist/commands/chunk-JSJDIEGZ.js +88 -0
- package/dist/commands/chunk-JT5ICRFF.js +44 -0
- package/dist/commands/chunk-JUCJ4Y42.js +77 -0
- package/dist/commands/chunk-K3OZBV3L.js +49 -0
- package/dist/commands/chunk-K5H3CLZZ.js +430 -0
- package/dist/commands/chunk-K6P5PISC.js +114 -0
- package/dist/commands/chunk-KD3SEAMV.js +402 -0
- package/dist/commands/chunk-KDCHY7XO.js +88 -0
- package/dist/commands/chunk-KDGX3JTV.js +51 -0
- package/dist/commands/chunk-KGSEWOKI.js +353 -0
- package/dist/commands/chunk-KHGDZQRG.js +271 -0
- package/dist/commands/chunk-KIS7JFNP.js +217 -0
- package/dist/commands/chunk-KKHD3C2P.js +114 -0
- package/dist/commands/chunk-KKIIY5I5.js +67 -0
- package/dist/commands/chunk-KN46UC77.js +114 -0
- package/dist/commands/chunk-KP2BVAS5.js +125 -0
- package/dist/commands/chunk-KPAJBJXG.js +63 -0
- package/dist/commands/chunk-KPMAJP6D.js +145 -0
- package/dist/commands/chunk-KR6WUAJM.js +122 -0
- package/dist/commands/chunk-KWLNK2NJ.js +391 -0
- package/dist/commands/chunk-L2CLCNXW.js +144 -0
- package/dist/commands/chunk-L7MDU6D7.js +155 -0
- package/dist/commands/chunk-L7VD4MLF.js +78 -0
- package/dist/commands/chunk-LBMAJDGN.js +124 -0
- package/dist/commands/chunk-LBVYFW3I.js +38 -0
- package/dist/commands/chunk-LE3M42CF.js +350 -0
- package/dist/commands/chunk-LIPUSINQ.js +140 -0
- package/dist/commands/chunk-LJVZWE3A.js +1885 -0
- package/dist/commands/chunk-LKSSQVDA.js +49 -0
- package/dist/commands/chunk-LL6G34MF.js +93 -0
- package/dist/commands/chunk-LNQOL2CL.js +321 -0
- package/dist/commands/chunk-LS7P324N.js +72 -0
- package/dist/commands/chunk-LU5EOGFQ.js +50 -0
- package/dist/commands/chunk-LX2ENXHZ.js +197 -0
- package/dist/commands/chunk-M32UPB2D.js +110 -0
- package/dist/commands/chunk-M3UGRNNB.js +103 -0
- package/dist/commands/chunk-M4WG74Q7.js +260 -0
- package/dist/commands/chunk-M5HA2ZCG.js +105 -0
- package/dist/commands/chunk-MDGPJOLK.js +351 -0
- package/dist/commands/chunk-MDKRTUE4.js +288 -0
- package/dist/commands/chunk-MFZVRWRS.js +34 -0
- package/dist/commands/chunk-MHXIJKGP.js +304 -0
- package/dist/commands/chunk-MK4CARBI.js +90 -0
- package/dist/commands/chunk-MLJDW7YN.js +64 -0
- package/dist/commands/chunk-MNLHYAJO.js +80 -0
- package/dist/commands/chunk-MOD3FG4V.js +419 -0
- package/dist/commands/chunk-MRAEJLXL.js +83 -0
- package/dist/commands/chunk-MRW2WYJS.js +68 -0
- package/dist/commands/chunk-MXPCEZL5.js +23 -0
- package/dist/commands/chunk-N2XH7QBY.js +103 -0
- package/dist/commands/chunk-N2ZF6T4E.js +332 -0
- package/dist/commands/chunk-N36NZMAL.js +79 -0
- package/dist/commands/chunk-N4EMFHQ6.js +114 -0
- package/dist/commands/chunk-N4P64UIH.js +211 -0
- package/dist/commands/chunk-NABSSY4P.js +204 -0
- package/dist/commands/chunk-NDQIJBRQ.js +100 -0
- package/dist/commands/chunk-NDR4PCVG.js +29 -0
- package/dist/commands/chunk-NEOCCN6D.js +302 -0
- package/dist/commands/chunk-NFKWFOFM.js +45 -0
- package/dist/commands/chunk-NFUPJBBG.js +516 -0
- package/dist/commands/chunk-NHEBKL7X.js +170 -0
- package/dist/commands/chunk-NHTEC5U4.js +99 -0
- package/dist/commands/chunk-NOSG3RUP.js +84 -0
- package/dist/commands/chunk-NOSODWWK.js +1132 -0
- package/dist/commands/chunk-NPXXYG6Z.js +580 -0
- package/dist/commands/chunk-NR2JDBPV.js +75 -0
- package/dist/commands/chunk-NRULNBYI.js +1153 -0
- package/dist/commands/chunk-NTGF5N3N.js +110 -0
- package/dist/commands/chunk-NTIVNQKF.js +73 -0
- package/dist/commands/chunk-NUCFIYZL.js +119 -0
- package/dist/commands/chunk-NVMV7BYX.js +88 -0
- package/dist/commands/chunk-NYWPTYGL.js +169 -0
- package/dist/commands/chunk-NZ45KOLL.js +104 -0
- package/dist/commands/chunk-O45BX4EL.js +39 -0
- package/dist/commands/chunk-O46T4ANI.js +229 -0
- package/dist/commands/chunk-O5JGV7NA.js +245 -0
- package/dist/commands/chunk-O7ESC4HL.js +566 -0
- package/dist/commands/chunk-OBYLXHCH.js +86 -0
- package/dist/commands/chunk-OKN63ZH5.js +109 -0
- package/dist/commands/chunk-ON4IKRGS.js +469 -0
- package/dist/commands/chunk-OT74RSQO.js +82 -0
- package/dist/commands/chunk-OVCVINYW.js +143 -0
- package/dist/commands/chunk-OZKLVTYI.js +342 -0
- package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
- package/dist/commands/chunk-P43GWYR6.js +185 -0
- package/dist/commands/chunk-P6ASP2DY.js +132 -0
- package/dist/commands/chunk-PBAEJ5PT.js +38 -0
- package/dist/commands/chunk-PCZROH3R.js +100 -0
- package/dist/commands/chunk-PF3PMT2Q.js +46 -0
- package/dist/commands/chunk-PILH72AV.js +170 -0
- package/dist/commands/chunk-PJYTUUTH.js +34 -0
- package/dist/commands/chunk-PKXTISWR.js +58 -0
- package/dist/commands/chunk-PSGLUBSB.js +74 -0
- package/dist/commands/chunk-PUQA7F6Y.js +186 -0
- package/dist/commands/chunk-PVRDJU2B.js +126 -0
- package/dist/commands/chunk-Q3HM2BEH.js +45 -0
- package/dist/commands/chunk-Q42NF2TL.js +47 -0
- package/dist/commands/chunk-Q4ULMZAS.js +106 -0
- package/dist/commands/chunk-QCRUPRQ2.js +207 -0
- package/dist/commands/chunk-QFIKPGMC.js +280 -0
- package/dist/commands/chunk-QSBYULSS.js +100 -0
- package/dist/commands/chunk-QSJCZATC.js +18 -0
- package/dist/commands/chunk-QTJPCXEW.js +23 -0
- package/dist/commands/chunk-QTQAI2M2.js +179 -0
- package/dist/commands/chunk-QTVVFV4Q.js +127 -0
- package/dist/commands/chunk-QX2EMUXV.js +102 -0
- package/dist/commands/chunk-QXBOECGL.js +272 -0
- package/dist/commands/chunk-QXCG3SG4.js +88 -0
- package/dist/commands/chunk-QZVMGAWV.js +307 -0
- package/dist/commands/chunk-R36VZIKU.js +53 -0
- package/dist/commands/chunk-R3F7F3TX.js +94 -0
- package/dist/commands/chunk-R5AABJZJ.js +1062 -0
- package/dist/commands/chunk-R7PYR4HW.js +389 -0
- package/dist/commands/chunk-RDUFVQVJ.js +997 -0
- package/dist/commands/chunk-RESNXNDG.js +54 -0
- package/dist/commands/chunk-RFIOZTXY.js +305 -0
- package/dist/commands/chunk-RFWB2KAV.js +102 -0
- package/dist/commands/chunk-RFXON3FK.js +25 -0
- package/dist/commands/chunk-RGEB5L37.js +66 -0
- package/dist/commands/chunk-RGRLLF2J.js +119 -0
- package/dist/commands/chunk-RLRIMYXM.js +178 -0
- package/dist/commands/chunk-RNB3DQOZ.js +70 -0
- package/dist/commands/chunk-RO4QEZJO.js +172 -0
- package/dist/commands/chunk-RS5HBJY6.js +161 -0
- package/dist/commands/chunk-RV7EQIE4.js +202 -0
- package/dist/commands/chunk-RWPCK3CO.js +41 -0
- package/dist/commands/chunk-RWYSVFIA.js +250 -0
- package/dist/commands/chunk-RYKK75YT.js +289 -0
- package/dist/commands/chunk-S4JE63QE.js +704 -0
- package/dist/commands/chunk-S4OZJIXD.js +134 -0
- package/dist/commands/chunk-SD4EX75H.js +177 -0
- package/dist/commands/chunk-SJITWFNY.js +480 -0
- package/dist/commands/chunk-SKGDMAIA.js +33 -0
- package/dist/commands/chunk-SNSZ25XZ.js +393 -0
- package/dist/commands/chunk-SQZZHK6X.js +119 -0
- package/dist/commands/chunk-SRTEE34O.js +93 -0
- package/dist/commands/chunk-SYTCTLMD.js +285 -0
- package/dist/commands/chunk-T6JUDQMW.js +181 -0
- package/dist/commands/chunk-T6OUNP7E.js +426 -0
- package/dist/commands/chunk-TEXUEBGE.js +208 -0
- package/dist/commands/chunk-TFDVTU6O.js +910 -0
- package/dist/commands/chunk-TFYYXETQ.js +472 -0
- package/dist/commands/chunk-TMFKVJUW.js +121 -0
- package/dist/commands/chunk-TNJU4CXD.js +32 -0
- package/dist/commands/chunk-TRHWBUWE.js +61 -0
- package/dist/commands/chunk-TROCFVCU.js +45 -0
- package/dist/commands/chunk-TTTZZN7F.js +269 -0
- package/dist/commands/chunk-TUBBESHU.js +85 -0
- package/dist/commands/chunk-TVZIFZZN.js +62 -0
- package/dist/commands/chunk-TXRWAL63.js +144 -0
- package/dist/commands/chunk-U46YTYJQ.js +92 -0
- package/dist/commands/chunk-U5EO4QEV.js +48 -0
- package/dist/commands/chunk-UCO333EX.js +47 -0
- package/dist/commands/chunk-UIXQ4IYT.js +445 -0
- package/dist/commands/chunk-UJGNYPMD.js +716 -0
- package/dist/commands/chunk-URZ4RDC4.js +220 -0
- package/dist/commands/chunk-UUH3DE77.js +57 -0
- package/dist/commands/chunk-UVY5ODCM.js +60 -0
- package/dist/commands/chunk-UWMB6EOU.js +45 -0
- package/dist/commands/chunk-UX3HCPLX.js +449 -0
- package/dist/commands/chunk-UY62WJV6.js +120 -0
- package/dist/commands/chunk-V2T5DP3B.js +224 -0
- package/dist/commands/chunk-VAHQ4AFM.js +585 -0
- package/dist/commands/chunk-VCWNMRH7.js +71 -0
- package/dist/commands/chunk-VHLDQ3PH.js +30 -0
- package/dist/commands/chunk-VL5I2IOD.js +332 -0
- package/dist/commands/chunk-VLN6TSPJ.js +139 -0
- package/dist/commands/chunk-VMG3QB6C.js +81 -0
- package/dist/commands/chunk-VO25PMGS.js +58 -0
- package/dist/commands/chunk-VTLWODJ2.js +133 -0
- package/dist/commands/chunk-VXE3V3OC.js +335 -0
- package/dist/commands/chunk-VY7ZJMDT.js +469 -0
- package/dist/commands/chunk-W3MDLQZF.js +137 -0
- package/dist/commands/chunk-W4BR6QNU.js +1241 -0
- package/dist/commands/chunk-WCYRNNKF.js +76 -0
- package/dist/commands/chunk-WEUUJIWQ.js +84 -0
- package/dist/commands/chunk-WNBJK6QE.js +84 -0
- package/dist/commands/chunk-WR5PKCQW.js +61 -0
- package/dist/commands/chunk-WR73HTRG.js +121 -0
- package/dist/commands/chunk-WRNMUQTD.js +95 -0
- package/dist/commands/chunk-WROJTXWZ.js +138 -0
- package/dist/commands/chunk-WTIPX5NG.js +43 -0
- package/dist/commands/chunk-WWLCQREY.js +225 -0
- package/dist/commands/chunk-WXLW7S4M.js +71 -0
- package/dist/commands/chunk-WXXLJQBO.js +67 -0
- package/dist/commands/chunk-X4LYH6Q4.js +56 -0
- package/dist/commands/chunk-XAEL24EG.js +66 -0
- package/dist/commands/chunk-XCCT6GKA.js +74 -0
- package/dist/commands/chunk-XDR2BRDL.js +216 -0
- package/dist/commands/chunk-XRQMVAB4.js +85 -0
- package/dist/commands/chunk-XSKJAG72.js +91 -0
- package/dist/commands/chunk-XTJA34ND.js +492 -0
- package/dist/commands/chunk-XUXCFPDK.js +218 -0
- package/dist/commands/chunk-XXPDFJRI.js +48 -0
- package/dist/commands/chunk-Y6OGDG5I.js +49 -0
- package/dist/commands/chunk-YEAE46TS.js +98 -0
- package/dist/commands/chunk-YEQFAEVW.js +112 -0
- package/dist/commands/chunk-YJZAD4Z5.js +103 -0
- package/dist/commands/chunk-YMAEYY5R.js +278 -0
- package/dist/commands/chunk-YNCF66RK.js +1052 -0
- package/dist/commands/chunk-YOA25SII.js +210 -0
- package/dist/commands/chunk-YOZTZMAT.js +38 -0
- package/dist/commands/chunk-YSGRHVZG.js +897 -0
- package/dist/commands/chunk-YSLGWRQN.js +646 -0
- package/dist/commands/chunk-YTXCLGGL.js +168 -0
- package/dist/commands/chunk-YVHJN2HS.js +74 -0
- package/dist/commands/chunk-YY7XVVSB.js +43 -0
- package/dist/commands/chunk-Z5GZV4DV.js +16 -0
- package/dist/commands/chunk-Z6QLFPFB.js +907 -0
- package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
- package/dist/commands/chunk-ZCD4AV2P.js +73 -0
- package/dist/commands/chunk-ZCHZU6NX.js +799 -0
- package/dist/commands/chunk-ZEH2B3DF.js +239 -0
- package/dist/commands/chunk-ZEUKX3RZ.js +245 -0
- package/dist/commands/chunk-ZGANVZCA.js +92 -0
- package/dist/commands/chunk-ZGBXUY7R.js +198 -0
- package/dist/commands/chunk-ZGEUWHFF.js +297 -0
- package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
- package/dist/commands/chunk-ZIIUBGON.js +773 -0
- package/dist/commands/chunk-ZJ5S4VFD.js +258 -0
- package/dist/commands/chunk-ZNIIA275.js +59 -0
- package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
- package/dist/commands/ci-timing-cli.js +22 -3
- package/dist/commands/code-symbol-cli.js +21 -7
- package/dist/commands/codex-hook-adapter.js +124 -119
- package/dist/commands/command-derive.js +9 -11
- package/dist/commands/cost-audit-main.js +118 -119
- package/dist/commands/cost-main.js +5 -7
- package/dist/commands/cspell-cached.js +55 -57
- package/dist/commands/defect-origin-main.js +42 -37
- package/dist/commands/defect-report-main.js +33 -25
- package/dist/commands/diff-summary-cli.js +3 -4
- package/dist/commands/disposition-cli.js +117 -118
- package/dist/commands/doctor.js +24 -11
- package/dist/commands/document-read-cli.js +50 -53
- package/dist/commands/document-section-main.js +50 -53
- package/dist/commands/dogfood-commit-cli.js +19 -4
- package/dist/commands/effect-audit-cli.js +40 -41
- package/dist/commands/epic-audit-main.js +88 -86
- package/dist/commands/epic-bundle-main.js +122 -119
- package/dist/commands/epic-check.js +37 -31
- package/dist/commands/epic-main.js +129 -126
- package/dist/commands/epic-next-main.js +85 -83
- package/dist/commands/eval-run.js +6 -7
- package/dist/commands/format-edited-cli.js +71 -46
- package/dist/commands/format.js +41 -56
- package/dist/commands/fresh-machine-cli.js +24 -7
- package/dist/commands/gh-usage-cli.js +22 -22
- package/dist/commands/git-followup-workflow.js +158 -158
- package/dist/commands/git-gh-checks-failed-main.js +23 -15
- package/dist/commands/git-workflow.js +52 -53
- package/dist/commands/github-release-cli.js +3 -3
- package/dist/commands/hook-ledger-cli.js +93 -94
- package/dist/commands/init-main.js +40 -40
- package/dist/commands/inputs.json +2020 -1980
- package/dist/commands/issue-ack-cli.js +28 -21
- package/dist/commands/issue-already-done-cli.js +107 -110
- package/dist/commands/issue-body-cli.js +71 -73
- package/dist/commands/issue-cite-main.js +35 -28
- package/dist/commands/issue-comment-main.js +36 -30
- package/dist/commands/issue-consolidate-cli.js +54 -54
- package/dist/commands/issue-file-main.js +274 -148
- package/dist/commands/issue-fold-existing-cli.js +126 -123
- package/dist/commands/issue-fold-main.js +57 -60
- package/dist/commands/issue-lint-main.js +59 -61
- package/dist/commands/issue-measured-cli.js +108 -110
- package/dist/commands/issue-plan-cli.js +156 -155
- package/dist/commands/issue-premise-unmet-cli.js +111 -113
- package/dist/commands/issue-priority-cli.js +38 -32
- package/dist/commands/issue-read-main.js +38 -33
- package/dist/commands/issue-release-class-cli.js +37 -31
- package/dist/commands/issue-release-main.js +35 -29
- package/dist/commands/issue-scout-main.js +123 -120
- package/dist/commands/issue-spill-main.js +149 -144
- package/dist/commands/issue-state-main.js +36 -31
- package/dist/commands/issue-tick-cli.js +37 -31
- package/dist/commands/josh-completion.js +21 -24
- package/dist/commands/lane-adopt-cli.js +53 -55
- package/dist/commands/lane-breakdown-cli.js +193 -172
- package/dist/commands/lane-cli.js +199 -180
- package/dist/commands/lane-launch-main.js +106 -56
- package/dist/commands/lane-limit-cli.js +119 -116
- package/dist/commands/lane-measure-cli.js +408 -245
- package/dist/commands/lane-pause-cli.js +51 -54
- package/dist/commands/lane-plan-cli.js +148 -147
- package/dist/commands/lane-resolve-cli.js +48 -50
- package/dist/commands/lane-restart-cli.js +185 -168
- package/dist/commands/lane-why-cli.js +121 -122
- package/dist/commands/lane-withdraw-cli.js +84 -86
- package/dist/commands/latest-corepack.js +3 -2
- package/dist/commands/latest-if-required-cli.js +12 -15
- package/dist/commands/latest-lane-guard-main.js +2 -3
- package/dist/commands/latest-scope-main.js +5 -7
- package/dist/commands/latest-update.js +3 -2
- package/dist/commands/lines-command.js +8 -10
- package/dist/commands/lint-parallel-main.js +65 -67
- package/dist/commands/lint-related.js +149 -133
- package/dist/commands/lint-rule.js +64 -66
- package/dist/commands/lockfile-policy.js +29 -32
- package/dist/commands/main-merge-main.js +23 -25
- package/dist/commands/main-sync-main.js +23 -24
- package/dist/commands/managed-config-scope-cli.js +11 -10
- package/dist/commands/measure-rerun-cli.js +31 -26
- package/dist/commands/metrics-command.js +97 -100
- package/dist/commands/observation-record-cli.js +24 -14
- package/dist/commands/observations-flush-cli.js +50 -52
- package/dist/commands/overrides-check.js +1 -1
- package/dist/commands/package-scout-cli.js +70 -73
- package/dist/commands/pin-verify-cli.js +21 -2
- package/dist/commands/plan-consumers-main.js +3 -4
- package/dist/commands/plan-scaffold-cli.js +145 -146
- package/dist/commands/pr-classification-main.js +22 -3
- package/dist/commands/pre-commit-lint.js +30 -34
- package/dist/commands/pre-commit-type-check.js +55 -55
- package/dist/commands/pre-push-unit.js +69 -70
- package/dist/commands/pretool-guard-cli.js +111 -113
- package/dist/commands/prevent-main-commit.js +2 -3
- package/dist/commands/project-profile-cli.js +24 -9
- package/dist/commands/propagate.js +31 -23
- package/dist/commands/prose-stale-cli.js +48 -42
- package/dist/commands/publishable-range-check.js +3 -3
- package/dist/commands/read-set-cli.js +58 -61
- package/dist/commands/refactor-scan-cli.js +8 -9
- package/dist/commands/release-cli.js +57 -57
- package/dist/commands/release-scope-main.js +41 -36
- package/dist/commands/rename-cli.js +64 -36
- package/dist/commands/repo-party-cli.js +3 -4
- package/dist/commands/report-template-cli.js +4 -5
- package/dist/commands/reserved-run.js +17 -20
- package/dist/commands/retrospective-cli.js +126 -127
- package/dist/commands/review-attest-cli.js +28 -20
- package/dist/commands/review-brief-main.js +184 -167
- package/dist/commands/review-findings-cli.js +23 -13
- package/dist/commands/review-pair-cli.js +180 -156
- package/dist/commands/review-record-main.js +171 -147
- package/dist/commands/review-round2-cli.js +89 -91
- package/dist/commands/review-stops-cli.js +51 -54
- package/dist/commands/review-submit-cli.js +184 -167
- package/dist/commands/rule-list.js +78 -80
- package/dist/commands/rule-value-cli.js +115 -116
- package/dist/commands/ruleset-check-cli.js +23 -6
- package/dist/commands/run-add-cli.js +115 -75
- package/dist/commands/run-board-main.js +172 -169
- package/dist/commands/run-carry-cli.js +182 -174
- package/dist/commands/run-chain-cli.js +184 -160
- package/dist/commands/run-cut-cli.js +206 -168
- package/dist/commands/run-ending-cli.js +51 -54
- package/dist/commands/run-entry-cli.js +230 -283
- package/dist/commands/run-event-cli.js +18 -21
- package/dist/commands/run-handoff-cli.js +75 -78
- package/dist/commands/run-handoff-lanes-cli.js +48 -51
- package/dist/commands/run-hold-main.js +105 -107
- package/dist/commands/run-liveness-cli.js +47 -49
- package/dist/commands/run-merge-main.js +159 -151
- package/dist/commands/run-next-cli.js +128 -129
- package/dist/commands/run-park-cli.js +137 -140
- package/dist/commands/run-pause-cli.js +190 -186
- package/dist/commands/run-pickup-cli.js +49 -52
- package/dist/commands/run-prep-main.js +124 -125
- package/dist/commands/run-prime-cli.js +175 -147
- package/dist/commands/run-progress-main.js +149 -146
- package/dist/commands/run-report-cli.js +60 -60
- package/dist/commands/run-review-cli.js +229 -214
- package/dist/commands/run-ship-cli.js +258 -252
- package/dist/commands/run-ship-evidence-cli.js +71 -72
- package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
- package/dist/commands/run-ship-wait-main.js +83 -85
- package/dist/commands/run-split-cli.js +176 -172
- package/dist/commands/run-stale-main.js +72 -75
- package/dist/commands/run-status-cli.js +44 -44
- package/dist/commands/run-step-cli.js +213 -211
- package/dist/commands/run-tail-cli.js +23 -18
- package/dist/commands/run-tidy-main.js +67 -69
- package/dist/commands/run-wake-main.js +206 -187
- package/dist/commands/run-watcher-guard-cli.js +63 -66
- package/dist/commands/security-audit-main.js +21 -24
- package/dist/commands/security-audit-provision-main.js +9 -11
- package/dist/commands/selfcheck-cli.js +63 -57
- package/dist/commands/session-language-main.js +70 -73
- package/dist/commands/sonar-hotspots-cli.js +9 -8
- package/dist/commands/sonar-new-code-cli.js +3 -4
- package/dist/commands/split-assess-cli.js +55 -58
- package/dist/commands/split-child-recover-cli.js +38 -39
- package/dist/commands/start.js +64 -64
- package/dist/commands/stash-pop-main.js +4 -5
- package/dist/commands/stash-push-main.js +7 -9
- package/dist/commands/stop-guard.js +180 -176
- package/dist/commands/sync-main.js +30 -15
- package/dist/commands/telegram-test-main.js +29 -22
- package/dist/commands/test-declared.js +29 -15
- package/dist/commands/test-e2e-guard.js +54 -54
- package/dist/commands/test-pinned-main.js +57 -56
- package/dist/commands/test-reach-cli.js +40 -32
- package/dist/commands/test-red-main.js +12 -14
- package/dist/commands/test-related-Z6YY2GFH.js +113 -0
- package/dist/commands/test-related-main.js +89 -89
- package/dist/commands/test-unit-guard-main.js +37 -37
- package/dist/commands/time-cli.js +54 -57
- package/dist/commands/time-density-cli.js +26 -29
- package/dist/commands/tree-status-cli.js +6 -8
- package/dist/commands/type-check-command.js +26 -11
- package/dist/commands/ui-routes-cli.js +5 -6
- package/dist/commands/ui-shot-cli.js +1 -1
- package/dist/commands/uninstall.js +44 -43
- package/dist/commands/unused-members-KVKZDTXD.js +329 -0
- package/dist/commands/unused-members-cli.js +27 -12
- package/dist/commands/upstream-interrupt-main.js +159 -151
- package/dist/commands/verification-gate.js +85 -86
- package/dist/commands/version-check.js +25 -8
- package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
- package/dist/hooks/chunk-46PTTMGE.js +1625 -0
- package/dist/hooks/chunk-5NIBRHWG.js +77 -0
- package/dist/hooks/chunk-76QKN2K3.js +258 -0
- package/dist/hooks/chunk-CHEKMGFP.js +321 -0
- package/dist/hooks/chunk-DCILEVDR.js +5173 -0
- package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
- package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
- package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
- package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
- package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
- package/dist/hooks/codex-hook-adapter.js +11 -12
- package/dist/hooks/daemon.js +2140 -1387
- package/dist/hooks/format-edited.js +6 -6
- package/dist/hooks/inputs.json +521 -497
- package/dist/hooks/pretool-guard.js +8 -8
- package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
- package/dist/hooks/session-lang.js +9 -7
- package/dist/hooks/stop-guard.js +962 -669
- package/dist/inputs.json +63 -54
- package/dist/josh.js +1029 -577
- package/dist/registry-migrate.mjs +33938 -0
- package/dist/version/index.js +4251 -175
- package/package.json +4 -1
- package/prompts/collaboration-workflow/principles.md +4 -1
- package/prompts/collaboration-workflow/rule-delivery.md +1 -1
- package/scripts/agent/codex-launch-identity.ts +70 -0
- package/scripts/auto-ok/auto-ok-cli.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge.ts +3 -1
- package/scripts/backlog/backlog-arrival.ts +1 -1
- package/scripts/backlog/backlog-budget.ts +5 -2
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
- package/scripts/backlog/backlog-drain-flush.ts +38 -3
- package/scripts/backlog/backlog-drive-cli.ts +1 -1
- package/scripts/backlog/backlog-drive-hold.ts +28 -5
- package/scripts/backlog/backlog-drive-launch.ts +37 -15
- package/scripts/backlog/backlog-drive-listing.ts +39 -23
- package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
- package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
- package/scripts/backlog/backlog-hold-codes.ts +7 -0
- package/scripts/backlog/backlog-hold-text.ts +14 -1
- package/scripts/backlog/backlog-measure-close.ts +6 -0
- package/scripts/backlog/backlog-next-shared.ts +20 -2
- package/scripts/backlog/backlog-next.ts +24 -3
- package/scripts/backlog/backlog-offer-cli.ts +69 -16
- package/scripts/build/build-migration.ts +25 -0
- package/scripts/build/build.ts +2 -0
- package/scripts/epic/epic-classify.ts +6 -1
- package/scripts/epic/epic-live.ts +46 -0
- package/scripts/followup/followup-failed-tests.ts +71 -10
- package/scripts/followup/followup-job-rerun.ts +2 -2
- package/scripts/gate/change-scope-action.integration.test.ts +88 -0
- package/scripts/gate/change-scope-action.ts +2 -0
- package/scripts/gate/check-related-order.ts +6 -7
- package/scripts/gate/check-related.ts +18 -8
- package/scripts/gate/core-admission.ts +17 -30
- package/scripts/gate/core-budget-poll.ts +183 -0
- package/scripts/gate/core-budget-timing.ts +1 -1
- package/scripts/gate/core-budget.ts +24 -112
- package/scripts/gate/core-wait-record.ts +52 -7
- package/scripts/gate/machine-capacity.ts +6 -2
- package/scripts/gate/metrics-totals.ts +11 -0
- package/scripts/gate/path-glob.test.ts +18 -0
- package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
- package/scripts/gh/fix-gh-packages-logic.ts +22 -15
- package/scripts/gh/gh-request-tally.ts +4 -0
- package/scripts/hooks/bash-revert.ts +79 -31
- package/scripts/hooks/format-edited-file.ts +6 -8
- package/scripts/hooks/implementation-shell.ts +3 -2
- package/scripts/init/distributed-paths.ts +18 -5
- package/scripts/init/init-actions.ts +16 -1
- package/scripts/init/init-bootstrap.ts +2 -0
- package/scripts/init/init-logic.ts +40 -8
- package/scripts/init/init.ts +11 -3
- package/scripts/issue/defect-rate-cli.ts +19 -13
- package/scripts/issue/issue-file-batch.ts +7 -3
- package/scripts/issue/issue-file-cli.ts +19 -6
- package/scripts/issue/issue-file-main.ts +6 -1
- package/scripts/issue/issue-file-pass.ts +17 -0
- package/scripts/issue/issue-file.ts +3 -0
- package/scripts/issue/issue-not-before.ts +9 -2
- package/scripts/issue/issue-observation-gate.ts +141 -0
- package/scripts/issue/issue-observation-prime.ts +83 -0
- package/scripts/issue/issue-publication-state.ts +61 -0
- package/scripts/issue/issue-publication.ts +144 -0
- package/scripts/issue/issue-sample-prime.ts +2 -0
- package/scripts/issue/issue-search-count.ts +26 -0
- package/scripts/issue/issue-search.ts +128 -3
- package/scripts/issue/issue-spill-cli.ts +4 -0
- package/scripts/issue/upstream-interrupt-cli.ts +21 -5
- package/scripts/josh/josh-commands-ai.ts +1 -1
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-issue-write.ts +9 -0
- package/scripts/josh/josh-commands-run.ts +6 -1
- package/scripts/josh/josh-commands-ship.ts +5 -5
- package/scripts/josh/josh-run.ts +5 -2
- package/scripts/josh/shared-cache.ts +16 -1
- package/scripts/lane/lane-await.ts +15 -0
- package/scripts/lane/lane-cli.ts +2 -0
- package/scripts/lane/lane-dispatch-dependency.ts +102 -0
- package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
- package/scripts/lane/lane-dispatch.ts +44 -5
- package/scripts/lane/lane-early-push-count.ts +21 -0
- package/scripts/lane/lane-install.ts +15 -5
- package/scripts/lane/lane-launch-cli.ts +35 -14
- package/scripts/lane/lane-ledger-kind.ts +2 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
- package/scripts/lane/lane-ledger-schema.ts +15 -1
- package/scripts/lane/lane-ledger-write.ts +4 -1
- package/scripts/lane/lane-relaunch.ts +25 -2
- package/scripts/lane/lane-state-record.ts +2 -0
- package/scripts/lane/lane-state.ts +8 -1
- package/scripts/lane/lane-stats-tables.ts +2 -0
- package/scripts/lane/openai-lane-supervisor.ts +16 -1
- package/scripts/lib/inherited-scope.ts +48 -0
- package/scripts/lint/format-steps.ts +93 -0
- package/scripts/lint/format.ts +6 -49
- package/scripts/lint/lint-related-fix.ts +35 -0
- package/scripts/lint/lint-related.ts +22 -35
- package/scripts/propagate/propagate-steps.ts +9 -4
- package/scripts/registry-migration/migrate-cli.ts +50 -0
- package/scripts/registry-migration/migrate-files.ts +154 -0
- package/scripts/registry-migration/migrate-lock.ts +147 -0
- package/scripts/registry-migration/migrate.ts +235 -0
- package/scripts/registry-migration/npm-acquisition.ts +118 -0
- package/scripts/review/review-record-cli.ts +27 -13
- package/scripts/review/review-record-pinned.ts +15 -6
- package/scripts/run/add/run-add-cli.ts +21 -3
- package/scripts/run/add/run-add.ts +26 -9
- package/scripts/run/board/run-board-layout.ts +2 -2
- package/scripts/run/board/run-board-reason.ts +12 -0
- package/scripts/run/board/run-board-retry-wait.ts +35 -0
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +6 -4
- package/scripts/run/carry/run-carry-reclaim.ts +12 -2
- package/scripts/run/carry/run-carry-session.ts +48 -0
- package/scripts/run/carry/run-carry.ts +21 -14
- package/scripts/run/cut/run-cut-resume.ts +15 -3
- package/scripts/run/cut/run-cut.ts +1 -1
- package/scripts/run/detached-launch.ts +14 -5
- package/scripts/run/early-push-record.ts +6 -2
- package/scripts/run/event/run-event-setup.ts +2 -0
- package/scripts/run/event/run-event-stream-emit.ts +27 -7
- package/scripts/run/hold/run-hold-cli.ts +40 -5
- package/scripts/run/merge/run-merge-cut-release.ts +17 -0
- package/scripts/run/merge/run-merge-human-review.ts +6 -0
- package/scripts/run/merge/run-merge-steps.ts +4 -57
- package/scripts/run/merge/run-merge-waits.ts +54 -0
- package/scripts/run/prime/run-prime-cli.ts +16 -2
- package/scripts/run/review/run-review-cli.ts +5 -7
- package/scripts/run/review/run-review-early-push.ts +19 -8
- package/scripts/run/review/run-review-join-read.ts +33 -6
- package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
- package/scripts/run/review/run-review-pinned-steps.ts +7 -1
- package/scripts/run/run-halfrun-resume.ts +49 -6
- package/scripts/run/run-headless.ts +3 -0
- package/scripts/run/run-pr-return.ts +14 -5
- package/scripts/run/run-repair-attempt.ts +219 -0
- package/scripts/run/ship/run-ship-lap.ts +5 -17
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
- package/scripts/run/ship/run-ship-scoped.ts +66 -30
- package/scripts/run/startup/run-startup-schema.ts +31 -0
- package/scripts/run/startup/run-startup-store.ts +130 -0
- package/scripts/run/startup/run-startup.ts +119 -0
- package/scripts/run/wake/run-wake-codex.ts +144 -0
- package/scripts/run/wake/run-wake-driver.ts +32 -7
- package/scripts/run/wake/run-wake-handoff.ts +9 -8
- package/scripts/run/wake/run-wake-loop.ts +23 -3
- package/scripts/run/wake/run-wake-ports.ts +17 -3
- package/scripts/run/wake/run-wake-takeover.ts +6 -3
- package/scripts/run/wake/run-wake-window.ts +4 -1
- package/scripts/run/wake/run-wake.ts +5 -0
- package/scripts/sync/sync-ai-files.ts +17 -0
- package/scripts/sync/sync-configs.ts +11 -1
- package/scripts/sync/sync.ts +5 -1
- package/scripts/test/test-related-cap.ts +7 -3
- package/scripts/test/test-related-imports.ts +92 -0
- package/scripts/test/vitest-failure-summary.ts +7 -0
- package/scripts/version/npm-registry.ts +45 -7
- package/scripts/version/upgrade-shell-command.ts +34 -2
- package/templates/workflows/ci.yml +0 -15
- package/templates/workflows/github-release.yml +0 -5
- package/dist/commands/chunk-23GH6B3D.js +0 -333
- package/dist/commands/chunk-24OATKOF.js +0 -7534
- package/dist/commands/chunk-24ZDAWML.js +0 -48
- package/dist/commands/chunk-2BB5ZR2F.js +0 -128
- package/dist/commands/chunk-2BJJUTZA.js +0 -59
- package/dist/commands/chunk-2CXT6MBR.js +0 -51
- package/dist/commands/chunk-2DJLAUYB.js +0 -109
- package/dist/commands/chunk-2EZTYLO4.js +0 -179
- package/dist/commands/chunk-2FJJYCBD.js +0 -149
- package/dist/commands/chunk-2PHOLX62.js +0 -43
- package/dist/commands/chunk-2QM72JCJ.js +0 -338
- package/dist/commands/chunk-2VRITY55.js +0 -41
- package/dist/commands/chunk-2XAH3MHV.js +0 -23
- package/dist/commands/chunk-34KZDKQJ.js +0 -304
- package/dist/commands/chunk-352KLSFX.js +0 -67
- package/dist/commands/chunk-36LOGVJ7.js +0 -38
- package/dist/commands/chunk-3AEDZZNL.js +0 -223
- package/dist/commands/chunk-3B2HEFNO.js +0 -51
- package/dist/commands/chunk-3PEXBHRN.js +0 -33
- package/dist/commands/chunk-3Z425MM3.js +0 -61
- package/dist/commands/chunk-3ZOX4G4U.js +0 -88
- package/dist/commands/chunk-452HWOJ7.js +0 -395
- package/dist/commands/chunk-475EFIJV.js +0 -178
- package/dist/commands/chunk-47UZB54M.js +0 -73
- package/dist/commands/chunk-4DN4XVPL.js +0 -716
- package/dist/commands/chunk-4DVM57T7.js +0 -86
- package/dist/commands/chunk-4EADHJVC.js +0 -247
- package/dist/commands/chunk-4HERA2GY.js +0 -95
- package/dist/commands/chunk-4JI35CVO.js +0 -70
- package/dist/commands/chunk-4L4LNWZ7.js +0 -143
- package/dist/commands/chunk-4N32QKJZ.js +0 -170
- package/dist/commands/chunk-4NRSFLG7.js +0 -185
- package/dist/commands/chunk-4OKRPAUT.js +0 -98
- package/dist/commands/chunk-4PUKDAXL.js +0 -42
- package/dist/commands/chunk-4Q64PG46.js +0 -478
- package/dist/commands/chunk-4UDTQVDD.js +0 -278
- package/dist/commands/chunk-4WR2LEZL.js +0 -123
- package/dist/commands/chunk-4ZJOC6OK.js +0 -298
- package/dist/commands/chunk-4ZQM4I7R.js +0 -533
- package/dist/commands/chunk-54X37JEJ.js +0 -170
- package/dist/commands/chunk-56KW5EOK.js +0 -85
- package/dist/commands/chunk-5CG3XU3O.js +0 -74
- package/dist/commands/chunk-5ESZLHDZ.js +0 -514
- package/dist/commands/chunk-5FBRMARM.js +0 -578
- package/dist/commands/chunk-5RG4S66L.js +0 -47
- package/dist/commands/chunk-5UJGACVN.js +0 -137
- package/dist/commands/chunk-5Y7B7FDL.js +0 -44
- package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
- package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
- package/dist/commands/chunk-5ZTQX7OS.js +0 -125
- package/dist/commands/chunk-66NX6EXR.js +0 -29
- package/dist/commands/chunk-66TGK5XL.js +0 -84
- package/dist/commands/chunk-6CFHLMKM.js +0 -555
- package/dist/commands/chunk-6DDK5XWK.js +0 -74
- package/dist/commands/chunk-6GQX752S.js +0 -145
- package/dist/commands/chunk-6HRRZANN.js +0 -55
- package/dist/commands/chunk-6MAZ55GF.js +0 -1241
- package/dist/commands/chunk-6OP63TBT.js +0 -78
- package/dist/commands/chunk-6Q3XUCLM.js +0 -204
- package/dist/commands/chunk-6RUWU2SB.js +0 -45
- package/dist/commands/chunk-6UCWAFQY.js +0 -245
- package/dist/commands/chunk-6WKJ3GDA.js +0 -408
- package/dist/commands/chunk-6YURRFRU.js +0 -461
- package/dist/commands/chunk-6YVURZAJ.js +0 -350
- package/dist/commands/chunk-6Z4YZG7P.js +0 -169
- package/dist/commands/chunk-77BIN247.js +0 -122
- package/dist/commands/chunk-7ABHNNY3.js +0 -529
- package/dist/commands/chunk-7C7FOKJK.js +0 -115
- package/dist/commands/chunk-7HAGC6SW.js +0 -1062
- package/dist/commands/chunk-7KKUFLH5.js +0 -56
- package/dist/commands/chunk-7LJQMM2K.js +0 -102
- package/dist/commands/chunk-7MJYLUF4.js +0 -99
- package/dist/commands/chunk-7NHZCI5Y.js +0 -704
- package/dist/commands/chunk-7OQ56DVW.js +0 -239
- package/dist/commands/chunk-7VWPGTZO.js +0 -260
- package/dist/commands/chunk-7YZXS3AK.js +0 -30
- package/dist/commands/chunk-A4HOQKOG.js +0 -85
- package/dist/commands/chunk-A6T2N7VC.js +0 -159
- package/dist/commands/chunk-AAUDI7WJ.js +0 -250
- package/dist/commands/chunk-AC26ZUG5.js +0 -259
- package/dist/commands/chunk-ACZ52JPI.js +0 -140
- package/dist/commands/chunk-AJ65WNJB.js +0 -230
- package/dist/commands/chunk-AK7SEO4Y.js +0 -177
- package/dist/commands/chunk-AKK56GNX.js +0 -205
- package/dist/commands/chunk-AKQYYHP2.js +0 -461
- package/dist/commands/chunk-ALDAS2WG.js +0 -137
- package/dist/commands/chunk-ANUTT56I.js +0 -85
- package/dist/commands/chunk-AVVMDVGO.js +0 -68
- package/dist/commands/chunk-B3M5WSGN.js +0 -72
- package/dist/commands/chunk-B7ZNIEDV.js +0 -351
- package/dist/commands/chunk-BCUDQWYK.js +0 -77
- package/dist/commands/chunk-BF6YX4HE.js +0 -70
- package/dist/commands/chunk-BHRS7HAM.js +0 -272
- package/dist/commands/chunk-BIKGPT52.js +0 -29
- package/dist/commands/chunk-BJA5U4Q7.js +0 -75
- package/dist/commands/chunk-BMKWSWWE.js +0 -126
- package/dist/commands/chunk-BMTYUJNT.js +0 -59
- package/dist/commands/chunk-BRHPRDDV.js +0 -127
- package/dist/commands/chunk-BRUBX64M.js +0 -33
- package/dist/commands/chunk-BTZJDHQT.js +0 -46
- package/dist/commands/chunk-BYFC6MD2.js +0 -72
- package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
- package/dist/commands/chunk-C2SEDMZ3.js +0 -238
- package/dist/commands/chunk-C54QXJD6.js +0 -4208
- package/dist/commands/chunk-C6QSVO5K.js +0 -56
- package/dist/commands/chunk-CBAKBWSZ.js +0 -332
- package/dist/commands/chunk-CFHRNTE5.js +0 -326
- package/dist/commands/chunk-CGLLAEKZ.js +0 -110
- package/dist/commands/chunk-CHKYPF5O.js +0 -82
- package/dist/commands/chunk-CJBW6BWG.js +0 -800
- package/dist/commands/chunk-CJKPF5DJ.js +0 -156
- package/dist/commands/chunk-CKUKK7JG.js +0 -252
- package/dist/commands/chunk-CMHGDCGN.js +0 -263
- package/dist/commands/chunk-CNGTHSUS.js +0 -750
- package/dist/commands/chunk-CP2J4RV2.js +0 -3987
- package/dist/commands/chunk-CQZI7RIK.js +0 -72
- package/dist/commands/chunk-CWCKCZS6.js +0 -188
- package/dist/commands/chunk-D5HIP4HT.js +0 -289
- package/dist/commands/chunk-D6D6WQR6.js +0 -125
- package/dist/commands/chunk-D7JRJI44.js +0 -297
- package/dist/commands/chunk-D7OAU32Z.js +0 -119
- package/dist/commands/chunk-DAAX7XDS.js +0 -1208
- package/dist/commands/chunk-DBKTFB5V.js +0 -18
- package/dist/commands/chunk-DEZF7QZZ.js +0 -184
- package/dist/commands/chunk-DMD74E3F.js +0 -39
- package/dist/commands/chunk-DPJVKTO4.js +0 -41
- package/dist/commands/chunk-DXJQHJQ4.js +0 -73
- package/dist/commands/chunk-DYZOOWVW.js +0 -912
- package/dist/commands/chunk-EBI2BAKQ.js +0 -47
- package/dist/commands/chunk-EDKOSZ3K.js +0 -88
- package/dist/commands/chunk-EFDVE5P5.js +0 -121
- package/dist/commands/chunk-EGIHAEMT.js +0 -72
- package/dist/commands/chunk-EKLU6QR7.js +0 -507
- package/dist/commands/chunk-ELY76WAR.js +0 -65
- package/dist/commands/chunk-EM3HAZF6.js +0 -52
- package/dist/commands/chunk-EMTZAGT5.js +0 -51
- package/dist/commands/chunk-ENKFCOVY.js +0 -472
- package/dist/commands/chunk-ERG4QRNG.js +0 -224
- package/dist/commands/chunk-EUGNQCYK.js +0 -139
- package/dist/commands/chunk-EW4NPUMQ.js +0 -363
- package/dist/commands/chunk-EWVR5AEX.js +0 -140
- package/dist/commands/chunk-EXDFKKMH.js +0 -113
- package/dist/commands/chunk-EXWB34R2.js +0 -238
- package/dist/commands/chunk-EYMPBHDN.js +0 -61
- package/dist/commands/chunk-EZ7IPKIH.js +0 -20
- package/dist/commands/chunk-EZSO25UZ.js +0 -80
- package/dist/commands/chunk-F6IQHZYY.js +0 -94
- package/dist/commands/chunk-FDS65XOJ.js +0 -212
- package/dist/commands/chunk-FFHEGWPK.js +0 -91
- package/dist/commands/chunk-FGL6DBZU.js +0 -71
- package/dist/commands/chunk-FHFWNNUC.js +0 -144
- package/dist/commands/chunk-FIUCHMCF.js +0 -32
- package/dist/commands/chunk-FJX7AENO.js +0 -74
- package/dist/commands/chunk-FKZ5E4JD.js +0 -97
- package/dist/commands/chunk-FMZWRDKH.js +0 -302
- package/dist/commands/chunk-FOKCRIAN.js +0 -67
- package/dist/commands/chunk-FQGWO2ZH.js +0 -43
- package/dist/commands/chunk-FROACLVU.js +0 -525
- package/dist/commands/chunk-FURNDIT3.js +0 -34
- package/dist/commands/chunk-FVDQNMP6.js +0 -93
- package/dist/commands/chunk-FVVZIJUC.js +0 -425
- package/dist/commands/chunk-FWU3H4TX.js +0 -17
- package/dist/commands/chunk-G3HBYHFA.js +0 -16
- package/dist/commands/chunk-G4E4M2P4.js +0 -299
- package/dist/commands/chunk-G5KSL2Q2.js +0 -151
- package/dist/commands/chunk-G6XC7V6Y.js +0 -58
- package/dist/commands/chunk-GCPP5XIG.js +0 -90
- package/dist/commands/chunk-GITT5A5A.js +0 -198
- package/dist/commands/chunk-GJYMI2CM.js +0 -48
- package/dist/commands/chunk-GLC47H7I.js +0 -285
- package/dist/commands/chunk-GUR54ELE.js +0 -328
- package/dist/commands/chunk-GW4UWR3O.js +0 -126
- package/dist/commands/chunk-GY4DMCKS.js +0 -306
- package/dist/commands/chunk-H6JQRHDC.js +0 -80
- package/dist/commands/chunk-HATKF6VX.js +0 -173
- package/dist/commands/chunk-HG2NZQD5.js +0 -135
- package/dist/commands/chunk-HH3CVIFU.js +0 -93
- package/dist/commands/chunk-HHMMGDMP.js +0 -469
- package/dist/commands/chunk-HI5WPM6C.js +0 -127
- package/dist/commands/chunk-HQGNXR6I.js +0 -245
- package/dist/commands/chunk-HTIDHEEN.js +0 -108
- package/dist/commands/chunk-HVCQYZVD.js +0 -38
- package/dist/commands/chunk-HWEZRNPL.js +0 -66
- package/dist/commands/chunk-HX3FFIO5.js +0 -74
- package/dist/commands/chunk-HXDTA5VU.js +0 -208
- package/dist/commands/chunk-I2KCGKJI.js +0 -107
- package/dist/commands/chunk-I63RNFFR.js +0 -213
- package/dist/commands/chunk-IAD4WLLI.js +0 -98
- package/dist/commands/chunk-IB5TT73I.js +0 -177
- package/dist/commands/chunk-IBAYXCMU.js +0 -156
- package/dist/commands/chunk-IGDJNXX2.js +0 -49
- package/dist/commands/chunk-ILGPZ47M.js +0 -33
- package/dist/commands/chunk-IYJEBWW5.js +0 -44
- package/dist/commands/chunk-J22PSIXR.js +0 -418
- package/dist/commands/chunk-J66YBAAM.js +0 -161
- package/dist/commands/chunk-J6WKZRV2.js +0 -391
- package/dist/commands/chunk-J7IO3AYH.js +0 -179
- package/dist/commands/chunk-JAKC2BHX.js +0 -88
- package/dist/commands/chunk-JCAQ7B6J.js +0 -124
- package/dist/commands/chunk-JHN6RCE6.js +0 -123
- package/dist/commands/chunk-JIGBNCDR.js +0 -88
- package/dist/commands/chunk-JJHWTFWQ.js +0 -76
- package/dist/commands/chunk-JJRKTWLK.js +0 -64
- package/dist/commands/chunk-JKOGWGQM.js +0 -92
- package/dist/commands/chunk-JM6EVOFN.js +0 -172
- package/dist/commands/chunk-JQXPLMCO.js +0 -81
- package/dist/commands/chunk-JV24VP2O.js +0 -81
- package/dist/commands/chunk-JVKXJ763.js +0 -45
- package/dist/commands/chunk-K275REYP.js +0 -37
- package/dist/commands/chunk-K4G3HOKS.js +0 -105
- package/dist/commands/chunk-K64EIHD2.js +0 -138
- package/dist/commands/chunk-KB3OQWDT.js +0 -71
- package/dist/commands/chunk-KCFOP5RI.js +0 -1310
- package/dist/commands/chunk-KGE4AS2Y.js +0 -134
- package/dist/commands/chunk-KIILCKQR.js +0 -220
- package/dist/commands/chunk-KK2SL42W.js +0 -241
- package/dist/commands/chunk-KKIMVXAP.js +0 -280
- package/dist/commands/chunk-KODXWMBX.js +0 -77
- package/dist/commands/chunk-KPSKWTOS.js +0 -208
- package/dist/commands/chunk-KVHNQHX3.js +0 -100
- package/dist/commands/chunk-KWYQR5MK.js +0 -269
- package/dist/commands/chunk-KXHXMERX.js +0 -214
- package/dist/commands/chunk-KZ5BBBMO.js +0 -271
- package/dist/commands/chunk-KZ7HD37E.js +0 -121
- package/dist/commands/chunk-KZSM5M5P.js +0 -89
- package/dist/commands/chunk-KZZWPUJW.js +0 -25
- package/dist/commands/chunk-L7DAL54N.js +0 -347
- package/dist/commands/chunk-LAR76BFA.js +0 -114
- package/dist/commands/chunk-LB557AHJ.js +0 -192
- package/dist/commands/chunk-LJXKVLYI.js +0 -229
- package/dist/commands/chunk-LOOFYHUM.js +0 -773
- package/dist/commands/chunk-LQXFVZTS.js +0 -13
- package/dist/commands/chunk-LT7QSHR4.js +0 -995
- package/dist/commands/chunk-LUXWDMKI.js +0 -426
- package/dist/commands/chunk-LWAXXZPS.js +0 -118
- package/dist/commands/chunk-LX7TIEMI.js +0 -1612
- package/dist/commands/chunk-LZ5QXE5N.js +0 -244
- package/dist/commands/chunk-LZPPSOTP.js +0 -122
- package/dist/commands/chunk-M4UV3BEV.js +0 -313
- package/dist/commands/chunk-M6JDU5EK.js +0 -133
- package/dist/commands/chunk-MDLOETXL.js +0 -211
- package/dist/commands/chunk-MFBNNTBM.js +0 -44
- package/dist/commands/chunk-MGF64OHV.js +0 -32
- package/dist/commands/chunk-MI2OS6TL.js +0 -132
- package/dist/commands/chunk-MLW4S35K.js +0 -389
- package/dist/commands/chunk-MN425CU6.js +0 -63
- package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
- package/dist/commands/chunk-MRORPFSO.js +0 -402
- package/dist/commands/chunk-MUGTOJUL.js +0 -319
- package/dist/commands/chunk-MVHPRYHE.js +0 -91
- package/dist/commands/chunk-MWO6FOSZ.js +0 -393
- package/dist/commands/chunk-MXC4IBZ7.js +0 -104
- package/dist/commands/chunk-N7QTMTST.js +0 -210
- package/dist/commands/chunk-NDBX7LSS.js +0 -32
- package/dist/commands/chunk-NEGJ77RV.js +0 -173
- package/dist/commands/chunk-NEGRE5VW.js +0 -101
- package/dist/commands/chunk-NFPD2P3V.js +0 -53
- package/dist/commands/chunk-NHIW7JE6.js +0 -335
- package/dist/commands/chunk-NILSN7A4.js +0 -158
- package/dist/commands/chunk-NOLFSPOB.js +0 -74
- package/dist/commands/chunk-NSAVEXVR.js +0 -353
- package/dist/commands/chunk-NT67QTZO.js +0 -65
- package/dist/commands/chunk-NU7W6QGT.js +0 -155
- package/dist/commands/chunk-NYWGJLBU.js +0 -19
- package/dist/commands/chunk-OAAVY2JK.js +0 -49
- package/dist/commands/chunk-OGS2DK7I.js +0 -47
- package/dist/commands/chunk-OHNP3QL2.js +0 -186
- package/dist/commands/chunk-OIPV3PWW.js +0 -870
- package/dist/commands/chunk-OIX2363L.js +0 -16
- package/dist/commands/chunk-OJ65BZBV.js +0 -646
- package/dist/commands/chunk-OKZWEVR4.js +0 -352
- package/dist/commands/chunk-OL6IF4JC.js +0 -20
- package/dist/commands/chunk-OMPRILFH.js +0 -29
- package/dist/commands/chunk-OOWGH2RG.js +0 -85
- package/dist/commands/chunk-OP2RFVLS.js +0 -102
- package/dist/commands/chunk-ORKVN2LO.js +0 -56
- package/dist/commands/chunk-OSBWXZJ4.js +0 -492
- package/dist/commands/chunk-OT3UMEWK.js +0 -47
- package/dist/commands/chunk-OVWPZDWP.js +0 -64
- package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
- package/dist/commands/chunk-OX3VQLV2.js +0 -488
- package/dist/commands/chunk-OZJP77UM.js +0 -103
- package/dist/commands/chunk-OZZWRJQI.js +0 -246
- package/dist/commands/chunk-P3H3DKTE.js +0 -69
- package/dist/commands/chunk-P4D5RESF.js +0 -88
- package/dist/commands/chunk-P4KIQRSL.js +0 -119
- package/dist/commands/chunk-P5SOYWH2.js +0 -37
- package/dist/commands/chunk-P7FPXAHP.js +0 -29
- package/dist/commands/chunk-PE7B7242.js +0 -84
- package/dist/commands/chunk-PFO7EYAP.js +0 -45
- package/dist/commands/chunk-PHLOTUB7.js +0 -366
- package/dist/commands/chunk-PTNQCCIB.js +0 -41
- package/dist/commands/chunk-PTZEFQUX.js +0 -211
- package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
- package/dist/commands/chunk-Q7EEIOAD.js +0 -120
- package/dist/commands/chunk-QABRNGQV.js +0 -88
- package/dist/commands/chunk-QAHFPCFR.js +0 -50
- package/dist/commands/chunk-QDFVVRQP.js +0 -92
- package/dist/commands/chunk-QGAERR7D.js +0 -99
- package/dist/commands/chunk-QHWJJ6X5.js +0 -53
- package/dist/commands/chunk-QJRVDE7T.js +0 -307
- package/dist/commands/chunk-QMDKDQKW.js +0 -114
- package/dist/commands/chunk-QOSC5RKD.js +0 -18
- package/dist/commands/chunk-QQ4CIYMF.js +0 -132
- package/dist/commands/chunk-QV5FKMOU.js +0 -80
- package/dist/commands/chunk-QWWTC3XR.js +0 -109
- package/dist/commands/chunk-QXQ56E56.js +0 -27
- package/dist/commands/chunk-R54Z2Z3X.js +0 -114
- package/dist/commands/chunk-R6QE5VJG.js +0 -46
- package/dist/commands/chunk-RG53UFNW.js +0 -418
- package/dist/commands/chunk-RGGEQM6G.js +0 -140
- package/dist/commands/chunk-RH6ZWJOA.js +0 -77
- package/dist/commands/chunk-RHKCWJQX.js +0 -62
- package/dist/commands/chunk-RKIAX4DZ.js +0 -191
- package/dist/commands/chunk-RLBFEHHC.js +0 -300
- package/dist/commands/chunk-RN2YDNLF.js +0 -229
- package/dist/commands/chunk-RRAIRS2T.js +0 -54
- package/dist/commands/chunk-RS764ZMU.js +0 -46
- package/dist/commands/chunk-RUIBQMOV.js +0 -38
- package/dist/commands/chunk-RUQY5TS3.js +0 -83
- package/dist/commands/chunk-RVUJ6F5L.js +0 -181
- package/dist/commands/chunk-RW64VHEB.js +0 -130
- package/dist/commands/chunk-RXYMJPJB.js +0 -114
- package/dist/commands/chunk-S4M6UWR2.js +0 -103
- package/dist/commands/chunk-SASX3W2M.js +0 -99
- package/dist/commands/chunk-SFNBUB6D.js +0 -110
- package/dist/commands/chunk-SJ2ZN575.js +0 -90
- package/dist/commands/chunk-SP7DKYGU.js +0 -1263
- package/dist/commands/chunk-SSL6A3Y4.js +0 -165
- package/dist/commands/chunk-SVAKCXZ7.js +0 -44
- package/dist/commands/chunk-SYOXIKB7.js +0 -705
- package/dist/commands/chunk-SZG5HDNP.js +0 -321
- package/dist/commands/chunk-T25S4QHL.js +0 -52
- package/dist/commands/chunk-T4F33UKZ.js +0 -114
- package/dist/commands/chunk-T4UYEHWG.js +0 -50
- package/dist/commands/chunk-TAEGXID2.js +0 -58
- package/dist/commands/chunk-TCBUX52E.js +0 -701
- package/dist/commands/chunk-TEPYEUYG.js +0 -585
- package/dist/commands/chunk-TFLHYC2F.js +0 -141
- package/dist/commands/chunk-TJKM56WJ.js +0 -109
- package/dist/commands/chunk-TLAB552K.js +0 -445
- package/dist/commands/chunk-TP6L4W3W.js +0 -82
- package/dist/commands/chunk-TR7WWYD5.js +0 -60
- package/dist/commands/chunk-TVZXG4Y4.js +0 -197
- package/dist/commands/chunk-TYNH2R66.js +0 -1150
- package/dist/commands/chunk-U3IVVR4W.js +0 -33
- package/dist/commands/chunk-U5P6G3UV.js +0 -77
- package/dist/commands/chunk-U7XU5RG3.js +0 -86
- package/dist/commands/chunk-UKBBWMLE.js +0 -1189
- package/dist/commands/chunk-ULVVGGTY.js +0 -64
- package/dist/commands/chunk-UNMSZGSG.js +0 -269
- package/dist/commands/chunk-URDT2O2K.js +0 -36
- package/dist/commands/chunk-UTHUX7VU.js +0 -88
- package/dist/commands/chunk-V4Z7G4UH.js +0 -73
- package/dist/commands/chunk-V5FD7DVV.js +0 -48
- package/dist/commands/chunk-VCPGFBMN.js +0 -655
- package/dist/commands/chunk-VGPIQNDB.js +0 -24
- package/dist/commands/chunk-VJE3RJAX.js +0 -23
- package/dist/commands/chunk-VK6D5CWA.js +0 -161
- package/dist/commands/chunk-VOF3N4WO.js +0 -114
- package/dist/commands/chunk-VQVPAVQ3.js +0 -45
- package/dist/commands/chunk-VV4TQYGD.js +0 -38
- package/dist/commands/chunk-W3FX7FYN.js +0 -84
- package/dist/commands/chunk-W7DRUOF7.js +0 -122
- package/dist/commands/chunk-WAEN2RTT.js +0 -161
- package/dist/commands/chunk-WCEUMOKK.js +0 -84
- package/dist/commands/chunk-WJ4NEDNI.js +0 -288
- package/dist/commands/chunk-WMMGXJXP.js +0 -92
- package/dist/commands/chunk-WOFLW2LX.js +0 -26
- package/dist/commands/chunk-WTH6NTXU.js +0 -128
- package/dist/commands/chunk-WWVYEHQT.js +0 -272
- package/dist/commands/chunk-X3TNPALI.js +0 -213
- package/dist/commands/chunk-XC6GG5JR.js +0 -78
- package/dist/commands/chunk-XDF25GSU.js +0 -536
- package/dist/commands/chunk-XFPEUYDV.js +0 -67
- package/dist/commands/chunk-XFWI6WHH.js +0 -60
- package/dist/commands/chunk-XGMRAKSL.js +0 -85
- package/dist/commands/chunk-XHGWMD3L.js +0 -104
- package/dist/commands/chunk-XKSUBUIH.js +0 -116
- package/dist/commands/chunk-XPBF5DG3.js +0 -419
- package/dist/commands/chunk-XUMYPESL.js +0 -160
- package/dist/commands/chunk-XXC32PVL.js +0 -541
- package/dist/commands/chunk-XXN2EZBY.js +0 -133
- package/dist/commands/chunk-XXNEY4B3.js +0 -110
- package/dist/commands/chunk-Y27PTXXI.js +0 -258
- package/dist/commands/chunk-Y4EBUI6M.js +0 -237
- package/dist/commands/chunk-YAU3LYNF.js +0 -60
- package/dist/commands/chunk-YDURQICF.js +0 -204
- package/dist/commands/chunk-YGFOGA7C.js +0 -1153
- package/dist/commands/chunk-YHJ2AJMA.js +0 -66
- package/dist/commands/chunk-YIA6FC3K.js +0 -78
- package/dist/commands/chunk-YM77CF4D.js +0 -183
- package/dist/commands/chunk-YNPRJCEO.js +0 -81
- package/dist/commands/chunk-YTBQAD5W.js +0 -170
- package/dist/commands/chunk-YVH2OLDS.js +0 -104
- package/dist/commands/chunk-ZAAHZY2A.js +0 -19
- package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
- package/dist/commands/chunk-ZLRUHSOP.js +0 -48
- package/dist/commands/chunk-ZNR75OXP.js +0 -444
- package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
- package/dist/commands/chunk-ZVAIIHBE.js +0 -63
- package/dist/commands/chunk-ZYFHYQA7.js +0 -51
- package/dist/commands/chunk-ZZFFSQF4.js +0 -218
- package/dist/commands/chunk-ZZULXNC2.js +0 -47
- package/dist/commands/chunk-ZZXO6TFH.js +0 -232
- package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
- package/dist/commands/test-related-ZCNC46MS.js +0 -113
- package/dist/commands/unused-members-STULPRBU.js +0 -331
- package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
- package/dist/hooks/chunk-5R5YFQR5.js +0 -931
- package/dist/hooks/chunk-6RLY27FT.js +0 -232
- package/dist/hooks/chunk-6YGMIODI.js +0 -86
- package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
- package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
- package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
- package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
- package/dist/hooks/chunk-IURJANNZ.js +0 -1082
- package/dist/hooks/chunk-OV22V63P.js +0 -10980
- package/dist/hooks/chunk-SXABK6UV.js +0 -321
- package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { backlog_hold_codes } from '#scripts/backlog/backlog-hold-codes'
|
|
2
|
+
import { backlog_next_report } from '#scripts/backlog/backlog-next-report'
|
|
3
|
+
import { issue_cite } from '#scripts/issue/issue-cite'
|
|
4
|
+
import { MS_PER_MINUTE } from '#scripts/lib/timeouts'
|
|
5
|
+
import { run_event_filed } from '#scripts/run/event/run-event-filed'
|
|
6
|
+
import { run_event_stream, type RunEvent } from '#scripts/run/event/run-event-stream'
|
|
7
|
+
import { lane_ledger, type DispatchEntry, type LedgerEntry } from './lane-ledger'
|
|
8
|
+
import type { OfferEntry } from './lane-ledger-schema-offer'
|
|
9
|
+
import { lane_stage_stats } from './lane-stage-stats'
|
|
10
|
+
import { lane_stats, type StatsWindow } from './lane-stats'
|
|
11
|
+
|
|
12
|
+
// How long an issue ready to start waited for its dispatch (joshuafolkken/kit#7508): the owner's bound
|
|
13
|
+
// is one minute from the moment it became runnable, and #7503's overrun was found only by matching logs
|
|
14
|
+
// by hand. Printed by `josh lane:stats` as one row: the period's dispatches, the median and longest
|
|
15
|
+
// wait, and how many passed the bound.
|
|
16
|
+
//
|
|
17
|
+
// **The wait starts at the runnable stretch the dispatch ended**: the offers since the issue's previous
|
|
18
|
+
// dispatch, from the first one that saw it and held nothing back on it — or, when the issue was filed
|
|
19
|
+
// after the last offer that could not start it, at that filing (the `filed` run event), since an offer
|
|
20
|
+
// only reads it at the next pass. A dispatch no offer saw (a ledger from before `offer` entries, or a
|
|
21
|
+
// lane opened by hand) is counted under `not measured`.
|
|
22
|
+
//
|
|
23
|
+
// **A seat that was not there is not waiting**: a hold by memory, a usage limit or the `run:solo` gate,
|
|
24
|
+
// and the time after a `released` entry (every lane taken, or the run finished), each lasting until the
|
|
25
|
+
// next `held`, `released` or `dispatch` entry as `lane-held-stats.ts` tiles them, are taken out.
|
|
26
|
+
|
|
27
|
+
const { KIND } = lane_ledger
|
|
28
|
+
const { MEMORY_REASON, REASON_SEPARATOR, USAGE_LIMIT_REASON } = backlog_hold_codes
|
|
29
|
+
const { NOT_MEASURED, is_dispatch } = lane_stage_stats
|
|
30
|
+
const RETRY_VERDICT = backlog_next_report.VERDICT_TOKENS.retry
|
|
31
|
+
const LIMIT_MS = MS_PER_MINUTE
|
|
32
|
+
const SEATLESS_REASONS: ReadonlySet<string> = new Set([MEMORY_REASON, USAGE_LIMIT_REASON])
|
|
33
|
+
const SOLO_SUFFIX = `${REASON_SEPARATOR}solo`
|
|
34
|
+
// A filing in this repository: one in another names its owner and repository before the `#`.
|
|
35
|
+
const THIS_REPOSITORY_REFERENCE = /^#(?<issue>\d+)$/u
|
|
36
|
+
const COLUMNS = [
|
|
37
|
+
'dispatch wait',
|
|
38
|
+
'dispatches',
|
|
39
|
+
'median (min)',
|
|
40
|
+
'max (min)',
|
|
41
|
+
'longest',
|
|
42
|
+
'over 1 min',
|
|
43
|
+
NOT_MEASURED,
|
|
44
|
+
] as const
|
|
45
|
+
const ROW_LABEL = 'runnable → dispatch'
|
|
46
|
+
|
|
47
|
+
interface Span {
|
|
48
|
+
from_ms: number
|
|
49
|
+
to_ms: number
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface Stretch {
|
|
53
|
+
from_ms: number
|
|
54
|
+
after_ms: number
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
interface History {
|
|
58
|
+
offers: ReadonlyArray<OfferEntry>
|
|
59
|
+
since_ms: number
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
interface Wait {
|
|
63
|
+
issue: number
|
|
64
|
+
wait_ms: number
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
interface Records {
|
|
68
|
+
entries: ReadonlyArray<LedgerEntry>
|
|
69
|
+
seatless: ReadonlyArray<Span>
|
|
70
|
+
filed: ReadonlyMap<number, number>
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function ms_of(entry: { at: string }): number {
|
|
74
|
+
return Date.parse(entry.at)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function is_offer(entry: LedgerEntry): entry is OfferEntry {
|
|
78
|
+
return entry.kind === KIND.OFFER
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function is_runnable(offer: OfferEntry, issue: number): boolean {
|
|
82
|
+
return (
|
|
83
|
+
offer.seen.includes(issue) && offer.excluded.every((exclusion) => exclusion.issue !== issue)
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function is_seat_end(entry: LedgerEntry): boolean {
|
|
88
|
+
return entry.kind === KIND.HELD || entry.kind === KIND.RELEASED || is_dispatch(entry)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function is_seatless(entry: LedgerEntry): boolean {
|
|
92
|
+
if (entry.kind === KIND.RELEASED) return true
|
|
93
|
+
|
|
94
|
+
return (
|
|
95
|
+
entry.kind === KIND.HELD &&
|
|
96
|
+
(SEATLESS_REASONS.has(entry.reason) || entry.reason.endsWith(SOLO_SUFFIX))
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function seatless_spans(entries: ReadonlyArray<LedgerEntry>): Array<Span> {
|
|
101
|
+
const marks = entries.filter((entry) => is_seat_end(entry))
|
|
102
|
+
|
|
103
|
+
return marks.flatMap((mark, index) => {
|
|
104
|
+
const next = marks[index + 1]
|
|
105
|
+
|
|
106
|
+
return next !== undefined && is_seatless(mark)
|
|
107
|
+
? { from_ms: ms_of(mark), to_ms: ms_of(next) }
|
|
108
|
+
: []
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Each issue of this repository a run filed, at its first filing.
|
|
113
|
+
function filed_reference(event: RunEvent): string {
|
|
114
|
+
if (event.kind !== run_event_stream.EVENT_KIND.FILED) return ''
|
|
115
|
+
|
|
116
|
+
return run_event_filed.parse(event.text)?.reference ?? ''
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function filed_issue(event: RunEvent): number | undefined {
|
|
120
|
+
const issue = THIS_REPOSITORY_REFERENCE.exec(filed_reference(event))?.groups?.['issue']
|
|
121
|
+
|
|
122
|
+
return issue === undefined ? undefined : Number(issue)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Each issue of this repository a run filed, at its first filing: the stream is oldest first, and a
|
|
126
|
+
// `Map` keeps the last of a repeated key, so the pairs go in newest first.
|
|
127
|
+
function filed_times(events: ReadonlyArray<RunEvent>): Map<number, number> {
|
|
128
|
+
const pairs = events.flatMap((event): Array<[number, number]> => {
|
|
129
|
+
const issue = filed_issue(event)
|
|
130
|
+
|
|
131
|
+
return issue === undefined ? [] : [[issue, ms_of(event)]]
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
return new Map(pairs.toReversed())
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// A `retry` offer excludes only the issues it was asked to, so it says nothing about the rest.
|
|
138
|
+
function is_decision(entry: LedgerEntry): entry is OfferEntry {
|
|
139
|
+
return is_offer(entry) && entry.verdict !== RETRY_VERDICT
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// The offers since the issue's previous dispatch that decided on it, and when that dispatch was.
|
|
143
|
+
function history_of(entries: ReadonlyArray<LedgerEntry>, index: number, issue: number): History {
|
|
144
|
+
const before = entries.slice(0, index)
|
|
145
|
+
const previous_index = before.findLastIndex(
|
|
146
|
+
(entry) => is_dispatch(entry) && entry.issue === issue,
|
|
147
|
+
)
|
|
148
|
+
const previous = before[previous_index]
|
|
149
|
+
const offers = before.slice(previous_index + 1).filter((entry) => is_decision(entry))
|
|
150
|
+
|
|
151
|
+
return { offers, since_ms: previous === undefined ? -Infinity : ms_of(previous) }
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// A stretch with no offer holding the issue back starts after its previous dispatch at the earliest.
|
|
155
|
+
function stretch_of(history: History, issue: number): Stretch | undefined {
|
|
156
|
+
const { offers, since_ms } = history
|
|
157
|
+
const blocked_index = offers.findLastIndex((offer) => !is_runnable(offer, issue))
|
|
158
|
+
const first = offers[blocked_index + 1]
|
|
159
|
+
|
|
160
|
+
if (first === undefined) return undefined
|
|
161
|
+
|
|
162
|
+
const blocked = offers[blocked_index]
|
|
163
|
+
|
|
164
|
+
return { from_ms: ms_of(first), after_ms: blocked === undefined ? since_ms : ms_of(blocked) }
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// A filing between the last offer that could not start the issue and the stretch's first offer is when
|
|
168
|
+
// it became runnable; the next pass only read it.
|
|
169
|
+
function start_ms(stretch: Stretch, filed_ms: number | undefined): number {
|
|
170
|
+
if (filed_ms === undefined) return stretch.from_ms
|
|
171
|
+
|
|
172
|
+
return filed_ms > stretch.after_ms && filed_ms < stretch.from_ms ? filed_ms : stretch.from_ms
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function overlap_ms(span: Span, from_ms: number, to_ms: number): number {
|
|
176
|
+
return Math.max(0, Math.min(span.to_ms, to_ms) - Math.max(span.from_ms, from_ms))
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function wait_of(records: Records, dispatch: DispatchEntry, index: number): Wait | undefined {
|
|
180
|
+
const stretch = stretch_of(history_of(records.entries, index, dispatch.issue), dispatch.issue)
|
|
181
|
+
|
|
182
|
+
if (stretch === undefined) return undefined
|
|
183
|
+
|
|
184
|
+
const from_ms = start_ms(stretch, records.filed.get(dispatch.issue))
|
|
185
|
+
const to_ms = ms_of(dispatch)
|
|
186
|
+
const seatless = records.seatless
|
|
187
|
+
.map((span) => overlap_ms(span, from_ms, to_ms))
|
|
188
|
+
.reduce((sum, value) => sum + value, 0)
|
|
189
|
+
|
|
190
|
+
return { issue: dispatch.issue, wait_ms: to_ms - from_ms - seatless }
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function longest_of(waits: ReadonlyArray<Wait>): Wait | undefined {
|
|
194
|
+
return waits.toSorted((left, right) => right.wait_ms - left.wait_ms)[0]
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
function row_of(waits: ReadonlyArray<Wait>, dispatches: number): string {
|
|
198
|
+
const values = waits.map((wait) => wait.wait_ms)
|
|
199
|
+
const longest = longest_of(waits)
|
|
200
|
+
|
|
201
|
+
return lane_stats.to_row([
|
|
202
|
+
ROW_LABEL,
|
|
203
|
+
String(dispatches),
|
|
204
|
+
lane_stage_stats.cell(lane_stats.median(values)),
|
|
205
|
+
lane_stage_stats.cell(longest?.wait_ms),
|
|
206
|
+
longest === undefined ? NOT_MEASURED : issue_cite.plain_for('terminal', longest.issue),
|
|
207
|
+
String(values.filter((value) => value > LIMIT_MS).length),
|
|
208
|
+
String(dispatches - waits.length),
|
|
209
|
+
])
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// The period's table: `entries` and `events` are the whole ledger and run-event stream, so a dispatch
|
|
213
|
+
// in the window finds the offers and the filing before it.
|
|
214
|
+
function table(
|
|
215
|
+
entries: ReadonlyArray<LedgerEntry>,
|
|
216
|
+
window: StatsWindow,
|
|
217
|
+
events: ReadonlyArray<RunEvent> = [],
|
|
218
|
+
): string {
|
|
219
|
+
const period = new Set(
|
|
220
|
+
lane_stats.in_window(
|
|
221
|
+
entries.filter((entry) => is_dispatch(entry)),
|
|
222
|
+
window,
|
|
223
|
+
),
|
|
224
|
+
)
|
|
225
|
+
const records = { entries, seatless: seatless_spans(entries), filed: filed_times(events) }
|
|
226
|
+
const waits = entries.flatMap((entry, index) =>
|
|
227
|
+
is_dispatch(entry) && period.has(entry) ? (wait_of(records, entry, index) ?? []) : [],
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
return [
|
|
231
|
+
lane_stats.to_row(COLUMNS),
|
|
232
|
+
lane_stats.to_row(COLUMNS.map(() => '---')),
|
|
233
|
+
row_of(waits, period.size),
|
|
234
|
+
].join('\n')
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
const lane_dispatch_wait_stats = { table }
|
|
238
|
+
|
|
239
|
+
export { lane_dispatch_wait_stats }
|
|
@@ -11,12 +11,15 @@ import { run_event_stream } from '#scripts/run/event/run-event-stream'
|
|
|
11
11
|
import { run_event_stream_emit } from '#scripts/run/event/run-event-stream-emit'
|
|
12
12
|
import { run_park } from '#scripts/run/park/run-park'
|
|
13
13
|
import { run_label } from '#scripts/run/run-label'
|
|
14
|
+
import { run_startup } from '#scripts/run/startup/run-startup'
|
|
14
15
|
import { lane_child_invocation } from './lane-child-invocation'
|
|
15
16
|
import { lane_child_marker } from './lane-child-marker'
|
|
17
|
+
import { lane_dispatch_dependency, type DependencyWait } from './lane-dispatch-dependency'
|
|
16
18
|
import { lane_dispatch_log } from './lane-dispatch-log'
|
|
17
19
|
import { lane_dispatch_prepare } from './lane-dispatch-prepare'
|
|
18
20
|
import { lane_ledger_write } from './lane-ledger-write'
|
|
19
21
|
import { lane_output } from './lane-output'
|
|
22
|
+
import { lane_reap } from './lane-reap'
|
|
20
23
|
import { lane_registry, type LaneInfo } from './lane-registry'
|
|
21
24
|
import { lane_seat_start } from './lane-seat-start'
|
|
22
25
|
import { lane_state } from './lane-state'
|
|
@@ -50,6 +53,7 @@ const WARNING_RECOVERY =
|
|
|
50
53
|
// once rather than inlined at each use.
|
|
51
54
|
const LABEL_UNSET_KIND = 'label-unset'
|
|
52
55
|
const RESTART_START = 'restart'
|
|
56
|
+
const DEPENDENCY_WAIT = 'dependency-wait'
|
|
53
57
|
|
|
54
58
|
interface Dispatched {
|
|
55
59
|
kind: 'dispatched'
|
|
@@ -71,6 +75,7 @@ interface Dispatched {
|
|
|
71
75
|
|
|
72
76
|
type DispatchOutcome =
|
|
73
77
|
| Dispatched
|
|
78
|
+
| DependencyWait
|
|
74
79
|
| { kind: 'failed'; lane: LaneInfo; log_path: string; note: string }
|
|
75
80
|
| { kind: 'no-lane' }
|
|
76
81
|
| { kind: 'unrecordable'; reason: string }
|
|
@@ -236,6 +241,14 @@ async function dispatched_start(
|
|
|
236
241
|
// again only once `needs-decision` is off, so a record still on disk is one a person cleared by hand on
|
|
237
242
|
// GitHub, and left in place it would silence `lane-park` on this child's own stop
|
|
238
243
|
// (joshuafolkken/kit#4132).
|
|
244
|
+
function worker_environment(lane: LaneInfo): Record<string, string> {
|
|
245
|
+
return {
|
|
246
|
+
...lane_child_marker.env_for(lane.issue),
|
|
247
|
+
...lane_seat_start.environment(lane),
|
|
248
|
+
[run_startup.ENVIRONMENT_KEY]: '',
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
239
252
|
async function started(request: StartRequest): Promise<DispatchOutcome> {
|
|
240
253
|
const notes: Array<string> = []
|
|
241
254
|
const existing = existing_dispatch(request)
|
|
@@ -249,10 +262,7 @@ async function started(request: StartRequest): Promise<DispatchOutcome> {
|
|
|
249
262
|
cwd: request.lane.directory,
|
|
250
263
|
log_path: request.log_path,
|
|
251
264
|
profile: request.profile,
|
|
252
|
-
env:
|
|
253
|
-
...lane_child_marker.env_for(request.lane.issue),
|
|
254
|
-
...lane_seat_start.environment(request.lane),
|
|
255
|
-
},
|
|
265
|
+
env: worker_environment(request.lane),
|
|
256
266
|
},
|
|
257
267
|
(note) => {
|
|
258
268
|
notes.push(note)
|
|
@@ -319,14 +329,34 @@ async function claimed(issue: string, start: DispatchStart): Promise<LabelWrite>
|
|
|
319
329
|
return await mark_in_progress(issue)
|
|
320
330
|
}
|
|
321
331
|
|
|
332
|
+
async function start_wait(
|
|
333
|
+
issue: string,
|
|
334
|
+
request: StartRequest,
|
|
335
|
+
start: DispatchStart,
|
|
336
|
+
): Promise<DependencyWait | undefined> {
|
|
337
|
+
if (request.profile.provider !== 'openai' && lane_reap.is_child_running(issue)) {
|
|
338
|
+
return { kind: DEPENDENCY_WAIT, reason: 'child is already running' }
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
const wait = await lane_dispatch_dependency.check(issue)
|
|
342
|
+
|
|
343
|
+
if (wait !== undefined && start === RESTART_START) await lane_dispatch_dependency.defer(issue)
|
|
344
|
+
|
|
345
|
+
return wait
|
|
346
|
+
}
|
|
347
|
+
|
|
322
348
|
async function finish_dispatch(
|
|
323
349
|
issue: string,
|
|
324
350
|
request: StartRequest,
|
|
325
351
|
start: DispatchStart,
|
|
326
352
|
): Promise<DispatchOutcome> {
|
|
353
|
+
const wait = await start_wait(issue, request, start)
|
|
354
|
+
if (wait !== undefined) return wait
|
|
355
|
+
|
|
327
356
|
const mark = await claimed(issue, start)
|
|
328
357
|
|
|
329
358
|
if (!mark.is_applied) return { kind: LABEL_UNSET_KIND, reason: mark.reason }
|
|
359
|
+
await lane_dispatch_dependency.begin(issue)
|
|
330
360
|
const outcome = await started(request)
|
|
331
361
|
|
|
332
362
|
const is_failed = outcome.kind === 'failed'
|
|
@@ -396,7 +426,10 @@ function resume_sentence(outcome: Dispatched): string {
|
|
|
396
426
|
|
|
397
427
|
// Never throws: it is reached from `warn_of_problem`, and a formatter that raised would lose the very
|
|
398
428
|
// message the warning exists to carry — the pid among it, with the child already running.
|
|
399
|
-
function
|
|
429
|
+
function describe_dispatch(
|
|
430
|
+
outcome: Exclude<DispatchOutcome, DependencyWait>,
|
|
431
|
+
issue: string,
|
|
432
|
+
): string {
|
|
400
433
|
if (outcome.kind === 'no-lane') {
|
|
401
434
|
return `No lane is open for ${session_cite.issue(issue)}. Run \`pnpm josh lane:open ${issue}\` first, then dispatch into it.`
|
|
402
435
|
}
|
|
@@ -414,6 +447,10 @@ function describe(outcome: DispatchOutcome, issue: string): string {
|
|
|
414
447
|
return `Dispatched \`${outcome.invocation}\` as process ${String(outcome.pid)} in ${outcome.lane.directory} with ${agent_role_profile.describe(outcome.profile)}.${agent_role_profile.default_notice()}${resume_sentence(outcome)}${log_sentence(outcome, issue)}`
|
|
415
448
|
}
|
|
416
449
|
|
|
450
|
+
function describe(outcome: DispatchOutcome, issue: string): string {
|
|
451
|
+
return outcome.kind === DEPENDENCY_WAIT ? outcome.reason : describe_dispatch(outcome, issue)
|
|
452
|
+
}
|
|
453
|
+
|
|
417
454
|
/**
|
|
418
455
|
* Whether this outcome is one nobody would otherwise hear about.
|
|
419
456
|
*
|
|
@@ -422,6 +459,8 @@ function describe(outcome: DispatchOutcome, issue: string): string {
|
|
|
422
459
|
* exit zero *silently*, leaving an operator to poll a file the launcher already said it could not open.
|
|
423
460
|
*/
|
|
424
461
|
function is_worth_warning(outcome: DispatchOutcome): boolean {
|
|
462
|
+
if (outcome.kind === DEPENDENCY_WAIT) return false
|
|
463
|
+
|
|
425
464
|
return outcome.kind !== 'dispatched' || outcome.notes.length > 0
|
|
426
465
|
}
|
|
427
466
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LedgerEntry } from './lane-ledger'
|
|
2
|
+
|
|
3
|
+
// The ledger samples an observation wait can name (`issue-observation-gate.ts`), counted over every
|
|
4
|
+
// early-push line (joshuafolkken/kit#7503). A line recorded before it carried `slots` never counts.
|
|
5
|
+
const MULTI_SLOT_EARLY_PUSH = 'multi-slot-early-push'
|
|
6
|
+
const PUSHED = 'pushed'
|
|
7
|
+
const MULTI_SLOT_MINIMUM = 2
|
|
8
|
+
|
|
9
|
+
// Early pushes that reached the remote from a round with more than one review slot.
|
|
10
|
+
function multi_slot_pushed(entries: ReadonlyArray<LedgerEntry>): number {
|
|
11
|
+
return entries.filter(
|
|
12
|
+
(entry) =>
|
|
13
|
+
entry.kind === 'early-push' &&
|
|
14
|
+
entry.result === PUSHED &&
|
|
15
|
+
(entry.slots ?? 0) >= MULTI_SLOT_MINIMUM,
|
|
16
|
+
).length
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const lane_early_push_count = { MULTI_SLOT_EARLY_PUSH, multi_slot_pushed }
|
|
20
|
+
|
|
21
|
+
export { lane_early_push_count }
|
|
@@ -3,6 +3,7 @@ import { core_budget } from '#scripts/gate/core-budget'
|
|
|
3
3
|
import { buffered_process } from '#scripts/lib/buffered-process'
|
|
4
4
|
import { PACKAGE_JSON, package_manifest } from '#scripts/lib/package-manifest'
|
|
5
5
|
import { INSTALL_TIMEOUT_MS } from '#scripts/lib/timeouts'
|
|
6
|
+
import { run_startup } from '#scripts/run/startup/run-startup'
|
|
6
7
|
|
|
7
8
|
// Filling the lane, which is the other half of opening one.
|
|
8
9
|
//
|
|
@@ -61,16 +62,25 @@ function has_manifest(directory: string): boolean {
|
|
|
61
62
|
*/
|
|
62
63
|
async function install_dependencies(directory: string): Promise<InstallResult> {
|
|
63
64
|
if (!has_manifest(directory)) return { is_installed: true, output: NO_MANIFEST_OUTPUT }
|
|
65
|
+
const admitted = await run_startup.waiting('install resource wait')
|
|
64
66
|
|
|
65
67
|
// The install claims its place in the core budget (joshuafolkken/kit#3944): a batch opens its lanes
|
|
66
68
|
// together, and each install ran beside the other lanes' gates off the ledger.
|
|
67
69
|
const result = await core_budget.with_command_reservation(
|
|
68
70
|
core_budget.CORE_WEIGHTS.install,
|
|
69
|
-
async () =>
|
|
70
|
-
await
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
async () => {
|
|
72
|
+
await admitted()
|
|
73
|
+
|
|
74
|
+
return await run_startup.phase(
|
|
75
|
+
'dependency install',
|
|
76
|
+
async () =>
|
|
77
|
+
await buffered_process.run_buffered_process(INSTALL_ARGUMENTS, {
|
|
78
|
+
cwd: directory,
|
|
79
|
+
timeout_ms: INSTALL_TIMEOUT_MS,
|
|
80
|
+
}),
|
|
81
|
+
{ edge_of: (value) => (buffered_process.is_process_failed(value) ? 'failed' : 'done') },
|
|
82
|
+
)
|
|
83
|
+
},
|
|
74
84
|
{ memory_mb: core_budget.MEMORY_MB.install, command: 'lane install' },
|
|
75
85
|
)
|
|
76
86
|
|
|
@@ -5,7 +5,9 @@ import { lane_vacant } from '#scripts/lane/lane-vacant'
|
|
|
5
5
|
import { cli_flags } from '#scripts/lib/cli-flags'
|
|
6
6
|
import { INSTALL_TIMEOUT_MS } from '#scripts/lib/timeouts'
|
|
7
7
|
import { run_event_setup } from '#scripts/run/event/run-event-setup'
|
|
8
|
+
import { run_startup } from '#scripts/run/startup/run-startup'
|
|
8
9
|
import { execa } from 'execa'
|
|
10
|
+
import { lane_dispatch_dependency } from './lane-dispatch-dependency'
|
|
9
11
|
import { lane_launch_admission } from './lane-launch-admission'
|
|
10
12
|
import { lane_launch_pending } from './lane-launch-pending'
|
|
11
13
|
|
|
@@ -114,7 +116,9 @@ async function prepare(context: LaunchContext, directory: string): Promise<JoshR
|
|
|
114
116
|
|
|
115
117
|
await run_event_setup.emit(run_event_setup.installing(issue))
|
|
116
118
|
|
|
117
|
-
return await install(directory)
|
|
119
|
+
return await run_startup.phase('dependency reinstall', async () => await install(directory), {
|
|
120
|
+
edge_of: (value) => (value.code === SUCCESS_EXIT_CODE ? 'done' : 'failed'),
|
|
121
|
+
})
|
|
118
122
|
}
|
|
119
123
|
|
|
120
124
|
async function close_if_vacant(lane: LaneInfo | undefined): Promise<void> {
|
|
@@ -144,30 +148,47 @@ async function lane_directory(issue: string): Promise<JoshResult> {
|
|
|
144
148
|
return await josh_command.josh_run(['lane:open', issue], should_forward_stderr)
|
|
145
149
|
}
|
|
146
150
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
// ready apart from one still being filled.
|
|
150
|
-
async function launch_admitted(context: LaunchContext): Promise<LaunchOutcome> {
|
|
151
|
-
const opened = await lane_directory(context.issue)
|
|
152
|
-
|
|
153
|
-
if (opened.code !== SUCCESS_EXIT_CODE) return refused('unopened', opened)
|
|
154
|
-
|
|
155
|
-
const prepared = await prepare(context, opened.out)
|
|
151
|
+
function dispatch_edge(value: JoshResult): 'done' | 'failed' | 'waiting' {
|
|
152
|
+
if (value.code === lane_dispatch_dependency.WAIT_EXIT_CODE) return 'waiting'
|
|
156
153
|
|
|
157
|
-
|
|
154
|
+
return value.code === SUCCESS_EXIT_CODE ? 'done' : 'failed'
|
|
155
|
+
}
|
|
158
156
|
|
|
157
|
+
async function dispatch(context: LaunchContext): Promise<LaunchOutcome> {
|
|
159
158
|
await run_event_setup.emit(run_event_setup.dispatching(context.issue))
|
|
160
159
|
|
|
161
|
-
const dispatched = await
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
const dispatched = await run_startup.phase(
|
|
161
|
+
'worker dispatch',
|
|
162
|
+
async () =>
|
|
163
|
+
await josh_command.josh_run(['lane:dispatch', context.issue], should_forward_stderr),
|
|
164
|
+
{ edge_of: dispatch_edge },
|
|
164
165
|
)
|
|
165
166
|
|
|
167
|
+
if (dispatched.code === lane_dispatch_dependency.WAIT_EXIT_CODE) {
|
|
168
|
+
await close_if_vacant(await lane_registry.find_open_lane(context.issue))
|
|
169
|
+
|
|
170
|
+
return { kind: 'waiting' }
|
|
171
|
+
}
|
|
172
|
+
|
|
166
173
|
if (dispatched.code !== SUCCESS_EXIT_CODE) return refused('failed', dispatched)
|
|
167
174
|
|
|
168
175
|
return { kind: 'launched', pid: dispatched.out }
|
|
169
176
|
}
|
|
170
177
|
|
|
178
|
+
// The CLI and driver share this chain, including retryable dependency refusals.
|
|
179
|
+
async function launch_admitted(context: LaunchContext): Promise<LaunchOutcome> {
|
|
180
|
+
const opened = await run_startup.phase(
|
|
181
|
+
'lane creation',
|
|
182
|
+
async () => await lane_directory(context.issue),
|
|
183
|
+
{ edge_of: (value) => (value.code === SUCCESS_EXIT_CODE ? 'done' : 'failed') },
|
|
184
|
+
)
|
|
185
|
+
if (opened.code !== SUCCESS_EXIT_CODE) return refused('unopened', opened)
|
|
186
|
+
const prepared = await prepare(context, opened.out)
|
|
187
|
+
if (prepared.code !== SUCCESS_EXIT_CODE) return refused('failed', prepared)
|
|
188
|
+
|
|
189
|
+
return await dispatch(context)
|
|
190
|
+
}
|
|
191
|
+
|
|
171
192
|
async function launch_lane(context: LaunchContext): Promise<LaunchOutcome> {
|
|
172
193
|
return await lane_launch_admission.launch(context, launch_admitted)
|
|
173
194
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// apart so a schema module of its own can name its kind without importing the union it joins.
|
|
3
3
|
|
|
4
4
|
const KIND = {
|
|
5
|
+
STARTUP: 'startup',
|
|
5
6
|
MERGE: 'merge',
|
|
6
7
|
GATE: 'gate',
|
|
7
8
|
LOAD: 'load',
|
|
@@ -17,6 +18,7 @@ const KIND = {
|
|
|
17
18
|
OFFERABLE: 'offerable',
|
|
18
19
|
OFFER: 'offer',
|
|
19
20
|
CORE_WAIT: 'core-wait',
|
|
21
|
+
CORE_ADMISSION: 'core-admission',
|
|
20
22
|
UNIT_FILES: 'unit-files',
|
|
21
23
|
TEST_RELATED: 'test-related',
|
|
22
24
|
TEST_PINNED: 'test-pinned',
|
|
@@ -6,13 +6,17 @@ import { lane_ledger_kind } from './lane-ledger-kind'
|
|
|
6
6
|
|
|
7
7
|
const { KIND } = lane_ledger_kind
|
|
8
8
|
|
|
9
|
-
// Every early-push decision, including a skip before a push process could start.
|
|
9
|
+
// Every early-push decision, including a skip before a push process could start. `head` is the commit
|
|
10
|
+
// it decided on and `slots` how many review slots the round opened (joshuafolkken/kit#7503), absent
|
|
11
|
+
// where unknown and on a line recorded before it had them.
|
|
10
12
|
const early_push_schema = z.object({
|
|
11
13
|
kind: z.literal(KIND.EARLY_PUSH),
|
|
12
14
|
at: z.string(),
|
|
13
15
|
issue: z.number().optional(),
|
|
14
16
|
source: z.enum(['review', 'ship']),
|
|
15
17
|
result: z.string(),
|
|
18
|
+
head: z.string().optional(),
|
|
19
|
+
slots: z.number().optional(),
|
|
16
20
|
})
|
|
17
21
|
|
|
18
22
|
// A `josh ship` that stopped on `issue`: `reason` is the stage it stopped at, or `conflict` — the
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { run_startup_schema } from '#scripts/run/startup/run-startup-schema'
|
|
1
2
|
import { z } from 'zod'
|
|
2
3
|
import { lane_ledger_kind } from './lane-ledger-kind'
|
|
3
4
|
import { lane_ledger_pinned_origin } from './lane-ledger-pinned-origin'
|
|
@@ -138,11 +139,23 @@ const offerable_schema = z.object({
|
|
|
138
139
|
// command itself, so a wait inside a gate, a scoped check or a ship lands in one record. `issue` is the
|
|
139
140
|
// lane the claim ran in, absent outside a lane (joshuafolkken/kit#4382).
|
|
140
141
|
const core_wait_schema = z.object({
|
|
141
|
-
kind: z.
|
|
142
|
+
kind: z.enum([KIND.CORE_WAIT, KIND.CORE_ADMISSION]),
|
|
142
143
|
at: z.string(),
|
|
143
144
|
command: z.string(),
|
|
144
145
|
waited_ms: z.number(),
|
|
145
146
|
issue: z.number().optional(),
|
|
147
|
+
admission_reason: z.string().optional(),
|
|
148
|
+
overflow: z.boolean().optional(),
|
|
149
|
+
budget_cores: z.number().optional(),
|
|
150
|
+
budget_memory_mb: z.number().optional(),
|
|
151
|
+
available_mb: z.number().optional(),
|
|
152
|
+
busy_cores: z.number().optional(),
|
|
153
|
+
requested_cores: z.number().optional(),
|
|
154
|
+
granted_cores: z.number().optional(),
|
|
155
|
+
memory_mb: z.number().optional(),
|
|
156
|
+
wait_reason: z.string().optional(),
|
|
157
|
+
admission_waited_ms: z.number().optional(),
|
|
158
|
+
memory_pressured: z.boolean().optional(),
|
|
146
159
|
})
|
|
147
160
|
// One vitest run's slowest test files, each with its wall time from environment setup to its last
|
|
148
161
|
// test, so a unit run whose wall time far outran its CPU names the file it stalled on
|
|
@@ -247,6 +260,7 @@ const push_miss_schema = z.object({
|
|
|
247
260
|
const limit_schema = z.object({ kind: z.literal(KIND.LIMIT), at: z.string(), limit: z.number() })
|
|
248
261
|
const entry_schema = z.discriminatedUnion('kind', [
|
|
249
262
|
early_push_schema,
|
|
263
|
+
run_startup_schema.entry_schema,
|
|
250
264
|
merge_schema,
|
|
251
265
|
gate_schema,
|
|
252
266
|
load_schema,
|
|
@@ -192,7 +192,10 @@ async function record_round_two(round_two: RoundTwoRecord, path?: string): Promi
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
async function record_core_wait(wait: CoreWaitRecord, path?: string): Promise<void> {
|
|
195
|
-
|
|
195
|
+
const is_immediate = wait.admission_reason !== undefined && wait.wait_reason === undefined
|
|
196
|
+
const kind = is_immediate ? KIND.CORE_ADMISSION : KIND.CORE_WAIT
|
|
197
|
+
|
|
198
|
+
await record({ kind, at: now_iso(), ...wait }, path)
|
|
196
199
|
}
|
|
197
200
|
|
|
198
201
|
async function record_unit_files(
|
|
@@ -5,6 +5,7 @@ import { detached_launch, type LaunchResult } from '#scripts/run/detached-launch
|
|
|
5
5
|
import { run_ship_detach } from '#scripts/run/ship/run-ship-detach'
|
|
6
6
|
import { lane_child_invocation } from './lane-child-invocation'
|
|
7
7
|
import { lane_child_marker } from './lane-child-marker'
|
|
8
|
+
import { lane_dispatch_dependency } from './lane-dispatch-dependency'
|
|
8
9
|
import { lane_dispatch_log } from './lane-dispatch-log'
|
|
9
10
|
import type { LaneInfo } from './lane-registry'
|
|
10
11
|
import { lane_seat_start } from './lane-seat-start'
|
|
@@ -25,7 +26,11 @@ const OPENAI_PROVIDER = 'openai'
|
|
|
25
26
|
type RelaunchResult = LaunchResult | { kind: 'rejected'; note: string }
|
|
26
27
|
type Prepared = Exclude<Awaited<ReturnType<typeof agent_argv.resume_argv>>, { kind: 'rejected' }>
|
|
27
28
|
|
|
28
|
-
function
|
|
29
|
+
function launch_ready(
|
|
30
|
+
lane: LaneInfo,
|
|
31
|
+
built: Prepared,
|
|
32
|
+
on_note: (note: string) => void,
|
|
33
|
+
): RelaunchResult {
|
|
29
34
|
return detached_launch.launch(
|
|
30
35
|
{
|
|
31
36
|
argv: built.argv,
|
|
@@ -48,6 +53,24 @@ function launch(lane: LaneInfo, built: Prepared, on_note: (note: string) => void
|
|
|
48
53
|
)
|
|
49
54
|
}
|
|
50
55
|
|
|
56
|
+
async function launch(
|
|
57
|
+
lane: LaneInfo,
|
|
58
|
+
built: Prepared,
|
|
59
|
+
on_note: (note: string) => void,
|
|
60
|
+
): Promise<RelaunchResult> {
|
|
61
|
+
const wait = await lane_dispatch_dependency.check(lane.issue)
|
|
62
|
+
|
|
63
|
+
if (wait !== undefined) {
|
|
64
|
+
await lane_dispatch_dependency.defer(lane.issue)
|
|
65
|
+
|
|
66
|
+
return { kind: 'rejected', note: wait.reason }
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
await lane_dispatch_dependency.begin(lane.issue)
|
|
70
|
+
|
|
71
|
+
return launch_ready(lane, built, on_note)
|
|
72
|
+
}
|
|
73
|
+
|
|
51
74
|
async function relaunch(
|
|
52
75
|
lane: LaneInfo,
|
|
53
76
|
invocation: string,
|
|
@@ -62,7 +85,7 @@ async function relaunch(
|
|
|
62
85
|
})
|
|
63
86
|
if (built.kind === 'rejected') return built
|
|
64
87
|
|
|
65
|
-
return await lane_seat_start.start(lane, async (seated) => launch(seated, built, on_note))
|
|
88
|
+
return await lane_seat_start.start(lane, async (seated) => await launch(seated, built, on_note))
|
|
66
89
|
} catch (error) {
|
|
67
90
|
return { kind: 'failed', note: error_text.message_of(error) }
|
|
68
91
|
}
|
|
@@ -9,6 +9,7 @@ import { z } from 'zod'
|
|
|
9
9
|
// lanes out of the worker share (`unit-run-marker.ts`, joshuafolkken/kit#6916).
|
|
10
10
|
|
|
11
11
|
const STATE_SUFFIX = '.json'
|
|
12
|
+
const DEPENDENCY_WAIT_COMMAND = 'lane:dependency-wait'
|
|
12
13
|
// `as const` so the literal type survives export on `lane_state_record` (a bare const widens there).
|
|
13
14
|
const HUMAN_REVIEW = 'human-review' as const
|
|
14
15
|
const LANE_STATES = ['open', 'running', 'paused', HUMAN_REVIEW, 'ended'] as const
|
|
@@ -62,6 +63,7 @@ function is_idle(state_root: string, common: string, issue: string): boolean {
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
const lane_state_record = {
|
|
66
|
+
DEPENDENCY_WAIT_COMMAND,
|
|
65
67
|
HUMAN_REVIEW,
|
|
66
68
|
LANE_STATES,
|
|
67
69
|
STATE_SUFFIX,
|