@joshuafolkken/kit 1.3041.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/progress-watcher.md +10 -8
- 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 +2042 -2002
- 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 +512 -488
- package/dist/hooks/pretool-guard.js +8 -8
- package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
- package/dist/hooks/session-lang.js +10 -8
- package/dist/hooks/stop-guard.js +962 -669
- package/dist/inputs.json +73 -64
- 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/session-language-cli.ts +1 -1
- 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-header.ts +4 -5
- package/scripts/run/board/run-board-layout.ts +2 -2
- package/scripts/run/board/run-board-read.ts +7 -1
- 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-roots.ts +25 -2
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +19 -11
- package/scripts/run/board/run-board-status.ts +2 -0
- package/scripts/run/board/run-board-tick.ts +7 -1
- 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-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-IF3EIFK4.js +0 -7515
- 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-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-Z3WGHIVB.js +0 -122
- 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
|
@@ -10,6 +10,7 @@ import { z } from 'zod'
|
|
|
10
10
|
import { run_carry_added, type CarryAddition } from './run-carry-added'
|
|
11
11
|
import { run_carry_change } from './run-carry-change'
|
|
12
12
|
import { run_carry_conversation } from './run-carry-conversation'
|
|
13
|
+
import { run_carry_session } from './run-carry-session'
|
|
13
14
|
|
|
14
15
|
// A `backlogrun` declares a budget — `--max` and `--idle` — and the session
|
|
15
16
|
// cut ends the session, so the next one would start from nothing. **The cut is an execution detail of
|
|
@@ -99,6 +100,7 @@ interface RunCarry {
|
|
|
99
100
|
// `undefined`, so absent and explicitly-undefined are the *same* record on disk — a type that told
|
|
100
101
|
// them apart would be asserting a distinction nothing here can observe.
|
|
101
102
|
owner_pid?: number | undefined
|
|
103
|
+
owner_session?: string | undefined
|
|
102
104
|
owner_start?: string | undefined
|
|
103
105
|
// The owner conversation's transcript, which outlives a restart of its process
|
|
104
106
|
// (`run-carry-conversation.ts`). Optional for the same reason as the pid.
|
|
@@ -142,6 +144,7 @@ interface RunCarry {
|
|
|
142
144
|
// token, so a reissued pid is never mistaken for the process that wrote the record — and the
|
|
143
145
|
// transcript of the conversation that process runs, which outlives it (`run-carry-conversation.ts`).
|
|
144
146
|
interface CarryOwner {
|
|
147
|
+
session?: string | undefined
|
|
145
148
|
provider?: AgentProvider | undefined
|
|
146
149
|
pid?: number | undefined
|
|
147
150
|
start?: string | undefined
|
|
@@ -207,6 +210,7 @@ const run_carry_schema = z.object({
|
|
|
207
210
|
// An absent owner reads as "no owner declared", which is the not-provably-live answer rather than a
|
|
208
211
|
// live one.
|
|
209
212
|
owner_pid: z.number().optional(),
|
|
213
|
+
owner_session: z.string().optional(),
|
|
210
214
|
owner_start: z.string().optional(),
|
|
211
215
|
owner_transcript: z.string().optional(),
|
|
212
216
|
is_owner_headless: z.boolean().optional(),
|
|
@@ -269,8 +273,10 @@ function owner_of(
|
|
|
269
273
|
// none exported, no owner is declared.
|
|
270
274
|
function session_owner(): CarryOwner {
|
|
271
275
|
const pid = agent_session_environment.own_session_pid()
|
|
276
|
+
const owner = pid === undefined ? NO_OWNER : owner_of(pid)
|
|
277
|
+
const session = run_carry_session.own()
|
|
272
278
|
|
|
273
|
-
return
|
|
279
|
+
return session === undefined ? owner : { ...owner, session }
|
|
274
280
|
}
|
|
275
281
|
|
|
276
282
|
function fresh_carry(invocation: string, owner: CarryOwner, now: Date): RunCarry {
|
|
@@ -284,6 +290,7 @@ function fresh_carry(invocation: string, owner: CarryOwner, now: Date): RunCarry
|
|
|
284
290
|
failures: NO_INCREMENT,
|
|
285
291
|
outages: NO_INCREMENT,
|
|
286
292
|
owner_pid: owner.pid,
|
|
293
|
+
owner_session: owner.session,
|
|
287
294
|
owner_start: owner.start,
|
|
288
295
|
owner_transcript: owner.transcript,
|
|
289
296
|
is_owner_headless: owner.is_headless,
|
|
@@ -318,17 +325,19 @@ function adopt_carry(
|
|
|
318
325
|
carry: RunCarry,
|
|
319
326
|
owner: CarryOwner = NO_OWNER,
|
|
320
327
|
): RunCarry | undefined {
|
|
328
|
+
const next_owner = run_carry_session.retain_execution(carry, owner)
|
|
321
329
|
// The run's own fields carry across untouched — the counters, the outage fold timestamp, `done` so the successor does not re-run what the cut session finished,
|
|
322
330
|
// and `retrospective` so a run resumed after a cut does not repeat its retrospective. Only the
|
|
323
331
|
// ownership fields are overridden: the new owner replaces the old — a caller that declared none
|
|
324
332
|
// writes `undefined`, so the previous owner cannot survive — and the declared hand-off is spent.
|
|
325
333
|
const next: RunCarry = {
|
|
326
334
|
...carry,
|
|
327
|
-
scheduler_provider:
|
|
328
|
-
owner_pid:
|
|
329
|
-
|
|
335
|
+
scheduler_provider: next_owner.provider,
|
|
336
|
+
owner_pid: next_owner.pid,
|
|
337
|
+
owner_session: owner.session,
|
|
338
|
+
owner_start: next_owner.start,
|
|
330
339
|
owner_transcript: owner.transcript,
|
|
331
|
-
is_owner_headless:
|
|
340
|
+
is_owner_headless: next_owner.is_headless,
|
|
332
341
|
is_handed_off: false,
|
|
333
342
|
}
|
|
334
343
|
|
|
@@ -352,11 +361,7 @@ function is_owner_live(
|
|
|
352
361
|
return carry.is_owner_headless !== true && run_carry_conversation.is_conversation_live(carry, now)
|
|
353
362
|
}
|
|
354
363
|
|
|
355
|
-
|
|
356
|
-
if (run_carry_conversation.is_same_conversation(carry, owner)) return true
|
|
357
|
-
|
|
358
|
-
return carry.owner_pid === owner.pid && carry.owner_start === owner.start
|
|
359
|
-
}
|
|
364
|
+
const { is_owned_by } = run_carry_session
|
|
360
365
|
|
|
361
366
|
// The one case that is not this caller's to touch: the record's owner is still running and it is
|
|
362
367
|
// somebody else. **The invocation text is not consulted** — a live owner holds the budget whatever
|
|
@@ -370,14 +375,15 @@ function is_foreign_live_owner(carry: RunCarry, owner: CarryOwner): boolean {
|
|
|
370
375
|
// conversation match would read that live session's record as the supervisor's own. The driver adopts
|
|
371
376
|
// the record for the supervisor's process (`run-wake-driver.ts` → `claim_record`), so without this a
|
|
372
377
|
// supervisor reads itself as a session at work.
|
|
378
|
+
function is_held_by_self(carry: RunCarry, caller: CarryOwner = owner_of(process.pid)): boolean {
|
|
379
|
+
return carry.owner_pid === caller.pid && carry.owner_start === caller.start
|
|
380
|
+
}
|
|
381
|
+
|
|
373
382
|
function is_held_by_another(
|
|
374
383
|
carry: RunCarry,
|
|
375
384
|
is_live: (carry: RunCarry) => boolean = is_owner_live,
|
|
376
385
|
): boolean {
|
|
377
|
-
|
|
378
|
-
const is_own = carry.owner_pid === caller.pid && carry.owner_start === caller.start
|
|
379
|
-
|
|
380
|
-
return !is_own && is_live(carry)
|
|
386
|
+
return !is_held_by_self(carry) && is_live(carry)
|
|
381
387
|
}
|
|
382
388
|
|
|
383
389
|
function is_handed_off_to(carry: RunCarry, invocation: string): boolean {
|
|
@@ -552,6 +558,7 @@ const run_carry = {
|
|
|
552
558
|
is_count_refused,
|
|
553
559
|
is_foreign_live_owner,
|
|
554
560
|
is_held_by_another,
|
|
561
|
+
is_held_by_self,
|
|
555
562
|
is_owner_live,
|
|
556
563
|
lost_message,
|
|
557
564
|
nothing_to_resume_message,
|
|
@@ -3,6 +3,7 @@ import { cost_verdict } from '#scripts/cost-runtime/cost-verdict'
|
|
|
3
3
|
import { issue_cite } from '#scripts/issue/issue-cite'
|
|
4
4
|
import { run_event_stream } from '#scripts/run/event/run-event-stream'
|
|
5
5
|
import { run_event_stream_emit } from '#scripts/run/event/run-event-stream-emit'
|
|
6
|
+
import { run_repair_attempt } from '#scripts/run/run-repair-attempt'
|
|
6
7
|
import { run_cut, type RunCut } from './run-cut'
|
|
7
8
|
import { run_cut_report } from './run-cut-report'
|
|
8
9
|
import { run_cut_review } from './run-cut-review'
|
|
@@ -110,6 +111,19 @@ async function verify_and_adopt(
|
|
|
110
111
|
return await adopt(target, cut_record)
|
|
111
112
|
}
|
|
112
113
|
|
|
114
|
+
async function resume_carried(
|
|
115
|
+
target: string,
|
|
116
|
+
cut: RunCut,
|
|
117
|
+
issue: string,
|
|
118
|
+
is_expired: boolean,
|
|
119
|
+
): Promise<number> {
|
|
120
|
+
if (await run_repair_attempt.prepare(issue, target)) {
|
|
121
|
+
return report(FRESH_VERDICT, SUCCESS_EXIT_CODE)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return is_expired ? report_stale(cut) : await verify_and_adopt(target, cut, issue)
|
|
125
|
+
}
|
|
126
|
+
|
|
113
127
|
async function resume(target: string, issue: string): Promise<number> {
|
|
114
128
|
const read = run_cut.read_cut(target)
|
|
115
129
|
|
|
@@ -117,9 +131,7 @@ async function resume(target: string, issue: string): Promise<number> {
|
|
|
117
131
|
|
|
118
132
|
if (read.kind === 'unreadable') return report_unreadable()
|
|
119
133
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return await verify_and_adopt(target, read.cut, issue)
|
|
134
|
+
return await resume_carried(target, read.cut, issue, read.kind === 'expired')
|
|
123
135
|
}
|
|
124
136
|
|
|
125
137
|
const run_cut_resume = {
|
|
@@ -450,7 +450,7 @@ function busy_message(cut: RunCut): string {
|
|
|
450
450
|
// A successor already resumed this cut, so a process that reaches `--resume` after its own hand-off is
|
|
451
451
|
// told to stop quietly rather than to investigate a tree that is not wrong.
|
|
452
452
|
function handed_off_message(cut: RunCut): string {
|
|
453
|
-
return `This cut was already
|
|
453
|
+
return `This cut was already adopted — ${describe_cut(cut)}. Nothing was resumed here; the record alone does not establish whether its owner is still running. After a trusted repair request on an open PR and confirmed owner exit, use \`pnpm josh run:add ${cut.issue} --retry\` in a live backlogrun, or \`pnpm josh run:entry ${cut.issue}\` in its lane. Active or unreadable owners remain protected.`
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
// The record does not match the tree the fresh process is in — wrong branch, a clean tree, an expired
|
|
@@ -3,6 +3,7 @@ import { closeSync, constants, openSync, writeSync } from 'node:fs'
|
|
|
3
3
|
import { agent_launch_environment } from '#scripts/agent/agent-launch-environment'
|
|
4
4
|
import { agent_profile_schema, type AgentProfile } from '#scripts/agent/agent-profile-schema'
|
|
5
5
|
import { agent_safe_text } from '#scripts/agent/agent-safe-text'
|
|
6
|
+
import { codex_launch_identity } from '#scripts/agent/codex-launch-identity'
|
|
6
7
|
import { agent_session_environment } from '#scripts/josh/agent-session-environment'
|
|
7
8
|
import { stamp_file } from '#scripts/josh/stamp-file'
|
|
8
9
|
import { launch_priority } from '#scripts/run/launch-priority'
|
|
@@ -25,9 +26,8 @@ const NO_PID_NOTE = 'the process started without a pid'
|
|
|
25
26
|
const UNSAFE_NOTE =
|
|
26
27
|
'the wake command or its arguments are empty, over length, or contain characters that are not safe to execute'
|
|
27
28
|
|
|
28
|
-
// Provider
|
|
29
|
-
//
|
|
30
|
-
// The provider adapter keeps the fixed binary and permission flags in one reviewed place.
|
|
29
|
+
// Provider adapters own commands and flags. At this boundary the Codex adapter binds the launcher's
|
|
30
|
+
// explicit lane identity to shell configuration before the final argv safety check.
|
|
31
31
|
// **The inputs that reach `spawn` are validated rather than trusted, and that is a control rather than
|
|
32
32
|
// a formality.** Two things already bound this — the argument vector never goes through a shell, so
|
|
33
33
|
// there is no shell to inject into, and the invocation travels as exactly one argv element rather than
|
|
@@ -319,7 +319,15 @@ function spawned(
|
|
|
319
319
|
// execs before it returns, so the child already holds its own duplicate of the descriptor by then;
|
|
320
320
|
// what is closed here is this process's copy. Left open it would outlive the launch in a supervisor
|
|
321
321
|
// that runs for hours and launches once per cut.
|
|
322
|
-
function
|
|
322
|
+
function prepared_request(request: LaunchRequest): LaunchRequest {
|
|
323
|
+
return {
|
|
324
|
+
...request,
|
|
325
|
+
argv: { ...request.argv, args: codex_launch_identity.arguments_for(request) },
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
function launch(input: LaunchRequest, on_error: (note: string) => void): LaunchResult {
|
|
330
|
+
const request = prepared_request(input)
|
|
323
331
|
if (!is_safe_argv(request.argv)) return { kind: 'failed', note: UNSAFE_NOTE }
|
|
324
332
|
|
|
325
333
|
const log = open_log(request.log_path, on_error)
|
|
@@ -336,10 +344,11 @@ function launch(request: LaunchRequest, on_error: (note: string) => void): Launc
|
|
|
336
344
|
}
|
|
337
345
|
|
|
338
346
|
async function launch_attached(
|
|
339
|
-
|
|
347
|
+
input: LaunchRequest,
|
|
340
348
|
on_error: (note: string) => void,
|
|
341
349
|
on_spawn: (pid: number) => void = ignore_spawn,
|
|
342
350
|
): Promise<AttachedLaunchResult> {
|
|
351
|
+
const request = prepared_request(input)
|
|
343
352
|
if (!is_safe_argv(request.argv)) return { kind: 'failed', note: UNSAFE_NOTE }
|
|
344
353
|
const log = open_log(request.log_path, on_error)
|
|
345
354
|
|
|
@@ -2,15 +2,19 @@ import { git_branch } from '#scripts/git/git-branch'
|
|
|
2
2
|
import { git_command } from '#scripts/git/git-command'
|
|
3
3
|
import { lane_ledger_write } from '#scripts/lane/lane-ledger-write'
|
|
4
4
|
|
|
5
|
-
// Measurement is best-effort, including the branch read outside a repository.
|
|
6
|
-
|
|
5
|
+
// Measurement is best-effort, including the branch read outside a repository. `slots` is the review
|
|
6
|
+
// round's slot count, where the caller knows it.
|
|
7
|
+
async function record(source: 'review' | 'ship', result: string, slots?: number): Promise<void> {
|
|
7
8
|
try {
|
|
8
9
|
const issue = git_branch.issue_from_branch(await git_command.branch())
|
|
10
|
+
const head = await git_command.head_commit()
|
|
9
11
|
|
|
10
12
|
await lane_ledger_write.record_early_push({
|
|
11
13
|
source,
|
|
12
14
|
result,
|
|
15
|
+
head,
|
|
13
16
|
...(issue !== undefined && { issue }),
|
|
17
|
+
...(slots !== undefined && { slots }),
|
|
14
18
|
})
|
|
15
19
|
} catch {
|
|
16
20
|
// A missing measurement never blocks a push.
|
|
@@ -17,6 +17,8 @@ const STAGE = {
|
|
|
17
17
|
PLANNING: 'planning',
|
|
18
18
|
// The supervisor took the run over from the parent and is asking for the first offer.
|
|
19
19
|
HANDING_OFF: 'handing off',
|
|
20
|
+
// No child is runnable; maintenance may still be finishing before the replaceable drain.
|
|
21
|
+
WATCHING: 'watching',
|
|
20
22
|
// The driver answered something only a session can act on — an untriaged child, an epic left to a
|
|
21
23
|
// person — and the supervisor is waking one. The next hand-off replaces it.
|
|
22
24
|
JUDGING: 'waiting on judgment',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { statSync } from 'node:fs'
|
|
1
2
|
import { lane_state, type LaneStateRecord } from '#scripts/lane/lane-state'
|
|
2
3
|
import { error_text } from '#scripts/lib/error-message'
|
|
3
4
|
import { run_board_lane_time } from '#scripts/run/board/run-board-lane-time'
|
|
@@ -5,6 +6,8 @@ import { run_carry } from '#scripts/run/carry/run-carry'
|
|
|
5
6
|
import { run_event_scope } from './run-event-scope'
|
|
6
7
|
import { run_event_stream, type AppendResult, type RunEvent } from './run-event-stream'
|
|
7
8
|
|
|
9
|
+
const UNRESOLVED_STREAM = 'Could not resolve the run event stream.'
|
|
10
|
+
|
|
8
11
|
// The write side of the run's event stream. It resolves the run's identity and
|
|
9
12
|
// appends, and it is where the "reporting must not break the work it reports on" contract is kept: every
|
|
10
13
|
// failure — a git call that hangs, a temp directory that cannot be written — is swallowed, so a lane
|
|
@@ -127,7 +130,8 @@ async function fresh_target(kind: string): Promise<string | undefined> {
|
|
|
127
130
|
* `false`: neither is a fresh episode.
|
|
128
131
|
*
|
|
129
132
|
* `before_append` runs only on a fresh episode and is awaited before the marker becomes visible, for an
|
|
130
|
-
* effect a reader of the marker must see finished — the drain
|
|
133
|
+
* effect a reader of the marker must see finished — the drain's idle stage, set before the drain
|
|
134
|
+
* flush starts detached (joshuafolkken/kit#7505).
|
|
131
135
|
*/
|
|
132
136
|
async function emit_once(
|
|
133
137
|
kind: string,
|
|
@@ -215,7 +219,7 @@ function read_current_events(
|
|
|
215
219
|
repository: string | undefined,
|
|
216
220
|
is_required: boolean,
|
|
217
221
|
): ReadonlyArray<RunEvent> {
|
|
218
|
-
if (repository === undefined) throw new Error(
|
|
222
|
+
if (repository === undefined) throw new Error(UNRESOLVED_STREAM)
|
|
219
223
|
|
|
220
224
|
const read = run_carry.read_carry(run_carry.carry_path(repository))
|
|
221
225
|
const scope = run_event_scope.scope_of(read)
|
|
@@ -252,14 +256,30 @@ async function invocation_or_all_events(): Promise<ReadonlyArray<RunEvent>> {
|
|
|
252
256
|
}
|
|
253
257
|
}
|
|
254
258
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
259
|
+
function read_existing_events(target: string, is_required: boolean): ReadonlyArray<RunEvent> {
|
|
260
|
+
if (is_required && statSync(target, { throwIfNoEntry: false }) === undefined) return []
|
|
261
|
+
|
|
262
|
+
return run_event_stream.read_events(target, is_required)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function read_all_events(
|
|
266
|
+
target: string | undefined,
|
|
267
|
+
is_required: boolean,
|
|
268
|
+
): ReadonlyArray<RunEvent> {
|
|
269
|
+
if (target === undefined && is_required) throw new Error(UNRESOLVED_STREAM)
|
|
270
|
+
|
|
271
|
+
return target === undefined ? [] : read_existing_events(target, is_required)
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// Every invocation, for issue-scoped readers. Required reads preserve failures, as current_events does.
|
|
275
|
+
async function all_events(is_required = false): Promise<ReadonlyArray<RunEvent>> {
|
|
258
276
|
try {
|
|
259
277
|
const target = await stream_target()
|
|
260
278
|
|
|
261
|
-
return target
|
|
262
|
-
} catch {
|
|
279
|
+
return read_all_events(target, is_required)
|
|
280
|
+
} catch (error) {
|
|
281
|
+
if (is_required) throw error
|
|
282
|
+
|
|
263
283
|
return []
|
|
264
284
|
}
|
|
265
285
|
}
|
|
@@ -50,6 +50,8 @@ const FORCE_FLAG = '--force'
|
|
|
50
50
|
// implementation cut outside a lane resumes as `fullrun #N`.
|
|
51
51
|
const FULLRUN_FLAG = '--fullrun'
|
|
52
52
|
const HALFRUN_STOP_FLAG = '--halfrun-stop'
|
|
53
|
+
// A `halfrun` fix round's start: the stopped record re-opened as the round's (`run-halfrun-resume.ts`).
|
|
54
|
+
const HALFRUN_ROUND_FLAG = '--halfrun-round'
|
|
53
55
|
// A `prrun`'s stop before merge: its record keeps the commit it stopped on.
|
|
54
56
|
const PRRUN_STOP_FLAG = '--prrun-stop'
|
|
55
57
|
// A `needs-human-review` stop: marked as a `halfrun` stop is, with its own confirmation.
|
|
@@ -59,7 +61,7 @@ const ADOPT_FLAG = '--adopt'
|
|
|
59
61
|
// The most a claim reads: the issue number and the one flag after it.
|
|
60
62
|
const MAX_CLAIM_ARGUMENTS = 2
|
|
61
63
|
const USAGE =
|
|
62
|
-
'Usage: josh run:hold [<issue-number> [--fullrun | --halfrun-stop | --human-review-stop | --prrun-stop]] | josh run:hold --adopt <issue-number> | josh run:release [<issue-number> | --force]'
|
|
64
|
+
'Usage: josh run:hold [<issue-number> [--fullrun | --halfrun-stop | --halfrun-round | --human-review-stop | --prrun-stop]] | josh run:hold --adopt <issue-number> | josh run:release [<issue-number> | --force]'
|
|
63
65
|
|
|
64
66
|
const COMMAND = 'run:hold'
|
|
65
67
|
|
|
@@ -79,9 +81,16 @@ const HALFRUN_STOP_KIND = 'halfrun-stop'
|
|
|
79
81
|
const HUMAN_REVIEW_STOP_KIND = 'human-review-stop'
|
|
80
82
|
const PRRUN_STOP_KIND = 'prrun-stop'
|
|
81
83
|
const ADOPT_KIND = 'adopt'
|
|
84
|
+
const HALFRUN_ROUND_KIND = 'halfrun-round'
|
|
82
85
|
|
|
83
86
|
type StopKind = typeof HALFRUN_STOP_KIND | typeof HUMAN_REVIEW_STOP_KIND | typeof PRRUN_STOP_KIND
|
|
84
87
|
|
|
88
|
+
// The requests that take over a record this issue's own run left: `--adopt` and `--halfrun-round`.
|
|
89
|
+
interface TakeOverRequest {
|
|
90
|
+
kind: typeof ADOPT_KIND | typeof HALFRUN_ROUND_KIND
|
|
91
|
+
issue: string
|
|
92
|
+
}
|
|
93
|
+
|
|
85
94
|
interface ClaimRequest {
|
|
86
95
|
kind: 'claim'
|
|
87
96
|
issue: string
|
|
@@ -96,7 +105,7 @@ interface StopRequest {
|
|
|
96
105
|
type HoldRequest =
|
|
97
106
|
| ClaimRequest
|
|
98
107
|
| StopRequest
|
|
99
|
-
|
|
|
108
|
+
| TakeOverRequest
|
|
100
109
|
| { kind: 'release'; claimant: string }
|
|
101
110
|
| { kind: typeof FORCE_RELEASE_KIND }
|
|
102
111
|
|
|
@@ -110,6 +119,12 @@ function is_stop_request(request: HoldRequest): request is StopRequest {
|
|
|
110
119
|
return STOP_KINDS.has(request.kind)
|
|
111
120
|
}
|
|
112
121
|
|
|
122
|
+
const TAKE_OVER_KINDS: ReadonlySet<string> = new Set([ADOPT_KIND, HALFRUN_ROUND_KIND])
|
|
123
|
+
|
|
124
|
+
function is_take_over_request(request: HoldRequest): request is TakeOverRequest {
|
|
125
|
+
return TAKE_OVER_KINDS.has(request.kind)
|
|
126
|
+
}
|
|
127
|
+
|
|
113
128
|
const FORCE_RELEASE_REQUEST: HoldRequest = { kind: FORCE_RELEASE_KIND }
|
|
114
129
|
|
|
115
130
|
function release_request(claimant: string): HoldRequest {
|
|
@@ -122,8 +137,8 @@ const STOP_KIND_BY_FLAG: ReadonlyMap<string, StopKind> = new Map([
|
|
|
122
137
|
[PRRUN_STOP_FLAG, PRRUN_STOP_KIND],
|
|
123
138
|
])
|
|
124
139
|
|
|
125
|
-
// The flag after a numbered claim: absent, `--fullrun`, `--halfrun-stop`, `--
|
|
126
|
-
// `--prrun-stop`. Anything else is a usage error.
|
|
140
|
+
// The flag after a numbered claim: absent, `--fullrun`, `--halfrun-stop`, `--halfrun-round`,
|
|
141
|
+
// `--human-review-stop` or `--prrun-stop`. Anything else is a usage error.
|
|
127
142
|
function numbered_claim(issue: string, flag: string | undefined): HoldRequest | undefined {
|
|
128
143
|
if (flag === undefined) return { kind: 'claim', issue }
|
|
129
144
|
|
|
@@ -131,6 +146,8 @@ function numbered_claim(issue: string, flag: string | undefined): HoldRequest |
|
|
|
131
146
|
|
|
132
147
|
if (stop_kind !== undefined) return { kind: stop_kind, issue }
|
|
133
148
|
|
|
149
|
+
if (flag === HALFRUN_ROUND_FLAG) return { kind: HALFRUN_ROUND_KIND, issue }
|
|
150
|
+
|
|
134
151
|
return flag === FULLRUN_FLAG ? { kind: 'claim', issue, is_fullrun: true } : undefined
|
|
135
152
|
}
|
|
136
153
|
|
|
@@ -414,10 +431,28 @@ async function adopt(target: string, issue: string): Promise<number> {
|
|
|
414
431
|
return report(run_hold_adopt.foreign_message(issue), BUSY_VERDICT, FAILURE_EXIT_CODE)
|
|
415
432
|
}
|
|
416
433
|
|
|
434
|
+
// The re-opened record answers `hold`; anything but #N's own stop answers `busy`, a failure, since
|
|
435
|
+
// the round has no stopped `halfrun` to pick up.
|
|
436
|
+
async function reopen_round(target: string, issue: string): Promise<number> {
|
|
437
|
+
const result = await run_halfrun_resume.reopen(target, issue)
|
|
438
|
+
|
|
439
|
+
if (result === run_halfrun_resume.MARKED) return report_hold()
|
|
440
|
+
|
|
441
|
+
if (result === run_halfrun_resume.UNREADABLE) return report_unreadable_record()
|
|
442
|
+
|
|
443
|
+
return report(run_halfrun_resume.no_stop_message(issue), BUSY_VERDICT, FAILURE_EXIT_CODE)
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
async function take_over(target: string, request: TakeOverRequest): Promise<number> {
|
|
447
|
+
const { kind, issue } = request
|
|
448
|
+
|
|
449
|
+
return kind === ADOPT_KIND ? await adopt(target, issue) : await reopen_round(target, issue)
|
|
450
|
+
}
|
|
451
|
+
|
|
417
452
|
async function dispatch(request: HoldRequest, target: string, is_linked: boolean): Promise<number> {
|
|
418
453
|
if (request.kind === 'claim') return await claim(target, request, is_linked)
|
|
419
454
|
|
|
420
|
-
if (request
|
|
455
|
+
if (is_take_over_request(request)) return await take_over(target, request)
|
|
421
456
|
|
|
422
457
|
if (is_stop_request(request)) return await mark_stop(target, request)
|
|
423
458
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { lane_registry } from '#scripts/lane/lane-registry'
|
|
2
|
+
import { run_cut } from '#scripts/run/cut/run-cut'
|
|
3
|
+
import { run_cut_adoption } from '#scripts/run/cut/run-cut-adoption'
|
|
4
|
+
|
|
5
|
+
// Only called after the worker has stopped; every terminal collection releases the same owner.
|
|
6
|
+
async function release(child: string): Promise<void> {
|
|
7
|
+
const lane = await lane_registry.find_open_lane(child)
|
|
8
|
+
if (lane === undefined) return
|
|
9
|
+
const carried = run_cut.lane_cut_sync(lane.directory)
|
|
10
|
+
if (carried === undefined) return
|
|
11
|
+
|
|
12
|
+
run_cut_adoption.release(carried.target, carried.cut, child)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const run_merge_cut_release = { release }
|
|
16
|
+
|
|
17
|
+
export { run_merge_cut_release }
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { issue_cite } from '#scripts/issue/issue-cite'
|
|
2
|
+
import { lane_await } from '#scripts/lane/lane-await'
|
|
2
3
|
import { lane_state } from '#scripts/lane/lane-state'
|
|
3
4
|
import { run_event_stream } from '#scripts/run/event/run-event-stream'
|
|
4
5
|
import { run_event_stream_emit } from '#scripts/run/event/run-event-stream-emit'
|
|
6
|
+
import { run_merge_cut_release } from './run-merge-cut-release'
|
|
5
7
|
|
|
6
8
|
// A child may exit before its stop marker: retain its lane before settling its dispatch.
|
|
7
9
|
async function retain(issue: string): Promise<boolean> {
|
|
@@ -13,6 +15,10 @@ async function retain(issue: string): Promise<boolean> {
|
|
|
13
15
|
|
|
14
16
|
if (retained.kind !== 'written') return false
|
|
15
17
|
|
|
18
|
+
if (lane_await.process_trace_default(issue) === 'none') {
|
|
19
|
+
await run_merge_cut_release.release(issue)
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
await run_event_stream_emit.emit(
|
|
17
23
|
run_event_stream.EVENT_KIND.HUMAN_REVIEW,
|
|
18
24
|
`${issue_cite.plain_for('program', issue)} waiting for human review`,
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import { git_gh_command } from '#scripts/gh/git-gh-command'
|
|
2
1
|
import { git_gh_issue_write } from '#scripts/gh/git-gh-issue-write'
|
|
3
|
-
import { issue_cite } from '#scripts/issue/issue-cite'
|
|
4
|
-
import { has_label_name, NOT_BEFORE_LABEL } from '#scripts/issue/issue-labels'
|
|
5
|
-
import { issue_not_before } from '#scripts/issue/issue-not-before'
|
|
6
2
|
import { issue_park } from '#scripts/issue/issue-park'
|
|
7
|
-
import { issue_sample_prime } from '#scripts/issue/issue-sample-prime'
|
|
8
|
-
import { issue_state_cli } from '#scripts/issue/issue-state-cli'
|
|
9
3
|
import { session_cite } from '#scripts/issue/session-cite'
|
|
10
4
|
import { josh_command, type JoshResult } from '#scripts/josh/josh-run'
|
|
11
5
|
import { lane_preserve } from '#scripts/lane/lane-preserve'
|
|
@@ -23,14 +17,15 @@ import {
|
|
|
23
17
|
} from '#scripts/run/carry/run-carry'
|
|
24
18
|
import { run_carry_conversation } from '#scripts/run/carry/run-carry-conversation'
|
|
25
19
|
import { run_cut, type RunCut } from '#scripts/run/cut/run-cut'
|
|
26
|
-
import { run_cut_adoption } from '#scripts/run/cut/run-cut-adoption'
|
|
27
20
|
import type { StallCause } from '#scripts/run/park/run-stalled'
|
|
28
21
|
import { run_label } from '#scripts/run/run-label'
|
|
29
22
|
import { run_merge, type EndingSignals } from './run-merge'
|
|
30
23
|
import { run_merge_cap } from './run-merge-cap'
|
|
31
24
|
import { run_merge_close } from './run-merge-close'
|
|
25
|
+
import { run_merge_cut_release } from './run-merge-cut-release'
|
|
32
26
|
import { run_merge_decision } from './run-merge-decision'
|
|
33
27
|
import { run_merge_github_limit } from './run-merge-github-limit'
|
|
28
|
+
import { run_merge_waits } from './run-merge-waits'
|
|
34
29
|
|
|
35
30
|
// The result of attempting to apply a carry change. Distinguishing `refused` from `applied` lets
|
|
36
31
|
// callers surface the refusal as a hard failure rather than silently continuing on a carry that was
|
|
@@ -53,7 +48,6 @@ const LANES = '--lanes'
|
|
|
53
48
|
const REPO_FLAG = '--repo'
|
|
54
49
|
const CLOSE_CAUSE = '`run:merge` closed it'
|
|
55
50
|
const STOPPED_CAUSE = 'the unit stopped and `run:merge --stash` classified it'
|
|
56
|
-
const OPEN_STATE = 'OPEN'
|
|
57
51
|
const SYNC_RETRY = { attempts: 3, interval_ms: 5000 }
|
|
58
52
|
|
|
59
53
|
// One returned child's context, gathered from the command line by the CLI, and the ending signals its
|
|
@@ -92,8 +86,6 @@ interface FailedResult {
|
|
|
92
86
|
}
|
|
93
87
|
|
|
94
88
|
const NO_WAITS: ReadonlyArray<string> = []
|
|
95
|
-
// The wait a `not-before` label alone records: the label carries no date, only that one is ahead.
|
|
96
|
-
const NOT_BEFORE_WAIT = 'a start date still ahead (`not-before`)'
|
|
97
89
|
|
|
98
90
|
// A captured `pnpm josh` subprocess: its output is read back rather than inherited, and a non-zero
|
|
99
91
|
// exit is a value to branch on rather than a throw. The step's stderr stays piped here — `run:merge`
|
|
@@ -270,21 +262,12 @@ async function do_merged(
|
|
|
270
262
|
return undefined
|
|
271
263
|
}
|
|
272
264
|
|
|
273
|
-
async function release_cut(child: string): Promise<void> {
|
|
274
|
-
const lane = await lane_registry.find_open_lane(child)
|
|
275
|
-
if (lane === undefined) return
|
|
276
|
-
const carried = run_cut.lane_cut_sync(lane.directory)
|
|
277
|
-
if (carried === undefined) return
|
|
278
|
-
|
|
279
|
-
run_cut_adoption.release(carried.target, carried.cut, child)
|
|
280
|
-
}
|
|
281
|
-
|
|
282
265
|
// A child that ended without a merge: end whatever of its process still runs, release its adoption, drop its stale
|
|
283
266
|
// `in-progress`, and close its lane if the child left nothing in it. The reap comes first, so the lane
|
|
284
267
|
// reads with no live process.
|
|
285
268
|
async function release_child(child: string): Promise<void> {
|
|
286
269
|
await lane_seat_stop.stop(child)
|
|
287
|
-
await
|
|
270
|
+
await run_merge_cut_release.release(child)
|
|
288
271
|
await run_label.unmark(child)
|
|
289
272
|
await close_vacant_lane(child)
|
|
290
273
|
}
|
|
@@ -293,42 +276,6 @@ function refused_result(carry: RunCarry): FailedResult {
|
|
|
293
276
|
return { carry, is_parked: false, is_refused: true, waits: NO_WAITS }
|
|
294
277
|
}
|
|
295
278
|
|
|
296
|
-
// The child's open `blocked-by` blockers, cited. A read that fails answers none, so the child is
|
|
297
|
-
// parked — a relation nobody could read is never taken as a dependency.
|
|
298
|
-
async function open_blockers(child: string): Promise<ReadonlyArray<string>> {
|
|
299
|
-
try {
|
|
300
|
-
const references = await git_gh_command.issue_blocked_by_references(child, '')
|
|
301
|
-
|
|
302
|
-
return references
|
|
303
|
-
.filter((blocker) => blocker.state === OPEN_STATE)
|
|
304
|
-
.map((blocker) => issue_cite.plain_for('github', blocker.number, blocker.repo))
|
|
305
|
-
} catch {
|
|
306
|
-
return NO_WAITS
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// Whether the child carries `not-before` — the body's start date copied to a label. Read only where the
|
|
311
|
-
// body could not be: the body is the source, so a label it no longer backs is never a wait.
|
|
312
|
-
async function has_not_before_label(ctx: MergeContext): Promise<boolean> {
|
|
313
|
-
const read = await issue_state_cli.read_issue(ctx.child, ctx.repo)
|
|
314
|
-
|
|
315
|
-
return read.kind === 'state' && has_label_name(read.state.labels, NOT_BEFORE_LABEL)
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// The child's declared start date while it is still ahead (joshuafolkken/kit#4076), or its `not-before`
|
|
319
|
-
// label when the body could not be read (joshuafolkken/kit#4102), or the samples it still waits on. A
|
|
320
|
-
// due date or none answers none, so the child is parked as before.
|
|
321
|
-
async function start_date_wait(ctx: MergeContext): Promise<ReadonlyArray<string>> {
|
|
322
|
-
const body = await git_gh_command.issue_get_body(ctx.child, ctx.repo)
|
|
323
|
-
|
|
324
|
-
if (body === undefined) return (await has_not_before_label(ctx)) ? [NOT_BEFORE_WAIT] : NO_WAITS
|
|
325
|
-
|
|
326
|
-
await issue_sample_prime.prime([body])
|
|
327
|
-
const reason = issue_not_before.waiting_reason(body)
|
|
328
|
-
|
|
329
|
-
return reason === undefined ? NO_WAITS : [reason]
|
|
330
|
-
}
|
|
331
|
-
|
|
332
279
|
// A child that ended unfinished while an open blocker it records still has to land first, or while
|
|
333
280
|
// its declared start date is still ahead, is waiting, not failed: nothing is counted and
|
|
334
281
|
// `needs-decision` is not applied — when it runs is already recorded, so there is nothing for a person
|
|
@@ -381,7 +328,7 @@ async function park_failed(ctx: MergeContext, cause: StallCause): Promise<Failed
|
|
|
381
328
|
// person. Without a cause of the caller's, a child whose detached ship ended is parked for the ship's
|
|
382
329
|
// stop.
|
|
383
330
|
async function do_failed(ctx: MergeContext, cause?: StallCause): Promise<FailedResult> {
|
|
384
|
-
const waits =
|
|
331
|
+
const waits = await run_merge_waits.read(ctx)
|
|
385
332
|
|
|
386
333
|
if (waits.length > 0) return await do_waiting(ctx, waits)
|
|
387
334
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { git_gh_command } from '#scripts/gh/git-gh-command'
|
|
2
|
+
import { issue_cite } from '#scripts/issue/issue-cite'
|
|
3
|
+
import { has_label_name, NOT_BEFORE_LABEL } from '#scripts/issue/issue-labels'
|
|
4
|
+
import { issue_not_before } from '#scripts/issue/issue-not-before'
|
|
5
|
+
import { issue_sample_prime } from '#scripts/issue/issue-sample-prime'
|
|
6
|
+
import { issue_state_cli } from '#scripts/issue/issue-state-cli'
|
|
7
|
+
import { lane_dispatch_dependency } from '#scripts/lane/lane-dispatch-dependency'
|
|
8
|
+
import type { MergeContext } from './run-merge-steps'
|
|
9
|
+
|
|
10
|
+
const NOT_BEFORE_WAIT = 'a start date still ahead (`not-before`)'
|
|
11
|
+
|
|
12
|
+
async function open_blockers(child: string): Promise<ReadonlyArray<string>> {
|
|
13
|
+
try {
|
|
14
|
+
const references = await git_gh_command.issue_blocked_by_references(child, '')
|
|
15
|
+
|
|
16
|
+
return references
|
|
17
|
+
.filter((blocker) => blocker.state === 'OPEN')
|
|
18
|
+
.map((blocker) => issue_cite.plain_for('github', blocker.number, blocker.repo))
|
|
19
|
+
} catch {
|
|
20
|
+
return []
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async function has_not_before_label(ctx: MergeContext): Promise<boolean> {
|
|
25
|
+
const state = await issue_state_cli.read_issue(ctx.child, ctx.repo)
|
|
26
|
+
|
|
27
|
+
return state.kind === 'state' && has_label_name(state.state.labels, NOT_BEFORE_LABEL)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async function start_date_wait(ctx: MergeContext): Promise<ReadonlyArray<string>> {
|
|
31
|
+
const body = await git_gh_command.issue_get_body(ctx.child, ctx.repo)
|
|
32
|
+
|
|
33
|
+
if (body === undefined) {
|
|
34
|
+
return [(await has_not_before_label(ctx)) ? NOT_BEFORE_WAIT : 'issue body confirmation']
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
await issue_sample_prime.prime([body])
|
|
38
|
+
const reason = issue_not_before.waiting_reason(body)
|
|
39
|
+
|
|
40
|
+
return reason === undefined ? [] : [reason]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// A withheld resume is already known to be retryable, including a read failure. Do not turn it
|
|
44
|
+
// into a mechanical failure because a second GitHub read still cannot answer.
|
|
45
|
+
async function read(ctx: MergeContext): Promise<ReadonlyArray<string>> {
|
|
46
|
+
const deferred = await lane_dispatch_dependency.deferred(ctx.child)
|
|
47
|
+
if (deferred.length > 0) return deferred
|
|
48
|
+
|
|
49
|
+
return [...(await open_blockers(ctx.child)), ...(await start_date_wait(ctx))]
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const run_merge_waits = { read }
|
|
53
|
+
|
|
54
|
+
export { run_merge_waits }
|