@joshuafolkken/kit 1.3101.0 → 1.3125.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/split-assessment.md +2 -3
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +20 -20
- package/dist/commands/auto-ok-judge-cli.js +30 -30
- package/dist/commands/auto-ok-main.js +64 -63
- package/dist/commands/backlog-budget-main.js +5 -5
- package/dist/commands/backlog-drive-cli.js +220 -203
- package/dist/commands/backlog-next-main.js +157 -101
- package/dist/commands/backlog-offer-main.js +168 -120
- package/dist/commands/backlog-plan-cli.js +159 -110
- package/dist/commands/backlog-triage-cli.js +171 -115
- package/dist/commands/backlogrun-cli.js +255 -245
- package/dist/commands/behavior-cli.js +16 -15
- package/dist/commands/bytes-command.js +41 -41
- package/dist/commands/cases-cli.js +3 -3
- package/dist/commands/check-commit-message-main.js +3 -3
- package/dist/commands/check-related.js +93 -93
- package/dist/commands/chunk-23PU6FAC.js +140 -0
- package/dist/commands/chunk-23TWJOAI.js +172 -0
- package/dist/commands/chunk-24MXEDSJ.js +81 -0
- package/dist/commands/chunk-25LVQDOF.js +183 -0
- package/dist/commands/chunk-25LYH5QR.js +85 -0
- package/dist/commands/chunk-2AH73ZTW.js +84 -0
- package/dist/commands/chunk-2BNLPPP4.js +42 -0
- package/dist/commands/chunk-2FD3N3OX.js +119 -0
- package/dist/commands/chunk-2GJ3WJVT.js +117 -0
- package/dist/commands/chunk-2JGOKYJQ.js +426 -0
- package/dist/commands/chunk-2MDLCJZ4.js +389 -0
- package/dist/commands/chunk-2ROVUERM.js +99 -0
- package/dist/commands/chunk-2TI22UNK.js +137 -0
- package/dist/commands/chunk-2TUA6V4F.js +191 -0
- package/dist/commands/chunk-2UXSF5YF.js +49 -0
- package/dist/commands/chunk-2ZDVX64H.js +66 -0
- package/dist/commands/chunk-33N7SBIU.js +18 -0
- package/dist/commands/chunk-373P5MM2.js +353 -0
- package/dist/commands/chunk-37RULO76.js +220 -0
- package/dist/commands/chunk-3EYRE3GI.js +173 -0
- package/dist/commands/chunk-3IXIYDC3.js +179 -0
- package/dist/commands/chunk-3OFJCJN4.js +30 -0
- package/dist/commands/chunk-3OSUM6DM.js +53 -0
- package/dist/commands/chunk-3PGB2RKZ.js +333 -0
- package/dist/commands/chunk-3QNEEG5O.js +117 -0
- package/dist/commands/chunk-3TN76RWK.js +156 -0
- package/dist/commands/chunk-3W2TJZMD.js +77 -0
- package/dist/commands/chunk-3Y32BYLU.js +1244 -0
- package/dist/commands/chunk-3ZQOMI5A.js +245 -0
- package/dist/commands/chunk-42W6WARP.js +263 -0
- package/dist/commands/chunk-44UIURBQ.js +130 -0
- package/dist/commands/chunk-45RCSJGE.js +321 -0
- package/dist/commands/chunk-4DNAAFF4.js +159 -0
- package/dist/commands/chunk-4E5WBWG7.js +70 -0
- package/dist/commands/chunk-4MRBLCDB.js +96 -0
- package/dist/commands/chunk-4NIHTEGD.js +332 -0
- package/dist/commands/chunk-4ODXKJJT.js +566 -0
- package/dist/commands/chunk-4P5F7CLB.js +47 -0
- package/dist/commands/chunk-52CGT2IN.js +119 -0
- package/dist/commands/chunk-54ZLBLLE.js +74 -0
- package/dist/commands/chunk-56344LLX.js +114 -0
- package/dist/commands/chunk-56GR7L5L.js +36 -0
- package/dist/commands/chunk-5ADJDGFT.js +126 -0
- package/dist/commands/chunk-5CMXAHCL.js +161 -0
- package/dist/commands/chunk-5DMFMP4V.js +121 -0
- package/dist/commands/chunk-5I3M4B3H.js +185 -0
- package/dist/commands/chunk-5JIMCETI.js +104 -0
- package/dist/commands/chunk-5KEESWMC.js +138 -0
- package/dist/commands/chunk-5LNRVX2R.js +214 -0
- package/dist/commands/chunk-5PLKHUQD.js +492 -0
- package/dist/commands/chunk-5QICRFVL.js +167 -0
- package/dist/commands/chunk-5RCBXYYD.js +101 -0
- package/dist/commands/chunk-5SOU366I.js +252 -0
- package/dist/commands/chunk-5VUHAXPI.js +77 -0
- package/dist/commands/chunk-5XJUUZ6U.js +773 -0
- package/dist/commands/chunk-5ZMVRU3U.js +46 -0
- package/dist/commands/chunk-5ZWU2B7T.js +507 -0
- package/dist/commands/chunk-5ZXR36N7.js +67 -0
- package/dist/commands/chunk-623LFKFM.js +60 -0
- package/dist/commands/chunk-64II6P7B.js +81 -0
- package/dist/commands/chunk-6DJT64DN.js +342 -0
- package/dist/commands/chunk-6HJ5CJSJ.js +121 -0
- package/dist/commands/chunk-6LGMEJRN.js +67 -0
- package/dist/commands/chunk-6LHMR3CR.js +126 -0
- package/dist/commands/chunk-6NXTP5JT.js +114 -0
- package/dist/commands/chunk-6OKVY2E3.js +128 -0
- package/dist/commands/chunk-6OUQZC6V.js +1153 -0
- package/dist/commands/chunk-6PL2AK3C.js +204 -0
- package/dist/commands/chunk-6PLIQCBG.js +326 -0
- package/dist/commands/chunk-6QVDEMGB.js +118 -0
- package/dist/commands/chunk-6T67GZMJ.js +60 -0
- package/dist/commands/chunk-6TC2ZMNB.js +64 -0
- package/dist/commands/chunk-6TOHJZ4J.js +224 -0
- package/dist/commands/chunk-6TOWGIY2.js +127 -0
- package/dist/commands/chunk-6TPGDOOD.js +48 -0
- package/dist/commands/chunk-6XXEW3NQ.js +159 -0
- package/dist/commands/chunk-72HZ2APA.js +229 -0
- package/dist/commands/chunk-72LAYP5S.js +46 -0
- package/dist/commands/chunk-72Y7PXUJ.js +83 -0
- package/dist/commands/chunk-77R6JEET.js +128 -0
- package/dist/commands/chunk-7GICNM73.js +137 -0
- package/dist/commands/chunk-7OZT74HR.js +78 -0
- package/dist/commands/chunk-7QAYL2RH.js +555 -0
- package/dist/commands/chunk-7T7GIZYW.js +92 -0
- package/dist/commands/chunk-7VXSMXVE.js +79 -0
- package/dist/commands/chunk-7WTVADW4.js +33 -0
- package/dist/commands/chunk-7YXCOW3X.js +114 -0
- package/dist/commands/chunk-7YYI3OX6.js +104 -0
- package/dist/commands/chunk-7Z25RNTV.js +516 -0
- package/dist/commands/chunk-A73RWSHJ.js +126 -0
- package/dist/commands/chunk-AAIZ2H66.js +58 -0
- package/dist/commands/chunk-AFGEGGIF.js +17 -0
- package/dist/commands/chunk-AJTXSSRD.js +29 -0
- package/dist/commands/chunk-AKM3BHVJ.js +48 -0
- package/dist/commands/chunk-AL2H63BP.js +48 -0
- package/dist/commands/chunk-AMQNHTDN.js +60 -0
- package/dist/commands/chunk-AQGVQMWF.js +168 -0
- package/dist/commands/chunk-B4OZF4XL.js +89 -0
- package/dist/commands/chunk-B4W77FVS.js +704 -0
- package/dist/commands/chunk-B4YBGU2C.js +580 -0
- package/dist/commands/chunk-B636LL4X.js +239 -0
- package/dist/commands/chunk-B762PNT6.js +66 -0
- package/dist/commands/chunk-B7UY7EOD.js +72 -0
- package/dist/commands/chunk-BAJABWKW.js +43 -0
- package/dist/commands/chunk-BAQRD3TC.js +105 -0
- package/dist/commands/chunk-BBPESBU3.js +85 -0
- package/dist/commands/chunk-BGKUZJT7.js +25 -0
- package/dist/commands/chunk-BIVM6OTE.js +19 -0
- package/dist/commands/chunk-BJQDQAQU.js +167 -0
- package/dist/commands/chunk-BU3WIUDD.js +230 -0
- package/dist/commands/chunk-C2WXQPF3.js +34 -0
- package/dist/commands/chunk-C3V6H6TW.js +183 -0
- package/dist/commands/chunk-C3Y42PHX.js +229 -0
- package/dist/commands/chunk-C7CDGSMW.js +112 -0
- package/dist/commands/chunk-C7JEMYPV.js +102 -0
- package/dist/commands/chunk-CCAVK7HN.js +4221 -0
- package/dist/commands/chunk-CFLCZ2WO.js +63 -0
- package/dist/commands/chunk-CGA2K3XV.js +137 -0
- package/dist/commands/chunk-CHQQ3VTL.js +184 -0
- package/dist/commands/chunk-CKD2G35M.js +86 -0
- package/dist/commands/chunk-CMTTDS7F.js +77 -0
- package/dist/commands/chunk-CRCQOA4Z.js +77 -0
- package/dist/commands/chunk-CT773QBI.js +161 -0
- package/dist/commands/chunk-CVZXDKCV.js +525 -0
- package/dist/commands/chunk-CXFN5W7O.js +116 -0
- package/dist/commands/chunk-CXVNQ7DS.js +88 -0
- package/dist/commands/chunk-CYYJLRIW.js +85 -0
- package/dist/commands/chunk-D6UXGFJ7.js +44 -0
- package/dist/commands/chunk-DIXUXHZ2.js +207 -0
- package/dist/commands/chunk-DM6I4PYD.js +110 -0
- package/dist/commands/chunk-DOM6HJL3.js +769 -0
- package/dist/commands/chunk-DVIOBFU7.js +210 -0
- package/dist/commands/chunk-E5CGA7FC.js +114 -0
- package/dist/commands/chunk-EG44IWNI.js +88 -0
- package/dist/commands/chunk-EHVFQQO6.js +45 -0
- package/dist/commands/chunk-EJG5ZJKD.js +1629 -0
- package/dist/commands/chunk-EKKUHXFD.js +241 -0
- package/dist/commands/chunk-ELCYNBZO.js +430 -0
- package/dist/commands/chunk-ELZQL6M3.js +100 -0
- package/dist/commands/chunk-EOPRRSCY.js +1891 -0
- package/dist/commands/chunk-EQTDNFPF.js +123 -0
- package/dist/commands/chunk-ERAABGU7.js +93 -0
- package/dist/commands/chunk-ESMIFITZ.js +715 -0
- package/dist/commands/chunk-EWBEYTVS.js +50 -0
- package/dist/commands/chunk-EYR2X5MZ.js +53 -0
- package/dist/commands/chunk-F546BPG3.js +74 -0
- package/dist/commands/chunk-F7SAHNGR.js +34 -0
- package/dist/commands/chunk-FBWNL3UA.js +209 -0
- package/dist/commands/chunk-FBZD6LOK.js +225 -0
- package/dist/commands/chunk-FDSSBZC7.js +75 -0
- package/dist/commands/chunk-FFLZPLWC.js +59 -0
- package/dist/commands/chunk-FHLV5BII.js +170 -0
- package/dist/commands/chunk-FITTCICF.js +247 -0
- package/dist/commands/chunk-FJ622XHY.js +179 -0
- package/dist/commands/chunk-FQPL6T66.js +80 -0
- package/dist/commands/chunk-FSM3WPTR.js +73 -0
- package/dist/commands/chunk-FSZA4DME.js +268 -0
- package/dist/commands/chunk-FVPRBMHE.js +38 -0
- package/dist/commands/chunk-FZ62KJXP.js +75 -0
- package/dist/commands/chunk-FZNYKSQS.js +335 -0
- package/dist/commands/chunk-FZYFGHRY.js +72 -0
- package/dist/commands/chunk-G4UVY3TO.js +90 -0
- package/dist/commands/chunk-G6H2TOAA.js +18 -0
- package/dist/commands/chunk-GC73YEU7.js +119 -0
- package/dist/commands/chunk-GHVL6IJA.js +653 -0
- package/dist/commands/chunk-GIGXVOKR.js +208 -0
- package/dist/commands/chunk-GL2DZXYD.js +103 -0
- package/dist/commands/chunk-GL3VOBWB.js +170 -0
- package/dist/commands/chunk-GLXOLYZE.js +64 -0
- package/dist/commands/chunk-GNRTFRSL.js +41 -0
- package/dist/commands/chunk-GX5XHW2F.js +132 -0
- package/dist/commands/chunk-GXXWRH6F.js +98 -0
- package/dist/commands/chunk-GY6O2WYG.js +120 -0
- package/dist/commands/chunk-H4IDKP55.js +37 -0
- package/dist/commands/chunk-H5WWD3TX.js +719 -0
- package/dist/commands/chunk-H6MHUR2Y.js +114 -0
- package/dist/commands/chunk-H6TBBVC2.js +73 -0
- package/dist/commands/chunk-HF52YP56.js +178 -0
- package/dist/commands/chunk-HKHGX7TW.js +173 -0
- package/dist/commands/chunk-HLQVLQEB.js +177 -0
- package/dist/commands/chunk-HN3EGYAI.js +169 -0
- package/dist/commands/chunk-HNZLKGKJ.js +43 -0
- package/dist/commands/chunk-HQ5U6OZR.js +315 -0
- package/dist/commands/chunk-HUCOQ4PI.js +161 -0
- package/dist/commands/chunk-HXAVYXUS.js +307 -0
- package/dist/commands/chunk-HXM26K3O.js +67 -0
- package/dist/commands/chunk-HYQ5Q6AE.js +304 -0
- package/dist/commands/chunk-HYVAEK6M.js +155 -0
- package/dist/commands/chunk-I2HHXZVG.js +46 -0
- package/dist/commands/chunk-I2RBOH4F.js +469 -0
- package/dist/commands/chunk-I36PDO6I.js +258 -0
- package/dist/commands/chunk-IAA73DWD.js +212 -0
- package/dist/commands/chunk-IBOCPSPK.js +103 -0
- package/dist/commands/chunk-IC5XLIE2.js +68 -0
- package/dist/commands/chunk-ICKP5W3Q.js +41 -0
- package/dist/commands/chunk-IHQHHNYR.js +1314 -0
- package/dist/commands/chunk-ILQU26IF.js +408 -0
- package/dist/commands/chunk-INOXSDDC.js +7712 -0
- package/dist/commands/chunk-IQMMYORJ.js +554 -0
- package/dist/commands/chunk-ISNZX75X.js +168 -0
- package/dist/commands/chunk-ISY5TFYT.js +80 -0
- package/dist/commands/chunk-IT2O5MOW.js +37 -0
- package/dist/commands/chunk-IV6ETHVB.js +155 -0
- package/dist/commands/chunk-IZPMBGAI.js +202 -0
- package/dist/commands/chunk-J56TYLAL.js +77 -0
- package/dist/commands/chunk-JGC4B5JR.js +94 -0
- package/dist/commands/chunk-JKPYLZ6T.js +198 -0
- package/dist/commands/chunk-JM3EJYA3.js +65 -0
- package/dist/commands/chunk-JN7IG7HT.js +426 -0
- package/dist/commands/chunk-JSJS3OT7.js +679 -0
- package/dist/commands/chunk-JUQN3OXG.js +351 -0
- package/dist/commands/chunk-JUXKVN77.js +100 -0
- package/dist/commands/chunk-JZZURWZH.js +33 -0
- package/dist/commands/chunk-K2FXMBIU.js +95 -0
- package/dist/commands/chunk-K2VIKG5M.js +34 -0
- package/dist/commands/chunk-K3LHBJDY.js +1223 -0
- package/dist/commands/chunk-K3TPIV56.js +480 -0
- package/dist/commands/chunk-K6QAQSCJ.js +98 -0
- package/dist/commands/chunk-KJ2ZIDQP.js +92 -0
- package/dist/commands/chunk-KMED24C4.js +459 -0
- package/dist/commands/chunk-KMVJKK43.js +88 -0
- package/dist/commands/chunk-KXZR7UAE.js +302 -0
- package/dist/commands/chunk-L7GYJHDX.js +223 -0
- package/dist/commands/chunk-LAQZJX5C.js +49 -0
- package/dist/commands/chunk-LAUKNN57.js +530 -0
- package/dist/commands/chunk-LDYDRXOY.js +88 -0
- package/dist/commands/chunk-LZNACCHR.js +174 -0
- package/dist/commands/chunk-MEJ2CQK2.js +102 -0
- package/dist/commands/chunk-MHTKSRAH.js +278 -0
- package/dist/commands/chunk-MI4NHZWO.js +65 -0
- package/dist/commands/chunk-MIDWHXJZ.js +46 -0
- package/dist/commands/chunk-MIZLGSHI.js +419 -0
- package/dist/commands/chunk-MKIHWQ65.js +218 -0
- package/dist/commands/chunk-MOAPWO34.js +292 -0
- package/dist/commands/chunk-MOLXF5KO.js +51 -0
- package/dist/commands/chunk-MQNKIKJ6.js +288 -0
- package/dist/commands/chunk-MT6TRLFD.js +91 -0
- package/dist/commands/chunk-MTPFNRYF.js +213 -0
- package/dist/commands/chunk-N2EE7MMH.js +305 -0
- package/dist/commands/chunk-N5FT5LYP.js +272 -0
- package/dist/commands/chunk-N5YPDLZM.js +114 -0
- package/dist/commands/chunk-NASUAXRJ.js +45 -0
- package/dist/commands/chunk-NAZ753DE.js +540 -0
- package/dist/commands/chunk-NDPR5U4U.js +897 -0
- package/dist/commands/chunk-NFRDCRDI.js +285 -0
- package/dist/commands/chunk-NHXMWRBI.js +16 -0
- package/dist/commands/chunk-NMG65AFQ.js +20 -0
- package/dist/commands/chunk-NQ4D2XZY.js +213 -0
- package/dist/commands/chunk-NQFQVSHV.js +56 -0
- package/dist/commands/chunk-NR4BD5DD.js +38 -0
- package/dist/commands/chunk-NV6Y4U37.js +338 -0
- package/dist/commands/chunk-NWMY2QJJ.js +133 -0
- package/dist/commands/chunk-NXWVWI4U.js +1062 -0
- package/dist/commands/chunk-NZ2UKIY5.js +445 -0
- package/dist/commands/chunk-OB3WF3DW.js +24 -0
- package/dist/commands/chunk-OBMXXG5D.js +181 -0
- package/dist/commands/chunk-OHZ6GLEJ.js +74 -0
- package/dist/commands/chunk-OJO5AADO.js +322 -0
- package/dist/commands/chunk-ORFXTHXU.js +108 -0
- package/dist/commands/chunk-OTCWA4QE.js +910 -0
- package/dist/commands/chunk-OYGNL5RO.js +290 -0
- package/dist/commands/chunk-OYZP5ANC.js +48 -0
- package/dist/commands/chunk-P35FFJXA.js +73 -0
- package/dist/commands/chunk-P3UODIMZ.js +272 -0
- package/dist/commands/chunk-PF2HZHJG.js +94 -0
- package/dist/commands/chunk-PIAVFPYB.js +52 -0
- package/dist/commands/chunk-PLE3MBGO.js +85 -0
- package/dist/commands/chunk-PM3YCN46.js +39 -0
- package/dist/commands/chunk-PMC2N6JK.js +91 -0
- package/dist/commands/chunk-PTJ6X3QK.js +330 -0
- package/dist/commands/chunk-PTRK3NBC.js +211 -0
- package/dist/commands/chunk-Q2VV3WT7.js +120 -0
- package/dist/commands/chunk-Q67SPFHV.js +44 -0
- package/dist/commands/chunk-Q7GMTDMG.js +44 -0
- package/dist/commands/chunk-QA44M56F.js +333 -0
- package/dist/commands/chunk-QDUWBRQC.js +61 -0
- package/dist/commands/chunk-QGTLTPXT.js +58 -0
- package/dist/commands/chunk-QHWQJCV5.js +250 -0
- package/dist/commands/chunk-QI72D6NY.js +54 -0
- package/dist/commands/chunk-QN3FWRDW.js +122 -0
- package/dist/commands/chunk-QQ2JKDSV.js +144 -0
- package/dist/commands/chunk-QRY55H5U.js +48 -0
- package/dist/commands/chunk-QUO5B2JH.js +260 -0
- package/dist/commands/chunk-QY7RITZQ.js +99 -0
- package/dist/commands/chunk-R4GZWGIN.js +160 -0
- package/dist/commands/chunk-RETTGONB.js +84 -0
- package/dist/commands/chunk-RH4LJ4D6.js +69 -0
- package/dist/commands/chunk-RKCENL5P.js +271 -0
- package/dist/commands/chunk-RLWK2CP3.js +82 -0
- package/dist/commands/chunk-RMDQQKXD.js +179 -0
- package/dist/commands/chunk-RRNC3QEB.js +449 -0
- package/dist/commands/chunk-RUCV7UYK.js +341 -0
- package/dist/commands/chunk-RVFE7JDZ.js +126 -0
- package/dist/commands/chunk-RVKFX3FD.js +70 -0
- package/dist/commands/chunk-RW7OILP7.js +71 -0
- package/dist/commands/chunk-S23MUFND.js +122 -0
- package/dist/commands/chunk-S3DRNZRT.js +74 -0
- package/dist/commands/chunk-SB3R6E3R.js +49 -0
- package/dist/commands/chunk-SCCUBRDO.js +237 -0
- package/dist/commands/chunk-SIPHEZXP.js +72 -0
- package/dist/commands/chunk-SK3GDQOI.js +20 -0
- package/dist/commands/chunk-SNXSRNFI.js +1052 -0
- package/dist/commands/chunk-SWHN7TNT.js +59 -0
- package/dist/commands/chunk-T5D3BW3D.js +85 -0
- package/dist/commands/chunk-T76CS2AQ.js +307 -0
- package/dist/commands/chunk-TBIX42IT.js +144 -0
- package/dist/commands/chunk-TGCIRQG5.js +109 -0
- package/dist/commands/chunk-TJAGKUS2.js +84 -0
- package/dist/commands/chunk-TKRUZZXG.js +103 -0
- package/dist/commands/chunk-TLCFZAL4.js +63 -0
- package/dist/commands/chunk-TNPFVNKX.js +585 -0
- package/dist/commands/chunk-TNU3IEAP.js +151 -0
- package/dist/commands/chunk-TQ6M5ICK.js +49 -0
- package/dist/commands/chunk-TR6NTNWR.js +128 -0
- package/dist/commands/chunk-TSS2RKBC.js +271 -0
- package/dist/commands/chunk-TWI7UTVE.js +799 -0
- package/dist/commands/chunk-TXXEXJAV.js +390 -0
- package/dist/commands/chunk-U6SMBYTN.js +472 -0
- package/dist/commands/chunk-U7JJGYYY.js +30 -0
- package/dist/commands/chunk-UACWDTJ5.js +106 -0
- package/dist/commands/chunk-UBWYGOEC.js +86 -0
- package/dist/commands/chunk-UC5ZOPKX.js +3983 -0
- package/dist/commands/chunk-UJFEMO6X.js +153 -0
- package/dist/commands/chunk-ULL3OIAG.js +59 -0
- package/dist/commands/chunk-UN6BPKQ5.js +922 -0
- package/dist/commands/chunk-UW3KES66.js +32 -0
- package/dist/commands/chunk-UWLANGIR.js +817 -0
- package/dist/commands/chunk-UYHREBT7.js +99 -0
- package/dist/commands/chunk-V2KHY4UQ.js +393 -0
- package/dist/commands/chunk-V36OV7AP.js +191 -0
- package/dist/commands/chunk-V37AWEYE.js +62 -0
- package/dist/commands/chunk-V4D4YV4B.js +110 -0
- package/dist/commands/chunk-V56NLG7I.js +217 -0
- package/dist/commands/chunk-V6WHDQAZ.js +74 -0
- package/dist/commands/chunk-V6WWW6HX.js +140 -0
- package/dist/commands/chunk-V7QOC5NV.js +51 -0
- package/dist/commands/chunk-VA4M733Q.js +127 -0
- package/dist/commands/chunk-VBZ47BVH.js +64 -0
- package/dist/commands/chunk-VD4ELMDA.js +158 -0
- package/dist/commands/chunk-VFW6XZH7.js +469 -0
- package/dist/commands/chunk-VHSGVCRM.js +244 -0
- package/dist/commands/chunk-VJNE7W7O.js +1153 -0
- package/dist/commands/chunk-VLDPUHGE.js +134 -0
- package/dist/commands/chunk-VMMNYTET.js +61 -0
- package/dist/commands/chunk-VO2GSW5P.js +99 -0
- package/dist/commands/chunk-VP3P7FLJ.js +168 -0
- package/dist/commands/chunk-VRS252GW.js +88 -0
- package/dist/commands/chunk-VWNVKWLV.js +298 -0
- package/dist/commands/chunk-VXWGPQJX.js +140 -0
- package/dist/commands/chunk-W4R6ZBLO.js +197 -0
- package/dist/commands/chunk-WE2UMZXX.js +47 -0
- package/dist/commands/chunk-WEEJU3EH.js +109 -0
- package/dist/commands/chunk-WHXGUOYP.js +48 -0
- package/dist/commands/chunk-WHYYBPIC.js +113 -0
- package/dist/commands/chunk-WKXMY7MW.js +84 -0
- package/dist/commands/chunk-WPSCCUTE.js +119 -0
- package/dist/commands/chunk-WQ3O7IKL.js +289 -0
- package/dist/commands/chunk-WSTNBBR3.js +22 -0
- package/dist/commands/chunk-WX3HQXBK.js +124 -0
- package/dist/commands/chunk-WYAY6CQI.js +541 -0
- package/dist/commands/chunk-XBXY3R4K.js +74 -0
- package/dist/commands/chunk-XDWCF4XH.js +347 -0
- package/dist/commands/chunk-XHLSJPV7.js +69 -0
- package/dist/commands/chunk-XHR7O2DE.js +52 -0
- package/dist/commands/chunk-XIV3UDHV.js +119 -0
- package/dist/commands/chunk-XMNPU3J5.js +469 -0
- package/dist/commands/chunk-XMZJB7JP.js +100 -0
- package/dist/commands/chunk-XO7S2BTY.js +365 -0
- package/dist/commands/chunk-XQDG56LP.js +47 -0
- package/dist/commands/chunk-XSBLCTDI.js +143 -0
- package/dist/commands/chunk-XT3W32DO.js +977 -0
- package/dist/commands/chunk-XUA7QZET.js +1263 -0
- package/dist/commands/chunk-XZQHP4JR.js +145 -0
- package/dist/commands/chunk-YDVFQL3G.js +23 -0
- package/dist/commands/chunk-YFD46GB2.js +45 -0
- package/dist/commands/chunk-YJMOFRL7.js +269 -0
- package/dist/commands/chunk-YPCMBQYP.js +88 -0
- package/dist/commands/chunk-YR5RS4YT.js +38 -0
- package/dist/commands/chunk-YSBLGTDZ.js +339 -0
- package/dist/commands/chunk-YSDBY2G7.js +186 -0
- package/dist/commands/chunk-YSL43R4Y.js +149 -0
- package/dist/commands/chunk-YUAIWKOM.js +132 -0
- package/dist/commands/chunk-YVNYX4UA.js +74 -0
- package/dist/commands/chunk-Z2GZIWAU.js +33 -0
- package/dist/commands/chunk-Z3XNSXQH.js +47 -0
- package/dist/commands/chunk-Z4E7V7YJ.js +18 -0
- package/dist/commands/chunk-Z7C2O5JC.js +299 -0
- package/dist/commands/chunk-Z7R6JWN7.js +1077 -0
- package/dist/commands/chunk-ZB25RO3U.js +208 -0
- package/dist/commands/chunk-ZBRUCKLP.js +133 -0
- package/dist/commands/chunk-ZCWBZOBM.js +61 -0
- package/dist/commands/chunk-ZDP6SKBK.js +246 -0
- package/dist/commands/chunk-ZEVI2ZGI.js +145 -0
- package/dist/commands/chunk-ZF3SZQRJ.js +44 -0
- package/dist/commands/chunk-ZHEUK3ZX.js +16 -0
- package/dist/commands/chunk-ZJ5C6KVM.js +1072 -0
- package/dist/commands/chunk-ZMDHJ6QF.js +42 -0
- package/dist/commands/chunk-ZMS3EFW3.js +1250 -0
- package/dist/commands/chunk-ZMWL7LZM.js +210 -0
- package/dist/commands/chunk-ZNFVJETO.js +263 -0
- package/dist/commands/chunk-ZQEKIMBV.js +82 -0
- package/dist/commands/chunk-ZW6DLYS4.js +646 -0
- package/dist/commands/ci-timing-cli.js +10 -10
- package/dist/commands/code-symbol-cli.js +11 -11
- package/dist/commands/codex-hook-adapter.js +105 -106
- package/dist/commands/command-derive.js +5 -5
- package/dist/commands/cost-audit-main.js +139 -99
- package/dist/commands/cspell-cached.js +38 -37
- package/dist/commands/defect-origin-main.js +32 -32
- package/dist/commands/defect-report-main.js +29 -29
- package/dist/commands/diff-summary-cli.js +3 -3
- package/dist/commands/disposition-cli.js +108 -96
- package/dist/commands/doctor.js +13 -13
- package/dist/commands/document-read-cli.js +35 -35
- package/dist/commands/document-section-main.js +35 -35
- package/dist/commands/dogfood-commit-cli.js +11 -11
- package/dist/commands/effect-audit-cli.js +41 -35
- package/dist/commands/epic-audit-main.js +77 -76
- package/dist/commands/epic-bundle-main.js +167 -111
- package/dist/commands/epic-check.js +29 -29
- package/dist/commands/epic-main.js +170 -117
- package/dist/commands/epic-next-main.js +73 -72
- package/dist/commands/format-edited-cli.js +43 -43
- package/dist/commands/format.js +21 -21
- package/dist/commands/fresh-machine-cli.js +9 -9
- package/dist/commands/gh-usage-cli.js +13 -13
- package/dist/commands/git-followup-workflow.js +130 -130
- package/dist/commands/git-gh-checks-failed-main.js +16 -16
- package/dist/commands/git-workflow.js +47 -47
- package/dist/commands/hook-ledger-cli.js +113 -74
- package/dist/commands/init-main.js +28 -28
- package/dist/commands/inputs.json +2050 -2040
- package/dist/commands/issue-ack-cli.js +17 -17
- package/dist/commands/issue-already-done-cli.js +88 -87
- package/dist/commands/issue-body-cli.js +78 -64
- package/dist/commands/issue-cite-main.js +26 -26
- package/dist/commands/issue-comment-main.js +29 -29
- package/dist/commands/issue-consolidate-cli.js +43 -43
- package/dist/commands/issue-file-main.js +181 -133
- package/dist/commands/issue-fold-existing-cli.js +169 -113
- package/dist/commands/issue-fold-main.js +44 -43
- package/dist/commands/issue-lint-main.js +55 -54
- package/dist/commands/issue-measured-cli.js +91 -90
- package/dist/commands/issue-plan-cli.js +136 -135
- package/dist/commands/issue-premise-unmet-cli.js +91 -90
- package/dist/commands/issue-priority-cli.js +28 -28
- package/dist/commands/issue-read-main.js +30 -30
- package/dist/commands/issue-release-class-cli.js +26 -26
- package/dist/commands/issue-release-main.js +28 -28
- package/dist/commands/issue-scout-main.js +168 -112
- package/dist/commands/issue-spill-main.js +194 -135
- package/dist/commands/issue-state-main.js +28 -28
- package/dist/commands/issue-tick-cli.js +28 -28
- package/dist/commands/josh-completion.js +12 -12
- package/dist/commands/lane-adopt-cli.js +38 -37
- package/dist/commands/lane-breakdown-cli.js +176 -166
- package/dist/commands/lane-cli.js +163 -163
- package/dist/commands/lane-launch-main.js +71 -70
- package/dist/commands/lane-limit-cli.js +162 -106
- package/dist/commands/lane-measure-cli.js +386 -254
- package/dist/commands/lane-pause-cli.js +33 -32
- package/dist/commands/lane-plan-cli.js +134 -133
- package/dist/commands/lane-resolve-cli.js +35 -35
- package/dist/commands/lane-restart-cli.js +157 -157
- package/dist/commands/lane-why-cli.js +131 -102
- package/dist/commands/lane-withdraw-cli.js +66 -65
- package/dist/commands/latest-if-required-cli.js +5 -5
- package/dist/commands/lines-command.js +3 -3
- package/dist/commands/lint-parallel-main.js +47 -46
- package/dist/commands/lint-related.js +86 -86
- package/dist/commands/lint-rule.js +46 -45
- package/dist/commands/lockfile-policy.js +18 -18
- package/dist/commands/main-merge-main.js +12 -12
- package/dist/commands/main-sync-main.js +12 -12
- package/dist/commands/managed-config-scope-cli.js +7 -7
- package/dist/commands/measure-rerun-cli.js +23 -23
- package/dist/commands/metrics-command.js +67 -67
- package/dist/commands/observation-record-cli.js +13 -13
- package/dist/commands/observations-flush-cli.js +41 -41
- package/dist/commands/package-scout-cli.js +52 -52
- package/dist/commands/pin-verify-cli.js +9 -9
- package/dist/commands/plan-consumers-main.js +6 -6
- package/dist/commands/plan-scaffold-cli.js +125 -125
- package/dist/commands/pr-classification-main.js +12 -12
- package/dist/commands/pre-commit-lint.js +14 -15
- package/dist/commands/pre-commit-type-check.js +46 -46
- package/dist/commands/pre-push-unit.js +51 -52
- package/dist/commands/pretool-guard-cli.js +94 -94
- package/dist/commands/prevent-main-commit.js +2 -2
- package/dist/commands/project-profile-cli.js +13 -13
- package/dist/commands/propagate.js +22 -22
- package/dist/commands/prose-stale-cli.js +32 -32
- package/dist/commands/read-set-cli.js +39 -39
- package/dist/commands/refactor-scan-cli.js +5 -5
- package/dist/commands/release-cli.js +95 -43
- package/dist/commands/release-scope-main.js +34 -34
- package/dist/commands/rename-cli.js +39 -38
- package/dist/commands/report-template-cli.js +3 -3
- package/dist/commands/reserved-run.js +10 -10
- package/dist/commands/retrospective-cli.js +141 -102
- package/dist/commands/review-attest-cli.js +19 -19
- package/dist/commands/review-brief-main.js +159 -159
- package/dist/commands/review-findings-cli.js +12 -12
- package/dist/commands/review-pair-cli.js +145 -145
- package/dist/commands/review-record-main.js +145 -145
- package/dist/commands/review-round2-cli.js +66 -65
- package/dist/commands/review-stops-cli.js +35 -34
- package/dist/commands/review-submit-cli.js +159 -159
- package/dist/commands/rule-list.js +59 -59
- package/dist/commands/rule-value-cli.js +129 -93
- package/dist/commands/ruleset-check-cli.js +12 -12
- package/dist/commands/run-add-cli.js +61 -61
- package/dist/commands/run-board-main.js +197 -156
- package/dist/commands/run-carry-cli.js +182 -150
- package/dist/commands/run-chain-cli.js +153 -153
- package/dist/commands/run-cut-cli.js +160 -160
- package/dist/commands/run-ending-cli.js +34 -34
- package/dist/commands/run-entry-cli.js +210 -201
- package/dist/commands/run-event-cli.js +9 -8
- package/dist/commands/run-handoff-cli.js +50 -50
- package/dist/commands/run-handoff-lanes-cli.js +34 -33
- package/dist/commands/run-hold-main.js +87 -86
- package/dist/commands/run-liveness-cli.js +31 -30
- package/dist/commands/run-merge-main.js +171 -139
- package/dist/commands/run-next-cli.js +110 -110
- package/dist/commands/run-park-cli.js +109 -109
- package/dist/commands/run-pause-cli.js +189 -165
- package/dist/commands/run-pickup-cli.js +34 -33
- package/dist/commands/run-prep-main.js +106 -106
- package/dist/commands/run-prime-cli.js +136 -136
- package/dist/commands/run-progress-main.js +174 -127
- package/dist/commands/run-report-cli.js +45 -44
- package/dist/commands/run-review-cli.js +188 -188
- package/dist/commands/run-ship-cli.js +239 -234
- package/dist/commands/run-ship-evidence-cli.js +53 -54
- package/dist/commands/run-ship-lap-DGUAMCPY.js +28 -0
- package/dist/commands/run-ship-wait-main.js +64 -63
- package/dist/commands/run-split-cli.js +183 -156
- package/dist/commands/run-stale-main.js +55 -54
- package/dist/commands/run-status-cli.js +28 -28
- package/dist/commands/run-step-cli.js +192 -190
- package/dist/commands/run-tail-cli.js +9 -9
- package/dist/commands/run-tidy-main.js +53 -52
- package/dist/commands/run-wake-main.js +178 -178
- package/dist/commands/run-watcher-guard-cli.js +51 -50
- package/dist/commands/security-audit-main.js +8 -8
- package/dist/commands/security-audit-provision-main.js +5 -5
- package/dist/commands/selfcheck-cli.js +47 -47
- package/dist/commands/session-language-main.js +51 -51
- package/dist/commands/sonar-hotspots-cli.js +5 -5
- package/dist/commands/sonar-new-code-cli.js +3 -3
- package/dist/commands/split-assess-cli.js +42 -41
- package/dist/commands/split-child-recover-cli.js +28 -28
- package/dist/commands/start.js +53 -53
- package/dist/commands/stash-pop-main.js +3 -3
- package/dist/commands/stash-push-main.js +4 -4
- package/dist/commands/stop-guard.js +183 -159
- package/dist/commands/sync-main.js +18 -18
- package/dist/commands/telegram-test-main.js +20 -20
- package/dist/commands/test-declared.js +15 -15
- package/dist/commands/test-e2e-guard.js +41 -41
- package/dist/commands/test-pinned-main.js +43 -43
- package/dist/commands/test-reach-cli.js +27 -27
- package/dist/commands/test-red-main.js +12 -12
- package/dist/commands/test-related-UHUIUC7X.js +112 -0
- package/dist/commands/test-related-main.js +75 -76
- package/dist/commands/test-unit-guard-main.js +21 -21
- package/dist/commands/time-cli.js +34 -34
- package/dist/commands/time-density-cli.js +13 -12
- package/dist/commands/tree-status-cli.js +4 -4
- package/dist/commands/type-check-command.js +14 -14
- package/dist/commands/ui-routes-cli.js +4 -4
- package/dist/commands/uninstall.js +30 -30
- package/dist/commands/unused-members-LOSERD3C.js +329 -0
- package/dist/commands/unused-members-cli.js +15 -15
- package/dist/commands/upstream-interrupt-main.js +183 -136
- package/dist/commands/verification-gate.js +71 -72
- package/dist/commands/version-check.js +12 -12
- package/dist/hooks/audit-provision.js +4 -4
- package/dist/hooks/chunk-2R62D5UU.js +12 -0
- package/dist/hooks/chunk-3J5M7SXZ.js +1059 -0
- package/dist/hooks/chunk-4UAA2YFC.js +258 -0
- package/dist/hooks/chunk-74D3EJGW.js +5204 -0
- package/dist/hooks/chunk-74FYAI2L.js +43 -0
- package/dist/hooks/chunk-ALY5AW75.js +1953 -0
- package/dist/hooks/chunk-FBDC6KVJ.js +77 -0
- package/dist/hooks/chunk-HKUR6WKR.js +6874 -0
- package/dist/hooks/chunk-NFTDYUN3.js +1915 -0
- package/dist/hooks/chunk-NP6BVTR3.js +9176 -0
- package/dist/hooks/chunk-OOEG63LD.js +321 -0
- package/dist/hooks/chunk-RWVA2SFN.js +28584 -0
- package/dist/hooks/chunk-U55QDXSC.js +32 -0
- package/dist/hooks/chunk-VWZOPSZX.js +5092 -0
- package/dist/hooks/chunk-Z6W64J64.js +11254 -0
- package/dist/hooks/codex-hook-adapter.js +12 -12
- package/dist/hooks/daemon.js +112 -40
- package/dist/hooks/format-edited.js +7 -7
- package/dist/hooks/inputs.json +515 -459
- package/dist/hooks/pretool-guard.js +10 -10
- package/dist/hooks/run-ship-lap-XDLXQIS3.js +8 -0
- package/dist/hooks/session-lang.js +7 -7
- package/dist/hooks/stop-guard.js +8396 -4497
- package/dist/inputs.json +73 -73
- package/dist/josh.js +31 -15
- package/dist/registry-migrate.mjs +32 -8
- package/dist/version/index.js +48 -19
- package/package.json +1 -1
- package/prompts/collaboration-workflow/issue-template.en.md +5 -0
- package/prompts/collaboration-workflow/issue-template.md +14 -1
- package/scripts/backlog/backlog-drive-cli.ts +2 -1
- package/scripts/backlog/backlog-drive-listing.ts +20 -6
- package/scripts/backlog/backlog-hold-text.ts +1 -0
- package/scripts/backlog/backlog-listing-trace.ts +35 -0
- package/scripts/backlog/backlog-offer-timing.ts +10 -2
- package/scripts/backlog/backlog-wait-cause.ts +10 -2
- package/scripts/document/document-byte-budget.ts +2 -2
- package/scripts/git/git-command.ts +7 -3
- package/scripts/git/git-pre-push-hook.ts +9 -5
- package/scripts/git/git-spawn.ts +20 -4
- package/scripts/hooks/implementation-shell-deny-git.ts +17 -3
- package/scripts/hooks/pre-push-related-switch.ts +3 -2
- package/scripts/hooks/pre-push-unit.ts +3 -1
- package/scripts/issue/effect-audit.ts +7 -0
- package/scripts/issue/issue-body-cli.ts +18 -2
- package/scripts/issue/issue-body-keys.ts +1 -0
- package/scripts/issue/issue-file-pass.ts +1 -0
- package/scripts/issue/issue-lint-cli.ts +16 -2
- package/scripts/issue/issue-lint.ts +16 -0
- package/scripts/issue/issue-publication-state.ts +82 -6
- package/scripts/issue/issue-spill.ts +18 -4
- package/scripts/issue/issue-template-section.ts +7 -1
- package/scripts/josh/josh-commands-ai.ts +3 -2
- package/scripts/lane/lane-chain-stop-stats.ts +19 -7
- package/scripts/lane/lane-concurrency-stats.ts +39 -14
- package/scripts/lane/lane-concurrency-wait.ts +64 -0
- package/scripts/lane/lane-core-wait-stats.ts +13 -4
- package/scripts/lane/lane-implement-read-calls.ts +123 -0
- package/scripts/lane/lane-implement-read.ts +8 -3
- package/scripts/lane/lane-implement-stats.ts +33 -6
- package/scripts/lane/lane-ledger-schema-ship.ts +17 -3
- package/scripts/lane/lane-measure-cli.ts +5 -3
- package/scripts/lane/lane-plan-size.ts +1 -1
- package/scripts/lane/lane-size-record.ts +4 -3
- package/scripts/lane/lane-size-stats.ts +21 -9
- package/scripts/lane/lane-stats-request.ts +12 -3
- package/scripts/lane/lane-stats-tables.ts +30 -9
- package/scripts/lane/lane-stop-stats.ts +10 -1
- package/scripts/lane/lane-table-rows.ts +26 -0
- package/scripts/lib/timeouts.ts +4 -3
- package/scripts/registry-migration/migrate-lock.ts +40 -8
- package/scripts/registry-migration/migrate.ts +6 -3
- package/scripts/release/release-publish.ts +23 -3
- package/scripts/release/release-step-time.ts +61 -0
- package/scripts/review/disposition-batch-filing.ts +13 -0
- package/scripts/rules/git-argv.ts +10 -3
- package/scripts/run/board/run-board-closed-pace.ts +76 -0
- package/scripts/run/board/run-board-github.ts +17 -28
- package/scripts/run/board/run-board-labels.ts +5 -2
- package/scripts/run/board/run-board-reason.ts +10 -0
- package/scripts/run/entry/run-entry-sync.ts +17 -5
- package/scripts/run/hold/run-hold-cli.ts +8 -2
- package/scripts/run/merge/run-merge-health.ts +9 -2
- package/scripts/run/review/run-review-pinned-accepted.ts +24 -1
- package/scripts/run/run-preflight.ts +81 -17
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +14 -9
- package/scripts/run/ship/run-ship-pre-detach.ts +16 -7
- package/scripts/run/ship/run-ship-stop-cause.ts +13 -2
- package/scripts/run/ship/run-ship.ts +7 -1
- package/scripts/split/split-assess.ts +7 -22
- package/scripts/split/split-cap.ts +31 -0
- package/scripts/test/direct-importers.ts +46 -3
- package/scripts/test/lockfile-changed-packages.ts +155 -0
- package/scripts/test/package-version-only.ts +30 -0
- package/scripts/test/pure-files-entries.ts +1 -27
- package/scripts/test/test-related-scope.ts +30 -5
- package/scripts/test/test-related.ts +3 -3
- package/scripts/test/test-unit-guard.ts +9 -9
- package/scripts/test/unit-worker-share.ts +21 -0
- package/scripts/test/whole-suite-files.ts +23 -2
- package/scripts/test/whole-suite-narrowing.ts +108 -0
- package/dist/commands/chunk-26JL4UU4.js +0 -365
- package/dist/commands/chunk-2BC33QPY.js +0 -183
- package/dist/commands/chunk-2BIVHPCA.js +0 -85
- package/dist/commands/chunk-2CKJODCK.js +0 -245
- package/dist/commands/chunk-2CNVIA35.js +0 -335
- package/dist/commands/chunk-2E6PSONB.js +0 -46
- package/dist/commands/chunk-2GA4775H.js +0 -77
- package/dist/commands/chunk-2O64H5UJ.js +0 -462
- package/dist/commands/chunk-2OEXY4GM.js +0 -252
- package/dist/commands/chunk-2ONSHOAY.js +0 -46
- package/dist/commands/chunk-2SA3W4JF.js +0 -41
- package/dist/commands/chunk-2VY7CJ2R.js +0 -212
- package/dist/commands/chunk-2WRDAQPJ.js +0 -74
- package/dist/commands/chunk-2XLR7R6E.js +0 -541
- package/dist/commands/chunk-34JJYCIY.js +0 -117
- package/dist/commands/chunk-36XHHYNU.js +0 -158
- package/dist/commands/chunk-3CJNQU7P.js +0 -179
- package/dist/commands/chunk-3D5T6KMW.js +0 -59
- package/dist/commands/chunk-3EW5LTN3.js +0 -114
- package/dist/commands/chunk-3F3RNIG2.js +0 -128
- package/dist/commands/chunk-3FLTEJZY.js +0 -74
- package/dist/commands/chunk-3JWPTRNI.js +0 -60
- package/dist/commands/chunk-3LUPGBW4.js +0 -137
- package/dist/commands/chunk-3PCUERXE.js +0 -19
- package/dist/commands/chunk-3U6A5WON.js +0 -173
- package/dist/commands/chunk-3VLDFM5I.js +0 -426
- package/dist/commands/chunk-3YT3RCSI.js +0 -140
- package/dist/commands/chunk-43DU7DYZ.js +0 -540
- package/dist/commands/chunk-43H725LG.js +0 -132
- package/dist/commands/chunk-46STCE6Q.js +0 -48
- package/dist/commands/chunk-46WEC6HZ.js +0 -82
- package/dist/commands/chunk-47J4KOZP.js +0 -46
- package/dist/commands/chunk-47W7PF4T.js +0 -22
- package/dist/commands/chunk-4F4KARQN.js +0 -229
- package/dist/commands/chunk-4HB7NWXP.js +0 -263
- package/dist/commands/chunk-4I5AA4P5.js +0 -237
- package/dist/commands/chunk-4IDINPBE.js +0 -525
- package/dist/commands/chunk-4NSIW3UB.js +0 -104
- package/dist/commands/chunk-4YTKV6WV.js +0 -37
- package/dist/commands/chunk-5ARNFMQK.js +0 -1263
- package/dist/commands/chunk-5AZTSESD.js +0 -114
- package/dist/commands/chunk-5FUI2MLY.js +0 -89
- package/dist/commands/chunk-5IHEBIPD.js +0 -333
- package/dist/commands/chunk-5KAW5GPF.js +0 -44
- package/dist/commands/chunk-5KSJEWXR.js +0 -77
- package/dist/commands/chunk-5PCK53WP.js +0 -168
- package/dist/commands/chunk-5PPWXOCF.js +0 -64
- package/dist/commands/chunk-5Y7FOJLX.js +0 -186
- package/dist/commands/chunk-5YTEMF4O.js +0 -110
- package/dist/commands/chunk-6AHAY5VZ.js +0 -69
- package/dist/commands/chunk-6FN37DER.js +0 -330
- package/dist/commands/chunk-6JD4VNO4.js +0 -124
- package/dist/commands/chunk-6KUA7MRG.js +0 -64
- package/dist/commands/chunk-6LDEZFYR.js +0 -88
- package/dist/commands/chunk-6NXIZMIK.js +0 -122
- package/dist/commands/chunk-6O45F6YI.js +0 -86
- package/dist/commands/chunk-6OHJBQDE.js +0 -184
- package/dist/commands/chunk-6TIVDEKG.js +0 -34
- package/dist/commands/chunk-6WDCCG3M.js +0 -1249
- package/dist/commands/chunk-6ZHXEQAI.js +0 -715
- package/dist/commands/chunk-736NECRD.js +0 -16
- package/dist/commands/chunk-77LEKVEE.js +0 -32
- package/dist/commands/chunk-7DGHFBU7.js +0 -247
- package/dist/commands/chunk-7EAYFMDN.js +0 -235
- package/dist/commands/chunk-7HYYHCTN.js +0 -402
- package/dist/commands/chunk-7JOOMFDI.js +0 -155
- package/dist/commands/chunk-7K5ITPHR.js +0 -338
- package/dist/commands/chunk-7OEBSPPU.js +0 -321
- package/dist/commands/chunk-7ULYLGUK.js +0 -492
- package/dist/commands/chunk-A3JYZWBS.js +0 -803
- package/dist/commands/chunk-A3LCN4KA.js +0 -84
- package/dist/commands/chunk-ABLXBG6C.js +0 -98
- package/dist/commands/chunk-ABM2MZBF.js +0 -161
- package/dist/commands/chunk-AN7BFVHU.js +0 -244
- package/dist/commands/chunk-AQCVEQSM.js +0 -99
- package/dist/commands/chunk-AU563VKH.js +0 -75
- package/dist/commands/chunk-AUTD5FV2.js +0 -1077
- package/dist/commands/chunk-AV26CMY6.js +0 -304
- package/dist/commands/chunk-B2PJEV3S.js +0 -246
- package/dist/commands/chunk-B545ENGY.js +0 -214
- package/dist/commands/chunk-B5HP6T4L.js +0 -170
- package/dist/commands/chunk-B73IIRMS.js +0 -207
- package/dist/commands/chunk-BBLEC4YQ.js +0 -109
- package/dist/commands/chunk-BDSG6JKH.js +0 -977
- package/dist/commands/chunk-BFKTUD3V.js +0 -33
- package/dist/commands/chunk-BLRXHK2V.js +0 -17
- package/dist/commands/chunk-BML6MEUB.js +0 -326
- package/dist/commands/chunk-BMM4RHCG.js +0 -69
- package/dist/commands/chunk-BPDNGJXY.js +0 -63
- package/dist/commands/chunk-BQLKWGGC.js +0 -118
- package/dist/commands/chunk-BRMJVCP7.js +0 -167
- package/dist/commands/chunk-BRWR5YKU.js +0 -268
- package/dist/commands/chunk-BUZAYEBD.js +0 -319
- package/dist/commands/chunk-C7FGDZWP.js +0 -224
- package/dist/commands/chunk-CC4BIGCA.js +0 -20
- package/dist/commands/chunk-CCHJZEF5.js +0 -4220
- package/dist/commands/chunk-CDK7QZWG.js +0 -44
- package/dist/commands/chunk-CDYFUCDC.js +0 -72
- package/dist/commands/chunk-CEADAQIL.js +0 -170
- package/dist/commands/chunk-CNL3SLM6.js +0 -116
- package/dist/commands/chunk-CNQ7D2GZ.js +0 -104
- package/dist/commands/chunk-COGKULQH.js +0 -119
- package/dist/commands/chunk-CQUZ6TNQ.js +0 -120
- package/dist/commands/chunk-CTXJVMHW.js +0 -48
- package/dist/commands/chunk-CUWT6UQO.js +0 -13
- package/dist/commands/chunk-D6CF5QGM.js +0 -80
- package/dist/commands/chunk-DACNQAXC.js +0 -20
- package/dist/commands/chunk-DDOS32JU.js +0 -74
- package/dist/commands/chunk-DF6QD4AF.js +0 -52
- package/dist/commands/chunk-DFEXNB44.js +0 -159
- package/dist/commands/chunk-DHDKG5HZ.js +0 -151
- package/dist/commands/chunk-DHJRFBKO.js +0 -223
- package/dist/commands/chunk-DKO5VTEH.js +0 -65
- package/dist/commands/chunk-DLHH3MLS.js +0 -85
- package/dist/commands/chunk-DOYNK72G.js +0 -81
- package/dist/commands/chunk-DS53UUDH.js +0 -679
- package/dist/commands/chunk-DUA4E4ES.js +0 -230
- package/dist/commands/chunk-DVCMQMRN.js +0 -191
- package/dist/commands/chunk-E3YKMCCJ.js +0 -108
- package/dist/commands/chunk-E4F2RTKC.js +0 -272
- package/dist/commands/chunk-E4PFCTXN.js +0 -127
- package/dist/commands/chunk-EAOTR2WL.js +0 -24
- package/dist/commands/chunk-EHPTXSAT.js +0 -315
- package/dist/commands/chunk-EHVEWJQ4.js +0 -33
- package/dist/commands/chunk-EMFSPPMH.js +0 -98
- package/dist/commands/chunk-EPICTV2P.js +0 -46
- package/dist/commands/chunk-ES42XPAD.js +0 -123
- package/dist/commands/chunk-ESUY7KTZ.js +0 -137
- package/dist/commands/chunk-EVVQJJFV.js +0 -507
- package/dist/commands/chunk-EWXXEGXL.js +0 -149
- package/dist/commands/chunk-F2U46HAE.js +0 -52
- package/dist/commands/chunk-F2VYWU6Z.js +0 -653
- package/dist/commands/chunk-F4SGOTUF.js +0 -36
- package/dist/commands/chunk-F4YMLVWN.js +0 -183
- package/dist/commands/chunk-F57LACNC.js +0 -84
- package/dist/commands/chunk-F5N2QIFD.js +0 -213
- package/dist/commands/chunk-FA7CN75F.js +0 -160
- package/dist/commands/chunk-FDASVHZD.js +0 -241
- package/dist/commands/chunk-FEYZ575X.js +0 -278
- package/dist/commands/chunk-FJM2HWKW.js +0 -299
- package/dist/commands/chunk-FJMXUDEY.js +0 -3985
- package/dist/commands/chunk-FM7VVAK6.js +0 -426
- package/dist/commands/chunk-FQWRM5FC.js +0 -67
- package/dist/commands/chunk-FT33ZCSB.js +0 -298
- package/dist/commands/chunk-FTAWHAI7.js +0 -170
- package/dist/commands/chunk-G2DNS74C.js +0 -53
- package/dist/commands/chunk-G3BBCAAH.js +0 -90
- package/dist/commands/chunk-G6BXCWPH.js +0 -141
- package/dist/commands/chunk-GABDPTDK.js +0 -907
- package/dist/commands/chunk-GAVSK6P6.js +0 -230
- package/dist/commands/chunk-GB2BRQVL.js +0 -300
- package/dist/commands/chunk-GBMZXFFC.js +0 -44
- package/dist/commands/chunk-GGWXF7RJ.js +0 -70
- package/dist/commands/chunk-GHOTKHI4.js +0 -30
- package/dist/commands/chunk-GMVN6ZP2.js +0 -48
- package/dist/commands/chunk-GNTTGRCX.js +0 -133
- package/dist/commands/chunk-GOY5JECO.js +0 -130
- package/dist/commands/chunk-GZL6ISVM.js +0 -72
- package/dist/commands/chunk-HALHQILI.js +0 -51
- package/dist/commands/chunk-HAT7AFBF.js +0 -85
- package/dist/commands/chunk-HDVSZ6CZ.js +0 -292
- package/dist/commands/chunk-HE3GOMR7.js +0 -88
- package/dist/commands/chunk-HEFUC4ZW.js +0 -65
- package/dist/commands/chunk-HHS3LYLV.js +0 -30
- package/dist/commands/chunk-HQSWPRUF.js +0 -61
- package/dist/commands/chunk-HQZ65PJE.js +0 -167
- package/dist/commands/chunk-HRN73FQJ.js +0 -77
- package/dist/commands/chunk-HSZECERZ.js +0 -271
- package/dist/commands/chunk-HYE3MBAN.js +0 -113
- package/dist/commands/chunk-IAB6LCJL.js +0 -18
- package/dist/commands/chunk-IAGENI2U.js +0 -42
- package/dist/commands/chunk-ICPVBHIX.js +0 -48
- package/dist/commands/chunk-ILIITIMQ.js +0 -126
- package/dist/commands/chunk-IONGJJYM.js +0 -179
- package/dist/commands/chunk-IP23WOWP.js +0 -126
- package/dist/commands/chunk-IPS7EBE5.js +0 -140
- package/dist/commands/chunk-IXZZSST7.js +0 -459
- package/dist/commands/chunk-IY3DSDRW.js +0 -173
- package/dist/commands/chunk-J2RUI4KN.js +0 -47
- package/dist/commands/chunk-J3PCRUVY.js +0 -1223
- package/dist/commands/chunk-J4XHEOOW.js +0 -156
- package/dist/commands/chunk-JDHLHYJJ.js +0 -208
- package/dist/commands/chunk-JGX7JIW4.js +0 -126
- package/dist/commands/chunk-JHIGDFBS.js +0 -59
- package/dist/commands/chunk-JI2EGXZX.js +0 -53
- package/dist/commands/chunk-JNV3VRK2.js +0 -47
- package/dist/commands/chunk-JPMAW2VZ.js +0 -91
- package/dist/commands/chunk-JQEY6KDP.js +0 -90
- package/dist/commands/chunk-JSJDIEGZ.js +0 -88
- package/dist/commands/chunk-JT5ICRFF.js +0 -44
- package/dist/commands/chunk-JU2MAYQ3.js +0 -997
- package/dist/commands/chunk-JUCJ4Y42.js +0 -77
- package/dist/commands/chunk-JZK33TA5.js +0 -99
- package/dist/commands/chunk-K3OZBV3L.js +0 -49
- package/dist/commands/chunk-K6P5PISC.js +0 -114
- package/dist/commands/chunk-KDCHY7XO.js +0 -88
- package/dist/commands/chunk-KDGX3JTV.js +0 -51
- package/dist/commands/chunk-KGSEWOKI.js +0 -353
- package/dist/commands/chunk-KIS7JFNP.js +0 -217
- package/dist/commands/chunk-KJPZPTS4.js +0 -245
- package/dist/commands/chunk-KKHD3C2P.js +0 -114
- package/dist/commands/chunk-KKIIY5I5.js +0 -67
- package/dist/commands/chunk-KN46UC77.js +0 -114
- package/dist/commands/chunk-KP2BVAS5.js +0 -125
- package/dist/commands/chunk-KPAJBJXG.js +0 -63
- package/dist/commands/chunk-KPMAJP6D.js +0 -145
- package/dist/commands/chunk-KR6WUAJM.js +0 -122
- package/dist/commands/chunk-KWLNK2NJ.js +0 -391
- package/dist/commands/chunk-KXK2A2HB.js +0 -158
- package/dist/commands/chunk-L2CLCNXW.js +0 -144
- package/dist/commands/chunk-L7MDU6D7.js +0 -155
- package/dist/commands/chunk-L7VD4MLF.js +0 -78
- package/dist/commands/chunk-LBVYFW3I.js +0 -38
- package/dist/commands/chunk-LIPUSINQ.js +0 -140
- package/dist/commands/chunk-LJVZWE3A.js +0 -1885
- package/dist/commands/chunk-LKSSQVDA.js +0 -49
- package/dist/commands/chunk-LNQOL2CL.js +0 -321
- package/dist/commands/chunk-LS7P324N.js +0 -72
- package/dist/commands/chunk-LU5EOGFQ.js +0 -50
- package/dist/commands/chunk-LX2ENXHZ.js +0 -197
- package/dist/commands/chunk-M3UGRNNB.js +0 -103
- package/dist/commands/chunk-M3ZDYCUF.js +0 -117
- package/dist/commands/chunk-MDGPJOLK.js +0 -351
- package/dist/commands/chunk-MDKRTUE4.js +0 -288
- package/dist/commands/chunk-MFZVRWRS.js +0 -34
- package/dist/commands/chunk-MHF6BDQI.js +0 -128
- package/dist/commands/chunk-MLJDW7YN.js +0 -64
- package/dist/commands/chunk-MNLHYAJO.js +0 -80
- package/dist/commands/chunk-MOD3FG4V.js +0 -419
- package/dist/commands/chunk-MRAEJLXL.js +0 -83
- package/dist/commands/chunk-MRW2WYJS.js +0 -68
- package/dist/commands/chunk-N2XH7QBY.js +0 -103
- package/dist/commands/chunk-N2ZF6T4E.js +0 -332
- package/dist/commands/chunk-N36NZMAL.js +0 -79
- package/dist/commands/chunk-N4EMFHQ6.js +0 -114
- package/dist/commands/chunk-N4P64UIH.js +0 -211
- package/dist/commands/chunk-NABSSY4P.js +0 -204
- package/dist/commands/chunk-NDQIJBRQ.js +0 -100
- package/dist/commands/chunk-NDR4PCVG.js +0 -29
- package/dist/commands/chunk-NEOCCN6D.js +0 -302
- package/dist/commands/chunk-NFKWFOFM.js +0 -45
- package/dist/commands/chunk-NFUPJBBG.js +0 -516
- package/dist/commands/chunk-NHEBKL7X.js +0 -170
- package/dist/commands/chunk-NHTEC5U4.js +0 -99
- package/dist/commands/chunk-NOSODWWK.js +0 -1132
- package/dist/commands/chunk-NPXXYG6Z.js +0 -580
- package/dist/commands/chunk-NR2JDBPV.js +0 -75
- package/dist/commands/chunk-NRULNBYI.js +0 -1153
- package/dist/commands/chunk-NTGF5N3N.js +0 -110
- package/dist/commands/chunk-NTIVNQKF.js +0 -73
- package/dist/commands/chunk-NUCFIYZL.js +0 -119
- package/dist/commands/chunk-NVMV7BYX.js +0 -88
- package/dist/commands/chunk-NYWPTYGL.js +0 -169
- package/dist/commands/chunk-O45BX4EL.js +0 -39
- package/dist/commands/chunk-O46T4ANI.js +0 -229
- package/dist/commands/chunk-O7ESC4HL.js +0 -566
- package/dist/commands/chunk-OBYLXHCH.js +0 -86
- package/dist/commands/chunk-OHN3QARP.js +0 -769
- package/dist/commands/chunk-OKBZGLD5.js +0 -393
- package/dist/commands/chunk-OKN63ZH5.js +0 -109
- package/dist/commands/chunk-ON4IKRGS.js +0 -469
- package/dist/commands/chunk-OT74RSQO.js +0 -82
- package/dist/commands/chunk-OVCVINYW.js +0 -143
- package/dist/commands/chunk-OZKLVTYI.js +0 -342
- package/dist/commands/chunk-OZN4HOZT.js +0 -74
- package/dist/commands/chunk-P3LJ2Q4N.js +0 -555
- package/dist/commands/chunk-P43GWYR6.js +0 -185
- package/dist/commands/chunk-P6ASP2DY.js +0 -132
- package/dist/commands/chunk-PBAEJ5PT.js +0 -38
- package/dist/commands/chunk-PCZROH3R.js +0 -100
- package/dist/commands/chunk-PJYTUUTH.js +0 -34
- package/dist/commands/chunk-PKXTISWR.js +0 -58
- package/dist/commands/chunk-PSGLUBSB.js +0 -74
- package/dist/commands/chunk-PVRDJU2B.js +0 -126
- package/dist/commands/chunk-Q42NF2TL.js +0 -47
- package/dist/commands/chunk-Q4ULMZAS.js +0 -106
- package/dist/commands/chunk-QCRUPRQ2.js +0 -207
- package/dist/commands/chunk-QGATHT4S.js +0 -114
- package/dist/commands/chunk-QKTTKAXM.js +0 -119
- package/dist/commands/chunk-QSBYULSS.js +0 -100
- package/dist/commands/chunk-QSJCZATC.js +0 -18
- package/dist/commands/chunk-QTJPCXEW.js +0 -23
- package/dist/commands/chunk-QTQAI2M2.js +0 -179
- package/dist/commands/chunk-QTVVFV4Q.js +0 -127
- package/dist/commands/chunk-QVOFWFWC.js +0 -134
- package/dist/commands/chunk-QX2EMUXV.js +0 -102
- package/dist/commands/chunk-QXBOECGL.js +0 -272
- package/dist/commands/chunk-QXCG3SG4.js +0 -88
- package/dist/commands/chunk-QZVMGAWV.js +0 -307
- package/dist/commands/chunk-R2THGPI3.js +0 -99
- package/dist/commands/chunk-R36VZIKU.js +0 -53
- package/dist/commands/chunk-R3F7F3TX.js +0 -94
- package/dist/commands/chunk-R5AABJZJ.js +0 -1062
- package/dist/commands/chunk-R7PYR4HW.js +0 -389
- package/dist/commands/chunk-RAQ3E6OT.js +0 -258
- package/dist/commands/chunk-RESNXNDG.js +0 -54
- package/dist/commands/chunk-RFIOZTXY.js +0 -305
- package/dist/commands/chunk-RFWB2KAV.js +0 -102
- package/dist/commands/chunk-RFXON3FK.js +0 -25
- package/dist/commands/chunk-RGEB5L37.js +0 -66
- package/dist/commands/chunk-RGRLLF2J.js +0 -119
- package/dist/commands/chunk-RLRIMYXM.js +0 -178
- package/dist/commands/chunk-RNB3DQOZ.js +0 -70
- package/dist/commands/chunk-RO4QEZJO.js +0 -172
- package/dist/commands/chunk-RS5HBJY6.js +0 -161
- package/dist/commands/chunk-RV7EQIE4.js +0 -202
- package/dist/commands/chunk-RWPCK3CO.js +0 -41
- package/dist/commands/chunk-RWYSVFIA.js +0 -250
- package/dist/commands/chunk-RYKK75YT.js +0 -289
- package/dist/commands/chunk-S4JE63QE.js +0 -704
- package/dist/commands/chunk-S5GX3H4P.js +0 -91
- package/dist/commands/chunk-SC57VV6A.js +0 -60
- package/dist/commands/chunk-SD4EX75H.js +0 -177
- package/dist/commands/chunk-SJITWFNY.js +0 -480
- package/dist/commands/chunk-SKGDMAIA.js +0 -33
- package/dist/commands/chunk-SNSZ25XZ.js +0 -393
- package/dist/commands/chunk-SOETJZWH.js +0 -7672
- package/dist/commands/chunk-SQZZHK6X.js +0 -119
- package/dist/commands/chunk-SRG6PKVS.js +0 -49
- package/dist/commands/chunk-SRTEE34O.js +0 -93
- package/dist/commands/chunk-SVTS7ACS.js +0 -18
- package/dist/commands/chunk-SYTCTLMD.js +0 -285
- package/dist/commands/chunk-T6JUDQMW.js +0 -181
- package/dist/commands/chunk-TEXUEBGE.js +0 -208
- package/dist/commands/chunk-TFDVTU6O.js +0 -910
- package/dist/commands/chunk-TFYYXETQ.js +0 -472
- package/dist/commands/chunk-TMFKVJUW.js +0 -121
- package/dist/commands/chunk-TRHWBUWE.js +0 -61
- package/dist/commands/chunk-TROCFVCU.js +0 -45
- package/dist/commands/chunk-TUBBESHU.js +0 -85
- package/dist/commands/chunk-TVZIFZZN.js +0 -62
- package/dist/commands/chunk-TXRWAL63.js +0 -144
- package/dist/commands/chunk-U46YTYJQ.js +0 -92
- package/dist/commands/chunk-U5EO4QEV.js +0 -48
- package/dist/commands/chunk-U7Y6RKLK.js +0 -168
- package/dist/commands/chunk-UCO333EX.js +0 -47
- package/dist/commands/chunk-UIXQ4IYT.js +0 -445
- package/dist/commands/chunk-UJGNYPMD.js +0 -716
- package/dist/commands/chunk-UREXZJDB.js +0 -210
- package/dist/commands/chunk-URZ4RDC4.js +0 -220
- package/dist/commands/chunk-UUA63LCI.js +0 -77
- package/dist/commands/chunk-UVY5ODCM.js +0 -60
- package/dist/commands/chunk-UWMB6EOU.js +0 -45
- package/dist/commands/chunk-UY62WJV6.js +0 -120
- package/dist/commands/chunk-UZDKCGDC.js +0 -198
- package/dist/commands/chunk-VAHQ4AFM.js +0 -585
- package/dist/commands/chunk-VL5I2IOD.js +0 -332
- package/dist/commands/chunk-VMG3QB6C.js +0 -81
- package/dist/commands/chunk-VO25PMGS.js +0 -58
- package/dist/commands/chunk-VPRQFM2T.js +0 -37
- package/dist/commands/chunk-VTLWODJ2.js +0 -133
- package/dist/commands/chunk-VUCDGQ6Y.js +0 -260
- package/dist/commands/chunk-VY7ZJMDT.js +0 -469
- package/dist/commands/chunk-W4BR6QNU.js +0 -1241
- package/dist/commands/chunk-W7X7MZZN.js +0 -449
- package/dist/commands/chunk-WCYRNNKF.js +0 -76
- package/dist/commands/chunk-WEUUJIWQ.js +0 -84
- package/dist/commands/chunk-WNBJK6QE.js +0 -84
- package/dist/commands/chunk-WORHUJ6T.js +0 -73
- package/dist/commands/chunk-WR5PKCQW.js +0 -61
- package/dist/commands/chunk-WR73HTRG.js +0 -121
- package/dist/commands/chunk-WRNMUQTD.js +0 -95
- package/dist/commands/chunk-WROJTXWZ.js +0 -138
- package/dist/commands/chunk-WTIPX5NG.js +0 -43
- package/dist/commands/chunk-WWLCQREY.js +0 -225
- package/dist/commands/chunk-WXLW7S4M.js +0 -71
- package/dist/commands/chunk-WXXLJQBO.js +0 -67
- package/dist/commands/chunk-X4LYH6Q4.js +0 -56
- package/dist/commands/chunk-XAEL24EG.js +0 -66
- package/dist/commands/chunk-XI2ABCRX.js +0 -209
- package/dist/commands/chunk-XRQMVAB4.js +0 -85
- package/dist/commands/chunk-XUXCFPDK.js +0 -218
- package/dist/commands/chunk-XZQWEVR3.js +0 -84
- package/dist/commands/chunk-Y6OGDG5I.js +0 -49
- package/dist/commands/chunk-YANDBVAT.js +0 -430
- package/dist/commands/chunk-YD7XK2TX.js +0 -550
- package/dist/commands/chunk-YEAE46TS.js +0 -98
- package/dist/commands/chunk-YEQFAEVW.js +0 -112
- package/dist/commands/chunk-YJZAD4Z5.js +0 -103
- package/dist/commands/chunk-YNCF66RK.js +0 -1052
- package/dist/commands/chunk-YOA25SII.js +0 -210
- package/dist/commands/chunk-YOZTZMAT.js +0 -38
- package/dist/commands/chunk-YSGRHVZG.js +0 -897
- package/dist/commands/chunk-YSLGWRQN.js +0 -646
- package/dist/commands/chunk-YT5JR2CB.js +0 -105
- package/dist/commands/chunk-YTXCLGGL.js +0 -168
- package/dist/commands/chunk-YVHJN2HS.js +0 -74
- package/dist/commands/chunk-YY7XVVSB.js +0 -43
- package/dist/commands/chunk-Z2NUK47W.js +0 -1314
- package/dist/commands/chunk-Z5GZV4DV.js +0 -16
- package/dist/commands/chunk-ZB52ZIEA.js +0 -1629
- package/dist/commands/chunk-ZCD4AV2P.js +0 -73
- package/dist/commands/chunk-ZCHZU6NX.js +0 -799
- package/dist/commands/chunk-ZEH2B3DF.js +0 -239
- package/dist/commands/chunk-ZGANVZCA.js +0 -92
- package/dist/commands/chunk-ZGEUWHFF.js +0 -297
- package/dist/commands/chunk-ZHSNQ2F7.js +0 -161
- package/dist/commands/chunk-ZI3SABMH.js +0 -347
- package/dist/commands/chunk-ZIIUBGON.js +0 -773
- package/dist/commands/chunk-ZJJLROJY.js +0 -269
- package/dist/commands/chunk-ZNIIA275.js +0 -59
- package/dist/commands/chunk-ZV6BZZJ2.js +0 -271
- package/dist/commands/run-ship-lap-W66LTXJJ.js +0 -28
- package/dist/commands/test-related-XBDH2IOH.js +0 -113
- package/dist/commands/unused-members-KVKZDTXD.js +0 -329
- package/dist/hooks/chunk-3SA3FIQC.js +0 -6869
- package/dist/hooks/chunk-46PTTMGE.js +0 -1625
- package/dist/hooks/chunk-5NIBRHWG.js +0 -77
- package/dist/hooks/chunk-76QKN2K3.js +0 -258
- package/dist/hooks/chunk-CHEKMGFP.js +0 -321
- package/dist/hooks/chunk-CY3ADSDR.js +0 -28580
- package/dist/hooks/chunk-DCILEVDR.js +0 -5173
- package/dist/hooks/chunk-HVNGIM5W.js +0 -5092
- package/dist/hooks/chunk-L6IZZ2IL.js +0 -11219
- package/dist/hooks/chunk-SAAPRHTK.js +0 -43
- package/dist/hooks/chunk-U3ON2GBN.js +0 -12
- package/dist/hooks/chunk-UZXMFOVK.js +0 -9170
- package/dist/hooks/chunk-WCJ2GWYJ.js +0 -1381
- package/dist/hooks/chunk-YEURBB4L.js +0 -32
- package/dist/hooks/chunk-YRKS5ZKE.js +0 -1915
- package/dist/hooks/run-ship-lap-P5555IG7.js +0 -8
|
@@ -0,0 +1,1077 @@
|
|
|
1
|
+
import {
|
|
2
|
+
epic_report
|
|
3
|
+
} from "./chunk-4HOTJAO6.js";
|
|
4
|
+
import {
|
|
5
|
+
lane_capacity
|
|
6
|
+
} from "./chunk-6HJ5CJSJ.js";
|
|
7
|
+
import {
|
|
8
|
+
epic_triage
|
|
9
|
+
} from "./chunk-VQRT32JB.js";
|
|
10
|
+
import {
|
|
11
|
+
lane_spent
|
|
12
|
+
} from "./chunk-QN3FWRDW.js";
|
|
13
|
+
import {
|
|
14
|
+
epic_label_age
|
|
15
|
+
} from "./chunk-PLE3MBGO.js";
|
|
16
|
+
import {
|
|
17
|
+
epic_fetch
|
|
18
|
+
} from "./chunk-6PLIQCBG.js";
|
|
19
|
+
import {
|
|
20
|
+
epic_cross_repo
|
|
21
|
+
} from "./chunk-AQGVQMWF.js";
|
|
22
|
+
import {
|
|
23
|
+
issue_not_before
|
|
24
|
+
} from "./chunk-JUXKVN77.js";
|
|
25
|
+
import {
|
|
26
|
+
issue_publication_state
|
|
27
|
+
} from "./chunk-5RCBXYYD.js";
|
|
28
|
+
import {
|
|
29
|
+
epic_issue
|
|
30
|
+
} from "./chunk-GXXWRH6F.js";
|
|
31
|
+
import {
|
|
32
|
+
issue_rank
|
|
33
|
+
} from "./chunk-HLKAFSN4.js";
|
|
34
|
+
import {
|
|
35
|
+
size_estimate
|
|
36
|
+
} from "./chunk-IAA73DWD.js";
|
|
37
|
+
import {
|
|
38
|
+
expected_effect_lint
|
|
39
|
+
} from "./chunk-RETTGONB.js";
|
|
40
|
+
import {
|
|
41
|
+
issue_priority
|
|
42
|
+
} from "./chunk-FBWNL3UA.js";
|
|
43
|
+
import {
|
|
44
|
+
epic_parse
|
|
45
|
+
} from "./chunk-VDGNXSP3.js";
|
|
46
|
+
import {
|
|
47
|
+
epic_graph
|
|
48
|
+
} from "./chunk-3RIQ36LH.js";
|
|
49
|
+
import {
|
|
50
|
+
epic_busy
|
|
51
|
+
} from "./chunk-VRS252GW.js";
|
|
52
|
+
import {
|
|
53
|
+
git_gh_command
|
|
54
|
+
} from "./chunk-VJNE7W7O.js";
|
|
55
|
+
import {
|
|
56
|
+
lane_await
|
|
57
|
+
} from "./chunk-YSDBY2G7.js";
|
|
58
|
+
import {
|
|
59
|
+
lane_registry,
|
|
60
|
+
lane_snapshot_trace
|
|
61
|
+
} from "./chunk-KXZR7UAE.js";
|
|
62
|
+
import {
|
|
63
|
+
lane_process_table
|
|
64
|
+
} from "./chunk-5QICRFVL.js";
|
|
65
|
+
import {
|
|
66
|
+
lane_state
|
|
67
|
+
} from "./chunk-V36OV7AP.js";
|
|
68
|
+
import {
|
|
69
|
+
EPIC_LABEL,
|
|
70
|
+
IN_PROGRESS_LABEL,
|
|
71
|
+
RUN_SOLO_LABEL,
|
|
72
|
+
has_any_label,
|
|
73
|
+
has_label_name,
|
|
74
|
+
has_parked_label
|
|
75
|
+
} from "./chunk-QQBMVC5W.js";
|
|
76
|
+
import {
|
|
77
|
+
issue_citation,
|
|
78
|
+
session_cite
|
|
79
|
+
} from "./chunk-22DVQCP6.js";
|
|
80
|
+
import {
|
|
81
|
+
repo_discovery
|
|
82
|
+
} from "./chunk-MDKDJF2K.js";
|
|
83
|
+
import {
|
|
84
|
+
issue_cite
|
|
85
|
+
} from "./chunk-HQ2HSZBN.js";
|
|
86
|
+
import {
|
|
87
|
+
error_text
|
|
88
|
+
} from "./chunk-CDY4NFQG.js";
|
|
89
|
+
import {
|
|
90
|
+
cli_flags
|
|
91
|
+
} from "./chunk-2FE3C4PH.js";
|
|
92
|
+
import {
|
|
93
|
+
PROJECT_ROOT
|
|
94
|
+
} from "./chunk-3CCGKX7Y.js";
|
|
95
|
+
|
|
96
|
+
// scripts/epic/epic-nested.ts
|
|
97
|
+
function is_nested_epic(child) {
|
|
98
|
+
return has_label_name(child.labels, EPIC_LABEL);
|
|
99
|
+
}
|
|
100
|
+
var epic_nested = {
|
|
101
|
+
is_nested_epic
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// scripts/epic/epic-outside-blocker.ts
|
|
105
|
+
var NOTICE_ICON = "\u2757";
|
|
106
|
+
var CLOSED = "CLOSED";
|
|
107
|
+
function name_of(child) {
|
|
108
|
+
return session_cite.issue(child.number, void 0, child.repo);
|
|
109
|
+
}
|
|
110
|
+
function as_closed_child(reference) {
|
|
111
|
+
return {
|
|
112
|
+
number: reference.number,
|
|
113
|
+
repo: reference.repo,
|
|
114
|
+
state: CLOSED,
|
|
115
|
+
labels: [],
|
|
116
|
+
blocked_by: []
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function unread_answer(child, reference) {
|
|
120
|
+
const blocker = epic_graph.key_of(reference);
|
|
121
|
+
return {
|
|
122
|
+
category: "time",
|
|
123
|
+
notice: {
|
|
124
|
+
key: `unread:${epic_graph.key_of(child)}:${blocker}`,
|
|
125
|
+
message: `${NOTICE_ICON} ${name_of(child)} is blocked by ${blocker}, whose state could not be read \u2014 it waits rather than runs`
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function open_answer(child, reference, running) {
|
|
130
|
+
if (running.has(epic_graph.blocker_key(reference))) return { category: "time" };
|
|
131
|
+
const blocker = epic_graph.key_of(reference);
|
|
132
|
+
return {
|
|
133
|
+
category: "human",
|
|
134
|
+
notice: {
|
|
135
|
+
key: `outside:${epic_graph.key_of(child)}:${blocker}`,
|
|
136
|
+
message: `${NOTICE_ICON} ${name_of(child)} waits on ${blocker}, which this run will not finish \u2014 withheld for a person`
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function closed_category(verdict) {
|
|
141
|
+
if (verdict === "resolved") return void 0;
|
|
142
|
+
return verdict === "human" ? "human" : "time";
|
|
143
|
+
}
|
|
144
|
+
function outside_category(child, reference, resolve, running) {
|
|
145
|
+
if (reference.state === void 0) return unread_answer(child, reference);
|
|
146
|
+
if (reference.state !== CLOSED) return open_answer(child, reference, running);
|
|
147
|
+
return { category: closed_category(resolve(as_closed_child(reference), child)) };
|
|
148
|
+
}
|
|
149
|
+
function running_keys(issues) {
|
|
150
|
+
return new Set(issues.map((issue) => epic_graph.key_of(issue)));
|
|
151
|
+
}
|
|
152
|
+
var epic_outside_blocker = { outside_category, running_keys };
|
|
153
|
+
|
|
154
|
+
// scripts/epic/epic-classify.ts
|
|
155
|
+
var CLOSED2 = "CLOSED";
|
|
156
|
+
function resolve_by_state(blocker) {
|
|
157
|
+
return blocker.state === CLOSED2 ? "resolved" : "inherit";
|
|
158
|
+
}
|
|
159
|
+
function has_label(child, label) {
|
|
160
|
+
return has_label_name(child.labels, label);
|
|
161
|
+
}
|
|
162
|
+
function has_human_label(child) {
|
|
163
|
+
return has_parked_label(child.labels);
|
|
164
|
+
}
|
|
165
|
+
function is_waiting(child) {
|
|
166
|
+
return issue_publication_state.is_pending(child.body) || has_label(child, IN_PROGRESS_LABEL) || !issue_not_before.is_due(child.body);
|
|
167
|
+
}
|
|
168
|
+
function local_category(child) {
|
|
169
|
+
if (child.state === CLOSED2) return "done";
|
|
170
|
+
if (epic_nested.is_nested_epic(child) || has_human_label(child)) return "human";
|
|
171
|
+
if (is_waiting(child)) return "time";
|
|
172
|
+
return void 0;
|
|
173
|
+
}
|
|
174
|
+
function inherited_category(blocker_category) {
|
|
175
|
+
return blocker_category === "human" ? "human" : "time";
|
|
176
|
+
}
|
|
177
|
+
function dependency_category(verdict, blocker_category) {
|
|
178
|
+
if (verdict === "resolved") return void 0;
|
|
179
|
+
if (verdict === "inherit") return inherited_category(blocker_category);
|
|
180
|
+
return verdict;
|
|
181
|
+
}
|
|
182
|
+
var reported = /* @__PURE__ */ new Set();
|
|
183
|
+
function reset_reported() {
|
|
184
|
+
reported.clear();
|
|
185
|
+
}
|
|
186
|
+
var silence = { is_muted: false };
|
|
187
|
+
function mute_notices() {
|
|
188
|
+
silence.is_muted = true;
|
|
189
|
+
}
|
|
190
|
+
function report_notice(notice) {
|
|
191
|
+
if (silence.is_muted || reported.has(notice.key)) return;
|
|
192
|
+
reported.add(notice.key);
|
|
193
|
+
console.warn(notice.message);
|
|
194
|
+
}
|
|
195
|
+
function outside_category2(child, reference, context) {
|
|
196
|
+
const answer = epic_outside_blocker.outside_category(
|
|
197
|
+
child,
|
|
198
|
+
reference,
|
|
199
|
+
context.resolve,
|
|
200
|
+
context.running
|
|
201
|
+
);
|
|
202
|
+
if (answer.notice !== void 0) report_notice(answer.notice);
|
|
203
|
+
return answer.category;
|
|
204
|
+
}
|
|
205
|
+
function report_nested_epic(child) {
|
|
206
|
+
const line = `epic:${epic_graph.key_of(child)}`;
|
|
207
|
+
if (reported.has(line)) return;
|
|
208
|
+
reported.add(line);
|
|
209
|
+
console.warn(
|
|
210
|
+
`\u26A0 ${epic_graph.key_of(child)} is itself an epic \u2014 a run cannot implement one, so it is withheld rather than offered`
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
function report_nested_epics(children) {
|
|
214
|
+
for (const child of children) {
|
|
215
|
+
if (child.state !== CLOSED2 && epic_nested.is_nested_epic(child)) report_nested_epic(child);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function relation_category(child, blocker_reference, context) {
|
|
219
|
+
const blocker = context.index.get(epic_graph.blocker_key(blocker_reference));
|
|
220
|
+
if (blocker === void 0) return outside_category2(child, blocker_reference, context);
|
|
221
|
+
return dependency_category(
|
|
222
|
+
context.resolve(blocker, child),
|
|
223
|
+
context.memo.get(epic_graph.key_of(blocker)) ?? "time"
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
function blocker_categories(child, context) {
|
|
227
|
+
return child.blocked_by.map((blocker) => relation_category(child, blocker, context)).filter((category) => category !== void 0);
|
|
228
|
+
}
|
|
229
|
+
function from_blockers(categories) {
|
|
230
|
+
if (categories.includes("human")) return "human";
|
|
231
|
+
return categories.length > 0 ? "time" : "runnable";
|
|
232
|
+
}
|
|
233
|
+
function compute_category(child, context) {
|
|
234
|
+
return local_category(child) ?? from_blockers(blocker_categories(child, context));
|
|
235
|
+
}
|
|
236
|
+
function is_ready(node, context) {
|
|
237
|
+
return epic_graph.blockers_of(context.index, node).every((blocker) => !context.index.has(blocker) || context.memo.has(blocker));
|
|
238
|
+
}
|
|
239
|
+
function fill_memo(children, context) {
|
|
240
|
+
const pending = new Set(children.map((child) => epic_graph.key_of(child)));
|
|
241
|
+
function peel() {
|
|
242
|
+
const ready = [...pending].filter((node) => is_ready(node, context));
|
|
243
|
+
for (const node of ready) {
|
|
244
|
+
const child = context.index.get(node);
|
|
245
|
+
if (child !== void 0) context.memo.set(node, compute_category(child, context));
|
|
246
|
+
pending.delete(node);
|
|
247
|
+
}
|
|
248
|
+
return ready.length;
|
|
249
|
+
}
|
|
250
|
+
while (peel() > 0) {
|
|
251
|
+
}
|
|
252
|
+
for (const node of pending) context.memo.set(node, "time");
|
|
253
|
+
}
|
|
254
|
+
function new_context(children, resolve = resolve_by_state, running = epic_outside_blocker.running_keys(children)) {
|
|
255
|
+
return {
|
|
256
|
+
index: epic_graph.index_children(children),
|
|
257
|
+
resolve,
|
|
258
|
+
memo: /* @__PURE__ */ new Map(),
|
|
259
|
+
running
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
function classify_children(children, resolve, running) {
|
|
263
|
+
const context = new_context(children, resolve, running);
|
|
264
|
+
const buckets = {
|
|
265
|
+
runnable: [],
|
|
266
|
+
time: [],
|
|
267
|
+
human: []
|
|
268
|
+
};
|
|
269
|
+
fill_memo(children, context);
|
|
270
|
+
report_nested_epics(children);
|
|
271
|
+
for (const child of children) {
|
|
272
|
+
const category = context.memo.get(epic_graph.key_of(child)) ?? "time";
|
|
273
|
+
if (category !== "done") buckets[category].push(child);
|
|
274
|
+
}
|
|
275
|
+
return buckets;
|
|
276
|
+
}
|
|
277
|
+
var epic_classify = {
|
|
278
|
+
resolve_by_state,
|
|
279
|
+
mute_notices,
|
|
280
|
+
reset_reported,
|
|
281
|
+
local_category,
|
|
282
|
+
classify_children
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
// scripts/epic/epic-candidate-confirm.ts
|
|
286
|
+
var NO_ANOMALIES = 0;
|
|
287
|
+
var NO_LANES = 0;
|
|
288
|
+
var ONE_LANE = 1;
|
|
289
|
+
function is_same_blockers(left, right) {
|
|
290
|
+
function sorted(blockers) {
|
|
291
|
+
return blockers.map((blocker) => epic_graph.key_of(blocker)).toSorted((first, second) => first.localeCompare(second)).join(",");
|
|
292
|
+
}
|
|
293
|
+
return sorted(left) === sorted(right);
|
|
294
|
+
}
|
|
295
|
+
function with_blockers(children, target, blocked_by) {
|
|
296
|
+
const key = epic_graph.key_of(target);
|
|
297
|
+
return children.map(
|
|
298
|
+
(child) => epic_graph.key_of(child) === key ? { ...child, blocked_by } : child
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
function is_still_runnable(child, children, context) {
|
|
302
|
+
const key = epic_graph.key_of(child);
|
|
303
|
+
return epic_classify.classify_children(children, context.resolve, context.running).runnable.some((candidate) => epic_graph.key_of(candidate) === key);
|
|
304
|
+
}
|
|
305
|
+
async function read_or_withhold(candidate, read_blockers) {
|
|
306
|
+
try {
|
|
307
|
+
return await read_blockers(candidate);
|
|
308
|
+
} catch (error) {
|
|
309
|
+
const reason = error_text.message_of(error);
|
|
310
|
+
console.warn(
|
|
311
|
+
`\u26A0 could not confirm the blockers of ${session_cite.issue(candidate.number, void 0, candidate.repo)}: ${reason}
|
|
312
|
+
it is withheld rather than offered; asking again is what resolves this`
|
|
313
|
+
);
|
|
314
|
+
return void 0;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
function warn_withheld(candidate, listed) {
|
|
318
|
+
const named = listed.map((blocker) => epic_graph.key_of(blocker)).join(", ");
|
|
319
|
+
console.warn(
|
|
320
|
+
`\u26A0 ${session_cite.issue(candidate.number, void 0, candidate.repo)} is withheld: its relations listing names ${named}, which the dependency summary it was classified from did not count`
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
function untracked_blockers(listed, children) {
|
|
324
|
+
const index = epic_graph.index_children(children);
|
|
325
|
+
return listed.filter((blocker) => !index.has(epic_graph.blocker_key(blocker)));
|
|
326
|
+
}
|
|
327
|
+
function warn_untracked(candidate, untracked) {
|
|
328
|
+
const named = untracked.map((blocker) => epic_graph.key_of(blocker)).join(", ");
|
|
329
|
+
console.warn(
|
|
330
|
+
`\u26A0 ${session_cite.issue(candidate.number, void 0, candidate.repo)} is offered although its relations listing names ${named}: this epic does not track those, and every one of them is already finished`
|
|
331
|
+
);
|
|
332
|
+
}
|
|
333
|
+
function warn_recovered(candidate, listed, children, is_confirmed) {
|
|
334
|
+
if (!is_confirmed) {
|
|
335
|
+
warn_withheld(candidate, listed);
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const untracked = untracked_blockers(listed, children);
|
|
339
|
+
if (untracked.length > 0) warn_untracked(candidate, untracked);
|
|
340
|
+
}
|
|
341
|
+
async function confirm_one(candidate, context) {
|
|
342
|
+
const listed = await read_or_withhold(candidate, context.read_blockers);
|
|
343
|
+
if (listed === void 0) return { is_confirmed: false, children: context.children };
|
|
344
|
+
if (is_same_blockers(candidate.blocked_by, listed)) {
|
|
345
|
+
return { is_confirmed: true, children: context.children };
|
|
346
|
+
}
|
|
347
|
+
const children = with_blockers(context.children, candidate, listed);
|
|
348
|
+
const is_confirmed = is_still_runnable(candidate, children, context);
|
|
349
|
+
warn_recovered(candidate, listed, children, is_confirmed);
|
|
350
|
+
return { is_confirmed, children };
|
|
351
|
+
}
|
|
352
|
+
async function confirm_candidates(candidates, context, wanted) {
|
|
353
|
+
const [candidate, ...rest] = candidates;
|
|
354
|
+
if (candidate === void 0 || wanted <= NO_LANES) {
|
|
355
|
+
return { children: context.children, confirmed: [] };
|
|
356
|
+
}
|
|
357
|
+
const verdict = await confirm_one(candidate, context);
|
|
358
|
+
const taken = verdict.is_confirmed ? [candidate] : [];
|
|
359
|
+
const next = { ...context, children: verdict.children };
|
|
360
|
+
const walk = await confirm_candidates(rest, next, wanted - taken.length);
|
|
361
|
+
return { children: walk.children, confirmed: [...taken, ...walk.confirmed] };
|
|
362
|
+
}
|
|
363
|
+
function withheld_verdict(children, context) {
|
|
364
|
+
return epic_report.decide_verdict(
|
|
365
|
+
epic_classify.classify_children(children, context.resolve, context.running),
|
|
366
|
+
NO_ANOMALIES
|
|
367
|
+
);
|
|
368
|
+
}
|
|
369
|
+
async function answer_for_repo(candidates, context, wanted = ONE_LANE) {
|
|
370
|
+
const outcome = await confirm_candidates(candidates, context, wanted);
|
|
371
|
+
if (outcome.confirmed.length > NO_LANES) return { children: outcome.confirmed, verdict: "run" };
|
|
372
|
+
return { children: [], verdict: withheld_verdict(outcome.children, context) };
|
|
373
|
+
}
|
|
374
|
+
var epic_candidate_confirm = {
|
|
375
|
+
is_same_blockers,
|
|
376
|
+
answer_for_repo
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
// scripts/backlog/backlog-occupied.ts
|
|
380
|
+
function is_never_merge_waiting() {
|
|
381
|
+
return false;
|
|
382
|
+
}
|
|
383
|
+
function occupied_lanes(lanes, idle, records, is_merge_waiting = is_never_merge_waiting) {
|
|
384
|
+
const live = lanes.filter((lane) => !lane.is_stranded);
|
|
385
|
+
const idle_issues = new Set(idle(live));
|
|
386
|
+
return live.filter((lane) => {
|
|
387
|
+
const state = records.get(lane.issue)?.state;
|
|
388
|
+
return !idle_issues.has(lane.issue) && state !== "paused" && !is_merge_waiting(lane.issue);
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
function unknown_lanes(lanes, records) {
|
|
392
|
+
return lanes.filter((lane) => !lane.is_stranded && !records.has(lane.issue)).map((lane) => lane.issue);
|
|
393
|
+
}
|
|
394
|
+
var backlog_occupied = { occupied_lanes, unknown_lanes };
|
|
395
|
+
|
|
396
|
+
// scripts/lane/lane-room.ts
|
|
397
|
+
async function occupancy_of(open, table) {
|
|
398
|
+
const rows = await table();
|
|
399
|
+
const issues = open.map((lane) => lane.issue);
|
|
400
|
+
const trace = { process_trace: await lane_snapshot_trace.traces_of(issues, rows) };
|
|
401
|
+
const records = await lane_state.read_states(issues);
|
|
402
|
+
const is_merge_waiting = await lane_snapshot_trace.merge_waits_of(issues, rows);
|
|
403
|
+
const occupied = backlog_occupied.occupied_lanes(
|
|
404
|
+
open,
|
|
405
|
+
(live) => lane_spent.idle_lanes(live, trace),
|
|
406
|
+
records,
|
|
407
|
+
is_merge_waiting
|
|
408
|
+
);
|
|
409
|
+
const unknown = backlog_occupied.unknown_lanes(open, records);
|
|
410
|
+
return { occupied, idle: lane_spent.idle_lanes(open, trace), unknown };
|
|
411
|
+
}
|
|
412
|
+
async function read(lanes, table = lane_process_table.read_table) {
|
|
413
|
+
const open = lanes ?? await lane_registry.list_lanes();
|
|
414
|
+
const occupancy = await occupancy_of(open, table);
|
|
415
|
+
const seated = lane_registry.used_seats(open).length;
|
|
416
|
+
const use = { occupied: occupancy.occupied.length, seated, unknown: occupancy.unknown };
|
|
417
|
+
return { ...occupancy, use };
|
|
418
|
+
}
|
|
419
|
+
var lane_room = { read };
|
|
420
|
+
|
|
421
|
+
// scripts/epic/epic-lane-occupancy.ts
|
|
422
|
+
var SOLO_LABELS = /* @__PURE__ */ new Set([RUN_SOLO_LABEL]);
|
|
423
|
+
function is_local(issue, lanes) {
|
|
424
|
+
return lanes.some((lane) => lane.issue === String(issue.number));
|
|
425
|
+
}
|
|
426
|
+
function confirmed_stopped(lanes, room) {
|
|
427
|
+
const occupied = new Set(room.occupied.map((lane) => lane.issue));
|
|
428
|
+
return new Set(
|
|
429
|
+
lanes.filter((lane) => !lane.seat_held && lane.seat_problem === void 0).map((lane) => lane.issue).filter(
|
|
430
|
+
(issue) => room.idle.includes(issue) && !room.unknown.includes(issue) && !occupied.has(issue)
|
|
431
|
+
)
|
|
432
|
+
);
|
|
433
|
+
}
|
|
434
|
+
function reconcile(issues, lanes, room) {
|
|
435
|
+
const stopped = confirmed_stopped(lanes, room);
|
|
436
|
+
const holders = issues.filter(
|
|
437
|
+
(issue) => has_any_label(issue.labels, SOLO_LABELS) || !stopped.has(String(issue.number))
|
|
438
|
+
);
|
|
439
|
+
const remote = holders.filter((issue) => !is_local(issue, lanes)).length;
|
|
440
|
+
const occupied = new Set(room.occupied.map((lane) => lane.issue));
|
|
441
|
+
const unknown = holders.filter(
|
|
442
|
+
(issue) => room.unknown.includes(String(issue.number)) && !occupied.has(String(issue.number))
|
|
443
|
+
).length;
|
|
444
|
+
const use = {
|
|
445
|
+
...room.use,
|
|
446
|
+
occupied: room.use.occupied + remote + unknown,
|
|
447
|
+
seated: room.use.seated + remote
|
|
448
|
+
};
|
|
449
|
+
return { read: holders.length > 0 ? { kind: "busy", issues: holders } : { kind: "idle" }, use };
|
|
450
|
+
}
|
|
451
|
+
async function read2(reading, is_this_checkout) {
|
|
452
|
+
if (!is_this_checkout || reading.kind !== "busy") return { read: reading };
|
|
453
|
+
try {
|
|
454
|
+
const lanes = await lane_registry.list_lanes();
|
|
455
|
+
if (reading.issues.every((issue) => !is_local(issue, lanes))) return { read: reading };
|
|
456
|
+
return reconcile(reading.issues, lanes, await lane_room.read(lanes));
|
|
457
|
+
} catch {
|
|
458
|
+
return { read: reading };
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
var epic_lane_occupancy = { read: read2 };
|
|
462
|
+
|
|
463
|
+
// scripts/epic/epic-rank.ts
|
|
464
|
+
var CLOSED3 = "CLOSED";
|
|
465
|
+
function dependents_of(pool) {
|
|
466
|
+
return issue_rank.count_dependents(
|
|
467
|
+
pool.filter((child) => child.state !== CLOSED3).map((child) => ({
|
|
468
|
+
key: epic_graph.key_of(child),
|
|
469
|
+
blockers: child.blocked_by.map((blocker) => epic_graph.blocker_key(blocker))
|
|
470
|
+
}))
|
|
471
|
+
);
|
|
472
|
+
}
|
|
473
|
+
function rank(children, pool) {
|
|
474
|
+
const dependents = dependents_of(pool);
|
|
475
|
+
return issue_rank.rank(children, (child) => ({
|
|
476
|
+
is_resumable: child.is_resumable,
|
|
477
|
+
is_last: issue_priority.is_last(child.body),
|
|
478
|
+
labels: child.labels,
|
|
479
|
+
lost_minutes: issue_priority.lost_minutes(child.body),
|
|
480
|
+
gain_minutes: expected_effect_lint.weekly_minutes(child.body),
|
|
481
|
+
dependents: dependents.get(epic_graph.key_of(child)) ?? 0,
|
|
482
|
+
estimated_lines: size_estimate.declared_size(child.body ?? "")?.lines
|
|
483
|
+
}));
|
|
484
|
+
}
|
|
485
|
+
var epic_rank = { rank };
|
|
486
|
+
|
|
487
|
+
// scripts/epic/epic-solo.ts
|
|
488
|
+
function is_solo(child) {
|
|
489
|
+
return has_label_name(child.labels, RUN_SOLO_LABEL);
|
|
490
|
+
}
|
|
491
|
+
function holder_of(running) {
|
|
492
|
+
return running.find((issue) => is_solo(issue))?.number;
|
|
493
|
+
}
|
|
494
|
+
function solo_holder(read3) {
|
|
495
|
+
if (read3.kind !== "busy") return void 0;
|
|
496
|
+
const running = read3.issues.map((issue) => ({
|
|
497
|
+
number: issue.number,
|
|
498
|
+
labels: (issue.labels ?? []).map((label) => label.name)
|
|
499
|
+
}));
|
|
500
|
+
return holder_of(running);
|
|
501
|
+
}
|
|
502
|
+
var HELD_MARK = `carries \`${RUN_SOLO_LABEL}\` and is running in`;
|
|
503
|
+
var WAITING_MARK = `carries \`${RUN_SOLO_LABEL}\` and waits for`;
|
|
504
|
+
function held_message(holder, repo) {
|
|
505
|
+
return issue_citation.linkify(
|
|
506
|
+
`${issue_cite.plain_for("linked", holder)} ${HELD_MARK} ${repo}; nothing else starts until it merges or is parked.`,
|
|
507
|
+
repo
|
|
508
|
+
);
|
|
509
|
+
}
|
|
510
|
+
function waiting_message(solo, repo) {
|
|
511
|
+
return issue_citation.linkify(
|
|
512
|
+
`${issue_cite.plain_for("linked", solo)} ${WAITING_MARK} ${repo}'s running lanes to finish; nothing ranked below it is offered past it.`,
|
|
513
|
+
repo
|
|
514
|
+
);
|
|
515
|
+
}
|
|
516
|
+
function is_solo_wait(text) {
|
|
517
|
+
return text.includes(HELD_MARK) || text.includes(WAITING_MARK);
|
|
518
|
+
}
|
|
519
|
+
function first_of(children, keep) {
|
|
520
|
+
return { offered: children.slice(0, keep), withheld: children.slice(keep) };
|
|
521
|
+
}
|
|
522
|
+
function none_of(children, notice) {
|
|
523
|
+
return { offered: [], withheld: [...children], notice };
|
|
524
|
+
}
|
|
525
|
+
function queue_of(children) {
|
|
526
|
+
const index = children.findIndex((child) => is_solo(child));
|
|
527
|
+
const solo = children[index];
|
|
528
|
+
return solo === void 0 ? void 0 : { solo, index, behind: children.slice(index + 1) };
|
|
529
|
+
}
|
|
530
|
+
function select_candidates(children, read3, repo, occupied) {
|
|
531
|
+
const queue = queue_of(children);
|
|
532
|
+
if (queue === void 0) return first_of(children, children.length);
|
|
533
|
+
if (queue.index > 0) return first_of(children, queue.index);
|
|
534
|
+
if (occupied === 0 && read3.kind === "idle") return first_of(children, 1);
|
|
535
|
+
return none_of(children, waiting_message(queue.solo.number, repo));
|
|
536
|
+
}
|
|
537
|
+
function select(children, read3, repo, occupied = epic_busy.occupied_lanes(read3)) {
|
|
538
|
+
if (read3.kind === "unreadable" || read3.kind === "truncated") {
|
|
539
|
+
return none_of(children, epic_busy.busy_reason(read3, repo, 0));
|
|
540
|
+
}
|
|
541
|
+
const holder = solo_holder(read3);
|
|
542
|
+
if (holder !== void 0) return none_of(children, held_message(holder, repo));
|
|
543
|
+
return select_candidates(children, read3, repo, occupied);
|
|
544
|
+
}
|
|
545
|
+
function withhold(result, repo, selection) {
|
|
546
|
+
return {
|
|
547
|
+
...result,
|
|
548
|
+
candidates: result.candidates.map(
|
|
549
|
+
(bundle) => bundle.repo === repo ? { ...bundle, children: selection.offered } : bundle
|
|
550
|
+
),
|
|
551
|
+
waiting: [...result.waiting, ...selection.withheld]
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
function gate(result, read3, repo, selector = select) {
|
|
555
|
+
if (result.verdict !== "run") return { result };
|
|
556
|
+
const selection = selector(epic_report.candidates_for_repo(result, repo), read3, repo);
|
|
557
|
+
const gated = withhold(result, repo, selection);
|
|
558
|
+
return selection.notice === void 0 ? { result: gated } : { result: gated, notice: selection.notice };
|
|
559
|
+
}
|
|
560
|
+
var epic_solo = { gate, holder_of, is_solo, is_solo_wait, queue_of, select };
|
|
561
|
+
|
|
562
|
+
// scripts/epic/epic-solo-stale.ts
|
|
563
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
564
|
+
var SOLO_LABELS2 = /* @__PURE__ */ new Set([RUN_SOLO_LABEL]);
|
|
565
|
+
function is_absent_solo(issue) {
|
|
566
|
+
if (!has_any_label(issue.labels, SOLO_LABELS2)) return false;
|
|
567
|
+
return !lane_await.is_process_running_default(String(issue.number));
|
|
568
|
+
}
|
|
569
|
+
async function local_lanes() {
|
|
570
|
+
try {
|
|
571
|
+
const lanes = await lane_registry.list_lanes();
|
|
572
|
+
return new Set(lanes.map((lane) => lane.issue));
|
|
573
|
+
} catch {
|
|
574
|
+
return /* @__PURE__ */ new Set();
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
async function settle() {
|
|
578
|
+
await sleep(lane_await.RECONFIRM_MS);
|
|
579
|
+
}
|
|
580
|
+
var io = { local_lanes, settle };
|
|
581
|
+
async function find_stale(issues) {
|
|
582
|
+
const absent = issues.filter((issue) => is_absent_solo(issue));
|
|
583
|
+
if (absent.length === 0) return [];
|
|
584
|
+
const lanes = await io.local_lanes();
|
|
585
|
+
const dispatched = absent.filter((issue) => lanes.has(String(issue.number)));
|
|
586
|
+
if (dispatched.length === 0) return [];
|
|
587
|
+
await io.settle();
|
|
588
|
+
return dispatched.filter((issue) => is_absent_solo(issue));
|
|
589
|
+
}
|
|
590
|
+
function stale_message(stale, repo) {
|
|
591
|
+
const named = stale.map((issue) => issue_cite.plain_for("linked", issue.number)).join(", ");
|
|
592
|
+
return issue_citation.linkify(
|
|
593
|
+
`${named} carries \`${RUN_SOLO_LABEL}\` and \`${IN_PROGRESS_LABEL}\`, but no process of it is running in ${repo} \u2014 the \`${IN_PROGRESS_LABEL}\` label is stale, so it does not hold the backlog. Remove the label once you have confirmed nothing is running it.`,
|
|
594
|
+
repo
|
|
595
|
+
);
|
|
596
|
+
}
|
|
597
|
+
async function release(read3, repo) {
|
|
598
|
+
if (read3.kind !== "busy") return { read: read3 };
|
|
599
|
+
const stale = await find_stale(read3.issues);
|
|
600
|
+
if (stale.length === 0) return { read: read3 };
|
|
601
|
+
const holders = read3.issues.filter((issue) => !stale.includes(issue));
|
|
602
|
+
const released = holders.length > 0 ? { kind: "busy", issues: holders } : { kind: "idle" };
|
|
603
|
+
return { read: released, notice: stale_message(stale, repo) };
|
|
604
|
+
}
|
|
605
|
+
var epic_solo_stale = { io, release };
|
|
606
|
+
|
|
607
|
+
// scripts/epic/epic-lane-offer.ts
|
|
608
|
+
var WAIT_VERDICT = "wait";
|
|
609
|
+
var RUN_VERDICT = "run";
|
|
610
|
+
var NO_LANES2 = 0;
|
|
611
|
+
var ONE_LANE2 = 1;
|
|
612
|
+
function is_held(read3) {
|
|
613
|
+
return read3.kind === "unreadable" || read3.kind === "truncated";
|
|
614
|
+
}
|
|
615
|
+
function free_lanes(read3, limit, merge_waiting) {
|
|
616
|
+
if (is_held(read3)) return NO_LANES2;
|
|
617
|
+
const holders = epic_busy.occupied_lanes(read3);
|
|
618
|
+
return lane_capacity.free_lanes(limit, holders - merge_waiting, holders);
|
|
619
|
+
}
|
|
620
|
+
async function merge_waiting_holders(read3, request) {
|
|
621
|
+
if (read3.kind !== "busy" || !request.is_this_checkout) return NO_LANES2;
|
|
622
|
+
return await lane_snapshot_trace.count_merge_waiting(
|
|
623
|
+
read3.issues.map((issue) => String(issue.number))
|
|
624
|
+
);
|
|
625
|
+
}
|
|
626
|
+
async function room_in(occupancy, request) {
|
|
627
|
+
if (occupancy.use !== void 0) {
|
|
628
|
+
return lane_capacity.free_lanes(request.limit, occupancy.use.occupied, occupancy.use.seated);
|
|
629
|
+
}
|
|
630
|
+
return free_lanes(
|
|
631
|
+
occupancy.read,
|
|
632
|
+
request.limit,
|
|
633
|
+
await merge_waiting_holders(occupancy.read, request)
|
|
634
|
+
);
|
|
635
|
+
}
|
|
636
|
+
function wanted_of(request, free) {
|
|
637
|
+
return request.is_all_lanes ? free : Math.min(ONE_LANE2, free);
|
|
638
|
+
}
|
|
639
|
+
function withheld_message(repo) {
|
|
640
|
+
return `No runnable child in ${repo}: every candidate was withheld when its blocker relations were confirmed \u2014 the reason for each is above.`;
|
|
641
|
+
}
|
|
642
|
+
function offered_notice(children, read3, request, ages) {
|
|
643
|
+
if (children.length === NO_LANES2) return withheld_message(request.repo);
|
|
644
|
+
if (read3.kind !== "busy") return "";
|
|
645
|
+
return epic_busy.occupancy_message(read3.issues, request.repo, request.limit, ages);
|
|
646
|
+
}
|
|
647
|
+
async function holder_ages(read3, repo) {
|
|
648
|
+
if (read3.kind !== "busy") return /* @__PURE__ */ new Map();
|
|
649
|
+
return await epic_label_age.read_ages(
|
|
650
|
+
read3.issues.map((issue) => issue.number),
|
|
651
|
+
repo,
|
|
652
|
+
/* @__PURE__ */ new Date()
|
|
653
|
+
);
|
|
654
|
+
}
|
|
655
|
+
var VERDICT_PRIORITY = [RUN_VERDICT, WAIT_VERDICT, "stop", "complete"];
|
|
656
|
+
function combine_verdicts(left, right) {
|
|
657
|
+
return VERDICT_PRIORITY.indexOf(left) <= VERDICT_PRIORITY.indexOf(right) ? left : right;
|
|
658
|
+
}
|
|
659
|
+
function candidates_in(pool, repo) {
|
|
660
|
+
return { ...pool, candidates: pool.candidates.filter((child) => child.repo === repo) };
|
|
661
|
+
}
|
|
662
|
+
function ranked_in(pool, repo) {
|
|
663
|
+
const scoped = candidates_in(pool, repo);
|
|
664
|
+
return { ...scoped, candidates: epic_rank.rank(scoped.candidates, pool.context.children) };
|
|
665
|
+
}
|
|
666
|
+
function unseen_candidates(pool, seen) {
|
|
667
|
+
const candidates = [];
|
|
668
|
+
for (const child of pool.candidates) {
|
|
669
|
+
const key = epic_graph.key_of(child);
|
|
670
|
+
if (seen.has(key)) continue;
|
|
671
|
+
seen.add(key);
|
|
672
|
+
candidates.push(child);
|
|
673
|
+
}
|
|
674
|
+
return { ...pool, candidates };
|
|
675
|
+
}
|
|
676
|
+
function dedupe_pools(pools) {
|
|
677
|
+
const seen = /* @__PURE__ */ new Set();
|
|
678
|
+
return pools.map((pool) => unseen_candidates(pool, seen));
|
|
679
|
+
}
|
|
680
|
+
async function ask_pool(pool, wanted) {
|
|
681
|
+
return await epic_candidate_confirm.answer_for_repo(pool.candidates, pool.context, wanted);
|
|
682
|
+
}
|
|
683
|
+
async function collect(pools, wanted) {
|
|
684
|
+
const children = [];
|
|
685
|
+
let verdict = "complete";
|
|
686
|
+
for (const pool of pools) {
|
|
687
|
+
if (children.length >= wanted) break;
|
|
688
|
+
const answer = await ask_pool(pool, wanted - children.length);
|
|
689
|
+
children.push(...answer.children);
|
|
690
|
+
verdict = combine_verdicts(verdict, answer.verdict);
|
|
691
|
+
}
|
|
692
|
+
return { children, verdict: children.length > NO_LANES2 ? RUN_VERDICT : verdict };
|
|
693
|
+
}
|
|
694
|
+
function solo_offer(answer, occupancy, request, ages) {
|
|
695
|
+
const { read: read3, use } = occupancy;
|
|
696
|
+
const { offered, notice = "" } = epic_solo.select(
|
|
697
|
+
answer.children,
|
|
698
|
+
read3,
|
|
699
|
+
request.repo,
|
|
700
|
+
use?.occupied
|
|
701
|
+
);
|
|
702
|
+
if (offered.length === NO_LANES2 && answer.children.length > NO_LANES2) {
|
|
703
|
+
return { children: [], verdict: WAIT_VERDICT, notice };
|
|
704
|
+
}
|
|
705
|
+
return { ...answer, children: offered, notice: offered_notice(offered, read3, request, ages) };
|
|
706
|
+
}
|
|
707
|
+
function triage_offer(pools, request) {
|
|
708
|
+
if (!request.is_all_lanes) return void 0;
|
|
709
|
+
const untriaged = epic_triage.untriaged(
|
|
710
|
+
dedupe_pools(pools.map((pool) => candidates_in(pool, request.repo))).flatMap(
|
|
711
|
+
(pool) => pool.candidates
|
|
712
|
+
)
|
|
713
|
+
);
|
|
714
|
+
if (untriaged.length === NO_LANES2) return void 0;
|
|
715
|
+
return {
|
|
716
|
+
children: [],
|
|
717
|
+
verdict: epic_triage.TRIAGE_VERDICT,
|
|
718
|
+
notice: epic_triage.message(untriaged, request.repo)
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
function full_notice(occupancy, request, ages) {
|
|
722
|
+
if (occupancy.use === void 0) {
|
|
723
|
+
return epic_busy.busy_reason(occupancy.read, request.repo, request.limit, ages);
|
|
724
|
+
}
|
|
725
|
+
return `${String(occupancy.use.occupied)} of ${String(request.limit)} lanes in use in ${request.repo}; ${String(occupancy.use.seated)} port seats held. No lane is free, so nothing is offered here.`;
|
|
726
|
+
}
|
|
727
|
+
async function offer_after_triage(pools, request) {
|
|
728
|
+
const released = await epic_solo_stale.release(
|
|
729
|
+
await epic_busy.read_repository(request.repo),
|
|
730
|
+
request.repo
|
|
731
|
+
);
|
|
732
|
+
if (released.notice !== void 0) console.error(released.notice);
|
|
733
|
+
const occupancy = await epic_lane_occupancy.read(released.read, request.is_this_checkout);
|
|
734
|
+
const { read: read3 } = occupancy;
|
|
735
|
+
const free = await room_in(occupancy, request);
|
|
736
|
+
const ages = await holder_ages(read3, request.repo);
|
|
737
|
+
if (free === NO_LANES2) {
|
|
738
|
+
return {
|
|
739
|
+
children: [],
|
|
740
|
+
verdict: WAIT_VERDICT,
|
|
741
|
+
notice: full_notice(occupancy, request, ages)
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
const for_repo = dedupe_pools(pools.map((pool) => ranked_in(pool, request.repo)));
|
|
745
|
+
return solo_offer(await collect(for_repo, wanted_of(request, free)), occupancy, request, ages);
|
|
746
|
+
}
|
|
747
|
+
async function offer_for_repo(pools, request) {
|
|
748
|
+
return triage_offer(pools, request) ?? await offer_after_triage(pools, request);
|
|
749
|
+
}
|
|
750
|
+
function lane_request(asked, limit, current_repo) {
|
|
751
|
+
const is_this_checkout = asked.repo.toLowerCase() === current_repo.toLowerCase();
|
|
752
|
+
return { ...asked, limit, is_this_checkout };
|
|
753
|
+
}
|
|
754
|
+
var epic_lane_offer = {
|
|
755
|
+
combine_verdicts,
|
|
756
|
+
dedupe_pools,
|
|
757
|
+
lane_request,
|
|
758
|
+
offer_for_repo
|
|
759
|
+
};
|
|
760
|
+
|
|
761
|
+
// scripts/epic/epic-next-read.ts
|
|
762
|
+
var FOREIGN_EPIC = "That epic belongs to another owner; this command only reads our own.";
|
|
763
|
+
var NO_CHILDREN = 0;
|
|
764
|
+
function epic_repo_of(reference, current_repo) {
|
|
765
|
+
const epic_repo = reference.repo ?? current_repo;
|
|
766
|
+
const owner = epic_cross_repo.owner_of(current_repo);
|
|
767
|
+
return epic_cross_repo.is_same_owner_repo(epic_repo, owner) ? epic_repo : void 0;
|
|
768
|
+
}
|
|
769
|
+
function childless(reference) {
|
|
770
|
+
return `${session_cite.issue(reference.number, void 0, reference.repo)} tracks no children in a task list.`;
|
|
771
|
+
}
|
|
772
|
+
function unique_references(references, current_repo) {
|
|
773
|
+
const seen = /* @__PURE__ */ new Set();
|
|
774
|
+
const unique = [];
|
|
775
|
+
for (const reference of references) {
|
|
776
|
+
const repo = reference.repo ?? current_repo;
|
|
777
|
+
const key = epic_graph.key_of({ repo, number: reference.number });
|
|
778
|
+
if (seen.has(key)) continue;
|
|
779
|
+
seen.add(key);
|
|
780
|
+
unique.push(reference);
|
|
781
|
+
}
|
|
782
|
+
return unique;
|
|
783
|
+
}
|
|
784
|
+
function is_childless(snapshot) {
|
|
785
|
+
if (snapshot.body_failure !== void 0) return false;
|
|
786
|
+
return snapshot.child_numbers.length === NO_CHILDREN;
|
|
787
|
+
}
|
|
788
|
+
async function read_one(reference, current_repo, source) {
|
|
789
|
+
const epic_repo = epic_repo_of(reference, current_repo);
|
|
790
|
+
if (epic_repo === void 0) return { refusal: FOREIGN_EPIC };
|
|
791
|
+
const snapshot = await epic_fetch.fetch_epic(reference.number, epic_repo, current_repo, source);
|
|
792
|
+
if (is_childless(snapshot)) return { notice: childless(reference) };
|
|
793
|
+
return { read: { reference, snapshot } };
|
|
794
|
+
}
|
|
795
|
+
function collect2(outcome, reads, notices) {
|
|
796
|
+
if (outcome.read !== void 0) reads.push(outcome.read);
|
|
797
|
+
if (outcome.notice !== void 0) notices.push(outcome.notice);
|
|
798
|
+
}
|
|
799
|
+
async function read_snapshots(references, current_repo, source) {
|
|
800
|
+
const reads = [];
|
|
801
|
+
const notices = [];
|
|
802
|
+
for (const reference of unique_references(references, current_repo)) {
|
|
803
|
+
const outcome = await read_one(reference, current_repo, source);
|
|
804
|
+
if (outcome.refusal !== void 0) return { reads, notices, refusal: outcome.refusal };
|
|
805
|
+
collect2(outcome, reads, notices);
|
|
806
|
+
}
|
|
807
|
+
return { reads, notices };
|
|
808
|
+
}
|
|
809
|
+
var epic_next_read = {
|
|
810
|
+
FOREIGN_EPIC,
|
|
811
|
+
childless,
|
|
812
|
+
unique_references,
|
|
813
|
+
read_snapshots
|
|
814
|
+
};
|
|
815
|
+
|
|
816
|
+
// scripts/epic/epic-next-views.ts
|
|
817
|
+
var COMPLETE_VERDICT = "complete";
|
|
818
|
+
var ERROR_VERDICT = "error";
|
|
819
|
+
var ONE_EPIC = 1;
|
|
820
|
+
var BLOCK_SEPARATOR = "\n\n";
|
|
821
|
+
function format_reference(reference) {
|
|
822
|
+
return issue_cite.plain_for("linked", reference.number, reference.repo);
|
|
823
|
+
}
|
|
824
|
+
function confirm_context(snapshot, running) {
|
|
825
|
+
return {
|
|
826
|
+
children: snapshot.children,
|
|
827
|
+
running,
|
|
828
|
+
resolve: epic_cross_repo.resolve_cross_repo,
|
|
829
|
+
read_blockers: async (child) => await epic_fetch.read_child_blockers(child, snapshot.current_repo)
|
|
830
|
+
};
|
|
831
|
+
}
|
|
832
|
+
function pools_of(views, repo) {
|
|
833
|
+
return views.map((view) => ({
|
|
834
|
+
candidates: epic_report.candidates_for_repo(view.result, repo),
|
|
835
|
+
context: confirm_context(view.snapshot, view.running)
|
|
836
|
+
}));
|
|
837
|
+
}
|
|
838
|
+
function combined_verdict(views) {
|
|
839
|
+
let verdict = COMPLETE_VERDICT;
|
|
840
|
+
for (const view of views) verdict = epic_lane_offer.combine_verdicts(verdict, view.result.verdict);
|
|
841
|
+
return verdict;
|
|
842
|
+
}
|
|
843
|
+
function error_view(views) {
|
|
844
|
+
return views.find((view) => view.result.verdict === ERROR_VERDICT);
|
|
845
|
+
}
|
|
846
|
+
function format_view(view, is_many, current_repo) {
|
|
847
|
+
const text = epic_report.format_result(view.result, current_repo);
|
|
848
|
+
return is_many ? `${format_reference(view.reference)}
|
|
849
|
+
${text}` : text;
|
|
850
|
+
}
|
|
851
|
+
function aggregate_text(views, current_repo) {
|
|
852
|
+
const is_many = views.length > ONE_EPIC;
|
|
853
|
+
return views.map((view) => format_view(view, is_many, current_repo)).join(BLOCK_SEPARATOR);
|
|
854
|
+
}
|
|
855
|
+
function settle_views(running, build) {
|
|
856
|
+
const views = build(running);
|
|
857
|
+
const stuck = new Set(
|
|
858
|
+
views.flatMap((view) => view.result.blocked_on_people.map((child) => epic_graph.key_of(child)))
|
|
859
|
+
);
|
|
860
|
+
const settled = new Set(running);
|
|
861
|
+
for (const key of stuck) settled.delete(key);
|
|
862
|
+
return settled.size === running.size ? views : settle_views(settled, build);
|
|
863
|
+
}
|
|
864
|
+
var epic_next_views = {
|
|
865
|
+
settle_views,
|
|
866
|
+
format_reference,
|
|
867
|
+
pools_of,
|
|
868
|
+
combined_verdict,
|
|
869
|
+
error_view,
|
|
870
|
+
format_view,
|
|
871
|
+
aggregate_text
|
|
872
|
+
};
|
|
873
|
+
|
|
874
|
+
// scripts/epic/epic-next.ts
|
|
875
|
+
var SUCCESS_EXIT_CODE = 0;
|
|
876
|
+
var FAILURE_EXIT_CODE = 1;
|
|
877
|
+
var OPTIONS = { repo: { type: "string" }, lanes: { type: "boolean" } };
|
|
878
|
+
var USAGE = "Usage: josh epic:next <epic-number|owner/repo#number>... [--repo <owner/repo>] [--lanes]";
|
|
879
|
+
var UNKNOWN_REPO = "Could not read this repository from `git remote`, so the children cannot be keyed by repository \u2014 check `gh auth status` and that this is a checkout with an `origin` remote.";
|
|
880
|
+
var EXTERNAL_NOTICE = "Note: this epic tracks children in other repositories.";
|
|
881
|
+
var { FOREIGN_EPIC: FOREIGN_EPIC2 } = epic_next_read;
|
|
882
|
+
var NO_CHILDREN2 = 0;
|
|
883
|
+
var ONE_EPIC2 = 1;
|
|
884
|
+
var UNCHECKED_EXCLUSION = "Note: the per-repository lane count is applied by `--repo`; a child listed here may still be held back there while every lane is in use.";
|
|
885
|
+
function parse_references(head) {
|
|
886
|
+
const references = [];
|
|
887
|
+
for (const entry of head) {
|
|
888
|
+
const reference = epic_issue.parse_epic_reference(entry);
|
|
889
|
+
if (reference === void 0) return void 0;
|
|
890
|
+
references.push(reference);
|
|
891
|
+
}
|
|
892
|
+
return references.length === 0 ? void 0 : references;
|
|
893
|
+
}
|
|
894
|
+
function with_repo(references, values) {
|
|
895
|
+
const { repo, lanes: is_all_lanes = false } = values;
|
|
896
|
+
if (repo === void 0) return is_all_lanes ? { usage: USAGE } : { references };
|
|
897
|
+
return { references, repo, is_all_lanes };
|
|
898
|
+
}
|
|
899
|
+
function parse_options(argv) {
|
|
900
|
+
const parsed = cli_flags.arguments_of(argv, OPTIONS);
|
|
901
|
+
if (parsed === void 0) return { usage: USAGE };
|
|
902
|
+
const references = parse_references(parsed.positionals);
|
|
903
|
+
if (references === void 0 || parsed.values.repo === "") return { usage: USAGE };
|
|
904
|
+
return with_repo(references, parsed.values);
|
|
905
|
+
}
|
|
906
|
+
function body_anomaly(snapshot) {
|
|
907
|
+
if (snapshot.body_failure === void 0) return void 0;
|
|
908
|
+
return {
|
|
909
|
+
kind: "unreadable_epic_body",
|
|
910
|
+
message: `Could not read the body of the epic in ${snapshot.repo}. Its task list is what names the children, so nothing is offered \u2014 check \`gh auth status\` and that the epic exists.`,
|
|
911
|
+
is_unreachable: snapshot.is_unreachable
|
|
912
|
+
};
|
|
913
|
+
}
|
|
914
|
+
function unreadable_anomaly(snapshot) {
|
|
915
|
+
const missing = epic_fetch.missing_children(snapshot);
|
|
916
|
+
if (missing.length === 0) return void 0;
|
|
917
|
+
const list = epic_graph.format_references(missing, snapshot.current_repo);
|
|
918
|
+
return {
|
|
919
|
+
kind: "unreadable_children",
|
|
920
|
+
message: `Could not read ${list}. The dependency graph would be missing them, so nothing is offered \u2014 check \`gh auth status\` and that the issues exist.`,
|
|
921
|
+
is_unreachable: snapshot.is_unreachable
|
|
922
|
+
};
|
|
923
|
+
}
|
|
924
|
+
function is_order_declared(body, links) {
|
|
925
|
+
return links.length > 0 || epic_parse.has_unordered_declaration(body);
|
|
926
|
+
}
|
|
927
|
+
function decide(snapshot, paths = /* @__PURE__ */ new Map(), running) {
|
|
928
|
+
const links = epic_parse.parse_dependency_links(snapshot.body);
|
|
929
|
+
const unreadable = body_anomaly(snapshot) ?? unreadable_anomaly(snapshot);
|
|
930
|
+
const anomalies = unreadable === void 0 ? epic_graph.find_anomalies(
|
|
931
|
+
snapshot.children,
|
|
932
|
+
links,
|
|
933
|
+
is_order_declared(snapshot.body, links),
|
|
934
|
+
snapshot.repo
|
|
935
|
+
) : [unreadable];
|
|
936
|
+
const classification = epic_classify.classify_children(
|
|
937
|
+
snapshot.children,
|
|
938
|
+
epic_cross_repo.resolve_cross_repo,
|
|
939
|
+
running
|
|
940
|
+
);
|
|
941
|
+
return epic_report.build_result(classification, anomalies, paths);
|
|
942
|
+
}
|
|
943
|
+
function refuse(reason) {
|
|
944
|
+
console.error(reason);
|
|
945
|
+
return FAILURE_EXIT_CODE;
|
|
946
|
+
}
|
|
947
|
+
function repo_verdict(verdict) {
|
|
948
|
+
return verdict === "run" ? "wait" : verdict;
|
|
949
|
+
}
|
|
950
|
+
function report_offer(offer) {
|
|
951
|
+
if (offer.notice !== "") console.error(offer.notice);
|
|
952
|
+
if (offer.children.length === NO_CHILDREN2) {
|
|
953
|
+
console.info(repo_verdict(offer.verdict));
|
|
954
|
+
return SUCCESS_EXIT_CODE;
|
|
955
|
+
}
|
|
956
|
+
for (const child of offer.children) console.info(String(child.number));
|
|
957
|
+
return SUCCESS_EXIT_CODE;
|
|
958
|
+
}
|
|
959
|
+
async function offer_children(views, request) {
|
|
960
|
+
const pools = epic_next_views.pools_of(views, request.repo);
|
|
961
|
+
return report_offer(await epic_lane_offer.offer_for_repo(pools, request));
|
|
962
|
+
}
|
|
963
|
+
async function report_single(views, request) {
|
|
964
|
+
const broken = epic_next_views.error_view(views);
|
|
965
|
+
if (broken !== void 0) {
|
|
966
|
+
return refuse(epic_next_views.format_view(broken, views.length > ONE_EPIC2, request.repo));
|
|
967
|
+
}
|
|
968
|
+
const has_candidate = views.some(
|
|
969
|
+
(view) => epic_report.candidates_for_repo(view.result, request.repo).length > NO_CHILDREN2
|
|
970
|
+
);
|
|
971
|
+
if (!has_candidate) {
|
|
972
|
+
console.error(`No runnable child in ${request.repo}.`);
|
|
973
|
+
console.info(repo_verdict(epic_next_views.combined_verdict(views)));
|
|
974
|
+
return SUCCESS_EXIT_CODE;
|
|
975
|
+
}
|
|
976
|
+
return await offer_children(views, request);
|
|
977
|
+
}
|
|
978
|
+
function note_unchecked_exclusion(views) {
|
|
979
|
+
if (epic_next_views.combined_verdict(views) === "run") console.error(UNCHECKED_EXCLUSION);
|
|
980
|
+
}
|
|
981
|
+
function report_aggregate(views, current_repo) {
|
|
982
|
+
note_unchecked_exclusion(views);
|
|
983
|
+
const text = epic_next_views.aggregate_text(views, current_repo);
|
|
984
|
+
if (epic_next_views.error_view(views) !== void 0) {
|
|
985
|
+
console.error(text);
|
|
986
|
+
return FAILURE_EXIT_CODE;
|
|
987
|
+
}
|
|
988
|
+
console.info(issue_citation.linkify(text, current_repo));
|
|
989
|
+
return SUCCESS_EXIT_CODE;
|
|
990
|
+
}
|
|
991
|
+
function external_notice(view, is_many) {
|
|
992
|
+
return is_many ? `${epic_next_views.format_reference(view.reference)} ${EXTERNAL_NOTICE}` : EXTERNAL_NOTICE;
|
|
993
|
+
}
|
|
994
|
+
function note_external(views) {
|
|
995
|
+
const is_many = views.length > ONE_EPIC2;
|
|
996
|
+
for (const view of views) {
|
|
997
|
+
if (view.snapshot.has_external_children) console.error(external_notice(view, is_many));
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
async function report(views, request, current_repo) {
|
|
1001
|
+
note_external(views);
|
|
1002
|
+
if (request !== void 0) return await report_single(views, request);
|
|
1003
|
+
return report_aggregate(views, current_repo);
|
|
1004
|
+
}
|
|
1005
|
+
async function report_epics(views, options, current_repo) {
|
|
1006
|
+
if (options.repo === void 0) return await report(views, void 0, current_repo);
|
|
1007
|
+
const choice = await lane_capacity.lane_limit();
|
|
1008
|
+
if (choice.kind === "problem") return refuse(choice.problem);
|
|
1009
|
+
const request = epic_lane_offer.lane_request(
|
|
1010
|
+
{ repo: options.repo, is_all_lanes: options.is_all_lanes ?? false },
|
|
1011
|
+
choice.limit,
|
|
1012
|
+
current_repo
|
|
1013
|
+
);
|
|
1014
|
+
return await report(views, request, current_repo);
|
|
1015
|
+
}
|
|
1016
|
+
function views_of(reads, running = epic_outside_blocker.running_keys(reads.flatMap((read3) => read3.snapshot.children))) {
|
|
1017
|
+
const paths = repo_discovery.discover_repositories(PROJECT_ROOT);
|
|
1018
|
+
epic_cross_repo.reset_publish_cache();
|
|
1019
|
+
epic_classify.reset_reported();
|
|
1020
|
+
return epic_next_views.settle_views(
|
|
1021
|
+
running,
|
|
1022
|
+
(settled) => reads.map((read3) => ({
|
|
1023
|
+
...read3,
|
|
1024
|
+
running: settled,
|
|
1025
|
+
result: decide(read3.snapshot, paths, settled)
|
|
1026
|
+
}))
|
|
1027
|
+
);
|
|
1028
|
+
}
|
|
1029
|
+
function refuse_reads(result) {
|
|
1030
|
+
if (result.refusal !== void 0) return refuse(result.refusal);
|
|
1031
|
+
if (result.reads.length === NO_CHILDREN2) return refuse(result.notices.join("\n"));
|
|
1032
|
+
for (const notice of result.notices) console.error(notice);
|
|
1033
|
+
return void 0;
|
|
1034
|
+
}
|
|
1035
|
+
async function run_epics(options) {
|
|
1036
|
+
const references = options.references ?? [];
|
|
1037
|
+
if (references.length === NO_CHILDREN2) return refuse(USAGE);
|
|
1038
|
+
const current_repo = await git_gh_command.repo_get_name_with_owner();
|
|
1039
|
+
if (current_repo === void 0) return refuse(UNKNOWN_REPO);
|
|
1040
|
+
const result = await epic_next_read.read_snapshots(references, current_repo);
|
|
1041
|
+
const stopped = refuse_reads(result);
|
|
1042
|
+
return stopped ?? await report_epics(views_of(result.reads), options, current_repo);
|
|
1043
|
+
}
|
|
1044
|
+
async function run(argv) {
|
|
1045
|
+
const options = parse_options(argv);
|
|
1046
|
+
if (options.references === void 0) {
|
|
1047
|
+
console.error(options.usage ?? USAGE);
|
|
1048
|
+
return FAILURE_EXIT_CODE;
|
|
1049
|
+
}
|
|
1050
|
+
return await run_epics(options);
|
|
1051
|
+
}
|
|
1052
|
+
var epic_next = {
|
|
1053
|
+
EXTERNAL_NOTICE,
|
|
1054
|
+
FOREIGN_EPIC: FOREIGN_EPIC2,
|
|
1055
|
+
is_order_declared,
|
|
1056
|
+
repo_verdict,
|
|
1057
|
+
UNCHECKED_EXCLUSION,
|
|
1058
|
+
parse_options,
|
|
1059
|
+
refuse_reads,
|
|
1060
|
+
views_of,
|
|
1061
|
+
run,
|
|
1062
|
+
run_epics,
|
|
1063
|
+
decide,
|
|
1064
|
+
report
|
|
1065
|
+
};
|
|
1066
|
+
|
|
1067
|
+
export {
|
|
1068
|
+
lane_room,
|
|
1069
|
+
epic_nested,
|
|
1070
|
+
epic_outside_blocker,
|
|
1071
|
+
epic_classify,
|
|
1072
|
+
epic_rank,
|
|
1073
|
+
epic_solo,
|
|
1074
|
+
epic_solo_stale,
|
|
1075
|
+
epic_next_read,
|
|
1076
|
+
epic_next
|
|
1077
|
+
};
|