@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
|
@@ -1,1314 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
run_wake_code,
|
|
3
|
-
run_wake_stop,
|
|
4
|
-
run_wake_takeover,
|
|
5
|
-
run_wake_window
|
|
6
|
-
} from "./chunk-L2CLCNXW.js";
|
|
7
|
-
import {
|
|
8
|
-
run_wake_handoff
|
|
9
|
-
} from "./chunk-ICPVBHIX.js";
|
|
10
|
-
import {
|
|
11
|
-
lane_withdraw_closed
|
|
12
|
-
} from "./chunk-OT74RSQO.js";
|
|
13
|
-
import {
|
|
14
|
-
lane_close
|
|
15
|
-
} from "./chunk-XUXCFPDK.js";
|
|
16
|
-
import {
|
|
17
|
-
backlog_drive_args,
|
|
18
|
-
backlog_drive_retrospective_unit
|
|
19
|
-
} from "./chunk-CEADAQIL.js";
|
|
20
|
-
import {
|
|
21
|
-
lane_session_broker
|
|
22
|
-
} from "./chunk-ZI3SABMH.js";
|
|
23
|
-
import {
|
|
24
|
-
ts_entry_loader
|
|
25
|
-
} from "./chunk-VHRNXWVP.js";
|
|
26
|
-
import {
|
|
27
|
-
lane_relaunch
|
|
28
|
-
} from "./chunk-ZV6BZZJ2.js";
|
|
29
|
-
import {
|
|
30
|
-
document_section_cli
|
|
31
|
-
} from "./chunk-NR2JDBPV.js";
|
|
32
|
-
import {
|
|
33
|
-
run_stranded_detect
|
|
34
|
-
} from "./chunk-DHDKG5HZ.js";
|
|
35
|
-
import {
|
|
36
|
-
run_wake
|
|
37
|
-
} from "./chunk-QCRUPRQ2.js";
|
|
38
|
-
import {
|
|
39
|
-
run_carry_ended
|
|
40
|
-
} from "./chunk-KPAJBJXG.js";
|
|
41
|
-
import {
|
|
42
|
-
epic_triage
|
|
43
|
-
} from "./chunk-VQRT32JB.js";
|
|
44
|
-
import {
|
|
45
|
-
josh_command
|
|
46
|
-
} from "./chunk-47J4KOZP.js";
|
|
47
|
-
import {
|
|
48
|
-
telegram_notify
|
|
49
|
-
} from "./chunk-MDKRTUE4.js";
|
|
50
|
-
import {
|
|
51
|
-
run_step_section_table
|
|
52
|
-
} from "./chunk-JSJDIEGZ.js";
|
|
53
|
-
import {
|
|
54
|
-
gh_spawn
|
|
55
|
-
} from "./chunk-BFKTUD3V.js";
|
|
56
|
-
import {
|
|
57
|
-
backlogrun_launch
|
|
58
|
-
} from "./chunk-QTQAI2M2.js";
|
|
59
|
-
import {
|
|
60
|
-
agent_argv
|
|
61
|
-
} from "./chunk-L7MDU6D7.js";
|
|
62
|
-
import {
|
|
63
|
-
claude_agent_argv
|
|
64
|
-
} from "./chunk-6OHJBQDE.js";
|
|
65
|
-
import {
|
|
66
|
-
run_event_setup
|
|
67
|
-
} from "./chunk-OKN63ZH5.js";
|
|
68
|
-
import {
|
|
69
|
-
run_headless
|
|
70
|
-
} from "./chunk-Q4ULMZAS.js";
|
|
71
|
-
import {
|
|
72
|
-
agent_role_profile
|
|
73
|
-
} from "./chunk-O5JGV7NA.js";
|
|
74
|
-
import {
|
|
75
|
-
lane_registry
|
|
76
|
-
} from "./chunk-NEOCCN6D.js";
|
|
77
|
-
import {
|
|
78
|
-
run_liveness
|
|
79
|
-
} from "./chunk-DHJRFBKO.js";
|
|
80
|
-
import {
|
|
81
|
-
agent_event
|
|
82
|
-
} from "./chunk-LULJUD6P.js";
|
|
83
|
-
import {
|
|
84
|
-
detached_launch
|
|
85
|
-
} from "./chunk-HDVSZ6CZ.js";
|
|
86
|
-
import {
|
|
87
|
-
run_event_stream_emit
|
|
88
|
-
} from "./chunk-26JL4UU4.js";
|
|
89
|
-
import {
|
|
90
|
-
run_event_stream
|
|
91
|
-
} from "./chunk-KGSEWOKI.js";
|
|
92
|
-
import {
|
|
93
|
-
agent_safe_text
|
|
94
|
-
} from "./chunk-3LZXX5GL.js";
|
|
95
|
-
import {
|
|
96
|
-
issue_citation
|
|
97
|
-
} from "./chunk-22DVQCP6.js";
|
|
98
|
-
import {
|
|
99
|
-
poll
|
|
100
|
-
} from "./chunk-SBGTCT2C.js";
|
|
101
|
-
import {
|
|
102
|
-
error_text
|
|
103
|
-
} from "./chunk-CDY4NFQG.js";
|
|
104
|
-
import {
|
|
105
|
-
run_carry,
|
|
106
|
-
run_carry_session,
|
|
107
|
-
run_invocation
|
|
108
|
-
} from "./chunk-DS53UUDH.js";
|
|
109
|
-
import {
|
|
110
|
-
cli_flags
|
|
111
|
-
} from "./chunk-2FE3C4PH.js";
|
|
112
|
-
import {
|
|
113
|
-
process_identity
|
|
114
|
-
} from "./chunk-F2RDEF2J.js";
|
|
115
|
-
import {
|
|
116
|
-
stamp_file
|
|
117
|
-
} from "./chunk-VLN6TSPJ.js";
|
|
118
|
-
import {
|
|
119
|
-
MS_PER_SECOND
|
|
120
|
-
} from "./chunk-WPAQUMHC.js";
|
|
121
|
-
|
|
122
|
-
// scripts/run/wake/run-wake-cli.ts
|
|
123
|
-
import { dirname as __josh_dirname } from "node:path";
|
|
124
|
-
import { fileURLToPath as __josh_file_path } from "node:url";
|
|
125
|
-
import { fileURLToPath } from "node:url";
|
|
126
|
-
|
|
127
|
-
// scripts/run/wake/run-wake-await.ts
|
|
128
|
-
function is_live_carry(read, ports) {
|
|
129
|
-
if (read.kind !== "carried") return false;
|
|
130
|
-
return ports.is_owner_live(read.carry) || ports.is_launched_record(read.carry);
|
|
131
|
-
}
|
|
132
|
-
function is_launched_record(carry, git_directory) {
|
|
133
|
-
const launch = backlogrun_launch.pending_launch(git_directory);
|
|
134
|
-
if (launch === void 0 || carry.is_handed_off !== true) return false;
|
|
135
|
-
return carry.invocation === launch.invocation && Date.parse(carry.started_at) === Date.parse(launch.started_at);
|
|
136
|
-
}
|
|
137
|
-
function supervised_invocation(ports) {
|
|
138
|
-
const read = ports.read_carry();
|
|
139
|
-
if (read.kind !== "carried") return ports.pending_invocation();
|
|
140
|
-
if (ports.is_owner_live(read.carry)) return read.carry.invocation;
|
|
141
|
-
return ports.pending_invocation() ?? read.carry.invocation;
|
|
142
|
-
}
|
|
143
|
-
async function await_carry(ports, interval_ms) {
|
|
144
|
-
const read = ports.read_carry();
|
|
145
|
-
if (is_live_carry(read, ports)) return read;
|
|
146
|
-
if (ports.pending_invocation() === void 0) return ports.read_carry();
|
|
147
|
-
await ports.sleep(interval_ms);
|
|
148
|
-
return await await_carry(ports, interval_ms);
|
|
149
|
-
}
|
|
150
|
-
function ports_of(context) {
|
|
151
|
-
return {
|
|
152
|
-
read_carry: () => run_carry.read_carry(context.carry_target),
|
|
153
|
-
pending_invocation: () => backlogrun_launch.pending_launch(context.git_directory)?.invocation,
|
|
154
|
-
is_owner_live: (carry) => run_carry.is_owner_live(carry),
|
|
155
|
-
is_launched_record: (carry) => is_launched_record(carry, context.git_directory),
|
|
156
|
-
sleep: poll.sleep
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
function supervised_carry(read, invocation, ports) {
|
|
160
|
-
if (read.kind !== "carried") return void 0;
|
|
161
|
-
if (read.carry.invocation === invocation || ports.is_owner_live(read.carry)) return read.carry;
|
|
162
|
-
return void 0;
|
|
163
|
-
}
|
|
164
|
-
function held_for(target, wake, carry, profile) {
|
|
165
|
-
if (carry.invocation === wake.invocation) return { kind: "claimed", wake, carry };
|
|
166
|
-
const supervised2 = run_wake.fresh_wake(carry.invocation, /* @__PURE__ */ new Date(), profile);
|
|
167
|
-
run_wake.update_wake(target, supervised2);
|
|
168
|
-
return { kind: "claimed", wake: supervised2, carry };
|
|
169
|
-
}
|
|
170
|
-
async function claim_run(context, profile, interval_ms, ports = ports_of(context)) {
|
|
171
|
-
const invocation = supervised_invocation(ports);
|
|
172
|
-
if (invocation === void 0) return { kind: "refused", carry_kind: ports.read_carry().kind };
|
|
173
|
-
const wake = run_wake.claim(context.wake_target, invocation, /* @__PURE__ */ new Date(), profile);
|
|
174
|
-
if (wake === void 0) return { kind: "running" };
|
|
175
|
-
const read = await await_carry(ports, interval_ms);
|
|
176
|
-
const carry = supervised_carry(read, invocation, ports);
|
|
177
|
-
if (carry !== void 0) return held_for(context.wake_target, wake, carry, profile);
|
|
178
|
-
run_wake.tidy_own_wake(context.wake_target);
|
|
179
|
-
return { kind: "refused", carry_kind: read.kind };
|
|
180
|
-
}
|
|
181
|
-
var run_wake_await = { await_carry, claim_run, supervised_invocation };
|
|
182
|
-
|
|
183
|
-
// scripts/run/wake/run-wake-describe.ts
|
|
184
|
-
import path from "node:path";
|
|
185
|
-
|
|
186
|
-
// scripts/run/wake/run-wake-caffeinate.ts
|
|
187
|
-
import { spawn } from "node:child_process";
|
|
188
|
-
import { existsSync } from "node:fs";
|
|
189
|
-
var CAFFEINATE_PATH = "/usr/bin/caffeinate";
|
|
190
|
-
var CAFFEINATE_FLAGS = ["-i", "-s", "-w"];
|
|
191
|
-
function argv(pid) {
|
|
192
|
-
return [...CAFFEINATE_FLAGS, String(pid)];
|
|
193
|
-
}
|
|
194
|
-
function keep_awake(pid, is_present = existsSync, spawner = spawn) {
|
|
195
|
-
if (!is_present(CAFFEINATE_PATH)) return;
|
|
196
|
-
const child = spawner(CAFFEINATE_PATH, argv(pid), { detached: true, stdio: "ignore" });
|
|
197
|
-
child.on("error", () => {
|
|
198
|
-
});
|
|
199
|
-
child.unref();
|
|
200
|
-
}
|
|
201
|
-
var run_wake_caffeinate = {
|
|
202
|
-
CAFFEINATE_PATH,
|
|
203
|
-
argv,
|
|
204
|
-
keep_awake
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
// scripts/run/wake/run-wake-session.ts
|
|
208
|
-
var WAKE_COMMAND = claude_agent_argv.AGENT_COMMAND;
|
|
209
|
-
var WAKE_FLAGS = claude_agent_argv.AGENT_FLAGS;
|
|
210
|
-
var LOOP_FLAG = "--loop";
|
|
211
|
-
var INTERVAL_FLAG = "--interval";
|
|
212
|
-
var SUPERVISOR_SESSION = "run-wake-supervisor";
|
|
213
|
-
function scheduler_profile() {
|
|
214
|
-
const resolved = agent_role_profile.resolve(agent_role_profile.SCHEDULER);
|
|
215
|
-
agent_role_profile.warn_of_default();
|
|
216
|
-
if (resolved.kind === "profile") return resolved.profile;
|
|
217
|
-
console.error(resolved.note);
|
|
218
|
-
return void 0;
|
|
219
|
-
}
|
|
220
|
-
function chosen_profile(provider) {
|
|
221
|
-
const environment = backlogrun_launch.chosen_environment(provider);
|
|
222
|
-
return agent_role_profile.resolve(agent_role_profile.SCHEDULER, environment);
|
|
223
|
-
}
|
|
224
|
-
function supervisor_environment(profile) {
|
|
225
|
-
return profile.provider === "openai" ? { CODEX_THREAD_ID: SUPERVISOR_SESSION } : { CLAUDE_CODE_CHILD_SESSION: SUPERVISOR_SESSION, CODEX_THREAD_ID: void 0 };
|
|
226
|
-
}
|
|
227
|
-
function safe_invocation(invocation) {
|
|
228
|
-
if (!detached_launch.is_safe_value(invocation)) return void 0;
|
|
229
|
-
const rebuilt = run_invocation.rebuild(invocation);
|
|
230
|
-
return rebuilt === invocation ? rebuilt : void 0;
|
|
231
|
-
}
|
|
232
|
-
function profiled_argv(invocation, profile, cwd, session_id) {
|
|
233
|
-
return cwd === void 0 ? agent_argv.with_profile(invocation, profile) : agent_argv.with_profile_in(invocation, profile, cwd, session_id);
|
|
234
|
-
}
|
|
235
|
-
function resolved_argv(invocation, cwd) {
|
|
236
|
-
return cwd === void 0 ? agent_argv.resolve(invocation, agent_role_profile.SCHEDULER) : agent_argv.resolve_in(invocation, agent_role_profile.SCHEDULER, cwd);
|
|
237
|
-
}
|
|
238
|
-
function handoff_prompt(matched, material) {
|
|
239
|
-
return `${matched}
|
|
240
|
-
Driver handoff: ${agent_safe_text.printable(material)}`.slice(
|
|
241
|
-
0,
|
|
242
|
-
agent_safe_text.MAX_PROMPT_LENGTH
|
|
243
|
-
);
|
|
244
|
-
}
|
|
245
|
-
function wake_argv(invocation, profile, cwd, session) {
|
|
246
|
-
const matched = safe_invocation(invocation);
|
|
247
|
-
if (matched === void 0) return void 0;
|
|
248
|
-
const prompt = typeof session === "object" ? handoff_prompt(matched, session.material) : matched;
|
|
249
|
-
const session_id = typeof session === "object" ? session.id : session;
|
|
250
|
-
return profile === void 0 ? resolved_argv(prompt, cwd) : profiled_argv(prompt, profile, cwd, session_id);
|
|
251
|
-
}
|
|
252
|
-
function supervisor_argv(script_path, interval) {
|
|
253
|
-
const chosen = interval === void 0 ? [] : [INTERVAL_FLAG, interval];
|
|
254
|
-
return {
|
|
255
|
-
command: process.execPath,
|
|
256
|
-
args: [...ts_entry_loader.loader_argv(process.execArgv), script_path, LOOP_FLAG, ...chosen]
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
var run_wake_session = {
|
|
260
|
-
INTERVAL_FLAG,
|
|
261
|
-
LOOP_FLAG,
|
|
262
|
-
WAKE_COMMAND,
|
|
263
|
-
WAKE_FLAGS,
|
|
264
|
-
ensure_log: detached_launch.ensure_log,
|
|
265
|
-
is_safe_argv: detached_launch.is_safe_argv,
|
|
266
|
-
keep_awake: run_wake_caffeinate.keep_awake,
|
|
267
|
-
launch: detached_launch.launch,
|
|
268
|
-
chosen_profile,
|
|
269
|
-
scheduler_profile,
|
|
270
|
-
supervisor_argv,
|
|
271
|
-
supervisor_environment,
|
|
272
|
-
wake_argv
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
// scripts/run/wake/run-wake-describe.ts
|
|
276
|
-
var UNKNOWN_CUTS = "an unreadable number of";
|
|
277
|
-
var REPO_LOOKUP_TIMEOUT_MS = 1e4;
|
|
278
|
-
var STOP_COMMAND = "pnpm josh backlogrun --stop";
|
|
279
|
-
var UNREADABLE_TIME = "an unreadable time";
|
|
280
|
-
function carry_cuts(read) {
|
|
281
|
-
if (read.kind === "carried") return String(read.carry.cuts);
|
|
282
|
-
return UNKNOWN_CUTS;
|
|
283
|
-
}
|
|
284
|
-
function outstanding_line(wake) {
|
|
285
|
-
if (wake.attempts === void 0) return void 0;
|
|
286
|
-
return `${String(wake.attempts)} launch(es) outstanding for the current cut, none claimed yet`;
|
|
287
|
-
}
|
|
288
|
-
function wait_input(wake, read, now) {
|
|
289
|
-
return {
|
|
290
|
-
read,
|
|
291
|
-
woke_at: wake.woke_at,
|
|
292
|
-
attempts: wake.attempts ?? 0,
|
|
293
|
-
is_owner_live: read.kind === "carried" && run_carry.is_owner_live(read.carry, now),
|
|
294
|
-
has_work: wake.idle_since === void 0 ? void 0 : false,
|
|
295
|
-
idle_since: wake.idle_since,
|
|
296
|
-
now
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
function deadline(marked_at, limit_ms) {
|
|
300
|
-
const marked = Date.parse(marked_at ?? "");
|
|
301
|
-
return Number.isNaN(marked) ? UNREADABLE_TIME : new Date(marked + limit_ms).toISOString();
|
|
302
|
-
}
|
|
303
|
-
function owner_wait(wake, carry) {
|
|
304
|
-
if (carry.owner_pid === wake.pid) {
|
|
305
|
-
return "waiting: the driver holds the carry record and is running";
|
|
306
|
-
}
|
|
307
|
-
return `waiting: process ${String(carry.owner_pid)} holds the carry record; the driver starts at its next cut or once it exits`;
|
|
308
|
-
}
|
|
309
|
-
var WAIT_LINES = {
|
|
310
|
-
pending: (wake) => `waiting: the woken session has until ${deadline(wake.woke_at, run_wake.WAKE_GRACE_MS)} to begin work on the carry record`,
|
|
311
|
-
idle: (wake) => `waiting: no runnable work; the driver starts anyway at ${deadline(wake.idle_since, run_wake.IDLE_CEILING_MS)}`
|
|
312
|
-
};
|
|
313
|
-
function wait_line(wake, read, now) {
|
|
314
|
-
const { kind } = run_wake.decide(wait_input(wake, read, now));
|
|
315
|
-
if (kind === "wait" && read.kind === "carried") return owner_wait(wake, read.carry);
|
|
316
|
-
return WAIT_LINES[kind]?.(wake);
|
|
317
|
-
}
|
|
318
|
-
function stream_lines(context) {
|
|
319
|
-
const event = run_event_stream.read_last(context.event_target);
|
|
320
|
-
const progress = event === void 0 ? [] : [`progress: ${run_event_stream.format_event(event)}`];
|
|
321
|
-
const follow = `watch: \`pnpm josh run:board\` in a pane of its own (recover with \`tail -F ${context.event_target}\`)`;
|
|
322
|
-
return [...progress, follow];
|
|
323
|
-
}
|
|
324
|
-
function describe_wake(wake, context, now = /* @__PURE__ */ new Date()) {
|
|
325
|
-
const live = run_wake.is_supervisor_live(wake) ? "running" : "not running";
|
|
326
|
-
const read = run_carry.read_carry(context.carry_target);
|
|
327
|
-
return [
|
|
328
|
-
`invocation: ${wake.invocation}`,
|
|
329
|
-
`profile: ${wake.profile === void 0 ? "unrecorded" : agent_role_profile.describe(wake.profile)}`,
|
|
330
|
-
`supervisor: process ${String(wake.pid)} (${live}), watching since ${wake.started_at}`,
|
|
331
|
-
`woke ${String(wake.woke)} session(s) across ${carry_cuts(read)} cut(s)`,
|
|
332
|
-
outstanding_line(wake),
|
|
333
|
-
wait_line(wake, read, now),
|
|
334
|
-
run_liveness.describe_agent_state(context.log_target),
|
|
335
|
-
`output: ${context.log_target}`,
|
|
336
|
-
// How progress is seen without asking after the cut: the run's stream, followed from here.
|
|
337
|
-
// `--list` is that reader's one-shot last-event form.
|
|
338
|
-
...stream_lines(context),
|
|
339
|
-
`stop it with \`${STOP_COMMAND}\``
|
|
340
|
-
].filter((line) => line !== void 0).join("\n");
|
|
341
|
-
}
|
|
342
|
-
function cite_description(description, repo) {
|
|
343
|
-
return repo === void 0 ? description : issue_citation.linkify(description, repo);
|
|
344
|
-
}
|
|
345
|
-
function describe_wake_cited(wake, context) {
|
|
346
|
-
const repo = gh_spawn.get_repo_name_with_owner_within(REPO_LOOKUP_TIMEOUT_MS);
|
|
347
|
-
return cite_description(describe_wake(wake, context), repo);
|
|
348
|
-
}
|
|
349
|
-
function context_of(directory, note) {
|
|
350
|
-
const log_target = run_wake.wake_log_path(directory);
|
|
351
|
-
run_wake_session.ensure_log(log_target, note);
|
|
352
|
-
return {
|
|
353
|
-
carry_target: run_carry.carry_path(directory),
|
|
354
|
-
ended_target: run_carry_ended.ended_path(directory),
|
|
355
|
-
wake_target: run_wake.wake_path(directory),
|
|
356
|
-
log_target,
|
|
357
|
-
event_target: run_event_stream.target_of(directory),
|
|
358
|
-
git_directory: directory,
|
|
359
|
-
worktree: path.dirname(directory)
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
var run_wake_describe = {
|
|
363
|
-
STOP_COMMAND,
|
|
364
|
-
cite_description,
|
|
365
|
-
context_of,
|
|
366
|
-
describe_wake,
|
|
367
|
-
describe_wake_cited
|
|
368
|
-
};
|
|
369
|
-
|
|
370
|
-
// scripts/run/wake/run-wake-loop.ts
|
|
371
|
-
var STOPPED_REASON = "stopped";
|
|
372
|
-
var FAILED_REASON = "failed";
|
|
373
|
-
var RELOAD_REASON = "reload";
|
|
374
|
-
var NO_ATTEMPTS = 0;
|
|
375
|
-
var STOPPED_BY_PERSON = { reason: STOPPED_REASON, note: void 0 };
|
|
376
|
-
var CODE_CHANGED = { reason: RELOAD_REASON, note: void 0 };
|
|
377
|
-
function stopped(reason, note) {
|
|
378
|
-
return { kind: "stop", stop: { reason, note } };
|
|
379
|
-
}
|
|
380
|
-
function wake_failure_note(wake) {
|
|
381
|
-
const attempts = String(wake.attempts ?? NO_ATTEMPTS);
|
|
382
|
-
const last = wake.woke_pid === void 0 ? "none" : `process ${String(wake.woke_pid)}`;
|
|
383
|
-
return `woke a session for "${wake.invocation}" ${attempts} time(s) and none of them claimed the carry record; the last one was ${last}, which may still be running`;
|
|
384
|
-
}
|
|
385
|
-
function beside_step(wake, material, ports) {
|
|
386
|
-
const result = ports.wake_beside(wake.invocation, ports.new_session_id(), material);
|
|
387
|
-
return result.kind === "failed" ? stopped(FAILED_REASON, result.note) : { kind: "continue", wake };
|
|
388
|
-
}
|
|
389
|
-
function handoff_step(wake, material, ports) {
|
|
390
|
-
const session_id = ports.new_session_id();
|
|
391
|
-
ports.hand_off(session_id);
|
|
392
|
-
const result = ports.wake(wake.invocation, session_id, material);
|
|
393
|
-
if (result.kind === "failed") return stopped(FAILED_REASON, result.note);
|
|
394
|
-
return { kind: "continue", wake: run_wake.count_wake(wake, ports.now(), result.pid, session_id) };
|
|
395
|
-
}
|
|
396
|
-
async function wake_step(wake, ports) {
|
|
397
|
-
const driven = await ports.drive();
|
|
398
|
-
if (driven.kind === "finished") return stopped("ended");
|
|
399
|
-
if (driven.kind === "failed") return stopped(FAILED_REASON, driven.note);
|
|
400
|
-
if (driven.kind === "released") return { kind: "continue", wake };
|
|
401
|
-
return driven.kind === "triage" ? beside_step(wake, driven.material, ports) : handoff_step(wake, driven.material, ports);
|
|
402
|
-
}
|
|
403
|
-
function continue_step(wake, decision, ports) {
|
|
404
|
-
if (decision.kind === "wait") return { kind: "continue", wake: run_wake.count_claim(wake) };
|
|
405
|
-
if (decision.kind === "idle") {
|
|
406
|
-
return { kind: "continue", wake: run_wake.mark_idle(wake, ports.now()) };
|
|
407
|
-
}
|
|
408
|
-
return { kind: "continue", wake };
|
|
409
|
-
}
|
|
410
|
-
async function step(wake, decision, ports) {
|
|
411
|
-
if (decision.kind === "stop") return stopped(decision.reason);
|
|
412
|
-
if (decision.kind === "failed") return stopped(FAILED_REASON, wake_failure_note(wake));
|
|
413
|
-
if (decision.kind === "wake") return await wake_step(wake, ports);
|
|
414
|
-
return continue_step(wake, decision, ports);
|
|
415
|
-
}
|
|
416
|
-
function decision_input(wake, ports) {
|
|
417
|
-
const read = ports.read_carry();
|
|
418
|
-
return {
|
|
419
|
-
read,
|
|
420
|
-
woke_at: wake.woke_at,
|
|
421
|
-
attempts: wake.attempts ?? NO_ATTEMPTS,
|
|
422
|
-
is_owner_live: ports.is_owner_live(read),
|
|
423
|
-
has_work: void 0,
|
|
424
|
-
idle_since: wake.idle_since,
|
|
425
|
-
now: ports.now()
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
async function decide_pass(wake, ports) {
|
|
429
|
-
const input = decision_input(wake, ports);
|
|
430
|
-
const decision = run_wake.decide(input);
|
|
431
|
-
if (decision.kind !== "wake") return decision;
|
|
432
|
-
return run_wake.decide({ ...input, has_work: await ports.has_work(input.read) });
|
|
433
|
-
}
|
|
434
|
-
async function retry_closes(ports) {
|
|
435
|
-
try {
|
|
436
|
-
await ports.retry_closes();
|
|
437
|
-
} catch (error) {
|
|
438
|
-
error_text.trace_swallowed("run_wake_loop.retry_closes", error);
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
async function preflight_stop(decision, ports) {
|
|
442
|
-
if (decision.kind === "stop") return void 0;
|
|
443
|
-
const failure2 = ports.session_failure?.();
|
|
444
|
-
if (failure2 !== void 0) return { reason: FAILED_REASON, note: failure2 };
|
|
445
|
-
return await ports.is_code_stale() ? CODE_CHANGED : void 0;
|
|
446
|
-
}
|
|
447
|
-
async function run_pass(target, wake, ports) {
|
|
448
|
-
const decision = await decide_pass(wake, ports);
|
|
449
|
-
const stop = await preflight_stop(decision, ports);
|
|
450
|
-
if (stop !== void 0) return stop;
|
|
451
|
-
await retry_closes(ports);
|
|
452
|
-
const outcome = await step(wake, decision, ports);
|
|
453
|
-
if (outcome.kind === "stop") return outcome.stop;
|
|
454
|
-
return run_wake.update_wake(target, outcome.wake) ? void 0 : STOPPED_BY_PERSON;
|
|
455
|
-
}
|
|
456
|
-
function without_release_gap(ports) {
|
|
457
|
-
let is_released = false;
|
|
458
|
-
return {
|
|
459
|
-
...ports,
|
|
460
|
-
drive: async () => {
|
|
461
|
-
const result = await ports.drive();
|
|
462
|
-
is_released = result.kind === "released" || result.kind === "triage";
|
|
463
|
-
return result;
|
|
464
|
-
},
|
|
465
|
-
sleep: async (milliseconds) => {
|
|
466
|
-
const duration = is_released ? 0 : milliseconds;
|
|
467
|
-
is_released = false;
|
|
468
|
-
await ports.sleep(duration);
|
|
469
|
-
}
|
|
470
|
-
};
|
|
471
|
-
}
|
|
472
|
-
function refreshed_wake(target, ports) {
|
|
473
|
-
if (run_wake.read_own_wake(target) === void 0) return void 0;
|
|
474
|
-
ports.refresh?.();
|
|
475
|
-
return run_wake.read_own_wake(target);
|
|
476
|
-
}
|
|
477
|
-
async function run_loop(target, ports, interval_ms) {
|
|
478
|
-
const continuous = without_release_gap(ports);
|
|
479
|
-
return await poll.wait_for(
|
|
480
|
-
async () => {
|
|
481
|
-
const wake = refreshed_wake(target, continuous);
|
|
482
|
-
return wake === void 0 ? STOPPED_BY_PERSON : await run_pass(target, wake, continuous);
|
|
483
|
-
},
|
|
484
|
-
{ interval_ms, sleeper: continuous.sleep }
|
|
485
|
-
);
|
|
486
|
-
}
|
|
487
|
-
var run_wake_loop = {
|
|
488
|
-
FAILED_REASON,
|
|
489
|
-
RELOAD_REASON,
|
|
490
|
-
run_loop
|
|
491
|
-
};
|
|
492
|
-
|
|
493
|
-
// scripts/run/wake/run-wake-finish.ts
|
|
494
|
-
var SUCCESS_EXIT_CODE = 0;
|
|
495
|
-
var FAILURE_EXIT_CODE = 1;
|
|
496
|
-
var WARNING_TITLE = "run:wake supervisor";
|
|
497
|
-
var WARNING_RECOVERY = `Check the wake command, then restart with \`pnpm josh run:wake --start\`.`;
|
|
498
|
-
var STOP_BODIES = {
|
|
499
|
-
ended: void 0,
|
|
500
|
-
stopped: void 0,
|
|
501
|
-
reload: void 0,
|
|
502
|
-
failed: "The supervisor could not continue the run and has stopped.",
|
|
503
|
-
unreadable: "The carry record could not be read, so the supervisor stopped rather than guess at it."
|
|
504
|
-
};
|
|
505
|
-
function log_hint(context) {
|
|
506
|
-
return `The output of every session this supervisor started is in ${context.log_target}.`;
|
|
507
|
-
}
|
|
508
|
-
function warning_body(stop, body, context) {
|
|
509
|
-
return [body, log_hint(context), stop.note].filter(Boolean).join("\n");
|
|
510
|
-
}
|
|
511
|
-
async function warn_of_stop(stop, body, context) {
|
|
512
|
-
return await telegram_notify.warn({
|
|
513
|
-
issue_title: WARNING_TITLE,
|
|
514
|
-
body: warning_body(stop, body, context),
|
|
515
|
-
recovery: WARNING_RECOVERY
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
function is_strand_told(stop, watched, is_warned) {
|
|
519
|
-
if (!is_warned || stop.reason !== run_wake_loop.FAILED_REASON) return false;
|
|
520
|
-
return run_stranded_detect.is_left_stranded(watched);
|
|
521
|
-
}
|
|
522
|
-
async function record_failure(stop, watched, is_warned) {
|
|
523
|
-
if (!is_strand_told(stop, watched, is_warned)) return;
|
|
524
|
-
const [cause = ""] = (stop.note ?? "").split("\n", 1);
|
|
525
|
-
await run_event_stream_emit.emit(
|
|
526
|
-
run_event_stream.EVENT_KIND.STRANDED,
|
|
527
|
-
`The supervisor failed and stopped watching the run \u2014 ${cause}`
|
|
528
|
-
);
|
|
529
|
-
}
|
|
530
|
-
function exit_code_of(reason) {
|
|
531
|
-
return reason === run_wake_loop.FAILED_REASON ? FAILURE_EXIT_CODE : SUCCESS_EXIT_CODE;
|
|
532
|
-
}
|
|
533
|
-
function stop_body(reason) {
|
|
534
|
-
return STOP_BODIES[reason];
|
|
535
|
-
}
|
|
536
|
-
async function warn_and_record(stop, body, context, started_at) {
|
|
537
|
-
console.error(stop.note ?? body);
|
|
538
|
-
const is_warned = await warn_of_stop(stop, body, context);
|
|
539
|
-
await record_failure(stop, { ...context, started_at }, is_warned);
|
|
540
|
-
}
|
|
541
|
-
async function finish(stop, context, started_at) {
|
|
542
|
-
const body = stop_body(stop.reason);
|
|
543
|
-
if (body !== void 0) await warn_and_record(stop, body, context, started_at);
|
|
544
|
-
console.info(stop.reason);
|
|
545
|
-
return exit_code_of(stop.reason);
|
|
546
|
-
}
|
|
547
|
-
var run_wake_finish = {
|
|
548
|
-
finish,
|
|
549
|
-
record_failure,
|
|
550
|
-
stop_body,
|
|
551
|
-
warning_body
|
|
552
|
-
};
|
|
553
|
-
|
|
554
|
-
// scripts/run/wake/run-wake-ports.ts
|
|
555
|
-
import { randomUUID } from "node:crypto";
|
|
556
|
-
|
|
557
|
-
// scripts/run/wake/run-wake-codex.ts
|
|
558
|
-
import { statSync } from "node:fs";
|
|
559
|
-
function log_path(context, id, profile) {
|
|
560
|
-
return profile.provider === "openai" ? `${context.log_target}.${id}` : context.log_target;
|
|
561
|
-
}
|
|
562
|
-
function legacy_pid(context, invocation) {
|
|
563
|
-
const wake = run_wake.read_wake(context.wake_target);
|
|
564
|
-
if (wake?.invocation !== invocation) return void 0;
|
|
565
|
-
return wake.woke_pid;
|
|
566
|
-
}
|
|
567
|
-
function execution(context, carry) {
|
|
568
|
-
if (carry.owner_pid !== void 0 || carry.owner_session !== void 0) return carry;
|
|
569
|
-
return { ...carry, owner_pid: legacy_pid(context, carry.invocation) };
|
|
570
|
-
}
|
|
571
|
-
function modified_at(target) {
|
|
572
|
-
try {
|
|
573
|
-
return statSync(target).mtimeMs;
|
|
574
|
-
} catch {
|
|
575
|
-
return 0;
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
function launched_at(output) {
|
|
579
|
-
const header = output.split("\n").findLast((line) => line.startsWith("=== "));
|
|
580
|
-
return Date.parse(header?.slice("=== ".length).split(" \xB7 ", 1)[0] ?? "");
|
|
581
|
-
}
|
|
582
|
-
function launch_mark(context) {
|
|
583
|
-
const wake = run_wake.read_wake(context.wake_target);
|
|
584
|
-
return Date.parse(wake?.woke_at ?? wake?.launch_at ?? "");
|
|
585
|
-
}
|
|
586
|
-
function is_legacy_result(context, output) {
|
|
587
|
-
const marked = launch_mark(context);
|
|
588
|
-
const launched = launched_at(output);
|
|
589
|
-
return launched <= marked && marked - launched < run_wake.WAKE_GRACE_MS && modified_at(context.log_target) >= marked;
|
|
590
|
-
}
|
|
591
|
-
function result_of(context, carry) {
|
|
592
|
-
const target = carry.owner_session === void 0 ? context.log_target : `${context.log_target}.${carry.owner_session}`;
|
|
593
|
-
const output = stamp_file.read_stamp_text(target) ?? "";
|
|
594
|
-
const is_usable = carry.owner_session !== void 0 || is_legacy_result(context, output);
|
|
595
|
-
return agent_event.read(is_usable ? output : "");
|
|
596
|
-
}
|
|
597
|
-
function is_judgment(carry) {
|
|
598
|
-
return carry.scheduler_provider === "openai" && carry.is_owner_headless === true && carry.is_handed_off !== true;
|
|
599
|
-
}
|
|
600
|
-
function judgment(context) {
|
|
601
|
-
const read = run_carry.read_carry(context.carry_target);
|
|
602
|
-
return read.kind === "carried" && is_judgment(read.carry) ? read.carry : void 0;
|
|
603
|
-
}
|
|
604
|
-
function is_running(carry) {
|
|
605
|
-
return process_identity.is_same_process(carry.owner_pid, carry.owner_start) !== false;
|
|
606
|
-
}
|
|
607
|
-
function hand_back(context, carry) {
|
|
608
|
-
const wake = run_wake.read_wake(context.wake_target);
|
|
609
|
-
if (wake !== void 0) run_wake.update_wake(context.wake_target, run_wake.count_claim(wake));
|
|
610
|
-
const next = run_carry.apply_change(context.carry_target, carry, { cuts: 1 });
|
|
611
|
-
run_event_setup.emit_to(context.event_target, run_event_setup.STAGE.HANDING_OFF, /* @__PURE__ */ new Date());
|
|
612
|
-
return { kind: "carried", carry: next };
|
|
613
|
-
}
|
|
614
|
-
function read_carry(context) {
|
|
615
|
-
const read = run_carry.read_carry(context.carry_target);
|
|
616
|
-
if (read.kind !== "carried" || !is_judgment(read.carry)) return read;
|
|
617
|
-
const carry = execution(context, read.carry);
|
|
618
|
-
if (is_running(carry)) return { kind: "carried", carry };
|
|
619
|
-
if (result_of(context, carry).result === "completed") return hand_back(context, read.carry);
|
|
620
|
-
return read;
|
|
621
|
-
}
|
|
622
|
-
function finished_session(context) {
|
|
623
|
-
const read = read_carry(context);
|
|
624
|
-
if (read.kind !== "carried" || read.carry.is_handed_off !== true) return void 0;
|
|
625
|
-
return read.carry.owner_session;
|
|
626
|
-
}
|
|
627
|
-
function refresh(context) {
|
|
628
|
-
const session = finished_session(context);
|
|
629
|
-
if (session === void 0) return;
|
|
630
|
-
const wake = run_wake.read_wake(context.wake_target);
|
|
631
|
-
if (wake === void 0 || wake.spawned?.at(-1) !== session) return;
|
|
632
|
-
run_wake.update_wake(context.wake_target, run_wake.count_claim(wake));
|
|
633
|
-
}
|
|
634
|
-
function failure_note(result) {
|
|
635
|
-
return result.result === "completed" ? void 0 : `Codex judgment ended without a successful result: ${result.reason ?? result.result}`;
|
|
636
|
-
}
|
|
637
|
-
function failure(context) {
|
|
638
|
-
const owned = judgment(context);
|
|
639
|
-
if (owned === void 0) return void 0;
|
|
640
|
-
const carry = execution(context, owned);
|
|
641
|
-
if (carry.owner_pid === void 0 || is_running(carry)) return void 0;
|
|
642
|
-
return failure_note(result_of(context, carry));
|
|
643
|
-
}
|
|
644
|
-
var run_wake_codex = { failure, log_path, read_carry, refresh };
|
|
645
|
-
|
|
646
|
-
// scripts/run/run-step-section-driver.ts
|
|
647
|
-
var { DRIVER_SECTIONS, LOOP } = run_step_section_table;
|
|
648
|
-
function carried_text(found, root) {
|
|
649
|
-
return document_section_cli.section_text(found.document, found.heading, root) ?? `\`${found.document}\` \u2192 "${found.heading}"`;
|
|
650
|
-
}
|
|
651
|
-
function driver_sections(verdict, root = process.cwd()) {
|
|
652
|
-
const found = DRIVER_SECTIONS.find(([prefix]) => verdict.startsWith(prefix));
|
|
653
|
-
return (found?.[1] ?? [LOOP]).map((section) => carried_text(section, root)).join("\n");
|
|
654
|
-
}
|
|
655
|
-
var run_step_section_driver = { driver_sections };
|
|
656
|
-
|
|
657
|
-
// scripts/run/wake/run-wake-resume.ts
|
|
658
|
-
var RESUME_PREFIX = "resume: ";
|
|
659
|
-
var OWNER_FLAG = "--owner";
|
|
660
|
-
var DROPPED_FLAGS = /* @__PURE__ */ new Set([OWNER_FLAG, "--active"]);
|
|
661
|
-
var SUFFIX = ".resume";
|
|
662
|
-
var SUCCESS = 0;
|
|
663
|
-
function resume_of(out) {
|
|
664
|
-
return out.split("\n").find((line) => line.startsWith(RESUME_PREFIX));
|
|
665
|
-
}
|
|
666
|
-
function is_dropped(flags, index) {
|
|
667
|
-
return [flags[index], flags[index - 1]].some(
|
|
668
|
-
(flag) => flag !== void 0 && DROPPED_FLAGS.has(flag)
|
|
669
|
-
);
|
|
670
|
-
}
|
|
671
|
-
function state_flags(line) {
|
|
672
|
-
const flags = line.slice(RESUME_PREFIX.length).split(" ");
|
|
673
|
-
if (!flags.includes(OWNER_FLAG) || backlog_drive_args.parse(flags) === void 0) return void 0;
|
|
674
|
-
return flags.filter((_flag, index) => !is_dropped(flags, index));
|
|
675
|
-
}
|
|
676
|
-
function is_valid(line) {
|
|
677
|
-
return state_flags(line) !== void 0;
|
|
678
|
-
}
|
|
679
|
-
function resumed_args(base, line) {
|
|
680
|
-
const state = line === void 0 ? void 0 : state_flags(line);
|
|
681
|
-
return state === void 0 ? void 0 : [...base, ...state];
|
|
682
|
-
}
|
|
683
|
-
function key_of(carry) {
|
|
684
|
-
return `${carry.started_at} ${carry.invocation}`;
|
|
685
|
-
}
|
|
686
|
-
function resume_path(target) {
|
|
687
|
-
return `${target}${SUFFIX}`;
|
|
688
|
-
}
|
|
689
|
-
function stored(target, carry) {
|
|
690
|
-
const [key, line] = stamp_file.read_stamp_text(resume_path(target))?.split("\n") ?? [];
|
|
691
|
-
return key === key_of(carry) ? line : void 0;
|
|
692
|
-
}
|
|
693
|
-
function remember(target, carry, result) {
|
|
694
|
-
if (result.code !== SUCCESS) return;
|
|
695
|
-
const line = resume_of(result.out);
|
|
696
|
-
const source = resume_path(target);
|
|
697
|
-
if (line === void 0) stamp_file.remove_stamp(source);
|
|
698
|
-
else stamp_file.replace_text_stamp(source, `${key_of(carry)}
|
|
699
|
-
${line}`);
|
|
700
|
-
}
|
|
701
|
-
function name_beside(target, carry, pid) {
|
|
702
|
-
const line = stored(target, carry);
|
|
703
|
-
if (line === void 0) return;
|
|
704
|
-
const flags = backlog_drive_args.beside_flags(pid, process_identity.read_start(pid));
|
|
705
|
-
stamp_file.replace_text_stamp(resume_path(target), `${key_of(carry)}
|
|
706
|
-
${line} ${flags.join(" ")}`);
|
|
707
|
-
}
|
|
708
|
-
var run_wake_resume = { is_valid, name_beside, remember, resume_of, resumed_args, stored };
|
|
709
|
-
|
|
710
|
-
// scripts/run/wake/run-wake-driver.ts
|
|
711
|
-
var SUCCESS2 = 0;
|
|
712
|
-
var FIRST_LINE = 0;
|
|
713
|
-
var DETAILS_TAIL_LENGTH = 2048;
|
|
714
|
-
var TRUNCATION_MARK = "... ";
|
|
715
|
-
var ERROR_PREFIX = "error ";
|
|
716
|
-
var { WINDOW_MINUTES } = run_wake_window;
|
|
717
|
-
var WINDOW_VERDICT = "window";
|
|
718
|
-
var WATCH_VERDICT = "watch";
|
|
719
|
-
var { TRIAGE_VERDICT } = epic_triage;
|
|
720
|
-
function driver_args(invocation) {
|
|
721
|
-
const rebuilt = run_invocation.rebuild(invocation);
|
|
722
|
-
if (rebuilt !== invocation) return void 0;
|
|
723
|
-
const named_count = run_invocation.issue_numbers(rebuilt)?.length ?? 0;
|
|
724
|
-
return [
|
|
725
|
-
"backlog:drive",
|
|
726
|
-
"--owner",
|
|
727
|
-
String(process.pid),
|
|
728
|
-
"--window",
|
|
729
|
-
String(WINDOW_MINUTES),
|
|
730
|
-
...rebuilt.split(" ").slice(1 + named_count)
|
|
731
|
-
];
|
|
732
|
-
}
|
|
733
|
-
function is_final_stop(verdict, read) {
|
|
734
|
-
return verdict?.startsWith("stop") === true && read.kind === "none";
|
|
735
|
-
}
|
|
736
|
-
function details_tail(details) {
|
|
737
|
-
return details.length > DETAILS_TAIL_LENGTH ? `${TRUNCATION_MARK}${details.slice(-DETAILS_TAIL_LENGTH)}` : details;
|
|
738
|
-
}
|
|
739
|
-
var ALREADY_CLAIMED = "the carry record is already this session's, so run no pnpm josh run:carry --begin;";
|
|
740
|
-
var HAND_BACK = "then end the turn, which hands the loop back";
|
|
741
|
-
var NEXT_BY_VERDICT = [
|
|
742
|
-
[
|
|
743
|
-
"retrospective",
|
|
744
|
-
`run what pnpm josh run:step prints (the retrospective below), close it with pnpm josh run:carry --retrospective --summary "<result>", ${HAND_BACK}`
|
|
745
|
-
],
|
|
746
|
-
[
|
|
747
|
-
"merge human-review",
|
|
748
|
-
"stop the run, because the child stopped before its commit for a person (the section below)"
|
|
749
|
-
],
|
|
750
|
-
["epic #", `follow the named-issue sections below, ${HAND_BACK}`]
|
|
751
|
-
];
|
|
752
|
-
var NEXT_DEFAULT = `act on the result by the sections below, ${HAND_BACK}`;
|
|
753
|
-
var BESIDE = "\nNext: the carry record stays the supervisor's, whose driver keeps collecting and filling lanes beside this session";
|
|
754
|
-
var NEXT_BESIDE = `${BESIDE}, so run no pnpm josh run:carry; act on the result by the sections below, then end the turn`;
|
|
755
|
-
var BESIDE_VERDICTS = /* @__PURE__ */ new Set([TRIAGE_VERDICT, WATCH_VERDICT]);
|
|
756
|
-
function next_move(verdict) {
|
|
757
|
-
if (verdict === TRIAGE_VERDICT) return NEXT_BESIDE;
|
|
758
|
-
if (verdict === WATCH_VERDICT) {
|
|
759
|
-
return `${BESIDE}. ${backlog_drive_retrospective_unit.brief_of(String(process.pid))} Then end the turn`;
|
|
760
|
-
}
|
|
761
|
-
const found = NEXT_BY_VERDICT.find(([prefix]) => verdict.startsWith(prefix));
|
|
762
|
-
return `
|
|
763
|
-
Next: ${ALREADY_CLAIMED} ${found?.[1] ?? NEXT_DEFAULT}`;
|
|
764
|
-
}
|
|
765
|
-
function handoff_material(verdict, resume, details) {
|
|
766
|
-
const context = details === "" ? "" : `
|
|
767
|
-
Details: ${details_tail(details)}`;
|
|
768
|
-
const epic = verdict.startsWith("epic #") ? "\nThe named item is an epic. Follow backlogrun-steps.md named epic procedure; do not launch the epic root as a fullrun child. After all children merge or park, record the root with pnpm josh run:carry --done <epic-number> before continuing to the next named item." : "";
|
|
769
|
-
const sections = `
|
|
770
|
-
${run_step_section_driver.driver_sections(verdict)}`;
|
|
771
|
-
return `Driver result: ${verdict}
|
|
772
|
-
${resume}${epic}${next_move(verdict)}${sections}${context}`;
|
|
773
|
-
}
|
|
774
|
-
function judged(verdict, resume, details) {
|
|
775
|
-
if (!run_wake_resume.is_valid(resume)) {
|
|
776
|
-
return { kind: "failed", note: `backlog:drive returned an invalid resume line: ${resume}` };
|
|
777
|
-
}
|
|
778
|
-
const kind = BESIDE_VERDICTS.has(verdict) ? "triage" : "judgment";
|
|
779
|
-
return { kind, material: handoff_material(verdict, resume, details) };
|
|
780
|
-
}
|
|
781
|
-
function driver_result(out, read, details = "") {
|
|
782
|
-
const lines = out.split("\n");
|
|
783
|
-
const verdict = lines[FIRST_LINE];
|
|
784
|
-
if (is_final_stop(verdict, read)) return { kind: "finished" };
|
|
785
|
-
const resume = run_wake_resume.resume_of(out);
|
|
786
|
-
if (verdict === void 0 || resume === void 0) {
|
|
787
|
-
return { kind: "failed", note: `backlog:drive returned an incomplete result: ${out}` };
|
|
788
|
-
}
|
|
789
|
-
return judged(verdict, resume, details);
|
|
790
|
-
}
|
|
791
|
-
function cause_of(out) {
|
|
792
|
-
const errors = out.split("\n").filter((line) => line.startsWith(ERROR_PREFIX));
|
|
793
|
-
return errors.length > 0 ? errors.join("\n") : details_tail(out);
|
|
794
|
-
}
|
|
795
|
-
function failure_note2(result) {
|
|
796
|
-
return [cause_of(result.out), details_tail(result.err ?? "")].filter(Boolean).join("\n");
|
|
797
|
-
}
|
|
798
|
-
function read_result(result, target) {
|
|
799
|
-
if (result === void 0) return { kind: "released" };
|
|
800
|
-
if (result.code !== SUCCESS2) return { kind: "failed", note: failure_note2(result) };
|
|
801
|
-
return driver_result(result.out, run_carry.read_carry(target), result.err);
|
|
802
|
-
}
|
|
803
|
-
function standing_of(carry) {
|
|
804
|
-
if (carry.is_handed_off === true) return "adopt";
|
|
805
|
-
if (run_carry.is_held_by_self(carry)) return "kept";
|
|
806
|
-
return run_carry.is_held_by_another(carry) ? "refused" : "adopt";
|
|
807
|
-
}
|
|
808
|
-
function claim_record(target, invocation) {
|
|
809
|
-
const current = run_carry.read_carry(target);
|
|
810
|
-
if (current.kind !== "carried" || current.carry.invocation !== invocation) return false;
|
|
811
|
-
const standing = standing_of(current.carry);
|
|
812
|
-
if (standing !== "adopt") return standing === "kept";
|
|
813
|
-
const owner = {
|
|
814
|
-
...run_carry.owner_of(process.pid),
|
|
815
|
-
provider: current.carry.scheduler_provider
|
|
816
|
-
};
|
|
817
|
-
return run_carry.adopt_carry(target, current.carry, owner) !== void 0;
|
|
818
|
-
}
|
|
819
|
-
var RERUN_VERDICTS = ["merge busy", "merge retry"];
|
|
820
|
-
var RERUN_LIMIT = 10;
|
|
821
|
-
var RERUN_PAUSE_MS = 6e4;
|
|
822
|
-
async function pause(ms) {
|
|
823
|
-
await new Promise((resolve) => {
|
|
824
|
-
setTimeout(resolve, ms);
|
|
825
|
-
});
|
|
826
|
-
}
|
|
827
|
-
function is_verdict(result, entries) {
|
|
828
|
-
const verdict = result.out.split("\n", 1)[FIRST_LINE] ?? "";
|
|
829
|
-
return result.code === SUCCESS2 && entries.some((entry) => verdict === entry || verdict.startsWith(`${entry} `));
|
|
830
|
-
}
|
|
831
|
-
function rerun_args(pass, result, remaining) {
|
|
832
|
-
const is_left = remaining > 0;
|
|
833
|
-
if (!is_left || !is_verdict(result, RERUN_VERDICTS)) return void 0;
|
|
834
|
-
return run_wake_resume.resumed_args(pass.base, run_wake_resume.resume_of(result.out));
|
|
835
|
-
}
|
|
836
|
-
async function run_driver(pass, args, remaining) {
|
|
837
|
-
const result = await josh_command.josh_run(args, true);
|
|
838
|
-
run_wake_resume.remember(pass.target, pass.carry, result);
|
|
839
|
-
if (is_verdict(result, [WINDOW_VERDICT])) return void 0;
|
|
840
|
-
const next = rerun_args(pass, result, remaining);
|
|
841
|
-
if (next === void 0) return result;
|
|
842
|
-
await pass.wait(RERUN_PAUSE_MS);
|
|
843
|
-
if (run_carry.read_carry(pass.target).kind !== "carried") return void 0;
|
|
844
|
-
return await run_driver(pass, next, remaining - 1);
|
|
845
|
-
}
|
|
846
|
-
async function deferred_triage(result, wait, is_parent_planning) {
|
|
847
|
-
if (result === void 0 || !is_verdict(result, [TRIAGE_VERDICT]) || !is_parent_planning()) {
|
|
848
|
-
return result;
|
|
849
|
-
}
|
|
850
|
-
await wait(RERUN_PAUSE_MS);
|
|
851
|
-
return void 0;
|
|
852
|
-
}
|
|
853
|
-
async function announced(result) {
|
|
854
|
-
if (result.kind === "judgment") await run_event_setup.emit(run_event_setup.STAGE.JUDGING);
|
|
855
|
-
return result;
|
|
856
|
-
}
|
|
857
|
-
function never_planning() {
|
|
858
|
-
return false;
|
|
859
|
-
}
|
|
860
|
-
function refused(note) {
|
|
861
|
-
return { kind: "failed", note };
|
|
862
|
-
}
|
|
863
|
-
function prepare(target, wait) {
|
|
864
|
-
const read = run_carry.read_carry(target);
|
|
865
|
-
if (read.kind !== "carried") return refused("The carry record changed.");
|
|
866
|
-
const base = driver_args(read.carry.invocation);
|
|
867
|
-
if (base === void 0) return refused("The carried invocation is invalid.");
|
|
868
|
-
const kept = run_wake_resume.stored(target, read.carry);
|
|
869
|
-
const args = kept === void 0 ? base : run_wake_resume.resumed_args(base, kept);
|
|
870
|
-
if (args === void 0) return refused("The kept driver resume line is invalid.");
|
|
871
|
-
return { kind: "ready", pass: { target, carry: read.carry, base, wait }, args };
|
|
872
|
-
}
|
|
873
|
-
async function drive_with(target, wait, is_parent_planning) {
|
|
874
|
-
const prepared = prepare(target, wait);
|
|
875
|
-
if (prepared.kind === "failed") return prepared;
|
|
876
|
-
if (!claim_record(target, prepared.pass.carry.invocation)) {
|
|
877
|
-
return { kind: "failed", note: "The driver could not claim the carry record." };
|
|
878
|
-
}
|
|
879
|
-
await run_event_setup.emit(run_event_setup.STAGE.HANDING_OFF);
|
|
880
|
-
const result = await deferred_triage(
|
|
881
|
-
await run_driver(prepared.pass, prepared.args, RERUN_LIMIT),
|
|
882
|
-
wait,
|
|
883
|
-
is_parent_planning
|
|
884
|
-
);
|
|
885
|
-
return await announced(read_result(result, target));
|
|
886
|
-
}
|
|
887
|
-
async function drive(target, wait = pause, is_parent_planning = never_planning) {
|
|
888
|
-
return await drive_with(target, wait, is_parent_planning);
|
|
889
|
-
}
|
|
890
|
-
var run_wake_driver = { RERUN_LIMIT, drive, driver_args, driver_result };
|
|
891
|
-
|
|
892
|
-
// scripts/run/wake/run-wake-ports.ts
|
|
893
|
-
var UNSAFE_INVOCATION_NOTE = "the carried invocation is not one this supervisor can continue \u2014 it is neither a backlogrun nor a queue it can rebuild, or it carries text that may not be passed to a command line";
|
|
894
|
-
function note_to_stderr(note) {
|
|
895
|
-
console.error(`wake: ${note}`);
|
|
896
|
-
}
|
|
897
|
-
function say_session_running(context) {
|
|
898
|
-
run_event_setup.emit_to(context.event_target, run_event_setup.STAGE.SESSION, /* @__PURE__ */ new Date());
|
|
899
|
-
}
|
|
900
|
-
function session_owner(context, profile, session_id) {
|
|
901
|
-
return run_wake_handoff.session_owner({
|
|
902
|
-
worktree: context.worktree,
|
|
903
|
-
session_id,
|
|
904
|
-
provider: profile.provider
|
|
905
|
-
});
|
|
906
|
-
}
|
|
907
|
-
function launch_session(context, invocation, profile, session) {
|
|
908
|
-
const built = run_wake_session.wake_argv(invocation, profile, context.worktree, session);
|
|
909
|
-
if (built === void 0) return { kind: "failed", note: UNSAFE_INVOCATION_NOTE };
|
|
910
|
-
if (built.kind === "rejected") return { kind: "failed", note: built.note };
|
|
911
|
-
const target = {
|
|
912
|
-
cwd: context.worktree,
|
|
913
|
-
env: session.environment,
|
|
914
|
-
log_path: run_wake_codex.log_path(context, session.id, profile)
|
|
915
|
-
};
|
|
916
|
-
if (profile.provider === "openai") note_to_stderr(`session output: ${target.log_path}`);
|
|
917
|
-
return run_wake_session.launch({ argv: built.argv, ...target, profile }, note_to_stderr);
|
|
918
|
-
}
|
|
919
|
-
function wake_beside(context, invocation, profile, session) {
|
|
920
|
-
const result = launch_session(context, invocation, profile, session);
|
|
921
|
-
const read = run_carry.read_carry(context.carry_target);
|
|
922
|
-
if (result.kind === "launched" && read.kind === "carried") {
|
|
923
|
-
run_wake_resume.name_beside(context.carry_target, read.carry, result.pid);
|
|
924
|
-
}
|
|
925
|
-
return result;
|
|
926
|
-
}
|
|
927
|
-
function wake_session(context, invocation, profile, session) {
|
|
928
|
-
const result = launch_session(context, invocation, profile, session);
|
|
929
|
-
if (result.kind === "launched") {
|
|
930
|
-
run_wake_handoff.hand_on(
|
|
931
|
-
context.carry_target,
|
|
932
|
-
session_owner(context, profile, session.id),
|
|
933
|
-
result.pid
|
|
934
|
-
);
|
|
935
|
-
say_session_running(context);
|
|
936
|
-
}
|
|
937
|
-
return result;
|
|
938
|
-
}
|
|
939
|
-
async function retry_closes2() {
|
|
940
|
-
await lane_close.retry_closes();
|
|
941
|
-
const notes = await lane_withdraw_closed.withdraw_closed();
|
|
942
|
-
for (const note of notes) note_to_stderr(note);
|
|
943
|
-
}
|
|
944
|
-
function is_session_at_work(carry) {
|
|
945
|
-
return run_carry.is_held_by_another(carry) && run_wake_handoff.has_session_begun(carry);
|
|
946
|
-
}
|
|
947
|
-
function session_ports(context, profile) {
|
|
948
|
-
return {
|
|
949
|
-
new_session_id: () => randomUUID(),
|
|
950
|
-
hand_off: (session_id) => {
|
|
951
|
-
run_wake_handoff.hand_to(context.carry_target, session_owner(context, profile, session_id));
|
|
952
|
-
},
|
|
953
|
-
wake: (invocation, session_id, material) => wake_session(context, invocation, profile, {
|
|
954
|
-
id: session_id,
|
|
955
|
-
material,
|
|
956
|
-
environment: profile.provider === "openai" ? { ...run_headless.environment(), [run_carry_session.KEY]: session_id } : run_headless.environment()
|
|
957
|
-
}),
|
|
958
|
-
wake_beside: (invocation, session_id, material) => wake_beside(context, invocation, profile, {
|
|
959
|
-
id: session_id,
|
|
960
|
-
material,
|
|
961
|
-
environment: run_headless.beside_environment()
|
|
962
|
-
})
|
|
963
|
-
};
|
|
964
|
-
}
|
|
965
|
-
function ports_for(context, profile, is_code_stale = async () => false) {
|
|
966
|
-
function is_planning() {
|
|
967
|
-
return backlogrun_launch.running_parent(context.git_directory) !== void 0;
|
|
968
|
-
}
|
|
969
|
-
return {
|
|
970
|
-
is_code_stale,
|
|
971
|
-
refresh: () => {
|
|
972
|
-
run_wake_codex.refresh(context);
|
|
973
|
-
},
|
|
974
|
-
session_failure: () => run_wake_codex.failure(context),
|
|
975
|
-
read_carry: () => run_wake_codex.read_carry(context),
|
|
976
|
-
is_owner_live: (read) => read.kind === "carried" && is_session_at_work(read.carry),
|
|
977
|
-
has_work: async () => true,
|
|
978
|
-
...session_ports(context, profile),
|
|
979
|
-
drive: async () => await run_wake_driver.drive(context.carry_target, poll.sleep, is_planning),
|
|
980
|
-
sleep: poll.sleep,
|
|
981
|
-
now: () => /* @__PURE__ */ new Date(),
|
|
982
|
-
retry_closes: retry_closes2
|
|
983
|
-
};
|
|
984
|
-
}
|
|
985
|
-
var run_wake_ports = { note_to_stderr, ports_for };
|
|
986
|
-
|
|
987
|
-
// scripts/lane/claude-lane-broker.ts
|
|
988
|
-
var SCAN_INTERVAL_MS = 5e3;
|
|
989
|
-
function is_served(lane) {
|
|
990
|
-
return !lane.is_stranded && !lane_relaunch.is_openai_lane(lane);
|
|
991
|
-
}
|
|
992
|
-
async function hold_server(lane, held) {
|
|
993
|
-
try {
|
|
994
|
-
await lane_session_broker.with_server(lane, async () => {
|
|
995
|
-
await held;
|
|
996
|
-
});
|
|
997
|
-
} catch (error) {
|
|
998
|
-
error_text.trace_swallowed("claude_lane_broker.hold_server", error);
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
function serve_lane(lane) {
|
|
1002
|
-
const release = { stop: () => void 0 };
|
|
1003
|
-
const held = new Promise((resolve) => {
|
|
1004
|
-
release.stop = resolve;
|
|
1005
|
-
});
|
|
1006
|
-
return { stop: release.stop, done: hold_server(lane, held) };
|
|
1007
|
-
}
|
|
1008
|
-
async function forget_when_done(served, issue, entry) {
|
|
1009
|
-
await entry.done;
|
|
1010
|
-
if (served.get(issue) === entry) served.delete(issue);
|
|
1011
|
-
}
|
|
1012
|
-
function close_gone(served, open) {
|
|
1013
|
-
for (const [issue, entry] of served) {
|
|
1014
|
-
if (open.has(issue)) {
|
|
1015
|
-
continue;
|
|
1016
|
-
}
|
|
1017
|
-
entry.stop();
|
|
1018
|
-
void forget_when_done(served, issue, entry);
|
|
1019
|
-
}
|
|
1020
|
-
}
|
|
1021
|
-
function open_new(served, lanes) {
|
|
1022
|
-
for (const lane of lanes) {
|
|
1023
|
-
if (!served.has(lane.issue)) served.set(lane.issue, serve_lane(lane));
|
|
1024
|
-
}
|
|
1025
|
-
}
|
|
1026
|
-
async function scan(served, list2) {
|
|
1027
|
-
try {
|
|
1028
|
-
const listed = await list2();
|
|
1029
|
-
const lanes = listed.filter((lane) => is_served(lane));
|
|
1030
|
-
close_gone(served, new Set(lanes.map((lane) => lane.issue)));
|
|
1031
|
-
open_new(served, lanes);
|
|
1032
|
-
} catch (error) {
|
|
1033
|
-
error_text.trace_swallowed("claude_lane_broker.scan", error);
|
|
1034
|
-
}
|
|
1035
|
-
}
|
|
1036
|
-
async function scan_after(previous, served, list2) {
|
|
1037
|
-
await previous;
|
|
1038
|
-
await scan(served, list2);
|
|
1039
|
-
}
|
|
1040
|
-
function start(list2 = lane_registry.list_lanes) {
|
|
1041
|
-
const served = /* @__PURE__ */ new Map();
|
|
1042
|
-
const state = { scanning: scan(served, list2) };
|
|
1043
|
-
const timer = setInterval(() => {
|
|
1044
|
-
state.scanning = scan_after(state.scanning, served, list2);
|
|
1045
|
-
}, SCAN_INTERVAL_MS).unref();
|
|
1046
|
-
return async () => {
|
|
1047
|
-
clearInterval(timer);
|
|
1048
|
-
await state.scanning;
|
|
1049
|
-
close_gone(served, /* @__PURE__ */ new Set());
|
|
1050
|
-
await Promise.all(
|
|
1051
|
-
[...served.values()].map(async (entry) => {
|
|
1052
|
-
await entry.done;
|
|
1053
|
-
})
|
|
1054
|
-
);
|
|
1055
|
-
};
|
|
1056
|
-
}
|
|
1057
|
-
async function serve_during(run2, list2 = lane_registry.list_lanes) {
|
|
1058
|
-
const stop = start(list2);
|
|
1059
|
-
try {
|
|
1060
|
-
return await run2();
|
|
1061
|
-
} finally {
|
|
1062
|
-
await stop();
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
var claude_lane_broker = { SCAN_INTERVAL_MS, serve_during, start };
|
|
1066
|
-
|
|
1067
|
-
// scripts/run/wake/run-wake-restart.ts
|
|
1068
|
-
var RESTART_LIMIT = 3;
|
|
1069
|
-
function is_restartable(stop, restarts, ports) {
|
|
1070
|
-
return stop.reason === run_wake_loop.FAILED_REASON && restarts < RESTART_LIMIT && ports.is_resumable();
|
|
1071
|
-
}
|
|
1072
|
-
function restart_note(stop, restarts) {
|
|
1073
|
-
return `the supervisor failed (${stop.note ?? "no note"}); restarting it, ${String(restarts + 1)} of ${String(RESTART_LIMIT)}`;
|
|
1074
|
-
}
|
|
1075
|
-
function with_restart_count(stop, restarts) {
|
|
1076
|
-
if (restarts === 0 || stop.reason !== run_wake_loop.FAILED_REASON) return stop;
|
|
1077
|
-
return {
|
|
1078
|
-
...stop,
|
|
1079
|
-
note: [stop.note, `after ${String(restarts)} automatic restarts`].filter(Boolean).join("\n")
|
|
1080
|
-
};
|
|
1081
|
-
}
|
|
1082
|
-
async function supervise(ports, restarts = 0) {
|
|
1083
|
-
const stop = await ports.pass();
|
|
1084
|
-
if (!is_restartable(stop, restarts, ports)) return with_restart_count(stop, restarts);
|
|
1085
|
-
ports.note(restart_note(stop, restarts));
|
|
1086
|
-
await ports.pause();
|
|
1087
|
-
return await supervise(ports, restarts + 1);
|
|
1088
|
-
}
|
|
1089
|
-
var run_wake_restart = { RESTART_LIMIT, supervise };
|
|
1090
|
-
|
|
1091
|
-
// scripts/run/wake/run-wake-supervise.ts
|
|
1092
|
-
function restart_ports(target) {
|
|
1093
|
-
const { context, ports, interval_ms } = target;
|
|
1094
|
-
return {
|
|
1095
|
-
pass: async () => await run_wake_loop.run_loop(context.wake_target, ports, interval_ms),
|
|
1096
|
-
is_resumable: () => run_carry.read_carry(context.carry_target).kind === "carried",
|
|
1097
|
-
pause: async () => {
|
|
1098
|
-
await poll.sleep(interval_ms);
|
|
1099
|
-
},
|
|
1100
|
-
note: target.note
|
|
1101
|
-
};
|
|
1102
|
-
}
|
|
1103
|
-
async function supervise2(target) {
|
|
1104
|
-
return await claude_lane_broker.serve_during(
|
|
1105
|
-
async () => await run_wake_restart.supervise(restart_ports(target))
|
|
1106
|
-
);
|
|
1107
|
-
}
|
|
1108
|
-
var run_wake_supervise = { supervise: supervise2 };
|
|
1109
|
-
|
|
1110
|
-
// scripts/run/wake/run-wake-cli.ts
|
|
1111
|
-
var __josh_meta = import.meta;
|
|
1112
|
-
var __josh_source_url = new URL("../../scripts/run/wake/run-wake-cli.ts", __josh_meta.url).href;
|
|
1113
|
-
var __josh_source_filename = __josh_file_path(__josh_source_url);
|
|
1114
|
-
var __josh_source_dirname = __josh_dirname(__josh_source_filename);
|
|
1115
|
-
var SUCCESS_EXIT_CODE2 = 0;
|
|
1116
|
-
var FAILURE_EXIT_CODE2 = 1;
|
|
1117
|
-
var ONE_GROUP = 1;
|
|
1118
|
-
var MAX_INTERVAL_SECONDS = 3600;
|
|
1119
|
-
var SCRIPT_PATH = fileURLToPath(new URL("run-wake-main.ts", __josh_source_url));
|
|
1120
|
-
var STARTED_VERDICT = "started";
|
|
1121
|
-
var RUNNING_VERDICT = "running";
|
|
1122
|
-
var STOPPED_VERDICT = "stopped";
|
|
1123
|
-
var SUPERVISING_VERDICT = "supervising";
|
|
1124
|
-
var STALE_VERDICT = "stale";
|
|
1125
|
-
var NONE_VERDICT = "none";
|
|
1126
|
-
var UNKNOWN_VERDICT = "unknown";
|
|
1127
|
-
var FAILED_VERDICT = "failed";
|
|
1128
|
-
var NO_PROFILE_NOTE = "the scheduler profile could not be resolved";
|
|
1129
|
-
var RELOAD_FAILED_NOTE = "The supervisor's code changed, but the supervisor to replace it did not start";
|
|
1130
|
-
var TAKEOVER_NOTES = {
|
|
1131
|
-
died: "it exited before it claimed the run",
|
|
1132
|
-
unclaimed: "it did not claim the run in time, so it was stopped"
|
|
1133
|
-
};
|
|
1134
|
-
var SUPERSEDED_RESULT = "superseded";
|
|
1135
|
-
var REMOVED_RESULT = "removed";
|
|
1136
|
-
var STOPPED_STOP = { reason: "stopped", note: void 0 };
|
|
1137
|
-
var SUPERSEDED_NOTE = "another supervisor now holds the record, so it was left alone; this loop is the superseded one";
|
|
1138
|
-
var USAGE = "Usage: josh run:wake --start | --list | --stop | --loop [--interval <seconds>]";
|
|
1139
|
-
var OPTIONS = {
|
|
1140
|
-
interval: { type: "string" },
|
|
1141
|
-
list: { type: "boolean" },
|
|
1142
|
-
loop: { type: "boolean" },
|
|
1143
|
-
start: { type: "boolean" },
|
|
1144
|
-
stop: { type: "boolean" }
|
|
1145
|
-
};
|
|
1146
|
-
function report(verdict, exit_code = SUCCESS_EXIT_CODE2) {
|
|
1147
|
-
console.info(verdict);
|
|
1148
|
-
return exit_code;
|
|
1149
|
-
}
|
|
1150
|
-
function usage() {
|
|
1151
|
-
console.error(USAGE);
|
|
1152
|
-
return FAILURE_EXIT_CODE2;
|
|
1153
|
-
}
|
|
1154
|
-
var { note_to_stderr: note_to_stderr2 } = run_wake_ports;
|
|
1155
|
-
function to_interval_ms(value) {
|
|
1156
|
-
if (typeof value !== "string") return run_wake_window.PASS_INTERVAL_MS;
|
|
1157
|
-
const seconds = cli_flags.to_positive(value);
|
|
1158
|
-
return seconds === void 0 || seconds > MAX_INTERVAL_SECONDS ? void 0 : seconds * MS_PER_SECOND;
|
|
1159
|
-
}
|
|
1160
|
-
function group_count(values) {
|
|
1161
|
-
const verbs = [values.start, values.stop, values.list, values.loop];
|
|
1162
|
-
return verbs.filter((flag) => flag === true).length;
|
|
1163
|
-
}
|
|
1164
|
-
function context_of2(directory) {
|
|
1165
|
-
return run_wake_describe.context_of(directory, note_to_stderr2);
|
|
1166
|
-
}
|
|
1167
|
-
async function resolve_context() {
|
|
1168
|
-
const directory = await run_carry.repository_directory();
|
|
1169
|
-
return directory === void 0 ? void 0 : context_of2(directory);
|
|
1170
|
-
}
|
|
1171
|
-
function refuse_without_carry(kind) {
|
|
1172
|
-
console.error(`No carried run here to supervise \u2014 \`pnpm josh run:carry --json\` says ${kind}.`);
|
|
1173
|
-
return report(NONE_VERDICT, FAILURE_EXIT_CODE2);
|
|
1174
|
-
}
|
|
1175
|
-
function launch_supervisor(context, interval, profile) {
|
|
1176
|
-
if (profile === void 0) return { kind: "failed", note: NO_PROFILE_NOTE };
|
|
1177
|
-
const argv2 = run_wake_session.supervisor_argv(SCRIPT_PATH, interval);
|
|
1178
|
-
return run_wake_session.launch(
|
|
1179
|
-
{
|
|
1180
|
-
argv: argv2,
|
|
1181
|
-
cwd: context.worktree,
|
|
1182
|
-
log_path: context.log_target,
|
|
1183
|
-
env: run_wake_session.supervisor_environment(profile)
|
|
1184
|
-
},
|
|
1185
|
-
note_to_stderr2
|
|
1186
|
-
);
|
|
1187
|
-
}
|
|
1188
|
-
function start_for_launch(git_directory, provider) {
|
|
1189
|
-
const resolved = run_wake_session.chosen_profile(provider);
|
|
1190
|
-
if (resolved.kind === "rejected") return { kind: "failed", note: resolved.note };
|
|
1191
|
-
return launch_supervisor(context_of2(git_directory), void 0, resolved.profile);
|
|
1192
|
-
}
|
|
1193
|
-
function spawn_supervisor(context, interval, profile) {
|
|
1194
|
-
const result = launch_supervisor(context, interval, profile);
|
|
1195
|
-
if (result.kind === "failed") {
|
|
1196
|
-
console.error(`Could not start the supervisor: ${result.note}`);
|
|
1197
|
-
return report(FAILED_VERDICT, FAILURE_EXIT_CODE2);
|
|
1198
|
-
}
|
|
1199
|
-
console.error(
|
|
1200
|
-
`Supervisor started as process ${String(result.pid)}. Stop it with \`${run_wake_describe.STOP_COMMAND}\`.`
|
|
1201
|
-
);
|
|
1202
|
-
return report(STARTED_VERDICT);
|
|
1203
|
-
}
|
|
1204
|
-
function start2(context, interval) {
|
|
1205
|
-
const read = run_carry.read_carry(context.carry_target);
|
|
1206
|
-
if (read.kind !== "carried") return refuse_without_carry(read.kind);
|
|
1207
|
-
const existing = run_wake.read_wake(context.wake_target);
|
|
1208
|
-
if (existing !== void 0 && run_wake.is_supervisor_live(existing)) {
|
|
1209
|
-
console.error(run_wake_describe.describe_wake_cited(existing, context));
|
|
1210
|
-
return report(RUNNING_VERDICT);
|
|
1211
|
-
}
|
|
1212
|
-
return spawn_supervisor(context, interval, run_wake_session.scheduler_profile());
|
|
1213
|
-
}
|
|
1214
|
-
function restart_supervisor(git_directory, profile) {
|
|
1215
|
-
const chosen = profile ?? run_wake_session.scheduler_profile();
|
|
1216
|
-
return spawn_supervisor(context_of2(git_directory), void 0, chosen);
|
|
1217
|
-
}
|
|
1218
|
-
function tidy_up(target) {
|
|
1219
|
-
const tidied = run_wake.tidy_own_wake(target);
|
|
1220
|
-
if (tidied === SUPERSEDED_RESULT) note_to_stderr2(SUPERSEDED_NOTE);
|
|
1221
|
-
return tidied;
|
|
1222
|
-
}
|
|
1223
|
-
function code_check(is_stale) {
|
|
1224
|
-
return async () => !lane_session_broker.is_answering() && await is_stale();
|
|
1225
|
-
}
|
|
1226
|
-
function reload_failed(note) {
|
|
1227
|
-
return { reason: run_wake_loop.FAILED_REASON, note: `${RELOAD_FAILED_NOTE}: ${note}` };
|
|
1228
|
-
}
|
|
1229
|
-
function as_not_handed_on(stop) {
|
|
1230
|
-
return stop.reason === run_wake_loop.RELOAD_REASON ? STOPPED_STOP : stop;
|
|
1231
|
-
}
|
|
1232
|
-
async function reload(context, interval_ms, profile) {
|
|
1233
|
-
const interval = String(Math.round(interval_ms / MS_PER_SECOND));
|
|
1234
|
-
const result = launch_supervisor(context, interval, profile);
|
|
1235
|
-
if (result.kind === "failed") return reload_failed(result.note);
|
|
1236
|
-
const ports = run_wake_takeover.ports_of(context.wake_target);
|
|
1237
|
-
const takeover = await run_wake_takeover.await_takeover(result.pid, ports);
|
|
1238
|
-
if (takeover !== "taken") return reload_failed(TAKEOVER_NOTES[takeover]);
|
|
1239
|
-
await run_event_stream_emit.emit(
|
|
1240
|
-
run_event_stream.EVENT_KIND.NOTE,
|
|
1241
|
-
`The supervisor's code changed on main, so process ${String(process.pid)} handed the run to process ${String(result.pid)} on the new code.`
|
|
1242
|
-
);
|
|
1243
|
-
return { reason: run_wake_loop.RELOAD_REASON, note: void 0 };
|
|
1244
|
-
}
|
|
1245
|
-
async function supervised(context, interval_ms, profile) {
|
|
1246
|
-
const source = run_wake_code.source_of(context.worktree, SCRIPT_PATH);
|
|
1247
|
-
const is_stale = code_check(await run_wake_code.watch(source, lane_session_broker.take_refusal));
|
|
1248
|
-
const ports = run_wake_ports.ports_for(context, profile, is_stale);
|
|
1249
|
-
const stop = await run_wake_supervise.supervise({
|
|
1250
|
-
context,
|
|
1251
|
-
ports,
|
|
1252
|
-
interval_ms,
|
|
1253
|
-
note: note_to_stderr2
|
|
1254
|
-
});
|
|
1255
|
-
if (tidy_up(context.wake_target) !== REMOVED_RESULT) return as_not_handed_on(stop);
|
|
1256
|
-
if (stop.reason !== run_wake_loop.RELOAD_REASON) return stop;
|
|
1257
|
-
return await reload(context, interval_ms, profile);
|
|
1258
|
-
}
|
|
1259
|
-
async function loop(context, interval_ms) {
|
|
1260
|
-
const profile = run_wake_session.scheduler_profile();
|
|
1261
|
-
if (profile === void 0) return report(FAILED_VERDICT, FAILURE_EXIT_CODE2);
|
|
1262
|
-
const claimed = await run_wake_await.claim_run(context, profile, interval_ms);
|
|
1263
|
-
if (claimed.kind === "running") return report(RUNNING_VERDICT);
|
|
1264
|
-
if (claimed.kind === "refused") return refuse_without_carry(claimed.carry_kind);
|
|
1265
|
-
run_wake_session.keep_awake(process.pid);
|
|
1266
|
-
const stop = await supervised(context, interval_ms, claimed.wake.profile ?? profile);
|
|
1267
|
-
return await run_wake_finish.finish(stop, context, claimed.carry.started_at);
|
|
1268
|
-
}
|
|
1269
|
-
function list(context) {
|
|
1270
|
-
const wake = run_wake.read_wake(context.wake_target);
|
|
1271
|
-
if (wake === void 0) return report(NONE_VERDICT);
|
|
1272
|
-
console.error(run_wake_describe.describe_wake_cited(wake, context));
|
|
1273
|
-
return report(run_wake.is_supervisor_live(wake) ? SUPERVISING_VERDICT : STALE_VERDICT);
|
|
1274
|
-
}
|
|
1275
|
-
function stop_supervisor(context) {
|
|
1276
|
-
const stopped2 = run_wake_stop.stop(context.wake_target);
|
|
1277
|
-
return report(stopped2 === void 0 ? NONE_VERDICT : STOPPED_VERDICT);
|
|
1278
|
-
}
|
|
1279
|
-
async function dispatch(values, context, interval_ms) {
|
|
1280
|
-
if (values.loop === true) return await loop(context, interval_ms);
|
|
1281
|
-
if (values.start === true) return start2(context, cli_flags.string_of(values.interval));
|
|
1282
|
-
if (values.stop === true) return stop_supervisor(context);
|
|
1283
|
-
return list(context);
|
|
1284
|
-
}
|
|
1285
|
-
async function run(argv2) {
|
|
1286
|
-
const values = cli_flags.values_of(argv2, OPTIONS);
|
|
1287
|
-
if (values === void 0 || group_count(values) !== ONE_GROUP) return usage();
|
|
1288
|
-
const interval_ms = to_interval_ms(values.interval);
|
|
1289
|
-
if (interval_ms === void 0) return usage();
|
|
1290
|
-
const context = await resolve_context();
|
|
1291
|
-
if (context === void 0) return report(UNKNOWN_VERDICT, FAILURE_EXIT_CODE2);
|
|
1292
|
-
return await dispatch(values, context, interval_ms);
|
|
1293
|
-
}
|
|
1294
|
-
var run_wake_cli = {
|
|
1295
|
-
FAILED_VERDICT,
|
|
1296
|
-
NONE_VERDICT,
|
|
1297
|
-
RUNNING_VERDICT,
|
|
1298
|
-
SCRIPT_PATH,
|
|
1299
|
-
STALE_VERDICT,
|
|
1300
|
-
STOPPED_VERDICT,
|
|
1301
|
-
SUPERVISING_VERDICT,
|
|
1302
|
-
UNKNOWN_VERDICT,
|
|
1303
|
-
USAGE,
|
|
1304
|
-
RELOAD_FAILED_NOTE,
|
|
1305
|
-
reload,
|
|
1306
|
-
restart_supervisor,
|
|
1307
|
-
run,
|
|
1308
|
-
start_for_launch,
|
|
1309
|
-
supervised
|
|
1310
|
-
};
|
|
1311
|
-
|
|
1312
|
-
export {
|
|
1313
|
-
run_wake_cli
|
|
1314
|
-
};
|