@joshuafolkken/kit 1.3044.0 → 1.3099.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
- package/.claude/skills/workflow-commands/halfrun.md +3 -2
- package/.claude/skills/workflow-commands/kickoff.md +9 -2
- package/.claude/skills/workflow-commands/prerequisite.md +2 -0
- package/.claude/skills/workflow-commands/retrospective.md +2 -1
- package/.claude/skills/workflow-commands/split-assessment.md +4 -0
- package/.github/workflows/ci.yml +0 -20
- package/.github/workflows/pr-classification.yml +0 -5
- package/.github/workflows/publish.yml +0 -1
- package/.github/workflows/sonar-qube.yml +0 -5
- package/README.md +2 -0
- package/SECURITY.md +2 -1
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +29 -20
- package/dist/commands/auto-ok-judge-cli.js +43 -33
- package/dist/commands/auto-ok-main.js +73 -74
- package/dist/commands/backlog-budget-main.js +5 -6
- package/dist/commands/backlog-drive-cli.js +286 -305
- package/dist/commands/backlog-next-main.js +111 -108
- package/dist/commands/backlog-offer-main.js +148 -112
- package/dist/commands/backlog-plan-cli.js +123 -120
- package/dist/commands/backlog-triage-cli.js +131 -128
- package/dist/commands/backlogrun-cli.js +274 -264
- package/dist/commands/behavior-cli.js +23 -26
- package/dist/commands/bytes-command.js +56 -59
- package/dist/commands/cases-cli.js +4 -5
- package/dist/commands/check-commit-message-main.js +3 -4
- package/dist/commands/check-related.js +125 -119
- package/dist/commands/chunk-26JL4UU4.js +365 -0
- package/dist/commands/chunk-2BIVHPCA.js +85 -0
- package/dist/commands/chunk-2CKJODCK.js +245 -0
- package/dist/commands/chunk-2CNVIA35.js +335 -0
- package/dist/commands/chunk-2E6PSONB.js +46 -0
- package/dist/commands/chunk-2GA4775H.js +77 -0
- package/dist/commands/chunk-2O64H5UJ.js +462 -0
- package/dist/commands/chunk-2OEXY4GM.js +252 -0
- package/dist/commands/chunk-2OMIHPPE.js +51 -0
- package/dist/commands/chunk-2ONSHOAY.js +46 -0
- package/dist/commands/chunk-2SA3W4JF.js +41 -0
- package/dist/commands/chunk-2VY7CJ2R.js +212 -0
- package/dist/commands/chunk-2WRDAQPJ.js +74 -0
- package/dist/commands/chunk-2XLR7R6E.js +541 -0
- package/dist/commands/chunk-33TAOZUE.js +29 -0
- package/dist/commands/chunk-36XHHYNU.js +158 -0
- package/dist/commands/chunk-3CJNQU7P.js +179 -0
- package/dist/commands/chunk-3D5T6KMW.js +59 -0
- package/dist/commands/chunk-3EW5LTN3.js +114 -0
- package/dist/commands/chunk-3F3RNIG2.js +128 -0
- package/dist/commands/chunk-3FLTEJZY.js +74 -0
- package/dist/commands/chunk-3JWPTRNI.js +60 -0
- package/dist/commands/chunk-3LUPGBW4.js +137 -0
- package/dist/commands/chunk-3MQTOUXT.js +94 -0
- package/dist/commands/chunk-3PCUERXE.js +19 -0
- package/dist/commands/chunk-3U6A5WON.js +173 -0
- package/dist/commands/chunk-3VLDFM5I.js +426 -0
- package/dist/commands/chunk-3YT3RCSI.js +140 -0
- package/dist/commands/chunk-43DU7DYZ.js +540 -0
- package/dist/commands/chunk-43H725LG.js +132 -0
- package/dist/commands/chunk-46STCE6Q.js +48 -0
- package/dist/commands/chunk-46WEC6HZ.js +82 -0
- package/dist/commands/chunk-47J4KOZP.js +46 -0
- package/dist/commands/chunk-47W7PF4T.js +22 -0
- package/dist/commands/chunk-4F4KARQN.js +229 -0
- package/dist/commands/chunk-4HB7NWXP.js +263 -0
- package/dist/commands/chunk-4HOTJAO6.js +89 -0
- package/dist/commands/chunk-4I5AA4P5.js +237 -0
- package/dist/commands/chunk-4IDINPBE.js +525 -0
- package/dist/commands/chunk-4NSIW3UB.js +104 -0
- package/dist/commands/chunk-4YTKV6WV.js +37 -0
- package/dist/commands/chunk-5ARNFMQK.js +1263 -0
- package/dist/commands/chunk-5AZTSESD.js +114 -0
- package/dist/commands/chunk-5FUI2MLY.js +89 -0
- package/dist/commands/chunk-5GI5GLC4.js +214 -0
- package/dist/commands/chunk-5IHEBIPD.js +333 -0
- package/dist/commands/chunk-5KAW5GPF.js +44 -0
- package/dist/commands/chunk-5KSJEWXR.js +77 -0
- package/dist/commands/chunk-5OF2B4BF.js +35 -0
- package/dist/commands/chunk-5PLJ7R3D.js +126 -0
- package/dist/commands/chunk-5PPWXOCF.js +64 -0
- package/dist/commands/chunk-5VQCL33M.js +46 -0
- package/dist/commands/chunk-5Y7FOJLX.js +186 -0
- package/dist/commands/chunk-5YTEMF4O.js +110 -0
- package/dist/commands/chunk-6AHAY5VZ.js +69 -0
- package/dist/commands/chunk-6FN37DER.js +330 -0
- package/dist/commands/chunk-6JD4VNO4.js +124 -0
- package/dist/commands/chunk-6KUA7MRG.js +64 -0
- package/dist/commands/chunk-6LDEZFYR.js +88 -0
- package/dist/commands/chunk-6NXIZMIK.js +122 -0
- package/dist/commands/chunk-6O45F6YI.js +86 -0
- package/dist/commands/chunk-6OHJBQDE.js +184 -0
- package/dist/commands/chunk-6WDCCG3M.js +1249 -0
- package/dist/commands/chunk-6ZHXEQAI.js +715 -0
- package/dist/commands/chunk-736NECRD.js +16 -0
- package/dist/commands/chunk-77LEKVEE.js +32 -0
- package/dist/commands/chunk-7CX5VYOL.js +50 -0
- package/dist/commands/chunk-7DGHFBU7.js +247 -0
- package/dist/commands/chunk-7EAYFMDN.js +235 -0
- package/dist/commands/chunk-7HP3FQGQ.js +51 -0
- package/dist/commands/chunk-7HYYHCTN.js +402 -0
- package/dist/commands/chunk-7JOOMFDI.js +155 -0
- package/dist/commands/chunk-7K5ITPHR.js +338 -0
- package/dist/commands/chunk-7OEBSPPU.js +321 -0
- package/dist/commands/chunk-7ULYLGUK.js +492 -0
- package/dist/commands/chunk-A3JYZWBS.js +803 -0
- package/dist/commands/chunk-A3LCN4KA.js +84 -0
- package/dist/commands/chunk-ABLXBG6C.js +98 -0
- package/dist/commands/chunk-ABM2MZBF.js +161 -0
- package/dist/commands/chunk-AN7BFVHU.js +244 -0
- package/dist/commands/chunk-AQCVEQSM.js +99 -0
- package/dist/commands/chunk-AU563VKH.js +75 -0
- package/dist/commands/chunk-AUTD5FV2.js +1077 -0
- package/dist/commands/chunk-AV26CMY6.js +304 -0
- package/dist/commands/chunk-B2PJEV3S.js +246 -0
- package/dist/commands/chunk-B545ENGY.js +214 -0
- package/dist/commands/chunk-B5HP6T4L.js +170 -0
- package/dist/commands/chunk-B73IIRMS.js +207 -0
- package/dist/commands/chunk-BBLEC4YQ.js +109 -0
- package/dist/commands/chunk-BDSG6JKH.js +977 -0
- package/dist/commands/chunk-BFKTUD3V.js +33 -0
- package/dist/commands/chunk-BLRXHK2V.js +17 -0
- package/dist/commands/chunk-BML6MEUB.js +326 -0
- package/dist/commands/chunk-BPDNGJXY.js +63 -0
- package/dist/commands/chunk-BQLKWGGC.js +118 -0
- package/dist/commands/chunk-BRMJVCP7.js +167 -0
- package/dist/commands/chunk-BRWR5YKU.js +268 -0
- package/dist/commands/chunk-BUZAYEBD.js +319 -0
- package/dist/commands/chunk-BVUL57IX.js +139 -0
- package/dist/commands/chunk-C7FGDZWP.js +224 -0
- package/dist/commands/chunk-CC4BIGCA.js +20 -0
- package/dist/commands/chunk-CCHJZEF5.js +4220 -0
- package/dist/commands/chunk-CDK7QZWG.js +44 -0
- package/dist/commands/chunk-CDYFUCDC.js +72 -0
- package/dist/commands/chunk-CEADAQIL.js +170 -0
- package/dist/commands/chunk-CNL3SLM6.js +116 -0
- package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
- package/dist/commands/chunk-CTXJVMHW.js +48 -0
- package/dist/commands/chunk-CUWT6UQO.js +13 -0
- package/dist/commands/chunk-CVRDJCOE.js +125 -0
- package/dist/commands/chunk-D6CF5QGM.js +80 -0
- package/dist/commands/chunk-DACNQAXC.js +20 -0
- package/dist/commands/chunk-DDOS32JU.js +74 -0
- package/dist/commands/chunk-DDZVMXZD.js +481 -0
- package/dist/commands/chunk-DF6QD4AF.js +52 -0
- package/dist/commands/chunk-DFEXNB44.js +159 -0
- package/dist/commands/chunk-DHDKG5HZ.js +151 -0
- package/dist/commands/chunk-DHJRFBKO.js +223 -0
- package/dist/commands/chunk-DKDWOE3C.js +78 -0
- package/dist/commands/chunk-DKO5VTEH.js +65 -0
- package/dist/commands/chunk-DLHH3MLS.js +85 -0
- package/dist/commands/chunk-DOYNK72G.js +81 -0
- package/dist/commands/chunk-DS53UUDH.js +679 -0
- package/dist/commands/chunk-DUA4E4ES.js +230 -0
- package/dist/commands/chunk-DURHGVRC.js +33 -0
- package/dist/commands/chunk-DVCMQMRN.js +191 -0
- package/dist/commands/chunk-E3YKMCCJ.js +108 -0
- package/dist/commands/chunk-E4F2RTKC.js +272 -0
- package/dist/commands/chunk-E4PFCTXN.js +127 -0
- package/dist/commands/chunk-EAOTR2WL.js +24 -0
- package/dist/commands/chunk-EHPTXSAT.js +315 -0
- package/dist/commands/chunk-EHVEWJQ4.js +33 -0
- package/dist/commands/chunk-EMFSPPMH.js +98 -0
- package/dist/commands/chunk-EPICTV2P.js +46 -0
- package/dist/commands/chunk-ES42XPAD.js +123 -0
- package/dist/commands/chunk-ESUY7KTZ.js +137 -0
- package/dist/commands/chunk-EVVQJJFV.js +507 -0
- package/dist/commands/chunk-EWXXEGXL.js +149 -0
- package/dist/commands/chunk-F2RDEF2J.js +205 -0
- package/dist/commands/chunk-F2U46HAE.js +52 -0
- package/dist/commands/chunk-F2VYWU6Z.js +653 -0
- package/dist/commands/chunk-F4SGOTUF.js +36 -0
- package/dist/commands/chunk-F4YMLVWN.js +183 -0
- package/dist/commands/chunk-F57LACNC.js +84 -0
- package/dist/commands/chunk-F5N2QIFD.js +213 -0
- package/dist/commands/chunk-F7B4ESZE.js +80 -0
- package/dist/commands/chunk-FA7CN75F.js +160 -0
- package/dist/commands/chunk-FDASVHZD.js +241 -0
- package/dist/commands/chunk-FEYZ575X.js +278 -0
- package/dist/commands/chunk-FJM2HWKW.js +299 -0
- package/dist/commands/chunk-FJMXUDEY.js +3985 -0
- package/dist/commands/chunk-FM7VVAK6.js +426 -0
- package/dist/commands/chunk-FQWRM5FC.js +67 -0
- package/dist/commands/chunk-FT33ZCSB.js +298 -0
- package/dist/commands/chunk-FTAWHAI7.js +170 -0
- package/dist/commands/chunk-G2DNS74C.js +53 -0
- package/dist/commands/chunk-G3BBCAAH.js +90 -0
- package/dist/commands/chunk-G75GWNNY.js +101 -0
- package/dist/commands/chunk-GA2YSPFH.js +32 -0
- package/dist/commands/chunk-GABDPTDK.js +907 -0
- package/dist/commands/chunk-GAVSK6P6.js +230 -0
- package/dist/commands/chunk-GB2BRQVL.js +300 -0
- package/dist/commands/chunk-GBMZXFFC.js +44 -0
- package/dist/commands/chunk-GDP7QXYE.js +76 -0
- package/dist/commands/chunk-GGWXF7RJ.js +70 -0
- package/dist/commands/chunk-GHOTKHI4.js +30 -0
- package/dist/commands/chunk-GMVN6ZP2.js +48 -0
- package/dist/commands/chunk-GNTTGRCX.js +133 -0
- package/dist/commands/chunk-GOY5JECO.js +130 -0
- package/dist/commands/chunk-GZL6ISVM.js +72 -0
- package/dist/commands/chunk-HALHQILI.js +51 -0
- package/dist/commands/chunk-HAT7AFBF.js +85 -0
- package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
- package/dist/commands/chunk-HE3GOMR7.js +88 -0
- package/dist/commands/chunk-HEFUC4ZW.js +65 -0
- package/dist/commands/chunk-HHS3LYLV.js +30 -0
- package/dist/commands/chunk-HQZ65PJE.js +167 -0
- package/dist/commands/chunk-HRN73FQJ.js +77 -0
- package/dist/commands/chunk-HSZECERZ.js +271 -0
- package/dist/commands/chunk-HYE3MBAN.js +113 -0
- package/dist/commands/chunk-IAB6LCJL.js +18 -0
- package/dist/commands/chunk-IAGENI2U.js +42 -0
- package/dist/commands/chunk-ICPVBHIX.js +48 -0
- package/dist/commands/chunk-IONGJJYM.js +179 -0
- package/dist/commands/chunk-IP23WOWP.js +126 -0
- package/dist/commands/chunk-IPS7EBE5.js +140 -0
- package/dist/commands/chunk-IXZZSST7.js +459 -0
- package/dist/commands/chunk-IY3DSDRW.js +173 -0
- package/dist/commands/chunk-J2RUI4KN.js +47 -0
- package/dist/commands/chunk-J3PCRUVY.js +1223 -0
- package/dist/commands/chunk-J4XHEOOW.js +156 -0
- package/dist/commands/chunk-JDHLHYJJ.js +208 -0
- package/dist/commands/chunk-JEYITIWB.js +423 -0
- package/dist/commands/chunk-JGX7JIW4.js +126 -0
- package/dist/commands/chunk-JHIGDFBS.js +59 -0
- package/dist/commands/chunk-JI2EGXZX.js +53 -0
- package/dist/commands/chunk-JNV3VRK2.js +47 -0
- package/dist/commands/chunk-JPMAW2VZ.js +91 -0
- package/dist/commands/chunk-JQEY6KDP.js +90 -0
- package/dist/commands/chunk-JSJDIEGZ.js +88 -0
- package/dist/commands/chunk-JT5ICRFF.js +44 -0
- package/dist/commands/chunk-JU2MAYQ3.js +997 -0
- package/dist/commands/chunk-JUCJ4Y42.js +77 -0
- package/dist/commands/chunk-K3OZBV3L.js +49 -0
- package/dist/commands/chunk-K6P5PISC.js +114 -0
- package/dist/commands/chunk-KDCHY7XO.js +88 -0
- package/dist/commands/chunk-KDGX3JTV.js +51 -0
- package/dist/commands/chunk-KGSEWOKI.js +353 -0
- package/dist/commands/chunk-KIS7JFNP.js +217 -0
- package/dist/commands/chunk-KJPZPTS4.js +245 -0
- package/dist/commands/chunk-KKHD3C2P.js +114 -0
- package/dist/commands/chunk-KKIIY5I5.js +67 -0
- package/dist/commands/chunk-KN46UC77.js +114 -0
- package/dist/commands/chunk-KP2BVAS5.js +125 -0
- package/dist/commands/chunk-KPAJBJXG.js +63 -0
- package/dist/commands/chunk-KPMAJP6D.js +145 -0
- package/dist/commands/chunk-KR6WUAJM.js +122 -0
- package/dist/commands/chunk-KWLNK2NJ.js +391 -0
- package/dist/commands/chunk-L2CLCNXW.js +144 -0
- package/dist/commands/chunk-L7MDU6D7.js +155 -0
- package/dist/commands/chunk-L7VD4MLF.js +78 -0
- package/dist/commands/chunk-LBVYFW3I.js +38 -0
- package/dist/commands/chunk-LE3M42CF.js +350 -0
- package/dist/commands/chunk-LIPUSINQ.js +140 -0
- package/dist/commands/chunk-LJVZWE3A.js +1885 -0
- package/dist/commands/chunk-LKSSQVDA.js +49 -0
- package/dist/commands/chunk-LL6G34MF.js +93 -0
- package/dist/commands/chunk-LNQOL2CL.js +321 -0
- package/dist/commands/chunk-LS7P324N.js +72 -0
- package/dist/commands/chunk-LU5EOGFQ.js +50 -0
- package/dist/commands/chunk-LX2ENXHZ.js +197 -0
- package/dist/commands/chunk-M32UPB2D.js +110 -0
- package/dist/commands/chunk-M3UGRNNB.js +103 -0
- package/dist/commands/chunk-MDGPJOLK.js +351 -0
- package/dist/commands/chunk-MDKRTUE4.js +288 -0
- package/dist/commands/chunk-MFZVRWRS.js +34 -0
- package/dist/commands/chunk-MHF6BDQI.js +128 -0
- package/dist/commands/chunk-MLJDW7YN.js +64 -0
- package/dist/commands/chunk-MNLHYAJO.js +80 -0
- package/dist/commands/chunk-MOD3FG4V.js +419 -0
- package/dist/commands/chunk-MRAEJLXL.js +83 -0
- package/dist/commands/chunk-MRW2WYJS.js +68 -0
- package/dist/commands/chunk-MXPCEZL5.js +23 -0
- package/dist/commands/chunk-N2XH7QBY.js +103 -0
- package/dist/commands/chunk-N2ZF6T4E.js +332 -0
- package/dist/commands/chunk-N36NZMAL.js +79 -0
- package/dist/commands/chunk-N4EMFHQ6.js +114 -0
- package/dist/commands/chunk-N4P64UIH.js +211 -0
- package/dist/commands/chunk-NABSSY4P.js +204 -0
- package/dist/commands/chunk-NDQIJBRQ.js +100 -0
- package/dist/commands/chunk-NDR4PCVG.js +29 -0
- package/dist/commands/chunk-NEOCCN6D.js +302 -0
- package/dist/commands/chunk-NFKWFOFM.js +45 -0
- package/dist/commands/chunk-NFUPJBBG.js +516 -0
- package/dist/commands/chunk-NHEBKL7X.js +170 -0
- package/dist/commands/chunk-NHTEC5U4.js +99 -0
- package/dist/commands/chunk-NOSODWWK.js +1132 -0
- package/dist/commands/chunk-NPXXYG6Z.js +580 -0
- package/dist/commands/chunk-NR2JDBPV.js +75 -0
- package/dist/commands/chunk-NRULNBYI.js +1153 -0
- package/dist/commands/chunk-NTGF5N3N.js +110 -0
- package/dist/commands/chunk-NTIVNQKF.js +73 -0
- package/dist/commands/chunk-NUCFIYZL.js +119 -0
- package/dist/commands/chunk-NVMV7BYX.js +88 -0
- package/dist/commands/chunk-NYWPTYGL.js +169 -0
- package/dist/commands/chunk-NZ45KOLL.js +104 -0
- package/dist/commands/chunk-O45BX4EL.js +39 -0
- package/dist/commands/chunk-O46T4ANI.js +229 -0
- package/dist/commands/chunk-O5JGV7NA.js +245 -0
- package/dist/commands/chunk-O7ESC4HL.js +566 -0
- package/dist/commands/chunk-OBYLXHCH.js +86 -0
- package/dist/commands/chunk-OHN3QARP.js +769 -0
- package/dist/commands/chunk-OKBZGLD5.js +393 -0
- package/dist/commands/chunk-OKN63ZH5.js +109 -0
- package/dist/commands/chunk-ON4IKRGS.js +469 -0
- package/dist/commands/chunk-OT74RSQO.js +82 -0
- package/dist/commands/chunk-OVCVINYW.js +143 -0
- package/dist/commands/chunk-OZKLVTYI.js +342 -0
- package/dist/commands/chunk-OZN4HOZT.js +74 -0
- package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
- package/dist/commands/chunk-P43GWYR6.js +185 -0
- package/dist/commands/chunk-P6ASP2DY.js +132 -0
- package/dist/commands/chunk-PBAEJ5PT.js +38 -0
- package/dist/commands/chunk-PCZROH3R.js +100 -0
- package/dist/commands/chunk-PJYTUUTH.js +34 -0
- package/dist/commands/chunk-PKXTISWR.js +58 -0
- package/dist/commands/chunk-PSGLUBSB.js +74 -0
- package/dist/commands/chunk-PUQA7F6Y.js +186 -0
- package/dist/commands/chunk-PVRDJU2B.js +126 -0
- package/dist/commands/chunk-Q3HM2BEH.js +45 -0
- package/dist/commands/chunk-Q42NF2TL.js +47 -0
- package/dist/commands/chunk-Q4ULMZAS.js +106 -0
- package/dist/commands/chunk-QCRUPRQ2.js +207 -0
- package/dist/commands/chunk-QFIKPGMC.js +280 -0
- package/dist/commands/chunk-QSBYULSS.js +100 -0
- package/dist/commands/chunk-QSJCZATC.js +18 -0
- package/dist/commands/chunk-QTJPCXEW.js +23 -0
- package/dist/commands/chunk-QTQAI2M2.js +179 -0
- package/dist/commands/chunk-QTVVFV4Q.js +127 -0
- package/dist/commands/chunk-QX2EMUXV.js +102 -0
- package/dist/commands/chunk-QXBOECGL.js +272 -0
- package/dist/commands/chunk-QXCG3SG4.js +88 -0
- package/dist/commands/chunk-QZVMGAWV.js +307 -0
- package/dist/commands/chunk-R36VZIKU.js +53 -0
- package/dist/commands/chunk-R3F7F3TX.js +94 -0
- package/dist/commands/chunk-R5AABJZJ.js +1062 -0
- package/dist/commands/chunk-R7PYR4HW.js +389 -0
- package/dist/commands/chunk-RAQ3E6OT.js +258 -0
- package/dist/commands/chunk-RESNXNDG.js +54 -0
- package/dist/commands/chunk-RFIOZTXY.js +305 -0
- package/dist/commands/chunk-RFWB2KAV.js +102 -0
- package/dist/commands/chunk-RFXON3FK.js +25 -0
- package/dist/commands/chunk-RGEB5L37.js +66 -0
- package/dist/commands/chunk-RGRLLF2J.js +119 -0
- package/dist/commands/chunk-RLRIMYXM.js +178 -0
- package/dist/commands/chunk-RNB3DQOZ.js +70 -0
- package/dist/commands/chunk-RO4QEZJO.js +172 -0
- package/dist/commands/chunk-RS5HBJY6.js +161 -0
- package/dist/commands/chunk-RV7EQIE4.js +202 -0
- package/dist/commands/chunk-RWPCK3CO.js +41 -0
- package/dist/commands/chunk-RWYSVFIA.js +250 -0
- package/dist/commands/chunk-RYKK75YT.js +289 -0
- package/dist/commands/chunk-S4JE63QE.js +704 -0
- package/dist/commands/chunk-S4OZJIXD.js +134 -0
- package/dist/commands/chunk-S5GX3H4P.js +91 -0
- package/dist/commands/chunk-SC57VV6A.js +60 -0
- package/dist/commands/chunk-SD4EX75H.js +177 -0
- package/dist/commands/chunk-SJITWFNY.js +480 -0
- package/dist/commands/chunk-SKGDMAIA.js +33 -0
- package/dist/commands/chunk-SNSZ25XZ.js +393 -0
- package/dist/commands/chunk-SOETJZWH.js +7672 -0
- package/dist/commands/chunk-SQZZHK6X.js +119 -0
- package/dist/commands/chunk-SRTEE34O.js +93 -0
- package/dist/commands/chunk-SYTCTLMD.js +285 -0
- package/dist/commands/chunk-T6JUDQMW.js +181 -0
- package/dist/commands/chunk-TEXUEBGE.js +208 -0
- package/dist/commands/chunk-TFDVTU6O.js +910 -0
- package/dist/commands/chunk-TFYYXETQ.js +472 -0
- package/dist/commands/chunk-TMFKVJUW.js +121 -0
- package/dist/commands/chunk-TNJU4CXD.js +32 -0
- package/dist/commands/chunk-TRHWBUWE.js +61 -0
- package/dist/commands/chunk-TROCFVCU.js +45 -0
- package/dist/commands/chunk-TUBBESHU.js +85 -0
- package/dist/commands/chunk-TVZIFZZN.js +62 -0
- package/dist/commands/chunk-TXRWAL63.js +144 -0
- package/dist/commands/chunk-U46YTYJQ.js +92 -0
- package/dist/commands/chunk-U5EO4QEV.js +48 -0
- package/dist/commands/chunk-UCO333EX.js +47 -0
- package/dist/commands/chunk-UIXQ4IYT.js +445 -0
- package/dist/commands/chunk-UJGNYPMD.js +716 -0
- package/dist/commands/chunk-URZ4RDC4.js +220 -0
- package/dist/commands/chunk-UUA63LCI.js +77 -0
- package/dist/commands/chunk-UUH3DE77.js +57 -0
- package/dist/commands/chunk-UVY5ODCM.js +60 -0
- package/dist/commands/chunk-UWMB6EOU.js +45 -0
- package/dist/commands/chunk-UY62WJV6.js +120 -0
- package/dist/commands/chunk-UZDKCGDC.js +198 -0
- package/dist/commands/chunk-VAHQ4AFM.js +585 -0
- package/dist/commands/chunk-VCWNMRH7.js +71 -0
- package/dist/commands/chunk-VL5I2IOD.js +332 -0
- package/dist/commands/chunk-VLN6TSPJ.js +139 -0
- package/dist/commands/chunk-VMG3QB6C.js +81 -0
- package/dist/commands/chunk-VO25PMGS.js +58 -0
- package/dist/commands/chunk-VPRQFM2T.js +37 -0
- package/dist/commands/chunk-VTLWODJ2.js +133 -0
- package/dist/commands/chunk-VUCDGQ6Y.js +260 -0
- package/dist/commands/chunk-VY7ZJMDT.js +469 -0
- package/dist/commands/chunk-W4BR6QNU.js +1241 -0
- package/dist/commands/chunk-W7X7MZZN.js +449 -0
- package/dist/commands/chunk-WCYRNNKF.js +76 -0
- package/dist/commands/chunk-WEUUJIWQ.js +84 -0
- package/dist/commands/chunk-WNBJK6QE.js +84 -0
- package/dist/commands/chunk-WORHUJ6T.js +73 -0
- package/dist/commands/chunk-WR5PKCQW.js +61 -0
- package/dist/commands/chunk-WR73HTRG.js +121 -0
- package/dist/commands/chunk-WRHMYSW7.js +36 -0
- package/dist/commands/chunk-WRNMUQTD.js +95 -0
- package/dist/commands/chunk-WROJTXWZ.js +138 -0
- package/dist/commands/chunk-WTIPX5NG.js +43 -0
- package/dist/commands/chunk-WWLCQREY.js +225 -0
- package/dist/commands/chunk-WXLW7S4M.js +71 -0
- package/dist/commands/chunk-WXXLJQBO.js +67 -0
- package/dist/commands/chunk-X4LYH6Q4.js +56 -0
- package/dist/commands/chunk-XAEL24EG.js +66 -0
- package/dist/commands/chunk-XDR2BRDL.js +216 -0
- package/dist/commands/chunk-XRQMVAB4.js +85 -0
- package/dist/commands/chunk-XUXCFPDK.js +218 -0
- package/dist/commands/chunk-XXPDFJRI.js +48 -0
- package/dist/commands/chunk-Y6OGDG5I.js +49 -0
- package/dist/commands/chunk-YANDBVAT.js +430 -0
- package/dist/commands/chunk-YD7XK2TX.js +550 -0
- package/dist/commands/chunk-YEAE46TS.js +98 -0
- package/dist/commands/chunk-YEQFAEVW.js +112 -0
- package/dist/commands/chunk-YJZAD4Z5.js +103 -0
- package/dist/commands/chunk-YNCF66RK.js +1052 -0
- package/dist/commands/chunk-YOA25SII.js +210 -0
- package/dist/commands/chunk-YOZTZMAT.js +38 -0
- package/dist/commands/chunk-YSGRHVZG.js +897 -0
- package/dist/commands/chunk-YSLGWRQN.js +646 -0
- package/dist/commands/chunk-YT5JR2CB.js +105 -0
- package/dist/commands/chunk-YTXCLGGL.js +168 -0
- package/dist/commands/chunk-YVHJN2HS.js +74 -0
- package/dist/commands/chunk-YY7XVVSB.js +43 -0
- package/dist/commands/chunk-Z2NUK47W.js +1314 -0
- package/dist/commands/chunk-Z5GZV4DV.js +16 -0
- package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
- package/dist/commands/chunk-ZCD4AV2P.js +73 -0
- package/dist/commands/chunk-ZCHZU6NX.js +799 -0
- package/dist/commands/chunk-ZEH2B3DF.js +239 -0
- package/dist/commands/chunk-ZGANVZCA.js +92 -0
- package/dist/commands/chunk-ZGEUWHFF.js +297 -0
- package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
- package/dist/commands/chunk-ZI3SABMH.js +347 -0
- package/dist/commands/chunk-ZIIUBGON.js +773 -0
- package/dist/commands/chunk-ZJJLROJY.js +269 -0
- package/dist/commands/chunk-ZNIIA275.js +59 -0
- package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
- package/dist/commands/ci-timing-cli.js +22 -3
- package/dist/commands/code-symbol-cli.js +21 -7
- package/dist/commands/codex-hook-adapter.js +124 -119
- package/dist/commands/command-derive.js +9 -11
- package/dist/commands/cost-audit-main.js +118 -119
- package/dist/commands/cost-main.js +5 -7
- package/dist/commands/cspell-cached.js +55 -57
- package/dist/commands/defect-origin-main.js +42 -37
- package/dist/commands/defect-report-main.js +33 -25
- package/dist/commands/diff-summary-cli.js +3 -4
- package/dist/commands/disposition-cli.js +117 -118
- package/dist/commands/doctor.js +24 -11
- package/dist/commands/document-read-cli.js +50 -53
- package/dist/commands/document-section-main.js +50 -53
- package/dist/commands/dogfood-commit-cli.js +19 -4
- package/dist/commands/effect-audit-cli.js +40 -41
- package/dist/commands/epic-audit-main.js +88 -86
- package/dist/commands/epic-bundle-main.js +122 -119
- package/dist/commands/epic-check.js +37 -31
- package/dist/commands/epic-main.js +129 -126
- package/dist/commands/epic-next-main.js +85 -83
- package/dist/commands/eval-run.js +6 -7
- package/dist/commands/format-edited-cli.js +71 -46
- package/dist/commands/format.js +41 -56
- package/dist/commands/fresh-machine-cli.js +24 -7
- package/dist/commands/gh-usage-cli.js +22 -22
- package/dist/commands/git-followup-workflow.js +170 -159
- package/dist/commands/git-gh-checks-failed-main.js +23 -15
- package/dist/commands/git-workflow.js +52 -53
- package/dist/commands/github-release-cli.js +3 -3
- package/dist/commands/hook-ledger-cli.js +93 -94
- package/dist/commands/init-main.js +40 -40
- package/dist/commands/inputs.json +1999 -1954
- package/dist/commands/issue-ack-cli.js +28 -21
- package/dist/commands/issue-already-done-cli.js +107 -110
- package/dist/commands/issue-body-cli.js +71 -73
- package/dist/commands/issue-cite-main.js +35 -28
- package/dist/commands/issue-comment-main.js +36 -30
- package/dist/commands/issue-consolidate-cli.js +54 -54
- package/dist/commands/issue-file-main.js +274 -148
- package/dist/commands/issue-fold-existing-cli.js +126 -123
- package/dist/commands/issue-fold-main.js +57 -60
- package/dist/commands/issue-lint-main.js +59 -61
- package/dist/commands/issue-measured-cli.js +108 -110
- package/dist/commands/issue-plan-cli.js +156 -155
- package/dist/commands/issue-premise-unmet-cli.js +111 -113
- package/dist/commands/issue-priority-cli.js +38 -32
- package/dist/commands/issue-read-main.js +38 -33
- package/dist/commands/issue-release-class-cli.js +37 -31
- package/dist/commands/issue-release-main.js +35 -29
- package/dist/commands/issue-scout-main.js +123 -120
- package/dist/commands/issue-spill-main.js +149 -144
- package/dist/commands/issue-state-main.js +36 -31
- package/dist/commands/issue-tick-cli.js +37 -31
- package/dist/commands/josh-completion.js +21 -24
- package/dist/commands/lane-adopt-cli.js +53 -55
- package/dist/commands/lane-breakdown-cli.js +193 -172
- package/dist/commands/lane-cli.js +199 -180
- package/dist/commands/lane-launch-main.js +106 -56
- package/dist/commands/lane-limit-cli.js +119 -116
- package/dist/commands/lane-measure-cli.js +408 -245
- package/dist/commands/lane-pause-cli.js +51 -54
- package/dist/commands/lane-plan-cli.js +148 -147
- package/dist/commands/lane-resolve-cli.js +48 -50
- package/dist/commands/lane-restart-cli.js +185 -168
- package/dist/commands/lane-why-cli.js +121 -122
- package/dist/commands/lane-withdraw-cli.js +84 -86
- package/dist/commands/latest-corepack.js +3 -2
- package/dist/commands/latest-if-required-cli.js +12 -15
- package/dist/commands/latest-lane-guard-main.js +2 -3
- package/dist/commands/latest-scope-main.js +5 -7
- package/dist/commands/latest-update.js +3 -2
- package/dist/commands/lines-command.js +8 -10
- package/dist/commands/lint-parallel-main.js +65 -67
- package/dist/commands/lint-related.js +149 -133
- package/dist/commands/lint-rule.js +64 -66
- package/dist/commands/lockfile-policy.js +29 -32
- package/dist/commands/main-merge-main.js +23 -25
- package/dist/commands/main-sync-main.js +23 -24
- package/dist/commands/managed-config-scope-cli.js +11 -10
- package/dist/commands/measure-rerun-cli.js +31 -26
- package/dist/commands/metrics-command.js +97 -100
- package/dist/commands/observation-record-cli.js +24 -14
- package/dist/commands/observations-flush-cli.js +50 -52
- package/dist/commands/overrides-check.js +1 -1
- package/dist/commands/package-scout-cli.js +70 -73
- package/dist/commands/pin-verify-cli.js +21 -2
- package/dist/commands/plan-consumers-main.js +3 -4
- package/dist/commands/plan-scaffold-cli.js +145 -146
- package/dist/commands/pr-classification-main.js +22 -3
- package/dist/commands/pre-commit-lint.js +30 -34
- package/dist/commands/pre-commit-type-check.js +55 -55
- package/dist/commands/pre-push-unit.js +69 -70
- package/dist/commands/pretool-guard-cli.js +111 -113
- package/dist/commands/prevent-main-commit.js +2 -3
- package/dist/commands/project-profile-cli.js +24 -9
- package/dist/commands/propagate.js +31 -23
- package/dist/commands/prose-stale-cli.js +48 -42
- package/dist/commands/publishable-range-check.js +3 -3
- package/dist/commands/read-set-cli.js +58 -61
- package/dist/commands/refactor-scan-cli.js +8 -9
- package/dist/commands/release-cli.js +57 -57
- package/dist/commands/release-scope-main.js +41 -36
- package/dist/commands/rename-cli.js +64 -36
- package/dist/commands/repo-party-cli.js +3 -4
- package/dist/commands/report-template-cli.js +4 -5
- package/dist/commands/reserved-run.js +17 -20
- package/dist/commands/retrospective-cli.js +126 -127
- package/dist/commands/review-attest-cli.js +28 -20
- package/dist/commands/review-brief-main.js +184 -167
- package/dist/commands/review-findings-cli.js +23 -13
- package/dist/commands/review-pair-cli.js +180 -156
- package/dist/commands/review-record-main.js +171 -147
- package/dist/commands/review-round2-cli.js +89 -91
- package/dist/commands/review-stops-cli.js +51 -54
- package/dist/commands/review-submit-cli.js +184 -167
- package/dist/commands/rule-list.js +78 -80
- package/dist/commands/rule-value-cli.js +115 -116
- package/dist/commands/ruleset-check-cli.js +23 -6
- package/dist/commands/run-add-cli.js +115 -75
- package/dist/commands/run-board-main.js +173 -169
- package/dist/commands/run-carry-cli.js +182 -174
- package/dist/commands/run-chain-cli.js +184 -160
- package/dist/commands/run-cut-cli.js +206 -168
- package/dist/commands/run-ending-cli.js +51 -54
- package/dist/commands/run-entry-cli.js +230 -283
- package/dist/commands/run-event-cli.js +18 -21
- package/dist/commands/run-handoff-cli.js +75 -78
- package/dist/commands/run-handoff-lanes-cli.js +48 -51
- package/dist/commands/run-hold-main.js +105 -107
- package/dist/commands/run-liveness-cli.js +47 -49
- package/dist/commands/run-merge-main.js +159 -151
- package/dist/commands/run-next-cli.js +128 -129
- package/dist/commands/run-park-cli.js +137 -140
- package/dist/commands/run-pause-cli.js +190 -186
- package/dist/commands/run-pickup-cli.js +49 -52
- package/dist/commands/run-prep-main.js +124 -125
- package/dist/commands/run-prime-cli.js +175 -147
- package/dist/commands/run-progress-main.js +149 -146
- package/dist/commands/run-report-cli.js +60 -60
- package/dist/commands/run-review-cli.js +229 -214
- package/dist/commands/run-ship-cli.js +258 -252
- package/dist/commands/run-ship-evidence-cli.js +71 -72
- package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
- package/dist/commands/run-ship-wait-main.js +83 -85
- package/dist/commands/run-split-cli.js +176 -172
- package/dist/commands/run-stale-main.js +72 -75
- package/dist/commands/run-status-cli.js +44 -44
- package/dist/commands/run-step-cli.js +213 -211
- package/dist/commands/run-tail-cli.js +23 -18
- package/dist/commands/run-tidy-main.js +67 -69
- package/dist/commands/run-wake-main.js +206 -187
- package/dist/commands/run-watcher-guard-cli.js +63 -66
- package/dist/commands/security-audit-main.js +21 -24
- package/dist/commands/security-audit-provision-main.js +9 -11
- package/dist/commands/selfcheck-cli.js +63 -57
- package/dist/commands/session-language-main.js +70 -73
- package/dist/commands/sonar-hotspots-cli.js +9 -8
- package/dist/commands/sonar-new-code-cli.js +3 -4
- package/dist/commands/split-assess-cli.js +55 -58
- package/dist/commands/split-child-recover-cli.js +38 -39
- package/dist/commands/start.js +64 -64
- package/dist/commands/stash-pop-main.js +4 -5
- package/dist/commands/stash-push-main.js +7 -9
- package/dist/commands/stop-guard.js +180 -176
- package/dist/commands/sync-main.js +30 -15
- package/dist/commands/telegram-test-main.js +29 -22
- package/dist/commands/test-declared.js +29 -15
- package/dist/commands/test-e2e-guard.js +54 -54
- package/dist/commands/test-pinned-main.js +57 -56
- package/dist/commands/test-reach-cli.js +40 -32
- package/dist/commands/test-red-main.js +12 -14
- package/dist/commands/test-related-XBDH2IOH.js +113 -0
- package/dist/commands/test-related-main.js +89 -89
- package/dist/commands/test-unit-guard-main.js +37 -37
- package/dist/commands/time-cli.js +54 -57
- package/dist/commands/time-density-cli.js +26 -29
- package/dist/commands/tree-status-cli.js +6 -8
- package/dist/commands/type-check-command.js +26 -11
- package/dist/commands/ui-routes-cli.js +5 -6
- package/dist/commands/ui-shot-cli.js +1 -1
- package/dist/commands/uninstall.js +44 -43
- package/dist/commands/unused-members-KVKZDTXD.js +329 -0
- package/dist/commands/unused-members-cli.js +27 -12
- package/dist/commands/upstream-interrupt-main.js +159 -151
- package/dist/commands/verification-gate.js +85 -86
- package/dist/commands/version-check.js +25 -8
- package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
- package/dist/hooks/chunk-46PTTMGE.js +1625 -0
- package/dist/hooks/chunk-5NIBRHWG.js +77 -0
- package/dist/hooks/chunk-76QKN2K3.js +258 -0
- package/dist/hooks/chunk-CHEKMGFP.js +321 -0
- package/dist/hooks/chunk-DCILEVDR.js +5173 -0
- package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
- package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
- package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
- package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
- package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
- package/dist/hooks/codex-hook-adapter.js +11 -12
- package/dist/hooks/daemon.js +2140 -1387
- package/dist/hooks/format-edited.js +6 -6
- package/dist/hooks/inputs.json +543 -518
- package/dist/hooks/pretool-guard.js +8 -8
- package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
- package/dist/hooks/session-lang.js +9 -7
- package/dist/hooks/stop-guard.js +970 -668
- package/dist/inputs.json +77 -68
- package/dist/josh.js +1029 -577
- package/dist/registry-migrate.mjs +33938 -0
- package/dist/version/index.js +4251 -175
- package/package.json +4 -1
- package/prompts/collaboration-workflow/principles.md +4 -1
- package/prompts/collaboration-workflow/rule-delivery.md +1 -1
- package/scripts/agent/codex-launch-identity.ts +70 -0
- package/scripts/auto-ok/auto-ok-cli.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge.ts +3 -1
- package/scripts/backlog/backlog-arrival.ts +1 -1
- package/scripts/backlog/backlog-budget.ts +5 -2
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
- package/scripts/backlog/backlog-drain-flush.ts +38 -3
- package/scripts/backlog/backlog-drive-cli.ts +1 -1
- package/scripts/backlog/backlog-drive-hold.ts +28 -5
- package/scripts/backlog/backlog-drive-launch.ts +37 -15
- package/scripts/backlog/backlog-drive-listing.ts +39 -23
- package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
- package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
- package/scripts/backlog/backlog-hold-codes.ts +7 -0
- package/scripts/backlog/backlog-hold-text.ts +14 -1
- package/scripts/backlog/backlog-measure-close.ts +6 -0
- package/scripts/backlog/backlog-next-shared.ts +20 -2
- package/scripts/backlog/backlog-next.ts +24 -3
- package/scripts/backlog/backlog-offer-cli.ts +69 -16
- package/scripts/build/build-migration.ts +25 -0
- package/scripts/build/build.ts +2 -0
- package/scripts/epic/epic-classify.ts +6 -1
- package/scripts/epic/epic-live.ts +46 -0
- package/scripts/followup/followup-failed-tests.ts +71 -10
- package/scripts/followup/followup-job-rerun.ts +2 -2
- package/scripts/followup/git-followup-finish.ts +16 -1
- package/scripts/gate/change-scope-action.integration.test.ts +88 -0
- package/scripts/gate/change-scope-action.ts +2 -0
- package/scripts/gate/check-related-order.ts +6 -7
- package/scripts/gate/check-related.ts +18 -8
- package/scripts/gate/core-admission.ts +17 -30
- package/scripts/gate/core-budget-poll.ts +183 -0
- package/scripts/gate/core-budget-timing.ts +1 -1
- package/scripts/gate/core-budget.ts +24 -112
- package/scripts/gate/core-wait-record.ts +52 -7
- package/scripts/gate/machine-capacity.ts +6 -2
- package/scripts/gate/metrics-totals.ts +11 -0
- package/scripts/gate/path-glob.test.ts +18 -0
- package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
- package/scripts/gate/verification-inputs.ts +2 -1
- package/scripts/gh/fix-gh-packages-logic.ts +22 -15
- package/scripts/gh/gh-request-tally.ts +4 -0
- package/scripts/hooks/bash-revert.ts +79 -31
- package/scripts/hooks/format-edited-file.ts +6 -8
- package/scripts/hooks/implementation-shell.ts +3 -2
- package/scripts/init/distributed-paths.ts +18 -5
- package/scripts/init/init-actions.ts +16 -1
- package/scripts/init/init-bootstrap.ts +2 -0
- package/scripts/init/init-logic.ts +40 -8
- package/scripts/init/init.ts +11 -3
- package/scripts/issue/defect-rate-cli.ts +19 -13
- package/scripts/issue/issue-file-batch.ts +7 -3
- package/scripts/issue/issue-file-cli.ts +19 -6
- package/scripts/issue/issue-file-main.ts +6 -1
- package/scripts/issue/issue-file-pass.ts +17 -0
- package/scripts/issue/issue-file.ts +3 -0
- package/scripts/issue/issue-not-before.ts +9 -2
- package/scripts/issue/issue-observation-gate.ts +141 -0
- package/scripts/issue/issue-observation-prime.ts +83 -0
- package/scripts/issue/issue-publication-state.ts +61 -0
- package/scripts/issue/issue-publication.ts +144 -0
- package/scripts/issue/issue-sample-prime.ts +2 -0
- package/scripts/issue/issue-search-count.ts +26 -0
- package/scripts/issue/issue-search.ts +128 -3
- package/scripts/issue/issue-spill-cli.ts +4 -0
- package/scripts/issue/upstream-interrupt-cli.ts +21 -5
- package/scripts/josh/josh-commands-ai.ts +1 -1
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-issue-write.ts +9 -0
- package/scripts/josh/josh-commands-run.ts +6 -1
- package/scripts/josh/josh-commands-ship.ts +5 -5
- package/scripts/josh/josh-run.ts +5 -2
- package/scripts/josh/shared-cache.ts +16 -1
- package/scripts/lane/lane-await.ts +15 -0
- package/scripts/lane/lane-cli.ts +2 -0
- package/scripts/lane/lane-dispatch-dependency.ts +102 -0
- package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
- package/scripts/lane/lane-dispatch.ts +44 -5
- package/scripts/lane/lane-early-push-count.ts +21 -0
- package/scripts/lane/lane-install.ts +15 -5
- package/scripts/lane/lane-launch-cli.ts +35 -14
- package/scripts/lane/lane-ledger-kind.ts +2 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
- package/scripts/lane/lane-ledger-schema.ts +15 -1
- package/scripts/lane/lane-ledger-write.ts +4 -1
- package/scripts/lane/lane-relaunch.ts +25 -2
- package/scripts/lane/lane-state-record.ts +2 -0
- package/scripts/lane/lane-state.ts +8 -1
- package/scripts/lane/lane-stats-tables.ts +2 -0
- package/scripts/lane/openai-lane-supervisor.ts +16 -1
- package/scripts/lib/inherited-scope.ts +48 -0
- package/scripts/lint/format-steps.ts +93 -0
- package/scripts/lint/format.ts +6 -49
- package/scripts/lint/lint-related-fix.ts +35 -0
- package/scripts/lint/lint-related.ts +22 -35
- package/scripts/propagate/propagate-steps.ts +9 -4
- package/scripts/registry-migration/migrate-cli.ts +50 -0
- package/scripts/registry-migration/migrate-files.ts +154 -0
- package/scripts/registry-migration/migrate-lock.ts +147 -0
- package/scripts/registry-migration/migrate.ts +235 -0
- package/scripts/registry-migration/npm-acquisition.ts +118 -0
- package/scripts/review/review-record-cli.ts +27 -13
- package/scripts/review/review-record-pinned.ts +15 -6
- package/scripts/run/add/run-add-cli.ts +21 -3
- package/scripts/run/add/run-add.ts +26 -9
- package/scripts/run/board/run-board-layout.ts +11 -6
- package/scripts/run/board/run-board-read.ts +29 -69
- package/scripts/run/board/run-board-reason.ts +12 -0
- package/scripts/run/board/run-board-render-lanes.ts +26 -9
- package/scripts/run/board/run-board-render-lead.ts +9 -0
- package/scripts/run/board/run-board-retry-wait.ts +35 -0
- package/scripts/run/board/run-board-root-layout.ts +69 -0
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +6 -4
- package/scripts/run/board/run-board-single.ts +69 -4
- package/scripts/run/board/run-board-span-read.ts +85 -0
- package/scripts/run/board/run-board-tick.ts +12 -4
- package/scripts/run/carry/run-carry-reclaim.ts +12 -2
- package/scripts/run/carry/run-carry-session.ts +48 -0
- package/scripts/run/carry/run-carry.ts +21 -14
- package/scripts/run/cut/run-cut-resume.ts +15 -3
- package/scripts/run/cut/run-cut.ts +1 -1
- package/scripts/run/detached-launch.ts +14 -5
- package/scripts/run/early-push-record.ts +6 -2
- package/scripts/run/event/run-event-setup.ts +2 -0
- package/scripts/run/event/run-event-stream-emit.ts +27 -7
- package/scripts/run/hold/run-hold-cli.ts +40 -5
- package/scripts/run/hold/run-hold-ended.ts +50 -0
- package/scripts/run/merge/run-merge-cut-release.ts +17 -0
- package/scripts/run/merge/run-merge-human-review.ts +6 -0
- package/scripts/run/merge/run-merge-steps.ts +4 -57
- package/scripts/run/merge/run-merge-waits.ts +54 -0
- package/scripts/run/prime/run-prime-cli.ts +16 -2
- package/scripts/run/review/run-review-cli.ts +5 -7
- package/scripts/run/review/run-review-early-push.ts +19 -8
- package/scripts/run/review/run-review-join-read.ts +33 -6
- package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
- package/scripts/run/review/run-review-pinned-steps.ts +7 -1
- package/scripts/run/run-halfrun-resume.ts +49 -6
- package/scripts/run/run-headless.ts +3 -0
- package/scripts/run/run-pr-return.ts +14 -5
- package/scripts/run/run-repair-attempt.ts +219 -0
- package/scripts/run/ship/run-ship-lap.ts +5 -17
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
- package/scripts/run/ship/run-ship-scoped.ts +66 -30
- package/scripts/run/startup/run-startup-schema.ts +31 -0
- package/scripts/run/startup/run-startup-store.ts +130 -0
- package/scripts/run/startup/run-startup.ts +119 -0
- package/scripts/run/wake/run-wake-codex.ts +144 -0
- package/scripts/run/wake/run-wake-driver.ts +32 -7
- package/scripts/run/wake/run-wake-handoff.ts +9 -8
- package/scripts/run/wake/run-wake-loop.ts +23 -3
- package/scripts/run/wake/run-wake-ports.ts +17 -3
- package/scripts/run/wake/run-wake-takeover.ts +6 -3
- package/scripts/run/wake/run-wake-window.ts +4 -1
- package/scripts/run/wake/run-wake.ts +5 -0
- package/scripts/sync/sync-ai-files.ts +17 -0
- package/scripts/sync/sync-configs.ts +11 -1
- package/scripts/sync/sync.ts +5 -1
- package/scripts/test/test-pinned-cache-logic.ts +13 -7
- package/scripts/test/test-pinned-cache.ts +33 -11
- package/scripts/test/test-related-cap.ts +7 -3
- package/scripts/test/test-related-imports.ts +92 -0
- package/scripts/test/test-runner-config.ts +19 -0
- package/scripts/test/vitest-failure-summary.ts +7 -0
- package/scripts/version/npm-registry.ts +45 -7
- package/scripts/version/upgrade-shell-command.ts +34 -2
- package/templates/workflows/ci.yml +0 -15
- package/templates/workflows/github-release.yml +0 -5
- package/dist/commands/chunk-23GH6B3D.js +0 -333
- package/dist/commands/chunk-24OATKOF.js +0 -7534
- package/dist/commands/chunk-24ZDAWML.js +0 -48
- package/dist/commands/chunk-2BB5ZR2F.js +0 -128
- package/dist/commands/chunk-2BJJUTZA.js +0 -59
- package/dist/commands/chunk-2CXT6MBR.js +0 -51
- package/dist/commands/chunk-2DJLAUYB.js +0 -109
- package/dist/commands/chunk-2EZTYLO4.js +0 -179
- package/dist/commands/chunk-2FJJYCBD.js +0 -149
- package/dist/commands/chunk-2PHOLX62.js +0 -43
- package/dist/commands/chunk-2QM72JCJ.js +0 -338
- package/dist/commands/chunk-2VRITY55.js +0 -41
- package/dist/commands/chunk-2XAH3MHV.js +0 -23
- package/dist/commands/chunk-34KZDKQJ.js +0 -304
- package/dist/commands/chunk-352KLSFX.js +0 -67
- package/dist/commands/chunk-36LOGVJ7.js +0 -38
- package/dist/commands/chunk-3AEDZZNL.js +0 -223
- package/dist/commands/chunk-3B2HEFNO.js +0 -51
- package/dist/commands/chunk-3PEXBHRN.js +0 -33
- package/dist/commands/chunk-3Z425MM3.js +0 -61
- package/dist/commands/chunk-3ZOX4G4U.js +0 -88
- package/dist/commands/chunk-452HWOJ7.js +0 -395
- package/dist/commands/chunk-475EFIJV.js +0 -178
- package/dist/commands/chunk-47UZB54M.js +0 -73
- package/dist/commands/chunk-4DN4XVPL.js +0 -716
- package/dist/commands/chunk-4DVM57T7.js +0 -86
- package/dist/commands/chunk-4EADHJVC.js +0 -247
- package/dist/commands/chunk-4HERA2GY.js +0 -95
- package/dist/commands/chunk-4JI35CVO.js +0 -70
- package/dist/commands/chunk-4L4LNWZ7.js +0 -143
- package/dist/commands/chunk-4N32QKJZ.js +0 -170
- package/dist/commands/chunk-4NRSFLG7.js +0 -185
- package/dist/commands/chunk-4OKRPAUT.js +0 -98
- package/dist/commands/chunk-4PUKDAXL.js +0 -42
- package/dist/commands/chunk-4Q64PG46.js +0 -478
- package/dist/commands/chunk-4UDTQVDD.js +0 -278
- package/dist/commands/chunk-4WR2LEZL.js +0 -123
- package/dist/commands/chunk-4ZJOC6OK.js +0 -298
- package/dist/commands/chunk-4ZQM4I7R.js +0 -533
- package/dist/commands/chunk-54X37JEJ.js +0 -170
- package/dist/commands/chunk-56KW5EOK.js +0 -85
- package/dist/commands/chunk-5CG3XU3O.js +0 -74
- package/dist/commands/chunk-5ESZLHDZ.js +0 -514
- package/dist/commands/chunk-5FBRMARM.js +0 -578
- package/dist/commands/chunk-5RG4S66L.js +0 -47
- package/dist/commands/chunk-5UJGACVN.js +0 -137
- package/dist/commands/chunk-5Y7B7FDL.js +0 -44
- package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
- package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
- package/dist/commands/chunk-5ZTQX7OS.js +0 -125
- package/dist/commands/chunk-66NX6EXR.js +0 -29
- package/dist/commands/chunk-66TGK5XL.js +0 -84
- package/dist/commands/chunk-6CFHLMKM.js +0 -555
- package/dist/commands/chunk-6DDK5XWK.js +0 -74
- package/dist/commands/chunk-6GQX752S.js +0 -145
- package/dist/commands/chunk-6HRRZANN.js +0 -55
- package/dist/commands/chunk-6MAZ55GF.js +0 -1241
- package/dist/commands/chunk-6OP63TBT.js +0 -78
- package/dist/commands/chunk-6Q3XUCLM.js +0 -204
- package/dist/commands/chunk-6RUWU2SB.js +0 -45
- package/dist/commands/chunk-6UCWAFQY.js +0 -245
- package/dist/commands/chunk-6WKJ3GDA.js +0 -408
- package/dist/commands/chunk-6YURRFRU.js +0 -461
- package/dist/commands/chunk-6YVURZAJ.js +0 -350
- package/dist/commands/chunk-6Z4YZG7P.js +0 -169
- package/dist/commands/chunk-77BIN247.js +0 -122
- package/dist/commands/chunk-7ABHNNY3.js +0 -529
- package/dist/commands/chunk-7C7FOKJK.js +0 -115
- package/dist/commands/chunk-7HAGC6SW.js +0 -1062
- package/dist/commands/chunk-7KKUFLH5.js +0 -56
- package/dist/commands/chunk-7LJQMM2K.js +0 -102
- package/dist/commands/chunk-7MJYLUF4.js +0 -99
- package/dist/commands/chunk-7NHZCI5Y.js +0 -704
- package/dist/commands/chunk-7OQ56DVW.js +0 -239
- package/dist/commands/chunk-7VWPGTZO.js +0 -260
- package/dist/commands/chunk-7YZXS3AK.js +0 -30
- package/dist/commands/chunk-A4HOQKOG.js +0 -85
- package/dist/commands/chunk-A6T2N7VC.js +0 -159
- package/dist/commands/chunk-AAUDI7WJ.js +0 -250
- package/dist/commands/chunk-AC26ZUG5.js +0 -259
- package/dist/commands/chunk-ACZ52JPI.js +0 -140
- package/dist/commands/chunk-AJ65WNJB.js +0 -230
- package/dist/commands/chunk-AK7SEO4Y.js +0 -177
- package/dist/commands/chunk-AKK56GNX.js +0 -205
- package/dist/commands/chunk-AKQYYHP2.js +0 -461
- package/dist/commands/chunk-ALDAS2WG.js +0 -137
- package/dist/commands/chunk-ANUTT56I.js +0 -85
- package/dist/commands/chunk-AVVMDVGO.js +0 -68
- package/dist/commands/chunk-B3M5WSGN.js +0 -72
- package/dist/commands/chunk-B7ZNIEDV.js +0 -351
- package/dist/commands/chunk-BCUDQWYK.js +0 -77
- package/dist/commands/chunk-BF6YX4HE.js +0 -70
- package/dist/commands/chunk-BHRS7HAM.js +0 -272
- package/dist/commands/chunk-BIKGPT52.js +0 -29
- package/dist/commands/chunk-BJA5U4Q7.js +0 -75
- package/dist/commands/chunk-BMKWSWWE.js +0 -126
- package/dist/commands/chunk-BMTYUJNT.js +0 -59
- package/dist/commands/chunk-BRHPRDDV.js +0 -127
- package/dist/commands/chunk-BRUBX64M.js +0 -33
- package/dist/commands/chunk-BTZJDHQT.js +0 -46
- package/dist/commands/chunk-BYFC6MD2.js +0 -72
- package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
- package/dist/commands/chunk-C2SEDMZ3.js +0 -238
- package/dist/commands/chunk-C54QXJD6.js +0 -4208
- package/dist/commands/chunk-C6QSVO5K.js +0 -56
- package/dist/commands/chunk-CBAKBWSZ.js +0 -332
- package/dist/commands/chunk-CFHRNTE5.js +0 -326
- package/dist/commands/chunk-CGLLAEKZ.js +0 -110
- package/dist/commands/chunk-CHKYPF5O.js +0 -82
- package/dist/commands/chunk-CJBW6BWG.js +0 -800
- package/dist/commands/chunk-CJKPF5DJ.js +0 -156
- package/dist/commands/chunk-CKUKK7JG.js +0 -252
- package/dist/commands/chunk-CMHGDCGN.js +0 -263
- package/dist/commands/chunk-CNGTHSUS.js +0 -750
- package/dist/commands/chunk-CP2J4RV2.js +0 -3987
- package/dist/commands/chunk-CQZI7RIK.js +0 -72
- package/dist/commands/chunk-CWCKCZS6.js +0 -188
- package/dist/commands/chunk-D5HIP4HT.js +0 -289
- package/dist/commands/chunk-D6D6WQR6.js +0 -125
- package/dist/commands/chunk-D7JRJI44.js +0 -297
- package/dist/commands/chunk-D7OAU32Z.js +0 -119
- package/dist/commands/chunk-DAAX7XDS.js +0 -1208
- package/dist/commands/chunk-DBKTFB5V.js +0 -18
- package/dist/commands/chunk-DEZF7QZZ.js +0 -184
- package/dist/commands/chunk-DMD74E3F.js +0 -39
- package/dist/commands/chunk-DPJVKTO4.js +0 -41
- package/dist/commands/chunk-DXJQHJQ4.js +0 -73
- package/dist/commands/chunk-DYZOOWVW.js +0 -912
- package/dist/commands/chunk-EBI2BAKQ.js +0 -47
- package/dist/commands/chunk-EDKOSZ3K.js +0 -88
- package/dist/commands/chunk-EFDVE5P5.js +0 -121
- package/dist/commands/chunk-EGIHAEMT.js +0 -72
- package/dist/commands/chunk-EKLU6QR7.js +0 -507
- package/dist/commands/chunk-ELY76WAR.js +0 -65
- package/dist/commands/chunk-EM3HAZF6.js +0 -52
- package/dist/commands/chunk-EMTZAGT5.js +0 -51
- package/dist/commands/chunk-ENKFCOVY.js +0 -472
- package/dist/commands/chunk-ERG4QRNG.js +0 -224
- package/dist/commands/chunk-EUGNQCYK.js +0 -139
- package/dist/commands/chunk-EW4NPUMQ.js +0 -363
- package/dist/commands/chunk-EWVR5AEX.js +0 -140
- package/dist/commands/chunk-EXDFKKMH.js +0 -113
- package/dist/commands/chunk-EXWB34R2.js +0 -238
- package/dist/commands/chunk-EYMPBHDN.js +0 -61
- package/dist/commands/chunk-EZ7IPKIH.js +0 -20
- package/dist/commands/chunk-EZSO25UZ.js +0 -80
- package/dist/commands/chunk-F6IQHZYY.js +0 -94
- package/dist/commands/chunk-FDS65XOJ.js +0 -212
- package/dist/commands/chunk-FFHEGWPK.js +0 -91
- package/dist/commands/chunk-FGL6DBZU.js +0 -71
- package/dist/commands/chunk-FHFWNNUC.js +0 -144
- package/dist/commands/chunk-FIUCHMCF.js +0 -32
- package/dist/commands/chunk-FJX7AENO.js +0 -74
- package/dist/commands/chunk-FKZ5E4JD.js +0 -97
- package/dist/commands/chunk-FMZWRDKH.js +0 -302
- package/dist/commands/chunk-FOKCRIAN.js +0 -67
- package/dist/commands/chunk-FQGWO2ZH.js +0 -43
- package/dist/commands/chunk-FROACLVU.js +0 -525
- package/dist/commands/chunk-FURNDIT3.js +0 -34
- package/dist/commands/chunk-FVDQNMP6.js +0 -93
- package/dist/commands/chunk-FVVZIJUC.js +0 -425
- package/dist/commands/chunk-FWU3H4TX.js +0 -17
- package/dist/commands/chunk-G3HBYHFA.js +0 -16
- package/dist/commands/chunk-G4E4M2P4.js +0 -299
- package/dist/commands/chunk-G5KSL2Q2.js +0 -151
- package/dist/commands/chunk-G6XC7V6Y.js +0 -58
- package/dist/commands/chunk-GCPP5XIG.js +0 -90
- package/dist/commands/chunk-GITT5A5A.js +0 -198
- package/dist/commands/chunk-GJYMI2CM.js +0 -48
- package/dist/commands/chunk-GLC47H7I.js +0 -285
- package/dist/commands/chunk-GUR54ELE.js +0 -328
- package/dist/commands/chunk-GW4UWR3O.js +0 -126
- package/dist/commands/chunk-GY4DMCKS.js +0 -306
- package/dist/commands/chunk-H6JQRHDC.js +0 -80
- package/dist/commands/chunk-HATKF6VX.js +0 -173
- package/dist/commands/chunk-HG2NZQD5.js +0 -135
- package/dist/commands/chunk-HH3CVIFU.js +0 -93
- package/dist/commands/chunk-HHMMGDMP.js +0 -469
- package/dist/commands/chunk-HI5WPM6C.js +0 -127
- package/dist/commands/chunk-HQGNXR6I.js +0 -245
- package/dist/commands/chunk-HTIDHEEN.js +0 -108
- package/dist/commands/chunk-HVCQYZVD.js +0 -38
- package/dist/commands/chunk-HWEZRNPL.js +0 -66
- package/dist/commands/chunk-HX3FFIO5.js +0 -74
- package/dist/commands/chunk-HXDTA5VU.js +0 -208
- package/dist/commands/chunk-I2KCGKJI.js +0 -107
- package/dist/commands/chunk-I63RNFFR.js +0 -213
- package/dist/commands/chunk-IAD4WLLI.js +0 -98
- package/dist/commands/chunk-IB5TT73I.js +0 -177
- package/dist/commands/chunk-IBAYXCMU.js +0 -156
- package/dist/commands/chunk-IGDJNXX2.js +0 -49
- package/dist/commands/chunk-ILGPZ47M.js +0 -33
- package/dist/commands/chunk-IYJEBWW5.js +0 -44
- package/dist/commands/chunk-J22PSIXR.js +0 -418
- package/dist/commands/chunk-J66YBAAM.js +0 -161
- package/dist/commands/chunk-J6WKZRV2.js +0 -391
- package/dist/commands/chunk-J7IO3AYH.js +0 -179
- package/dist/commands/chunk-JAKC2BHX.js +0 -88
- package/dist/commands/chunk-JCAQ7B6J.js +0 -124
- package/dist/commands/chunk-JHN6RCE6.js +0 -123
- package/dist/commands/chunk-JIGBNCDR.js +0 -88
- package/dist/commands/chunk-JJHWTFWQ.js +0 -76
- package/dist/commands/chunk-JJRKTWLK.js +0 -64
- package/dist/commands/chunk-JKOGWGQM.js +0 -92
- package/dist/commands/chunk-JM6EVOFN.js +0 -172
- package/dist/commands/chunk-JQXPLMCO.js +0 -81
- package/dist/commands/chunk-JV24VP2O.js +0 -81
- package/dist/commands/chunk-JVKXJ763.js +0 -45
- package/dist/commands/chunk-K275REYP.js +0 -37
- package/dist/commands/chunk-K4G3HOKS.js +0 -105
- package/dist/commands/chunk-K64EIHD2.js +0 -138
- package/dist/commands/chunk-KB3OQWDT.js +0 -71
- package/dist/commands/chunk-KCFOP5RI.js +0 -1310
- package/dist/commands/chunk-KGE4AS2Y.js +0 -134
- package/dist/commands/chunk-KIILCKQR.js +0 -220
- package/dist/commands/chunk-KK2SL42W.js +0 -241
- package/dist/commands/chunk-KKIMVXAP.js +0 -280
- package/dist/commands/chunk-KODXWMBX.js +0 -77
- package/dist/commands/chunk-KPSKWTOS.js +0 -208
- package/dist/commands/chunk-KVHNQHX3.js +0 -100
- package/dist/commands/chunk-KWYQR5MK.js +0 -269
- package/dist/commands/chunk-KXHXMERX.js +0 -214
- package/dist/commands/chunk-KZ5BBBMO.js +0 -271
- package/dist/commands/chunk-KZ7HD37E.js +0 -121
- package/dist/commands/chunk-KZSM5M5P.js +0 -89
- package/dist/commands/chunk-KZZWPUJW.js +0 -25
- package/dist/commands/chunk-L7DAL54N.js +0 -347
- package/dist/commands/chunk-LAR76BFA.js +0 -114
- package/dist/commands/chunk-LB557AHJ.js +0 -192
- package/dist/commands/chunk-LJXKVLYI.js +0 -229
- package/dist/commands/chunk-LOOFYHUM.js +0 -773
- package/dist/commands/chunk-LQXFVZTS.js +0 -13
- package/dist/commands/chunk-LT7QSHR4.js +0 -995
- package/dist/commands/chunk-LUXWDMKI.js +0 -426
- package/dist/commands/chunk-LWAXXZPS.js +0 -118
- package/dist/commands/chunk-LX7TIEMI.js +0 -1612
- package/dist/commands/chunk-LZ5QXE5N.js +0 -244
- package/dist/commands/chunk-LZPPSOTP.js +0 -122
- package/dist/commands/chunk-M4UV3BEV.js +0 -313
- package/dist/commands/chunk-M6JDU5EK.js +0 -133
- package/dist/commands/chunk-MDLOETXL.js +0 -211
- package/dist/commands/chunk-MFBNNTBM.js +0 -44
- package/dist/commands/chunk-MGF64OHV.js +0 -32
- package/dist/commands/chunk-MI2OS6TL.js +0 -132
- package/dist/commands/chunk-MLW4S35K.js +0 -389
- package/dist/commands/chunk-MN425CU6.js +0 -63
- package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
- package/dist/commands/chunk-MRORPFSO.js +0 -402
- package/dist/commands/chunk-MUGTOJUL.js +0 -319
- package/dist/commands/chunk-MVHPRYHE.js +0 -91
- package/dist/commands/chunk-MWO6FOSZ.js +0 -393
- package/dist/commands/chunk-MXC4IBZ7.js +0 -104
- package/dist/commands/chunk-N7QTMTST.js +0 -210
- package/dist/commands/chunk-NDBX7LSS.js +0 -32
- package/dist/commands/chunk-NEGJ77RV.js +0 -173
- package/dist/commands/chunk-NEGRE5VW.js +0 -101
- package/dist/commands/chunk-NFPD2P3V.js +0 -53
- package/dist/commands/chunk-NHIW7JE6.js +0 -335
- package/dist/commands/chunk-NILSN7A4.js +0 -158
- package/dist/commands/chunk-NOLFSPOB.js +0 -74
- package/dist/commands/chunk-NSAVEXVR.js +0 -353
- package/dist/commands/chunk-NT67QTZO.js +0 -65
- package/dist/commands/chunk-NU7W6QGT.js +0 -155
- package/dist/commands/chunk-NYWGJLBU.js +0 -19
- package/dist/commands/chunk-OAAVY2JK.js +0 -49
- package/dist/commands/chunk-OGS2DK7I.js +0 -47
- package/dist/commands/chunk-OHNP3QL2.js +0 -186
- package/dist/commands/chunk-OIPV3PWW.js +0 -870
- package/dist/commands/chunk-OIX2363L.js +0 -16
- package/dist/commands/chunk-OJ65BZBV.js +0 -646
- package/dist/commands/chunk-OKZWEVR4.js +0 -352
- package/dist/commands/chunk-OL6IF4JC.js +0 -20
- package/dist/commands/chunk-OMPRILFH.js +0 -29
- package/dist/commands/chunk-OOWGH2RG.js +0 -85
- package/dist/commands/chunk-OP2RFVLS.js +0 -102
- package/dist/commands/chunk-ORKVN2LO.js +0 -56
- package/dist/commands/chunk-OSBWXZJ4.js +0 -492
- package/dist/commands/chunk-OT3UMEWK.js +0 -47
- package/dist/commands/chunk-OVWPZDWP.js +0 -64
- package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
- package/dist/commands/chunk-OX3VQLV2.js +0 -488
- package/dist/commands/chunk-OZJP77UM.js +0 -103
- package/dist/commands/chunk-OZZWRJQI.js +0 -246
- package/dist/commands/chunk-P3H3DKTE.js +0 -69
- package/dist/commands/chunk-P4D5RESF.js +0 -88
- package/dist/commands/chunk-P4KIQRSL.js +0 -119
- package/dist/commands/chunk-P5SOYWH2.js +0 -37
- package/dist/commands/chunk-P7FPXAHP.js +0 -29
- package/dist/commands/chunk-PE7B7242.js +0 -84
- package/dist/commands/chunk-PFO7EYAP.js +0 -45
- package/dist/commands/chunk-PHLOTUB7.js +0 -366
- package/dist/commands/chunk-PTNQCCIB.js +0 -41
- package/dist/commands/chunk-PTZEFQUX.js +0 -211
- package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
- package/dist/commands/chunk-Q7EEIOAD.js +0 -120
- package/dist/commands/chunk-QABRNGQV.js +0 -88
- package/dist/commands/chunk-QAHFPCFR.js +0 -50
- package/dist/commands/chunk-QDFVVRQP.js +0 -92
- package/dist/commands/chunk-QGAERR7D.js +0 -99
- package/dist/commands/chunk-QHWJJ6X5.js +0 -53
- package/dist/commands/chunk-QJRVDE7T.js +0 -307
- package/dist/commands/chunk-QMDKDQKW.js +0 -114
- package/dist/commands/chunk-QOSC5RKD.js +0 -18
- package/dist/commands/chunk-QQ4CIYMF.js +0 -132
- package/dist/commands/chunk-QV5FKMOU.js +0 -80
- package/dist/commands/chunk-QWWTC3XR.js +0 -109
- package/dist/commands/chunk-QXQ56E56.js +0 -27
- package/dist/commands/chunk-R54Z2Z3X.js +0 -114
- package/dist/commands/chunk-R6QE5VJG.js +0 -46
- package/dist/commands/chunk-RG53UFNW.js +0 -418
- package/dist/commands/chunk-RGGEQM6G.js +0 -140
- package/dist/commands/chunk-RH6ZWJOA.js +0 -77
- package/dist/commands/chunk-RHKCWJQX.js +0 -62
- package/dist/commands/chunk-RKIAX4DZ.js +0 -191
- package/dist/commands/chunk-RLBFEHHC.js +0 -300
- package/dist/commands/chunk-RN2YDNLF.js +0 -229
- package/dist/commands/chunk-RRAIRS2T.js +0 -54
- package/dist/commands/chunk-RS764ZMU.js +0 -46
- package/dist/commands/chunk-RUIBQMOV.js +0 -38
- package/dist/commands/chunk-RUQY5TS3.js +0 -83
- package/dist/commands/chunk-RVUJ6F5L.js +0 -181
- package/dist/commands/chunk-RW64VHEB.js +0 -130
- package/dist/commands/chunk-RXYMJPJB.js +0 -114
- package/dist/commands/chunk-S4M6UWR2.js +0 -103
- package/dist/commands/chunk-SASX3W2M.js +0 -99
- package/dist/commands/chunk-SFNBUB6D.js +0 -110
- package/dist/commands/chunk-SJ2ZN575.js +0 -90
- package/dist/commands/chunk-SP7DKYGU.js +0 -1263
- package/dist/commands/chunk-SSL6A3Y4.js +0 -165
- package/dist/commands/chunk-SVAKCXZ7.js +0 -44
- package/dist/commands/chunk-SYOXIKB7.js +0 -705
- package/dist/commands/chunk-SZG5HDNP.js +0 -321
- package/dist/commands/chunk-T25S4QHL.js +0 -52
- package/dist/commands/chunk-T4F33UKZ.js +0 -114
- package/dist/commands/chunk-T4UYEHWG.js +0 -50
- package/dist/commands/chunk-TAEGXID2.js +0 -58
- package/dist/commands/chunk-TCBUX52E.js +0 -701
- package/dist/commands/chunk-TEPYEUYG.js +0 -585
- package/dist/commands/chunk-TFLHYC2F.js +0 -141
- package/dist/commands/chunk-TJKM56WJ.js +0 -109
- package/dist/commands/chunk-TLAB552K.js +0 -445
- package/dist/commands/chunk-TP6L4W3W.js +0 -82
- package/dist/commands/chunk-TR7WWYD5.js +0 -60
- package/dist/commands/chunk-TVZXG4Y4.js +0 -197
- package/dist/commands/chunk-TYNH2R66.js +0 -1150
- package/dist/commands/chunk-U3IVVR4W.js +0 -33
- package/dist/commands/chunk-U5P6G3UV.js +0 -77
- package/dist/commands/chunk-U7XU5RG3.js +0 -86
- package/dist/commands/chunk-UKBBWMLE.js +0 -1189
- package/dist/commands/chunk-ULVVGGTY.js +0 -64
- package/dist/commands/chunk-UNMSZGSG.js +0 -269
- package/dist/commands/chunk-URDT2O2K.js +0 -36
- package/dist/commands/chunk-UTHUX7VU.js +0 -88
- package/dist/commands/chunk-V4Z7G4UH.js +0 -73
- package/dist/commands/chunk-V5FD7DVV.js +0 -48
- package/dist/commands/chunk-VCPGFBMN.js +0 -655
- package/dist/commands/chunk-VGPIQNDB.js +0 -24
- package/dist/commands/chunk-VJE3RJAX.js +0 -23
- package/dist/commands/chunk-VK6D5CWA.js +0 -161
- package/dist/commands/chunk-VOF3N4WO.js +0 -114
- package/dist/commands/chunk-VQVPAVQ3.js +0 -45
- package/dist/commands/chunk-VV4TQYGD.js +0 -38
- package/dist/commands/chunk-W3FX7FYN.js +0 -84
- package/dist/commands/chunk-W7DRUOF7.js +0 -122
- package/dist/commands/chunk-WAEN2RTT.js +0 -161
- package/dist/commands/chunk-WCEUMOKK.js +0 -84
- package/dist/commands/chunk-WJ4NEDNI.js +0 -288
- package/dist/commands/chunk-WMMGXJXP.js +0 -92
- package/dist/commands/chunk-WOFLW2LX.js +0 -26
- package/dist/commands/chunk-WTH6NTXU.js +0 -128
- package/dist/commands/chunk-WWVYEHQT.js +0 -272
- package/dist/commands/chunk-X3TNPALI.js +0 -213
- package/dist/commands/chunk-XC6GG5JR.js +0 -78
- package/dist/commands/chunk-XDF25GSU.js +0 -536
- package/dist/commands/chunk-XFPEUYDV.js +0 -67
- package/dist/commands/chunk-XFWI6WHH.js +0 -60
- package/dist/commands/chunk-XGMRAKSL.js +0 -85
- package/dist/commands/chunk-XHGWMD3L.js +0 -104
- package/dist/commands/chunk-XKSUBUIH.js +0 -116
- package/dist/commands/chunk-XPBF5DG3.js +0 -419
- package/dist/commands/chunk-XUMYPESL.js +0 -160
- package/dist/commands/chunk-XXC32PVL.js +0 -541
- package/dist/commands/chunk-XXN2EZBY.js +0 -133
- package/dist/commands/chunk-XXNEY4B3.js +0 -110
- package/dist/commands/chunk-Y27PTXXI.js +0 -258
- package/dist/commands/chunk-Y4EBUI6M.js +0 -237
- package/dist/commands/chunk-YAU3LYNF.js +0 -60
- package/dist/commands/chunk-YDURQICF.js +0 -204
- package/dist/commands/chunk-YGFOGA7C.js +0 -1153
- package/dist/commands/chunk-YHJ2AJMA.js +0 -66
- package/dist/commands/chunk-YIA6FC3K.js +0 -78
- package/dist/commands/chunk-YM77CF4D.js +0 -183
- package/dist/commands/chunk-YNPRJCEO.js +0 -81
- package/dist/commands/chunk-YTBQAD5W.js +0 -170
- package/dist/commands/chunk-YVH2OLDS.js +0 -104
- package/dist/commands/chunk-ZAAHZY2A.js +0 -19
- package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
- package/dist/commands/chunk-ZLRUHSOP.js +0 -48
- package/dist/commands/chunk-ZNR75OXP.js +0 -444
- package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
- package/dist/commands/chunk-ZVAIIHBE.js +0 -63
- package/dist/commands/chunk-ZYFHYQA7.js +0 -51
- package/dist/commands/chunk-ZZFFSQF4.js +0 -218
- package/dist/commands/chunk-ZZULXNC2.js +0 -47
- package/dist/commands/chunk-ZZXO6TFH.js +0 -232
- package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
- package/dist/commands/test-related-ZCNC46MS.js +0 -113
- package/dist/commands/unused-members-STULPRBU.js +0 -331
- package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
- package/dist/hooks/chunk-5R5YFQR5.js +0 -931
- package/dist/hooks/chunk-6RLY27FT.js +0 -232
- package/dist/hooks/chunk-6YGMIODI.js +0 -86
- package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
- package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
- package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
- package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
- package/dist/hooks/chunk-IURJANNZ.js +0 -1082
- package/dist/hooks/chunk-OV22V63P.js +0 -10980
- package/dist/hooks/chunk-SXABK6UV.js +0 -321
- package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
|
@@ -295,7 +295,6 @@ interface AppendedRound {
|
|
|
295
295
|
lines: ReadonlyArray<string>
|
|
296
296
|
root: string
|
|
297
297
|
kind: LineKind
|
|
298
|
-
findings: ReadonlyArray<Finding>
|
|
299
298
|
date: string
|
|
300
299
|
}
|
|
301
300
|
|
|
@@ -308,25 +307,28 @@ function ledger_lines({ issue, lines, kind, date }: AppendedRound): ReadonlyArra
|
|
|
308
307
|
|
|
309
308
|
// A code round goes on to what its tree means for the ship (`review-record-code-round.ts`).
|
|
310
309
|
async function append_round(round: AppendedRound): Promise<number> {
|
|
311
|
-
const { issue, lines, root
|
|
310
|
+
const { issue, lines, root } = round
|
|
312
311
|
const ledger_path = observation_ledger_home.issue_path(issue, root)
|
|
313
312
|
|
|
314
313
|
await observation_ledger_home.append(ledger_path, ledger_lines(round))
|
|
315
314
|
console.info(confirmation(lines.length, ledger_path))
|
|
316
315
|
await review_comment_carry.carry_from_record(root)
|
|
317
316
|
|
|
318
|
-
if (kind === 'code') await review_record_code_round.follow(issue, root, findings)
|
|
319
|
-
|
|
320
317
|
return 0
|
|
321
318
|
}
|
|
322
319
|
|
|
320
|
+
interface WrittenRound {
|
|
321
|
+
code: number
|
|
322
|
+
is_ledger: boolean
|
|
323
|
+
}
|
|
324
|
+
|
|
323
325
|
// A code round recorded after the push goes to the issue unasked (`review-record-comment.ts`).
|
|
324
326
|
async function write_round(
|
|
325
327
|
parsed: Parsed,
|
|
326
328
|
request: Request,
|
|
327
329
|
now: Date,
|
|
328
330
|
root: string,
|
|
329
|
-
): Promise<
|
|
331
|
+
): Promise<WrittenRound> {
|
|
330
332
|
const kind = kind_of(parsed)
|
|
331
333
|
const date = observation_ledger_home.ledger_date(now)
|
|
332
334
|
const lines = [
|
|
@@ -335,13 +337,23 @@ async function write_round(
|
|
|
335
337
|
]
|
|
336
338
|
const { issue, findings } = request
|
|
337
339
|
|
|
338
|
-
if (parsed.comment)
|
|
340
|
+
if (parsed.comment) {
|
|
341
|
+
return { code: await review_record_comment.post(issue, lines), is_ledger: false }
|
|
342
|
+
}
|
|
339
343
|
|
|
340
344
|
if (kind === 'code' && (await review_record_comment.is_after_push())) {
|
|
341
|
-
|
|
345
|
+
const code = await review_record_comment.post_after_push({ issue, lines, root, findings })
|
|
346
|
+
|
|
347
|
+
return { code, is_ledger: false }
|
|
342
348
|
}
|
|
343
349
|
|
|
344
|
-
return await append_round({ issue, lines, root, kind,
|
|
350
|
+
return { code: await append_round({ issue, lines, root, kind, date }), is_ledger: true }
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
function finish_record(request: Request, is_interaction: boolean, root: string): void {
|
|
354
|
+
if (!is_interaction) review_final_record.record(request.issue, request.findings, root)
|
|
355
|
+
review_fix_round.record_reasons(request.issue, request.findings)
|
|
356
|
+
if (request.round !== undefined) review_fix_round.save(request.round, root)
|
|
345
357
|
}
|
|
346
358
|
|
|
347
359
|
async function record_prepared(
|
|
@@ -353,15 +365,17 @@ async function record_prepared(
|
|
|
353
365
|
request.round = parsed.interaction
|
|
354
366
|
? undefined
|
|
355
367
|
: review_fix_round.prepare(request.issue, request.findings, root)
|
|
356
|
-
const code = await write_round(parsed, request, now, root)
|
|
368
|
+
const { code, is_ledger } = await write_round(parsed, request, now, root)
|
|
357
369
|
|
|
358
370
|
if (code !== 0) return code
|
|
359
371
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
if (
|
|
372
|
+
finish_record(request, parsed.interaction, root)
|
|
373
|
+
|
|
374
|
+
if (is_ledger && !parsed.interaction) {
|
|
375
|
+
await review_record_code_round.follow(request.issue, root, request.findings)
|
|
376
|
+
}
|
|
363
377
|
|
|
364
|
-
return
|
|
378
|
+
return 0
|
|
365
379
|
}
|
|
366
380
|
|
|
367
381
|
async function run_record(parsed: Parsed, now: Date, root: string): Promise<number> {
|
|
@@ -5,6 +5,7 @@ import { error_text } from '#scripts/lib/error-message'
|
|
|
5
5
|
import { observation_ledger_home } from '#scripts/observations/observation-ledger-home'
|
|
6
6
|
import { run_review_join_read, type JoinVerdict } from '#scripts/run/review/run-review-join-read'
|
|
7
7
|
import { run_review_pinned_join } from '#scripts/run/review/run-review-pinned-join'
|
|
8
|
+
import { run_review_pinned_steps } from '#scripts/run/review/run-review-pinned-steps'
|
|
8
9
|
import { run_ship_detach } from '#scripts/run/ship/run-ship-detach'
|
|
9
10
|
import { test_pinned_logic } from '#scripts/test/test-pinned-logic'
|
|
10
11
|
import { review_finding_ledger } from './review-finding-ledger'
|
|
@@ -15,7 +16,7 @@ import { review_finding_ledger } from './review-finding-ledger'
|
|
|
15
16
|
// tree, and its join closed before the fix. The ship's pre-detach was then the first to name the fixed
|
|
16
17
|
// tree's unpinned places, and stopped on them. A recorded code round compares the fixed tree with the
|
|
17
18
|
// launch's and, where they differ, starts the check again with the launch's `--unpinned-ok` reason and
|
|
18
|
-
// says who reads its answer. **
|
|
19
|
+
// says who reads its answer. **The fresh round-1 check is not waited on** (joshuafolkken/kit#4895): the
|
|
19
20
|
// ship's pre-detach reads that same check's answer on that tree rather than running its own
|
|
20
21
|
// (`run-review-pinned-join.ts`). A foreground read stalled the lane for minutes, and pinning what it
|
|
21
22
|
// named moved the tree again under the next probe.
|
|
@@ -49,19 +50,27 @@ async function restart_if_moved(root: string = PROJECT_ROOT): Promise<boolean> {
|
|
|
49
50
|
|
|
50
51
|
// **A join the lane skipped is read here** (joshuafolkken/kit#5212): `josh run:review --join` was never
|
|
51
52
|
// run, so the unpinned places would surface only as the ship's pre-detach failure. It reads only an
|
|
52
|
-
// answer already left on this tree
|
|
53
|
-
//
|
|
53
|
+
// answer already left on this tree. A cut collects the existing continuation; a ship's remaining
|
|
54
|
+
// probe is collected even when the original join was read. Incomplete results remain explicit.
|
|
54
55
|
const CHOICE_LINE =
|
|
55
56
|
'Unpinned before the ship: pin each place above with a test that turns red without it, or ship with `--unpinned-ok "<reason>"`.\n'
|
|
56
57
|
|
|
57
58
|
function show_stop(joined: JoinVerdict | undefined): void {
|
|
58
|
-
if (joined
|
|
59
|
-
|
|
59
|
+
if (joined === undefined) return
|
|
60
|
+
const text = joined.is_stop
|
|
61
|
+
? test_pinned_logic.report_text(joined.summary, CHOICE_LINE)
|
|
62
|
+
: joined.text
|
|
63
|
+
|
|
64
|
+
if (joined.is_stop || [joined.summary.is_unchecked, joined.summary.is_partial].includes(true)) {
|
|
65
|
+
console.info(text.trimEnd())
|
|
66
|
+
}
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
async function read_skipped_join(root: string = PROJECT_ROOT): Promise<void> {
|
|
63
70
|
try {
|
|
64
|
-
if (run_review_join_read.is_due(root)
|
|
71
|
+
if (run_review_join_read.is_due(root) || run_review_pinned_steps.is_remaining(root)) {
|
|
72
|
+
show_stop(await run_review_join_read.read_finished(root))
|
|
73
|
+
}
|
|
65
74
|
} catch (error) {
|
|
66
75
|
error_text.trace_swallowed('review_record_pinned.read_skipped_join', error)
|
|
67
76
|
}
|
|
@@ -11,6 +11,7 @@ import { run_event_retry } from '#scripts/run/event/run-event-retry'
|
|
|
11
11
|
import { run_event_stream } from '#scripts/run/event/run-event-stream'
|
|
12
12
|
import { run_event_stream_emit } from '#scripts/run/event/run-event-stream-emit'
|
|
13
13
|
import { run_invocation } from '#scripts/run/run-invocation'
|
|
14
|
+
import { run_repair_attempt } from '#scripts/run/run-repair-attempt'
|
|
14
15
|
import { run_add, type AddContext, type AddOutcome, type AddPorts, type IssueView } from './run-add'
|
|
15
16
|
import { run_add_epic } from './run-add-epic'
|
|
16
17
|
import { run_add_issue } from './run-add-issue'
|
|
@@ -136,6 +137,17 @@ async function announce(
|
|
|
136
137
|
await announce(rest, roots, is_retry)
|
|
137
138
|
}
|
|
138
139
|
|
|
140
|
+
async function prepare_repairs(request: AddRequest): Promise<ReadonlySet<number>> {
|
|
141
|
+
if (!request.is_retry) return new Set()
|
|
142
|
+
const prepared = await Promise.all(
|
|
143
|
+
request.issues.map(async (issue) =>
|
|
144
|
+
(await run_repair_attempt.prepare(String(issue))) ? issue : undefined,
|
|
145
|
+
),
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
return new Set(prepared.filter((issue) => issue !== undefined))
|
|
149
|
+
}
|
|
150
|
+
|
|
139
151
|
// The blockers still open. A blocker whose state did not come back counts as open, so an issue is
|
|
140
152
|
// never reported free to run on a read that did not say so.
|
|
141
153
|
function view_of(issue: EpicIssue): IssueView {
|
|
@@ -166,7 +178,11 @@ async function clear_label(issue: number, label: string): Promise<boolean> {
|
|
|
166
178
|
|
|
167
179
|
const GH_PORTS: AddPorts = { read_issue, apply_label, clear_label }
|
|
168
180
|
|
|
169
|
-
async function context_of(
|
|
181
|
+
async function context_of(
|
|
182
|
+
live: LiveRun,
|
|
183
|
+
is_retry: boolean,
|
|
184
|
+
repairs: ReadonlySet<number>,
|
|
185
|
+
): Promise<AddContext> {
|
|
170
186
|
const lanes = await lane_spent.lanes_in_use()
|
|
171
187
|
const events = await run_event_stream_emit.current_events(is_retry)
|
|
172
188
|
const active = backlog_drive_restore.active_issues(events)
|
|
@@ -174,6 +190,7 @@ async function context_of(live: LiveRun, is_retry: boolean): Promise<AddContext>
|
|
|
174
190
|
|
|
175
191
|
return {
|
|
176
192
|
is_retry,
|
|
193
|
+
repairs,
|
|
177
194
|
done: live.carry.done ?? [],
|
|
178
195
|
active: new Set([...active, ...lanes.working, ...lanes.unread]),
|
|
179
196
|
settled: new Set([
|
|
@@ -191,11 +208,12 @@ function report(outcomes: ReadonlyArray<AddOutcome>, is_priority: boolean): numb
|
|
|
191
208
|
}
|
|
192
209
|
|
|
193
210
|
async function add(request: AddRequest, live: LiveRun, ports: AddPorts): Promise<number> {
|
|
211
|
+
const repairs = await prepare_repairs(request)
|
|
194
212
|
const outcomes: ReadonlyArray<AddOutcome> = await run_add.add_all(
|
|
195
213
|
request.issues,
|
|
196
214
|
request.is_priority,
|
|
197
215
|
ports,
|
|
198
|
-
await context_of(live, request.is_retry),
|
|
216
|
+
await context_of(live, request.is_retry, repairs),
|
|
199
217
|
)
|
|
200
218
|
const additions = run_add.additions_of(outcomes, request.is_priority)
|
|
201
219
|
const roots = run_add.roots_of(outcomes)
|
|
@@ -203,7 +221,7 @@ async function add(request: AddRequest, live: LiveRun, ports: AddPorts): Promise
|
|
|
203
221
|
if (additions.length === 0) return report(outcomes, request.is_priority)
|
|
204
222
|
|
|
205
223
|
await announce(
|
|
206
|
-
additions.map((addition) => addition.issue),
|
|
224
|
+
additions.map((addition) => addition.issue).filter((issue) => !repairs.has(issue)),
|
|
207
225
|
roots,
|
|
208
226
|
request.is_retry,
|
|
209
227
|
)
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
has_label_name,
|
|
5
5
|
IN_PROGRESS_LABEL,
|
|
6
6
|
NEEDS_DECISION_LABEL,
|
|
7
|
+
NEEDS_HUMAN_MERGE_LABEL,
|
|
7
8
|
NEEDS_HUMAN_REVIEW_LABEL,
|
|
8
9
|
PRIORITY_HIGH_LABEL,
|
|
9
10
|
RUN_LANE_LABEL,
|
|
@@ -44,6 +45,8 @@ interface AddContext {
|
|
|
44
45
|
settled?: ReadonlySet<number>
|
|
45
46
|
// What the run already tracks, so an epic root is never recorded twice (`run_add_epic.tracked_of`).
|
|
46
47
|
tracked?: ReadonlySet<number>
|
|
48
|
+
// The issues whose repair attempt this call recorded (`run_repair_attempt.prepare`).
|
|
49
|
+
repairs?: ReadonlySet<number>
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
const DEFAULT_CONTEXT: AddContext = { is_retry: false, done: [], active: new Set() }
|
|
@@ -73,20 +76,34 @@ function labels_for(
|
|
|
73
76
|
: opted_in
|
|
74
77
|
}
|
|
75
78
|
|
|
76
|
-
// The first label
|
|
79
|
+
// The first label whose write failed, or `undefined` once every one landed. Sequential, so a
|
|
77
80
|
// refused write stops the rest rather than leaving a half-labelled issue the pool reads differently.
|
|
78
|
-
async function
|
|
81
|
+
async function first_failed(
|
|
79
82
|
issue: number,
|
|
80
83
|
labels: ReadonlyArray<string>,
|
|
81
|
-
|
|
84
|
+
write: AddPorts['apply_label'],
|
|
82
85
|
): Promise<string | undefined> {
|
|
83
86
|
const [label, ...rest] = labels
|
|
84
87
|
|
|
85
88
|
if (label === undefined) return undefined
|
|
86
89
|
|
|
87
|
-
if (!(await
|
|
90
|
+
if (!(await write(issue, label))) return label
|
|
91
|
+
|
|
92
|
+
return await first_failed(issue, rest, write)
|
|
93
|
+
}
|
|
88
94
|
|
|
89
|
-
|
|
95
|
+
// The stops a retry clears: `run:stalled` always, and `needs-human-merge` only for an issue whose
|
|
96
|
+
// repair attempt was recorded — a merge wait with no repair stays a person's (joshuafolkken/kit#7487).
|
|
97
|
+
// The ship re-parks it while the diff still needs a person's merge (`followup-human-merge.ts`).
|
|
98
|
+
// A recorded repair also clears the ended lane's `in-progress`, which the offer otherwise reads as
|
|
99
|
+
// another session's work (joshuafolkken/kit#7493): the record is made only once no process holds
|
|
100
|
+
// the issue and its lane tree is clean (`run-repair-attempt.ts`).
|
|
101
|
+
function stops_of(issue: number, context: AddContext): ReadonlyArray<string> {
|
|
102
|
+
if (!context.is_retry) return []
|
|
103
|
+
|
|
104
|
+
return context.repairs?.has(issue) === true
|
|
105
|
+
? [RUN_STALLED_LABEL, NEEDS_HUMAN_MERGE_LABEL, IN_PROGRESS_LABEL]
|
|
106
|
+
: [RUN_STALLED_LABEL]
|
|
90
107
|
}
|
|
91
108
|
|
|
92
109
|
function retry_required(
|
|
@@ -131,13 +148,13 @@ async function label_one(
|
|
|
131
148
|
ports: AddPorts,
|
|
132
149
|
context: AddContext,
|
|
133
150
|
): Promise<AddOutcome> {
|
|
134
|
-
const label = await
|
|
151
|
+
const label = await first_failed(issue, labels, ports.apply_label)
|
|
135
152
|
|
|
136
153
|
if (label !== undefined) return { kind: 'unlabeled', issue, label }
|
|
137
154
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
155
|
+
const stop = await first_failed(issue, stops_of(issue, context), ports.clear_label)
|
|
156
|
+
|
|
157
|
+
if (stop !== undefined) return { kind: 'refused', issue, reason: `could not clear ${stop}` }
|
|
141
158
|
|
|
142
159
|
return { kind: 'queued', issue, blockers: [] }
|
|
143
160
|
}
|
|
@@ -13,9 +13,9 @@ import { run_board_decision } from './run-board-decision'
|
|
|
13
13
|
import { run_board_earlier, type EarlierLanes } from './run-board-earlier'
|
|
14
14
|
import { run_board_ending_reason } from './run-board-ending-reason'
|
|
15
15
|
import { run_board_human } from './run-board-human'
|
|
16
|
-
import { run_board_human_merge } from './run-board-human-merge'
|
|
17
16
|
import { run_board_kind, type BoardPriority } from './run-board-kind'
|
|
18
17
|
import type { PauseRead } from './run-board-pause'
|
|
18
|
+
import { run_board_retry_wait } from './run-board-retry-wait'
|
|
19
19
|
import { run_board_standing_waits } from './run-board-standing-waits'
|
|
20
20
|
import type { ItemState, ItemStatus } from './run-board-status'
|
|
21
21
|
|
|
@@ -109,6 +109,8 @@ interface BoardLayout {
|
|
|
109
109
|
// The earlier run's lanes that still hold a place under the limit, and the lanes with no record —
|
|
110
110
|
// drawn after the run's own lanes, and no row the header counts.
|
|
111
111
|
earlier?: ReadonlyArray<BoardRow> | undefined
|
|
112
|
+
// The root checkout's single run beside the run, drawn above its lanes and no row the header counts.
|
|
113
|
+
root?: { name: string; row: BoardRow } | undefined
|
|
112
114
|
}
|
|
113
115
|
|
|
114
116
|
// What an active row is named and classified by — each issue's title and labels.
|
|
@@ -327,7 +329,7 @@ function layout_of(
|
|
|
327
329
|
reason_of?: ReasonOf,
|
|
328
330
|
earlier: EarlierLanes = run_board_earlier.NO_EARLIER,
|
|
329
331
|
): BoardLayout {
|
|
330
|
-
const current =
|
|
332
|
+
const current = run_board_retry_wait.overlay_of(input_plan, input_statuses)
|
|
331
333
|
const { plan, statuses } = current
|
|
332
334
|
const overlay = { plan, statuses, reason_of }
|
|
333
335
|
const queue = plan.waves.waves.flat().filter((child) => is_untouched(child, overlay))
|
|
@@ -382,9 +384,10 @@ function rows_of(layout: BoardLayout): Array<BoardRow> {
|
|
|
382
384
|
return [...layout.active, ...queued_rows(layout), ...layout.people, ...layout.unreached]
|
|
383
385
|
}
|
|
384
386
|
|
|
385
|
-
// Every row the frame draws — the counted ones and the earlier run's
|
|
387
|
+
// Every row the frame draws — the root checkout's single run's, the counted ones and the earlier run's
|
|
388
|
+
// lanes — what the legend reads.
|
|
386
389
|
function drawn_rows(layout: BoardLayout): Array<BoardRow> {
|
|
387
|
-
return [
|
|
390
|
+
return [layout.root?.row ?? [], rows_of(layout), layout.earlier ?? []].flat()
|
|
388
391
|
}
|
|
389
392
|
|
|
390
393
|
// Every row waiting on a person's decision: the touched children parked on one, then the untouched
|
|
@@ -395,11 +398,12 @@ function people_of(layout: BoardLayout): Array<BoardRow> {
|
|
|
395
398
|
return [...asked, ...layout.people]
|
|
396
399
|
}
|
|
397
400
|
|
|
398
|
-
// The run's own rows `apart` does not name, then the earlier
|
|
401
|
+
// The root checkout's single run's row, the run's own rows `apart` does not name, then the earlier
|
|
402
|
+
// run's lanes still holding a place.
|
|
399
403
|
function lane_rows(layout: BoardLayout, apart: ReadonlyArray<BoardRow>): Array<BoardRow> {
|
|
400
404
|
const own = layout.active.filter((row) => !apart.includes(row))
|
|
401
405
|
|
|
402
|
-
return [
|
|
406
|
+
return [layout.root?.row ?? [], own, layout.earlier ?? []].flat()
|
|
403
407
|
}
|
|
404
408
|
|
|
405
409
|
// The lanes section's rows: those neither finished nor waiting on a person's decision.
|
|
@@ -420,6 +424,7 @@ function listed_parks(layout: BoardLayout): ReadonlySet<number> {
|
|
|
420
424
|
|
|
421
425
|
const run_board_layout = {
|
|
422
426
|
EMPTY_LAYOUT,
|
|
427
|
+
active_order,
|
|
423
428
|
drawn_rows,
|
|
424
429
|
is_blocked,
|
|
425
430
|
is_decision: run_board_human.is_decision,
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { backlog_drive_memory } from '#scripts/backlog/backlog-drive-memory'
|
|
2
2
|
import type { NamedPlan } from '#scripts/backlog/backlog-plan'
|
|
3
3
|
import { backlog_ready } from '#scripts/backlog/backlog-ready'
|
|
4
|
-
import { backlogrun_launch } from '#scripts/backlog/backlogrun-launch'
|
|
5
4
|
import { lane_held_stats } from '#scripts/lane/lane-held-stats'
|
|
6
5
|
import { lane_ledger } from '#scripts/lane/lane-ledger'
|
|
7
6
|
import type { TableRead } from '#scripts/lane/lane-process-table'
|
|
8
7
|
import { lane_registry, type LaneInfo } from '#scripts/lane/lane-registry'
|
|
9
8
|
import { lane_state, type LaneStateRecord } from '#scripts/lane/lane-state'
|
|
10
9
|
import { stamped_memo } from '#scripts/lib/stamped-memo'
|
|
11
|
-
import { run_carry, type
|
|
12
|
-
import { run_carry_ended } from '#scripts/run/carry/run-carry-ended'
|
|
10
|
+
import { run_carry, type RunCarry } from '#scripts/run/carry/run-carry'
|
|
13
11
|
import { run_event_scope } from '#scripts/run/event/run-event-scope'
|
|
14
12
|
import { run_event_stream, type RunEvent } from '#scripts/run/event/run-event-stream'
|
|
15
13
|
import { run_event_tail } from '#scripts/run/event/run-event-tail'
|
|
16
14
|
import { run_merge_usage_limit } from '#scripts/run/merge/run-merge-usage-limit'
|
|
17
|
-
import { run_stranded_detect } from '#scripts/run/run-stranded-detect'
|
|
18
15
|
import { run_wake } from '#scripts/run/wake/run-wake'
|
|
19
16
|
import { run_board_found, type FoundOf } from './run-board-found'
|
|
20
17
|
import { run_board_lane_result } from './run-board-lane-result'
|
|
@@ -26,10 +23,10 @@ import {
|
|
|
26
23
|
} from './run-board-operation-read'
|
|
27
24
|
import type { ProcessRoots } from './run-board-process-groups'
|
|
28
25
|
import type { QuotaProvider } from './run-board-quota-read'
|
|
29
|
-
import { run_board_roots } from './run-board-roots'
|
|
30
26
|
import { run_board_scope } from './run-board-scope'
|
|
31
|
-
import { run_board_single } from './run-board-single'
|
|
27
|
+
import { run_board_single, type EndedRoot, type RootRun } from './run-board-single'
|
|
32
28
|
import { run_board_span, type BoardSpan } from './run-board-span'
|
|
29
|
+
import { run_board_span_read } from './run-board-span-read'
|
|
33
30
|
import { run_board_throughput, type ThroughputRow } from './run-board-throughput'
|
|
34
31
|
import { run_board_usual, type UsualTimes } from './run-board-usual'
|
|
35
32
|
|
|
@@ -42,6 +39,10 @@ interface LocalRead {
|
|
|
42
39
|
ended_ms: number | undefined
|
|
43
40
|
// The single run's name the header draws; `undefined` for a `backlogrun` (`run-board-single.ts`).
|
|
44
41
|
run_name?: string | undefined
|
|
42
|
+
// The root checkout's single run beside a carried run, drawn above its lanes.
|
|
43
|
+
root?: RootRun | undefined
|
|
44
|
+
// The root checkout's single runs a merge ended inside the run, drawn in `✅ done`.
|
|
45
|
+
ended_roots?: ReadonlyArray<EndedRoot> | undefined
|
|
45
46
|
// What the run was asked to do, from its invocation.
|
|
46
47
|
scope: NamedPlan
|
|
47
48
|
events: ReadonlyArray<RunEvent>
|
|
@@ -103,27 +104,6 @@ interface LocalRead {
|
|
|
103
104
|
found?: FoundOf | undefined
|
|
104
105
|
}
|
|
105
106
|
|
|
106
|
-
const NO_SPAN: SpanHere = {
|
|
107
|
-
span: undefined,
|
|
108
|
-
resume: undefined,
|
|
109
|
-
transcript: undefined,
|
|
110
|
-
roots: {},
|
|
111
|
-
carry: undefined,
|
|
112
|
-
is_stranded: false,
|
|
113
|
-
is_session_active: false,
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
interface SpanHere {
|
|
117
|
-
span: BoardSpan | undefined
|
|
118
|
-
resume: string | undefined
|
|
119
|
-
// The parent session's transcript, where the run's record names one.
|
|
120
|
-
transcript: string | undefined
|
|
121
|
-
roots: ProcessRoots
|
|
122
|
-
carry: RunCarry | undefined
|
|
123
|
-
is_stranded: boolean
|
|
124
|
-
is_session_active: boolean
|
|
125
|
-
}
|
|
126
|
-
|
|
127
107
|
// The main work tree, resolved once: it does not move while the board is open, and resolving it runs a
|
|
128
108
|
// `git` subprocess the redraw would wait on (joshuafolkken/kit#4263). A failed resolve is forgotten,
|
|
129
109
|
// so a `git` that timed out once is asked again on the next redraw rather than failing every one.
|
|
@@ -142,44 +122,6 @@ async function main_root(): Promise<string> {
|
|
|
142
122
|
}
|
|
143
123
|
}
|
|
144
124
|
|
|
145
|
-
// Every process the run's record names is asked of `table`, the redraw's own `ps` snapshot — only once
|
|
146
|
-
// a run is found, so a repository with no run waits on no `ps`.
|
|
147
|
-
async function recorded_span_here(
|
|
148
|
-
repository: string,
|
|
149
|
-
table: TableRead | undefined,
|
|
150
|
-
read: CarryRead,
|
|
151
|
-
): Promise<SpanHere> {
|
|
152
|
-
const ended = run_carry_ended.read_ended(run_carry_ended.ended_path(repository))
|
|
153
|
-
const launch = backlogrun_launch.pending_launch(repository)
|
|
154
|
-
const span = run_board_span.span_of(read, ended, launch)
|
|
155
|
-
|
|
156
|
-
if (span === undefined) return NO_SPAN
|
|
157
|
-
|
|
158
|
-
const same_process = await run_board_roots.same_in(table)
|
|
159
|
-
const stranded_ports = run_stranded_detect.ports_with(same_process)
|
|
160
|
-
|
|
161
|
-
return {
|
|
162
|
-
span,
|
|
163
|
-
resume: run_board_span.resume_of(read, ended, launch),
|
|
164
|
-
transcript: read.kind === 'carried' ? read.carry.owner_transcript : undefined,
|
|
165
|
-
roots: run_board_roots.roots_of(repository, read, same_process),
|
|
166
|
-
is_session_active: run_board_roots.session_is_active(repository, read, same_process),
|
|
167
|
-
carry: read.kind === 'carried' ? read.carry : undefined,
|
|
168
|
-
is_stranded: run_stranded_detect.is_stranded_at(repository, stranded_ports),
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// A single run this checkout holds is the one drawn (`run-board-single.ts`), before the ended run and,
|
|
173
|
-
// outside a lane, before the carried one; it names no process.
|
|
174
|
-
async function span_here(repository: string, table: TableRead | undefined): Promise<SpanHere> {
|
|
175
|
-
const read = run_carry.read_carry(run_carry.carry_path(repository))
|
|
176
|
-
const single = await run_board_single.span_here(read.kind !== 'none')
|
|
177
|
-
|
|
178
|
-
return single === undefined
|
|
179
|
-
? await recorded_span_here(repository, table, read)
|
|
180
|
-
: { ...NO_SPAN, span: single }
|
|
181
|
-
}
|
|
182
|
-
|
|
183
125
|
// Where each session of the run writes what it does: a lane's child to its dispatch log, in the lane's
|
|
184
126
|
// own checkout; the parent and a judgment session to theirs, in this one.
|
|
185
127
|
function sources_of(
|
|
@@ -327,11 +269,16 @@ async function span_events_here(
|
|
|
327
269
|
}
|
|
328
270
|
}
|
|
329
271
|
|
|
272
|
+
type RootFields = Pick<LocalRead, 'root' | 'ended_roots'>
|
|
273
|
+
|
|
274
|
+
// The span's own fields, with the root checkout's single runs beside it.
|
|
330
275
|
function span_fields(
|
|
331
276
|
span: BoardSpan,
|
|
332
|
-
|
|
277
|
+
root: RootFields,
|
|
278
|
+
): Pick<LocalRead, 'started_ms' | 'ended_ms' | 'scheduler_provider' | 'run_name'> & RootFields {
|
|
333
279
|
const run_name = run_board_single.name_of(span.invocation)
|
|
334
280
|
const times = {
|
|
281
|
+
...root,
|
|
335
282
|
started_ms: span.started_ms,
|
|
336
283
|
ended_ms: span.ended_ms,
|
|
337
284
|
...(run_name !== undefined && { run_name }),
|
|
@@ -342,12 +289,25 @@ function span_fields(
|
|
|
342
289
|
return { ...times, scheduler_provider: span.scheduler_provider === 'openai' ? 'codex' : 'claude' }
|
|
343
290
|
}
|
|
344
291
|
|
|
292
|
+
// The root checkout's single run beside the span, and its runs a merge ended inside it.
|
|
293
|
+
async function roots_here(
|
|
294
|
+
span: BoardSpan,
|
|
295
|
+
root: BoardSpan | undefined,
|
|
296
|
+
events: ReadonlyArray<RunEvent>,
|
|
297
|
+
): Promise<RootFields> {
|
|
298
|
+
const ended_roots = await run_board_single.ended_here(span)
|
|
299
|
+
|
|
300
|
+
return root === undefined
|
|
301
|
+
? { ended_roots }
|
|
302
|
+
: { root: run_board_single.root_of(root, events), ended_roots }
|
|
303
|
+
}
|
|
304
|
+
|
|
345
305
|
// `undefined` when no run has started here. The lane count reads `table`, the redraw's process
|
|
346
306
|
// snapshot, so it agrees with the usage columns.
|
|
347
307
|
async function read_local(table?: TableRead): Promise<LocalRead | undefined> {
|
|
348
308
|
const repository = await run_carry.repository_directory()
|
|
349
|
-
const { span, resume, transcript, roots, carry, is_stranded, is_session_active } =
|
|
350
|
-
|
|
309
|
+
const { span, root, resume, transcript, roots, carry, is_stranded, is_session_active } =
|
|
310
|
+
await run_board_span_read.span_here(repository, table)
|
|
351
311
|
|
|
352
312
|
if (repository === undefined || span === undefined) return undefined
|
|
353
313
|
|
|
@@ -356,7 +316,7 @@ async function read_local(table?: TableRead): Promise<LocalRead | undefined> {
|
|
|
356
316
|
const lane_read = await lanes_here(lanes, repository, events, span.started_ms)
|
|
357
317
|
|
|
358
318
|
return {
|
|
359
|
-
...span_fields(span),
|
|
319
|
+
...span_fields(span, await roots_here(span, root, events)),
|
|
360
320
|
scope: run_board_scope.scope_of(span.invocation, carry?.added),
|
|
361
321
|
...(await span_events_here(events, span, table, carry)),
|
|
362
322
|
throughput: run_board_throughput.rows_of(events, Date.now()),
|
|
@@ -5,6 +5,7 @@ import { epic_solo, type Labelled, type SoloQueue } from '#scripts/epic/epic-sol
|
|
|
5
5
|
import { epic_triage } from '#scripts/epic/epic-triage'
|
|
6
6
|
import { has_label_name, has_parked_label, IN_PROGRESS_LABEL } from '#scripts/issue/issue-labels'
|
|
7
7
|
import { issue_not_before } from '#scripts/issue/issue-not-before'
|
|
8
|
+
import { issue_observation_gate } from '#scripts/issue/issue-observation-gate'
|
|
8
9
|
import { issue_sample_gate } from '#scripts/issue/issue-sample-gate'
|
|
9
10
|
import { lane_state } from '#scripts/lane/lane-state'
|
|
10
11
|
import type { RunCarry } from '#scripts/run/carry/run-carry'
|
|
@@ -266,6 +267,17 @@ function offer_wait(child: EpicChild, read: ReasonRead, pool: Pool): RowReason |
|
|
|
266
267
|
// waits on; `📅 4313` while that pull request has not merged or its merge is unread — the cited issue
|
|
267
268
|
// for a condition waiting on the pull request that closes it.
|
|
268
269
|
function sample_wait_of(child: EpicChild): RowReason | undefined {
|
|
270
|
+
const observation = issue_observation_gate.wait_of(child.body)
|
|
271
|
+
|
|
272
|
+
if (observation !== undefined) {
|
|
273
|
+
return {
|
|
274
|
+
icon: WAIT_ICONS.not_before,
|
|
275
|
+
value: 'evidence',
|
|
276
|
+
tail: observation.reason,
|
|
277
|
+
evidence_url: observation.url,
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
269
281
|
const wait = issue_sample_gate.wait_of(child.body)
|
|
270
282
|
|
|
271
283
|
if (wait === undefined) return undefined
|
|
@@ -20,7 +20,8 @@ import { run_board_usage_text, type CellLimits } from './run-board-usage-text'
|
|
|
20
20
|
const { HEADER_ICONS } = run_board_labels
|
|
21
21
|
const { cell_widths, cells_of, lane_limits } = run_board_usage_text
|
|
22
22
|
const { columns_rule } = run_board_render_section
|
|
23
|
-
const { ELAPSED_START, LANES_LABEL, USAGE_START, column_offset, lane_label } =
|
|
23
|
+
const { ELAPSED_START, LANES_LABEL, USAGE_START, column_offset, lane_label, root_label } =
|
|
24
|
+
run_board_render_lead
|
|
24
25
|
const { width_of } = run_board_fit
|
|
25
26
|
const { columns_cut } = run_board_render_title
|
|
26
27
|
const { reasons_of } = run_board_seat
|
|
@@ -150,20 +151,17 @@ function seat_lines(header: BoardHeader, columns: number | undefined): Array<Pla
|
|
|
150
151
|
}))
|
|
151
152
|
}
|
|
152
153
|
|
|
153
|
-
//
|
|
154
|
-
// cells where they are drawn
|
|
155
|
-
function
|
|
156
|
-
|
|
154
|
+
// A section of lane rows under `label`'s rule, ⏰ over the run's time and the usage labels over their
|
|
155
|
+
// cells where they are drawn; none without a line.
|
|
156
|
+
function rows_section(
|
|
157
|
+
lines: Array<PlanLine>,
|
|
158
|
+
label: string,
|
|
157
159
|
cells: LaneCells | undefined,
|
|
158
160
|
header: BoardHeader,
|
|
159
|
-
columns?: number,
|
|
160
161
|
): Array<PlanSection> {
|
|
161
|
-
const lines = [...rows, ...seat_lines(header, columns)]
|
|
162
|
-
|
|
163
162
|
if (lines.length === 0) return []
|
|
164
163
|
|
|
165
164
|
const offset = column_offset(header)
|
|
166
|
-
const label = lane_label(header)
|
|
167
165
|
const elapsed = { label: HEADER_ICONS.elapsed, start: ELAPSED_START + offset }
|
|
168
166
|
const usage = cells === undefined ? [] : label_columns(USAGE_START + offset, cells.gauge)
|
|
169
167
|
const rule = columns_rule(label, [elapsed, ...usage])
|
|
@@ -171,6 +169,25 @@ function lanes_section(
|
|
|
171
169
|
return [{ head: ['', rule], lines, label, key: 'lanes' }]
|
|
172
170
|
}
|
|
173
171
|
|
|
172
|
+
// The root checkout's single run's row, the first of `rows` (`run_board_layout.lane_rows`), under its
|
|
173
|
+
// own `🏠` rule above the run's lanes (joshuafolkken/kit#7524); then the run's own rows under the lanes
|
|
174
|
+
// rule and the empty seats' reasons.
|
|
175
|
+
function lanes_section(
|
|
176
|
+
rows: ReadonlyArray<PlanLine>,
|
|
177
|
+
cells: LaneCells | undefined,
|
|
178
|
+
header: BoardHeader,
|
|
179
|
+
columns?: number,
|
|
180
|
+
): Array<PlanSection> {
|
|
181
|
+
const root = header.layout?.root
|
|
182
|
+
const root_count = root === undefined ? 0 : 1
|
|
183
|
+
const lanes = [...rows.slice(root_count), ...seat_lines(header, columns)]
|
|
184
|
+
|
|
185
|
+
return [
|
|
186
|
+
...rows_section(rows.slice(0, root_count), root_label(root?.name ?? ''), cells, header),
|
|
187
|
+
...rows_section(lanes, lane_label(header), cells, header),
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
|
|
174
191
|
const run_board_render_lanes = {
|
|
175
192
|
COLUMN_LABELS,
|
|
176
193
|
LANES_LABEL,
|
|
@@ -33,10 +33,18 @@ const ELAPSED_START =
|
|
|
33
33
|
// The column a lane row's usage cells start at, after the lead and one blank; the processes rows' too.
|
|
34
34
|
const USAGE_START = ELAPSED_START + TIME_WIDTH + SPACE
|
|
35
35
|
const LANES_LABEL = `${run_board_labels.LANES_ICON} lanes`
|
|
36
|
+
// A single run's rule (joshuafolkken/kit#7523): it runs in the root checkout, not in a lane, so its
|
|
37
|
+
// row stands under the command it runs rather than under the lanes.
|
|
38
|
+
const SINGLE_RUN_ICON = '🏠'
|
|
36
39
|
// Two leading rules, a space, and the separator before the first column.
|
|
37
40
|
const RULE_ROOM = 6
|
|
38
41
|
|
|
42
|
+
function root_label(run_name: string): string {
|
|
43
|
+
return `${SINGLE_RUN_ICON} ${run_name}`
|
|
44
|
+
}
|
|
45
|
+
|
|
39
46
|
function lane_label(header: BoardHeader): string {
|
|
47
|
+
if (header.run_name !== undefined) return root_label(header.run_name)
|
|
40
48
|
if (header.occupied_count === undefined) return LANES_LABEL
|
|
41
49
|
|
|
42
50
|
return `${LANES_LABEL} ${String(header.occupied_count)}/${String(header.lane_limit ?? '—')}`
|
|
@@ -102,6 +110,7 @@ const run_board_render_lead = {
|
|
|
102
110
|
indent_of,
|
|
103
111
|
lead_of,
|
|
104
112
|
lane_label,
|
|
113
|
+
root_label,
|
|
105
114
|
running_fresh,
|
|
106
115
|
}
|
|
107
116
|
|