@joshuafolkken/kit 1.3000.0 → 1.3041.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/kickoff.md +6 -0
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +12 -12
- package/dist/commands/auto-ok-judge-cli.js +18 -14
- package/dist/commands/auto-ok-main.js +42 -40
- package/dist/commands/backlog-budget-main.js +3 -3
- package/dist/commands/backlog-drive-cli.js +276 -188
- package/dist/commands/backlog-next-main.js +77 -75
- package/dist/commands/backlog-offer-main.js +80 -78
- package/dist/commands/backlog-plan-cli.js +96 -97
- package/dist/commands/backlog-triage-cli.js +94 -92
- package/dist/commands/backlogrun-cli.js +212 -206
- package/dist/commands/behavior-cli.js +12 -13
- package/dist/commands/bump-version-main.js +2 -2
- package/dist/commands/bytes-command.js +61 -22
- package/dist/commands/check-related.js +61 -60
- package/dist/commands/{chunk-X7PN54LZ.js → chunk-22DVQCP6.js} +16 -6
- package/dist/commands/{chunk-7GHOFHUS.js → chunk-24ZDAWML.js} +3 -3
- package/dist/commands/{chunk-HBNB3TLG.js → chunk-2BB5ZR2F.js} +13 -7
- package/dist/commands/{chunk-F22G3VDB.js → chunk-2BC33QPY.js} +1 -1
- package/dist/commands/{chunk-72EW7AVI.js → chunk-2BJJUTZA.js} +2 -2
- package/dist/commands/{chunk-XDQOWUVT.js → chunk-2CXT6MBR.js} +4 -4
- package/dist/commands/{chunk-TVJE67O2.js → chunk-2EZTYLO4.js} +6 -6
- package/dist/commands/{chunk-JLYW7CP6.js → chunk-2PHOLX62.js} +1 -1
- package/dist/commands/{chunk-6EU5ZCDP.js → chunk-2QM72JCJ.js} +23 -87
- package/dist/commands/{chunk-EFHSCUFN.js → chunk-2VFPUPSG.js} +2 -2
- package/dist/commands/{chunk-ATRMETHT.js → chunk-2XAH3MHV.js} +1 -1
- package/dist/commands/{chunk-T2E724HN.js → chunk-34JJYCIY.js} +2 -2
- package/dist/commands/{chunk-REMKUFAC.js → chunk-34KZDKQJ.js} +1 -1
- package/dist/commands/{chunk-GK2KY4MO.js → chunk-352KLSFX.js} +3 -3
- package/dist/commands/{chunk-7S6VRZOH.js → chunk-3AEDZZNL.js} +5 -5
- package/dist/commands/{chunk-KVJDDECB.js → chunk-3B2HEFNO.js} +2 -2
- package/dist/commands/{chunk-HZBTXKT2.js → chunk-3Z425MM3.js} +2 -2
- package/dist/commands/{chunk-J3G2R64I.js → chunk-3ZOX4G4U.js} +3 -3
- package/dist/commands/{chunk-LRS2OS5J.js → chunk-452HWOJ7.js} +2 -2
- package/dist/commands/{chunk-HRT4KWP4.js → chunk-475EFIJV.js} +1 -1
- package/dist/commands/{chunk-4HBVHYNL.js → chunk-47UZB54M.js} +3 -3
- package/dist/commands/{chunk-H4LYG37R.js → chunk-4DN4XVPL.js} +6 -6
- package/dist/commands/{chunk-TMLNI3YW.js → chunk-4HERA2GY.js} +1 -1
- package/dist/commands/{chunk-W6V4DWC5.js → chunk-4JI35CVO.js} +1 -1
- package/dist/commands/{chunk-YT342DRV.js → chunk-4L4LNWZ7.js} +2 -2
- package/dist/commands/{chunk-ZZAH3YQP.js → chunk-4N32QKJZ.js} +6 -6
- package/dist/commands/{chunk-GDUK5YPO.js → chunk-4NRSFLG7.js} +12 -12
- package/dist/commands/{chunk-O5QZ2S6X.js → chunk-4OKRPAUT.js} +4 -4
- package/dist/commands/{chunk-QDFDB4CF.js → chunk-4Q64PG46.js} +13 -13
- package/dist/commands/{chunk-HO52D6JY.js → chunk-4UDTQVDD.js} +14 -14
- package/dist/commands/{chunk-HPVLI26Z.js → chunk-4WR2LEZL.js} +6 -6
- package/dist/commands/{chunk-DP7WIGQ4.js → chunk-4ZJOC6OK.js} +4 -4
- package/dist/commands/{chunk-WTRDWEUQ.js → chunk-4ZQM4I7R.js} +12 -12
- package/dist/commands/{chunk-OTZJXU2R.js → chunk-54X37JEJ.js} +8 -8
- package/dist/commands/{chunk-A5V7EWIX.js → chunk-56KW5EOK.js} +2 -2
- package/dist/commands/chunk-5CG3XU3O.js +74 -0
- package/dist/commands/{chunk-FC33R5UN.js → chunk-5ESZLHDZ.js} +13 -15
- package/dist/commands/{chunk-OVA7STGP.js → chunk-5FBRMARM.js} +9 -9
- package/dist/commands/{chunk-SK2LJBFS.js → chunk-5PCK53WP.js} +3 -3
- package/dist/commands/{chunk-6NV2F7QH.js → chunk-5RG4S66L.js} +1 -1
- package/dist/commands/{chunk-JOARHU3M.js → chunk-5UJGACVN.js} +1 -1
- package/dist/commands/{chunk-NKOET4FB.js → chunk-5Y7B7FDL.js} +2 -2
- package/dist/commands/{chunk-XMBRXCIE.js → chunk-5Z6E5ZUV.js} +4 -4
- package/dist/commands/{chunk-RZ4OKKPM.js → chunk-5ZNUH4LV.js} +2 -2
- package/dist/commands/{chunk-7CHCZBNF.js → chunk-6CFHLMKM.js} +4 -4
- package/dist/commands/{chunk-TXXYC7EV.js → chunk-6DDK5XWK.js} +1 -1
- package/dist/commands/{chunk-2TQXCH2K.js → chunk-6GQX752S.js} +3 -3
- package/dist/commands/{chunk-RY6ZDHKB.js → chunk-6MAZ55GF.js} +107 -84
- package/dist/commands/{chunk-SNFLV7VV.js → chunk-6RUWU2SB.js} +2 -2
- package/dist/commands/{chunk-D4SZK7H2.js → chunk-6TIVDEKG.js} +2 -2
- package/dist/commands/{chunk-RIQ75QWR.js → chunk-6UCWAFQY.js} +55 -43
- package/dist/commands/{chunk-4D5KWMFL.js → chunk-6YURRFRU.js} +19 -19
- package/dist/commands/{chunk-7MOZEEFJ.js → chunk-6YVURZAJ.js} +1 -1
- package/dist/commands/{chunk-73JOEKIC.js → chunk-6Z4YZG7P.js} +5 -5
- package/dist/commands/{chunk-NJ53AWJU.js → chunk-77BIN247.js} +9 -9
- package/dist/commands/{chunk-MZHOPRI6.js → chunk-7ABHNNY3.js} +7 -7
- package/dist/commands/{chunk-6WTVAL4D.js → chunk-7C7FOKJK.js} +1 -1
- package/dist/commands/{chunk-KVSSLDA3.js → chunk-7HAGC6SW.js} +5 -5
- package/dist/commands/{chunk-IG22Y5MA.js → chunk-7KKUFLH5.js} +1 -1
- package/dist/commands/{chunk-ZQ3CKRMP.js → chunk-7MJYLUF4.js} +2 -2
- package/dist/commands/{chunk-6UGFS3EU.js → chunk-7NHZCI5Y.js} +11 -11
- package/dist/commands/{chunk-FB3D7CX5.js → chunk-7OQ56DVW.js} +5 -7
- package/dist/commands/{chunk-EK327QOS.js → chunk-7VWPGTZO.js} +10 -10
- package/dist/commands/{chunk-WSOF74K4.js → chunk-7YZXS3AK.js} +3 -3
- package/dist/commands/{chunk-N6TYL3B2.js → chunk-AAUDI7WJ.js} +2 -2
- package/dist/commands/{chunk-3GF52L5F.js → chunk-AC26ZUG5.js} +12 -24
- package/dist/commands/{chunk-EK2Y6B4X.js → chunk-ACZ52JPI.js} +7 -7
- package/dist/commands/{chunk-VD72V5VX.js → chunk-AJ65WNJB.js} +4 -4
- package/dist/commands/{chunk-MYWRGF5A.js → chunk-AK7SEO4Y.js} +2 -2
- package/dist/commands/{chunk-IBEKFLWG.js → chunk-ALDAS2WG.js} +9 -9
- package/dist/commands/{chunk-W32DIQEP.js → chunk-ARFBIJFS.js} +1 -1
- package/dist/commands/{chunk-F3WBEEYC.js → chunk-AVVMDVGO.js} +5 -5
- package/dist/commands/chunk-AXXEMVRJ.js +23 -0
- package/dist/commands/{chunk-GIGKMIPQ.js → chunk-B3M5WSGN.js} +1 -1
- package/dist/commands/{chunk-4Z5723GA.js → chunk-B7ZNIEDV.js} +5 -4
- package/dist/commands/{chunk-B3XFOHDX.js → chunk-BCUDQWYK.js} +10 -4
- package/dist/commands/{chunk-PR3JCPP7.js → chunk-BMKWSWWE.js} +1 -1
- package/dist/commands/{chunk-RZJAUVMI.js → chunk-BMM4RHCG.js} +2 -2
- package/dist/commands/{chunk-LAKVPOJQ.js → chunk-BMTYUJNT.js} +2 -2
- package/dist/commands/{chunk-DAJCUSPG.js → chunk-BRHPRDDV.js} +3 -3
- package/dist/commands/{chunk-UZAU6UI6.js → chunk-BRUBX64M.js} +2 -2
- package/dist/commands/{chunk-BFLFPKQQ.js → chunk-BTZJDHQT.js} +4 -4
- package/dist/commands/{chunk-AI5K4QJO.js → chunk-BYFC6MD2.js} +1 -1
- package/dist/commands/{chunk-JGTLNFFE.js → chunk-BYGJ3BCJ.js} +10 -10
- package/dist/commands/{chunk-5HWZFL4D.js → chunk-C54QXJD6.js} +51 -18
- package/dist/commands/{chunk-LMS6N6GE.js → chunk-CBAKBWSZ.js} +7 -7
- package/dist/commands/{chunk-7EAMUVIO.js → chunk-CFHRNTE5.js} +1 -1
- package/dist/commands/{chunk-UIWAMLQH.js → chunk-CGYDIYHD.js} +2 -2
- package/dist/commands/{chunk-4QYW2IL7.js → chunk-CHKYPF5O.js} +1 -1
- package/dist/commands/{chunk-5HCPSV45.js → chunk-CJBW6BWG.js} +8 -8
- package/dist/commands/chunk-CKUKK7JG.js +252 -0
- package/dist/commands/{chunk-4PES3BAA.js → chunk-CMHGDCGN.js} +3 -3
- package/dist/commands/{chunk-F6OWP2AY.js → chunk-CNGTHSUS.js} +22 -22
- package/dist/commands/{chunk-B2EA2HCY.js → chunk-COGKULQH.js} +4 -4
- package/dist/commands/{chunk-S7XWXG4M.js → chunk-CP2J4RV2.js} +175 -81
- package/dist/commands/{chunk-YGDNUTTI.js → chunk-CQUZ6TNQ.js} +2 -2
- package/dist/commands/chunk-CQZI7RIK.js +72 -0
- package/dist/commands/chunk-CVJHQOI3.js +153 -0
- package/dist/commands/{chunk-2MJ4OCDL.js → chunk-CWCKCZS6.js} +1 -1
- package/dist/commands/chunk-D5OHVIPM.js +17 -0
- package/dist/commands/{chunk-TPKFVVJQ.js → chunk-D6D6WQR6.js} +2 -2
- package/dist/commands/{chunk-5PAEXYIY.js → chunk-D7JRJI44.js} +69 -6
- package/dist/commands/{chunk-LOSOLCCW.js → chunk-D7OAU32Z.js} +1 -1
- package/dist/commands/{chunk-VZHC2I3T.js → chunk-DAAX7XDS.js} +8 -8
- package/dist/commands/{chunk-OHVAEJSM.js → chunk-DEZF7QZZ.js} +5 -5
- package/dist/commands/{chunk-CA6F5OXK.js → chunk-DYZOOWVW.js} +124 -21
- package/dist/commands/{chunk-TKGBF75Y.js → chunk-EDKOSZ3K.js} +5 -5
- package/dist/commands/{chunk-YPNTORQD.js → chunk-EFDVE5P5.js} +1 -1
- package/dist/commands/{chunk-EH3LVYOX.js → chunk-EGIHAEMT.js} +1 -1
- package/dist/commands/{chunk-7P4X4TQL.js → chunk-EKLU6QR7.js} +4 -4
- package/dist/commands/{chunk-ILQZFUDC.js → chunk-ELY76WAR.js} +2 -2
- package/dist/commands/{chunk-2VLHFILE.js → chunk-EM3HAZF6.js} +2 -2
- package/dist/commands/{chunk-F2HFWLQR.js → chunk-EMTZAGT5.js} +20 -1
- package/dist/commands/{chunk-GA4VIFHD.js → chunk-ERG4QRNG.js} +2 -2
- package/dist/commands/{chunk-ICEMFE2V.js → chunk-EUGNQCYK.js} +1 -1
- package/dist/commands/{chunk-3HU3LPIF.js → chunk-EXDFKKMH.js} +2 -2
- package/dist/commands/{chunk-ISPBJVXM.js → chunk-EXWB34R2.js} +7 -7
- package/dist/commands/{chunk-FNOSSXLG.js → chunk-EYMPBHDN.js} +2 -2
- package/dist/commands/{chunk-7V5UVKFG.js → chunk-EZ7IPKIH.js} +2 -2
- package/dist/commands/{chunk-KQWSENCT.js → chunk-F6IQHZYY.js} +3 -3
- package/dist/commands/{chunk-7ZECP3J6.js → chunk-FDS65XOJ.js} +5 -5
- package/dist/commands/{chunk-KXRFGPZD.js → chunk-FGG7V473.js} +21 -5
- package/dist/commands/{chunk-PZ6VWHOO.js → chunk-FHFWNNUC.js} +1 -1
- package/dist/commands/{chunk-XBRD2BDL.js → chunk-FJX7AENO.js} +2 -2
- package/dist/commands/{chunk-M42SLJCD.js → chunk-FKZ5E4JD.js} +4 -4
- package/dist/commands/{chunk-F2J6DGDM.js → chunk-FMZWRDKH.js} +8 -8
- package/dist/commands/{chunk-DSBK66US.js → chunk-FOKCRIAN.js} +10 -10
- package/dist/commands/{chunk-OI7KM4K3.js → chunk-FQGWO2ZH.js} +2 -2
- package/dist/commands/{chunk-2IESYBZH.js → chunk-FURNDIT3.js} +3 -3
- package/dist/commands/chunk-FVDQNMP6.js +93 -0
- package/dist/commands/{chunk-PZU6FZO6.js → chunk-FWU3H4TX.js} +1 -1
- package/dist/commands/{chunk-RYZ3RQRH.js → chunk-G3HBYHFA.js} +1 -1
- package/dist/commands/{chunk-HCA5QG2U.js → chunk-G4E4M2P4.js} +2 -2
- package/dist/commands/{chunk-VJLZ3IQQ.js → chunk-G5KSL2Q2.js} +1 -1
- package/dist/commands/{chunk-Y5ZW3KN5.js → chunk-G6XC7V6Y.js} +2 -2
- package/dist/commands/{chunk-73EBNBUW.js → chunk-GCPP5XIG.js} +1 -1
- package/dist/commands/{chunk-Q3463XNL.js → chunk-GITT5A5A.js} +3 -3
- package/dist/commands/{chunk-T2IO4LEB.js → chunk-GLC47H7I.js} +10 -10
- package/dist/commands/{chunk-GA6E4VGO.js → chunk-GUR54ELE.js} +1 -1
- package/dist/commands/{chunk-7IT23HIR.js → chunk-GY4DMCKS.js} +2 -2
- package/dist/commands/{chunk-PZ4ITSLG.js → chunk-H6JQRHDC.js} +3 -3
- package/dist/commands/{chunk-ZHZSZNE2.js → chunk-HATKF6VX.js} +2 -2
- package/dist/commands/{chunk-ELWNRE6E.js → chunk-HH3CVIFU.js} +5 -5
- package/dist/commands/{chunk-7GMTJDO2.js → chunk-HHMMGDMP.js} +6 -6
- package/dist/commands/{chunk-VD5674LW.js → chunk-HI5WPM6C.js} +2 -2
- package/dist/commands/{chunk-JUUBDYFZ.js → chunk-HQSWPRUF.js} +4 -4
- package/dist/commands/{chunk-ZAJD6T6E.js → chunk-HVCQYZVD.js} +2 -2
- package/dist/commands/chunk-HWEZRNPL.js +66 -0
- package/dist/commands/{chunk-J6GIVMXI.js → chunk-HX3FFIO5.js} +18 -3
- package/dist/commands/{chunk-GU5ML3Y3.js → chunk-HXDTA5VU.js} +13 -68
- package/dist/commands/{chunk-BNXE3NVB.js → chunk-I2KCGKJI.js} +1 -1
- package/dist/commands/{chunk-LC7SBONO.js → chunk-IAD4WLLI.js} +1 -1
- package/dist/commands/{chunk-WWC5L3AO.js → chunk-IB5TT73I.js} +2 -2
- package/dist/commands/{chunk-HOSZITJM.js → chunk-IBAYXCMU.js} +2 -2
- package/dist/commands/{chunk-UTBVTCQN.js → chunk-IF3EIFK4.js} +267 -153
- package/dist/commands/chunk-IGDJNXX2.js +49 -0
- package/dist/commands/{chunk-OJ4LGBVD.js → chunk-ILIITIMQ.js} +3 -3
- package/dist/commands/{chunk-CUR2WNYB.js → chunk-IRGDMSTI.js} +3 -3
- package/dist/commands/{chunk-PZTWQYRI.js → chunk-IYJEBWW5.js} +3 -3
- package/dist/commands/{chunk-A3D2XHOJ.js → chunk-J22PSIXR.js} +40 -9
- package/dist/commands/{chunk-O27H6NN6.js → chunk-J66YBAAM.js} +3 -5
- package/dist/commands/{chunk-P6RGQXHI.js → chunk-J6WKZRV2.js} +2 -2
- package/dist/commands/{chunk-NFEBQED3.js → chunk-J7IO3AYH.js} +2 -2
- package/dist/commands/{chunk-T57W3UWK.js → chunk-JAKC2BHX.js} +1 -1
- package/dist/commands/{chunk-3EO2XN3A.js → chunk-JCAQ7B6J.js} +4 -4
- package/dist/commands/{chunk-QQZOQ7AM.js → chunk-JFLFGLE4.js} +1 -1
- package/dist/commands/{chunk-ZDSDPKCD.js → chunk-JIGBNCDR.js} +1 -1
- package/dist/commands/{chunk-Q5N2J2UF.js → chunk-JJHWTFWQ.js} +5 -7
- package/dist/commands/{chunk-EI6JG5DF.js → chunk-JKOGWGQM.js} +1 -1
- package/dist/commands/{chunk-RK4HE5NW.js → chunk-JM6EVOFN.js} +4 -4
- package/dist/commands/{chunk-EBNIX2TC.js → chunk-JV24VP2O.js} +1 -1
- package/dist/commands/{chunk-BCK5LW4F.js → chunk-JVKXJ763.js} +3 -3
- package/dist/commands/{chunk-D5TAR6TV.js → chunk-JZHY7D6D.js} +1 -1
- package/dist/commands/{chunk-CRNPPKP2.js → chunk-JZK33TA5.js} +1 -1
- package/dist/commands/{chunk-UOAG2XQT.js → chunk-K275REYP.js} +3 -3
- package/dist/commands/{chunk-HESMKHEB.js → chunk-K4G3HOKS.js} +2 -2
- package/dist/commands/{chunk-L6XN3EXI.js → chunk-K64EIHD2.js} +1 -1
- package/dist/commands/{chunk-RINVPTA2.js → chunk-KCFOP5RI.js} +28 -28
- package/dist/commands/{chunk-O26Y2FOJ.js → chunk-KGE4AS2Y.js} +1 -1
- package/dist/commands/{chunk-EWA72KO7.js → chunk-KK2SL42W.js} +2 -2
- package/dist/commands/{chunk-MMXZKLDU.js → chunk-KK7TEL5G.js} +10 -4
- package/dist/commands/{chunk-UEURNXE5.js → chunk-KKIMVXAP.js} +2 -2
- package/dist/commands/{chunk-MAGJFH5T.js → chunk-KODXWMBX.js} +6 -6
- package/dist/commands/{chunk-D4HNS43Q.js → chunk-KPSKWTOS.js} +17 -17
- package/dist/commands/{chunk-VFJYOAOQ.js → chunk-KTV2HNWB.js} +2 -2
- package/dist/commands/{chunk-OWR2TCOY.js → chunk-KWYQR5MK.js} +5 -5
- package/dist/commands/{chunk-FNQW6NY7.js → chunk-KXK2A2HB.js} +6 -2
- package/dist/commands/{chunk-O5FVBIRI.js → chunk-KZ5BBBMO.js} +5 -5
- package/dist/commands/{chunk-JUJFIATR.js → chunk-KZ7HD37E.js} +6 -6
- package/dist/commands/{chunk-2YCKPX3A.js → chunk-KZZWPUJW.js} +1 -1
- package/dist/commands/{chunk-MYNM3YMR.js → chunk-L7DAL54N.js} +3 -3
- package/dist/commands/{chunk-NOXLKIPR.js → chunk-LAR76BFA.js} +1 -1
- package/dist/commands/{chunk-ZA3W73PF.js → chunk-LB557AHJ.js} +3 -3
- package/dist/commands/{chunk-LYEKT3IN.js → chunk-LEB2VP7F.js} +1 -1
- package/dist/commands/{chunk-WQJ7O3C3.js → chunk-LJXKVLYI.js} +1 -1
- package/dist/commands/{chunk-CHX4QTP4.js → chunk-LJZERYLG.js} +1 -1
- package/dist/commands/{chunk-PF22VUWB.js → chunk-LOOFYHUM.js} +76 -26
- package/dist/commands/{chunk-HIPO6HUG.js → chunk-LPSULLNK.js} +1 -1
- package/dist/commands/{chunk-G47ZNQVG.js → chunk-LR22UK5W.js} +1 -1
- package/dist/commands/{chunk-SV4FHQE7.js → chunk-LT7QSHR4.js} +14 -14
- package/dist/commands/{chunk-HIB5G2X6.js → chunk-LUXWDMKI.js} +7 -7
- package/dist/commands/{chunk-XH6BGVVP.js → chunk-LX7TIEMI.js} +9 -36
- package/dist/commands/{chunk-OGNTJ5JB.js → chunk-LYO6TX5L.js} +1 -1
- package/dist/commands/{chunk-JLREFWJ4.js → chunk-LZ5QXE5N.js} +6 -6
- package/dist/commands/{chunk-5WIZR5SC.js → chunk-M4UV3BEV.js} +11 -11
- package/dist/commands/{chunk-LNBUIOK6.js → chunk-M6JDU5EK.js} +4 -4
- package/dist/commands/{chunk-VZSJCFRT.js → chunk-MFBNNTBM.js} +4 -4
- package/dist/commands/{chunk-KHWTJ4F7.js → chunk-MI2OS6TL.js} +3 -3
- package/dist/commands/{chunk-VZCQZFPH.js → chunk-MLW4S35K.js} +19 -8
- package/dist/commands/{chunk-RIUPRMLW.js → chunk-MN425CU6.js} +1 -1
- package/dist/commands/{chunk-7W3D3WRW.js → chunk-MOIOSCZM.js} +2 -2
- package/dist/commands/{chunk-3BNNMJOT.js → chunk-MRORPFSO.js} +20 -320
- package/dist/commands/{chunk-LA5WTOAM.js → chunk-MUGTOJUL.js} +12 -12
- package/dist/commands/{chunk-L6LU2633.js → chunk-MVHPRYHE.js} +1 -1
- package/dist/commands/{chunk-EKCKCX5S.js → chunk-MWO6FOSZ.js} +123 -21
- package/dist/commands/{chunk-AVUGMOHZ.js → chunk-N7QTMTST.js} +2 -2
- package/dist/commands/{chunk-LMSS4ARB.js → chunk-NDBX7LSS.js} +1 -1
- package/dist/commands/{chunk-BEE7OAQ5.js → chunk-NDWZTWXV.js} +21 -2
- package/dist/commands/{chunk-6TESOL3L.js → chunk-NEGJ77RV.js} +7 -7
- package/dist/commands/{chunk-LCEJXF7A.js → chunk-NEGRE5VW.js} +4 -4
- package/dist/commands/{chunk-IXX4SXIP.js → chunk-NFPD2P3V.js} +1 -1
- package/dist/commands/chunk-NHIW7JE6.js +335 -0
- package/dist/commands/{chunk-CJSFC5YI.js → chunk-NILSN7A4.js} +7 -7
- package/dist/commands/{chunk-W4J6YTFE.js → chunk-NOLFSPOB.js} +2 -2
- package/dist/commands/chunk-NT67QTZO.js +65 -0
- package/dist/commands/{chunk-NJT5L6IC.js → chunk-NU7W6QGT.js} +33 -4
- package/dist/commands/chunk-NUR4FQHM.js +21 -0
- package/dist/commands/{chunk-OKKQI4ZG.js → chunk-OAAVY2JK.js} +1 -1
- package/dist/commands/chunk-OF4BY4N7.js +32 -0
- package/dist/commands/{chunk-W47I2KDY.js → chunk-OGS2DK7I.js} +3 -3
- package/dist/commands/{chunk-MS6Q3Z7V.js → chunk-OIPV3PWW.js} +6 -6
- package/dist/commands/{chunk-T33QDAWD.js → chunk-OIX2363L.js} +1 -1
- package/dist/commands/{chunk-GPMSYXYO.js → chunk-OJ65BZBV.js} +283 -15
- package/dist/commands/{chunk-34LAULSC.js → chunk-OKZWEVR4.js} +3 -3
- package/dist/commands/{chunk-2CXAVVST.js → chunk-OL6IF4JC.js} +1 -1
- package/dist/commands/{chunk-6JVNRY5A.js → chunk-OMPRILFH.js} +1 -1
- package/dist/commands/{chunk-VGHSZLYQ.js → chunk-OOWGH2RG.js} +1 -1
- package/dist/commands/{chunk-ERGZPWKP.js → chunk-OP2RFVLS.js} +1 -1
- package/dist/commands/{chunk-UU6GCJGM.js → chunk-ORKVN2LO.js} +2 -2
- package/dist/commands/{chunk-RHII5XI6.js → chunk-OSBWXZJ4.js} +24 -24
- package/dist/commands/{chunk-D3SHCUBC.js → chunk-OVWPZDWP.js} +2 -2
- package/dist/commands/{chunk-Z4HYBFZD.js → chunk-OWYK2BEJ.js} +108 -46
- package/dist/commands/{chunk-P4O67FP5.js → chunk-OX3VQLV2.js} +6 -6
- package/dist/commands/{chunk-L6TU7FC2.js → chunk-OZJP77UM.js} +4 -4
- package/dist/commands/{chunk-SNO7CY2B.js → chunk-P3H3DKTE.js} +2 -2
- package/dist/commands/{chunk-2OIX4JLA.js → chunk-P5SOYWH2.js} +3 -3
- package/dist/commands/{chunk-M4PEC7YW.js → chunk-PHLOTUB7.js} +54 -37
- package/dist/commands/{chunk-73KBUQKI.js → chunk-PTNQCCIB.js} +2 -2
- package/dist/commands/{chunk-4P2LCVGO.js → chunk-PTZEFQUX.js} +8 -8
- package/dist/commands/{chunk-DJVMC3U2.js → chunk-Q426ZSZ4.js} +1 -1
- package/dist/commands/{chunk-US6X7JXC.js → chunk-Q7EEIOAD.js} +4 -4
- package/dist/commands/{chunk-LE7TFPMU.js → chunk-QABRNGQV.js} +2 -2
- package/dist/commands/{chunk-NGKB632X.js → chunk-QDFVVRQP.js} +3 -3
- package/dist/commands/{chunk-36M2UV6C.js → chunk-QGATHT4S.js} +38 -4
- package/dist/commands/{chunk-DIB2Z2OS.js → chunk-QJRVDE7T.js} +1 -1
- package/dist/commands/{chunk-KUJQWO6M.js → chunk-QKTTKAXM.js} +2 -2
- package/dist/commands/{chunk-DXZW4V7J.js → chunk-QMDKDQKW.js} +3 -3
- package/dist/commands/{chunk-VW5SGE7A.js → chunk-QOSC5RKD.js} +1 -1
- package/dist/commands/{chunk-ENLWXAHD.js → chunk-QV5FKMOU.js} +1 -1
- package/dist/commands/{chunk-32SNWQJP.js → chunk-R2THGPI3.js} +2 -2
- package/dist/commands/{chunk-RVHBWSIG.js → chunk-R54Z2Z3X.js} +2 -2
- package/dist/commands/{chunk-CJAA5GAF.js → chunk-RG53UFNW.js} +15 -15
- package/dist/commands/{chunk-HJKZDDDI.js → chunk-RHKCWJQX.js} +1 -1
- package/dist/commands/{chunk-RPDWFUQO.js → chunk-RKIAX4DZ.js} +36 -84
- package/dist/commands/{chunk-LE2T3FGJ.js → chunk-RLBFEHHC.js} +2 -4
- package/dist/commands/{chunk-5GBZ43UA.js → chunk-RMDLFLPE.js} +1 -1
- package/dist/commands/{chunk-U2UH4VM4.js → chunk-RN2YDNLF.js} +2 -2
- package/dist/commands/{chunk-GQHUFNXN.js → chunk-RRAIRS2T.js} +1 -1
- package/dist/commands/{chunk-DRCTDVI2.js → chunk-RUQY5TS3.js} +3 -3
- package/dist/commands/{chunk-WGULS5DA.js → chunk-RW64VHEB.js} +1 -0
- package/dist/commands/{chunk-4G7NKNAZ.js → chunk-RXYMJPJB.js} +3 -3
- package/dist/commands/{chunk-B33BTNB4.js → chunk-S4M6UWR2.js} +21 -5
- package/dist/commands/{chunk-4Q4FXBUQ.js → chunk-SASX3W2M.js} +2 -2
- package/dist/commands/{chunk-TIXJY22D.js → chunk-SJ2ZN575.js} +5 -5
- package/dist/commands/{chunk-NSZTSCBW.js → chunk-SP7DKYGU.js} +13 -13
- package/dist/commands/{chunk-T3FD3Q73.js → chunk-SRG6PKVS.js} +1 -1
- package/dist/commands/{chunk-QA22PBCJ.js → chunk-SSL6A3Y4.js} +3 -3
- package/dist/commands/{chunk-4BEIYKI2.js → chunk-SV4FZR24.js} +2 -0
- package/dist/commands/{chunk-HZSQI6TD.js → chunk-SVTS7ACS.js} +2 -2
- package/dist/commands/{chunk-F7XLEK55.js → chunk-SVV4U5AR.js} +1 -1
- package/dist/commands/{chunk-RRQFITJE.js → chunk-SXJM4DZ5.js} +1 -1
- package/dist/commands/{chunk-OIDMJASD.js → chunk-SYB3M632.js} +1 -1
- package/dist/commands/{chunk-UJOZ2MGX.js → chunk-SYOXIKB7.js} +6 -6
- package/dist/commands/{chunk-5SB37YDW.js → chunk-SZG5HDNP.js} +3 -3
- package/dist/commands/{chunk-R2CF6VZE.js → chunk-T4F33UKZ.js} +4 -4
- package/dist/commands/{chunk-ESQEEL4O.js → chunk-TAEGXID2.js} +2 -2
- package/dist/commands/chunk-TEPYEUYG.js +585 -0
- package/dist/commands/{chunk-LUMCYDGE.js → chunk-TFLHYC2F.js} +2 -2
- package/dist/commands/{chunk-V5OIPYA6.js → chunk-TJKM56WJ.js} +4 -4
- package/dist/commands/{chunk-CYQ3ZF7R.js → chunk-TLAB552K.js} +86 -13
- package/dist/commands/{chunk-ST32OGPY.js → chunk-TP6L4W3W.js} +5 -5
- package/dist/commands/{chunk-C26LKDBE.js → chunk-TR7WWYD5.js} +1 -1
- package/dist/commands/{chunk-PWYXY46Y.js → chunk-TYNH2R66.js} +15 -15
- package/dist/commands/{chunk-AZUE65NT.js → chunk-U5P6G3UV.js} +2 -2
- package/dist/commands/{chunk-REPANBLS.js → chunk-U7Y6RKLK.js} +1 -1
- package/dist/commands/{chunk-55I7OYHI.js → chunk-UIMMWH7U.js} +1 -1
- package/dist/commands/{chunk-72J2G2E7.js → chunk-UKBBWMLE.js} +20 -20
- package/dist/commands/{chunk-VTLL6CKO.js → chunk-UNMSZGSG.js} +14 -14
- package/dist/commands/chunk-UOVUUVDK.js +18 -0
- package/dist/commands/{chunk-JNWHX25C.js → chunk-URDT2O2K.js} +1 -1
- package/dist/commands/{chunk-FGZQSSGH.js → chunk-UREXZJDB.js} +1 -1
- package/dist/commands/{chunk-O4WBADCX.js → chunk-UTHUX7VU.js} +3 -3
- package/dist/commands/{chunk-PDDKRHHS.js → chunk-V5OUZFWK.js} +3 -3
- package/dist/commands/{chunk-N4O5I55P.js → chunk-VCPGFBMN.js} +8 -8
- package/dist/commands/{chunk-WN7NK3NY.js → chunk-VGPIQNDB.js} +1 -1
- package/dist/commands/{chunk-HOGFJHBT.js → chunk-VJS2MCLA.js} +1 -1
- package/dist/commands/{chunk-4YI4SLRJ.js → chunk-VK6D5CWA.js} +8 -8
- package/dist/commands/{chunk-4LWRCPS5.js → chunk-VOF3N4WO.js} +3 -3
- package/dist/commands/{chunk-AM44D7NF.js → chunk-VQRT32JB.js} +1 -1
- package/dist/commands/{chunk-AS3GWVAN.js → chunk-VQVPAVQ3.js} +1 -1
- package/dist/commands/{chunk-6VTJO5L2.js → chunk-VV4TQYGD.js} +3 -3
- package/dist/commands/{chunk-WIE7VUBE.js → chunk-W7DRUOF7.js} +5 -5
- package/dist/commands/{chunk-HH2KDLTP.js → chunk-WAEN2RTT.js} +2 -2
- package/dist/commands/{chunk-NKKH3PBE.js → chunk-WB4T3VY2.js} +18 -1
- package/dist/commands/{chunk-DNJC7X73.js → chunk-WCEUMOKK.js} +2 -2
- package/dist/commands/{chunk-BK6Q4VCA.js → chunk-WTH6NTXU.js} +4 -4
- package/dist/commands/{chunk-WG6GYBRJ.js → chunk-WWVYEHQT.js} +2 -1
- package/dist/commands/{chunk-P4CWLRT2.js → chunk-X3TNPALI.js} +1 -1
- package/dist/commands/{chunk-LZNYHWRO.js → chunk-XC6GG5JR.js} +3 -3
- package/dist/commands/{chunk-RI7EQYKL.js → chunk-XFWI6WHH.js} +2 -2
- package/dist/commands/{chunk-BY3POLIQ.js → chunk-XHGWMD3L.js} +7 -7
- package/dist/commands/{chunk-BPSJSHYD.js → chunk-XI2ABCRX.js} +2 -2
- package/dist/commands/{chunk-TS4ZK46L.js → chunk-XKSUBUIH.js} +5 -5
- package/dist/commands/{chunk-K7GL3BGI.js → chunk-XPBF5DG3.js} +4 -4
- package/dist/commands/{chunk-6SKMZGER.js → chunk-XUMYPESL.js} +20 -8
- package/dist/commands/{chunk-QS5USD4T.js → chunk-XXC32PVL.js} +5 -4
- package/dist/commands/{chunk-ORSI7Y55.js → chunk-XXN2EZBY.js} +1 -1
- package/dist/commands/{chunk-IZVM2TTH.js → chunk-XZQWEVR3.js} +2 -2
- package/dist/commands/{chunk-E3CXOVPQ.js → chunk-Y27PTXXI.js} +1 -1
- package/dist/commands/{chunk-337QQM4C.js → chunk-Y4EBUI6M.js} +106 -5
- package/dist/commands/{chunk-WRX3MINT.js → chunk-YAU3LYNF.js} +1 -1
- package/dist/commands/{chunk-JB7R3A4A.js → chunk-YDURQICF.js} +4 -4
- package/dist/commands/{chunk-RX5JSPPH.js → chunk-YGFOGA7C.js} +11 -11
- package/dist/commands/{chunk-S6SXMBF2.js → chunk-YHJ2AJMA.js} +2 -2
- package/dist/commands/{chunk-MVPUQLN5.js → chunk-YM77CF4D.js} +4 -4
- package/dist/commands/{chunk-ZYIMQHCB.js → chunk-YNPRJCEO.js} +6 -6
- package/dist/commands/{chunk-3UKJFWKS.js → chunk-YTBQAD5W.js} +3 -3
- package/dist/commands/{chunk-WW3TX742.js → chunk-Z3WGHIVB.js} +3 -3
- package/dist/commands/{chunk-KIVOZY2J.js → chunk-ZBZ5DDCH.js} +66 -64
- package/dist/commands/{chunk-TAPDXK34.js → chunk-ZLRUHSOP.js} +1 -1
- package/dist/commands/{chunk-XYAK53TK.js → chunk-ZNR75OXP.js} +2 -1
- package/dist/commands/{chunk-CADFBQJJ.js → chunk-ZSOR4ISJ.js} +4 -4
- package/dist/commands/{chunk-6NRTLH6I.js → chunk-ZYFHYQA7.js} +1 -1
- package/dist/commands/{chunk-Q7TV3OV6.js → chunk-ZZFFSQF4.js} +4 -4
- package/dist/commands/{chunk-PDAY76AN.js → chunk-ZZULXNC2.js} +1 -1
- package/dist/commands/{chunk-5Y7QQYTU.js → chunk-ZZXO6TFH.js} +1 -1
- package/dist/commands/code-symbol-cli.js +4 -4
- package/dist/commands/codex-hook-adapter.js +99 -100
- package/dist/commands/command-derive.js +10 -10
- package/dist/commands/cost-audit-main.js +94 -92
- package/dist/commands/cspell-cached.js +24 -23
- package/dist/commands/defect-origin-main.js +19 -18
- package/dist/commands/defect-report-main.js +15 -14
- package/dist/commands/disposition-cli.js +67 -64
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/document-read-cli.js +89 -9
- package/dist/commands/document-section-main.js +89 -9
- package/dist/commands/edit-files-cli.js +1 -1
- package/dist/commands/effect-audit-cli.js +20 -19
- package/dist/commands/epic-audit-main.js +55 -53
- package/dist/commands/epic-bundle-main.js +87 -85
- package/dist/commands/epic-check.js +16 -15
- package/dist/commands/epic-main.js +93 -91
- package/dist/commands/epic-next-main.js +51 -49
- package/dist/commands/format-edited-cli.js +30 -32
- package/dist/commands/format.js +11 -10
- package/dist/commands/fresh-machine-cli.js +6 -6
- package/dist/commands/git-followup-workflow.js +137 -122
- package/dist/commands/git-workflow.js +28 -27
- package/dist/commands/github-release-cli.js +26 -3
- package/dist/commands/hook-ledger-cli.js +74 -126
- package/dist/commands/init-main.js +20 -19
- package/dist/commands/inputs.json +1907 -1876
- package/dist/commands/issue-ack-cli.js +5 -5
- package/dist/commands/issue-already-done-cli.js +63 -58
- package/dist/commands/issue-body-cli.js +44 -42
- package/dist/commands/issue-cite-main.js +11 -10
- package/dist/commands/issue-comment-main.js +15 -11
- package/dist/commands/issue-consolidate-cli.js +31 -30
- package/dist/commands/issue-file-main.js +114 -110
- package/dist/commands/issue-fold-existing-cli.js +88 -86
- package/dist/commands/issue-fold-main.js +26 -25
- package/dist/commands/issue-lint-main.js +38 -37
- package/dist/commands/issue-measured-cli.js +66 -61
- package/dist/commands/issue-plan-cli.js +103 -101
- package/dist/commands/issue-premise-unmet-cli.js +66 -61
- package/dist/commands/issue-priority-cli.js +13 -12
- package/dist/commands/issue-read-main.js +18 -17
- package/dist/commands/issue-release-class-cli.js +12 -11
- package/dist/commands/issue-release-main.js +13 -12
- package/dist/commands/issue-scout-main.js +89 -87
- package/dist/commands/issue-spill-main.js +114 -110
- package/dist/commands/issue-state-main.js +16 -15
- package/dist/commands/issue-tick-cli.js +14 -13
- package/dist/commands/josh-completion.js +10 -10
- package/dist/commands/lane-adopt-cli.js +19 -19
- package/dist/commands/lane-breakdown-cli.js +154 -126
- package/dist/commands/lane-cli.js +131 -125
- package/dist/commands/lane-launch-main.js +17 -17
- package/dist/commands/lane-limit-cli.js +81 -79
- package/dist/commands/lane-measure-cli.js +246 -130
- package/dist/commands/lane-pause-cli.js +15 -15
- package/dist/commands/lane-plan-cli.js +108 -101
- package/dist/commands/lane-resolve-cli.js +20 -19
- package/dist/commands/lane-restart-cli.js +124 -118
- package/dist/commands/lane-why-cli.js +85 -82
- package/dist/commands/lane-withdraw-cli.js +49 -48
- package/dist/commands/latest-corepack.js +3 -3
- package/dist/commands/latest-if-required-cli.js +9 -9
- package/dist/commands/latest-scope-main.js +5 -5
- package/dist/commands/latest-update.js +3 -3
- package/dist/commands/lines-command.js +3 -3
- package/dist/commands/lint-parallel-main.js +32 -31
- package/dist/commands/lint-related.js +79 -60
- package/dist/commands/lint-rule.js +32 -31
- package/dist/commands/lockfile-policy.js +11 -11
- package/dist/commands/main-merge-main.js +5 -5
- package/dist/commands/main-sync-main.js +5 -5
- package/dist/commands/managed-config-scope-cli.js +3 -3
- package/dist/commands/measure-rerun-cli.js +10 -10
- package/dist/commands/metrics-command.js +91 -58
- package/dist/commands/observation-record-cli.js +3 -3
- package/dist/commands/observations-flush-cli.js +27 -25
- package/dist/commands/oracle-list-cli.js +2 -2
- package/dist/commands/overrides-check.js +4 -4
- package/dist/commands/package-scout-cli.js +67 -26
- package/dist/commands/plan-consumers-main.js +4 -4
- package/dist/commands/plan-scaffold-cli.js +132 -91
- package/dist/commands/pr-classification-main.js +3 -3
- package/dist/commands/pre-commit-lint.js +11 -12
- package/dist/commands/pre-commit-type-check.js +25 -24
- package/dist/commands/pre-push-unit.js +33 -33
- package/dist/commands/pretool-guard-cli.js +90 -91
- package/dist/commands/project-profile-cli.js +5 -4
- package/dist/commands/propagate.js +15 -15
- package/dist/commands/prose-stale-cli.js +20 -19
- package/dist/commands/publishable-range-check.js +4 -4
- package/dist/commands/read-files-cli.js +2 -2
- package/dist/commands/read-set-cli.js +61 -24
- package/dist/commands/refactor-scan-cli.js +6 -6
- package/dist/commands/release-cli.js +64 -36
- package/dist/commands/release-scope-main.js +19 -18
- package/dist/commands/rename-cli.js +27 -29
- package/dist/commands/reserved-run.js +3 -3
- package/dist/commands/retrospective-cli.js +104 -102
- package/dist/commands/review-attest-cli.js +6 -6
- package/dist/commands/review-brief-main.js +127 -109
- package/dist/commands/review-findings-cli.js +2 -2
- package/dist/commands/review-pair-cli.js +110 -84
- package/dist/commands/review-record-main.js +108 -83
- package/dist/commands/review-round2-cli.js +46 -45
- package/dist/commands/review-stops-cli.js +16 -16
- package/dist/commands/review-submit-cli.js +127 -109
- package/dist/commands/rule-list.js +58 -60
- package/dist/commands/rule-value-cli.js +226 -74
- package/dist/commands/run-add-cli.js +28 -27
- package/dist/commands/run-board-main.js +136 -132
- package/dist/commands/run-carry-cli.js +127 -124
- package/dist/commands/run-chain-cli.js +116 -93
- package/dist/commands/run-cut-cli.js +124 -119
- package/dist/commands/run-ending-cli.js +19 -22
- package/dist/commands/run-entry-cli.js +183 -180
- package/dist/commands/run-event-cli.js +5 -5
- package/dist/commands/run-handoff-cli.js +52 -28
- package/dist/commands/run-handoff-lanes-cli.js +15 -15
- package/dist/commands/run-hold-main.js +64 -62
- package/dist/commands/run-liveness-cli.js +11 -11
- package/dist/commands/run-merge-main.js +119 -116
- package/dist/commands/run-next-cli.js +87 -86
- package/dist/commands/run-park-cli.js +111 -92
- package/dist/commands/run-pause-cli.js +147 -133
- package/dist/commands/run-pickup-cli.js +13 -13
- package/dist/commands/run-prep-main.js +83 -82
- package/dist/commands/run-prime-cli.js +107 -87
- package/dist/commands/run-progress-main.js +123 -107
- package/dist/commands/run-report-cli.js +25 -24
- package/dist/commands/run-review-cli.js +168 -149
- package/dist/commands/run-ship-cli.js +208 -203
- package/dist/commands/run-ship-evidence-cli.js +38 -37
- package/dist/commands/run-ship-wait-main.js +40 -37
- package/dist/commands/run-split-cli.js +127 -125
- package/dist/commands/run-stale-main.js +36 -35
- package/dist/commands/run-status-cli.js +16 -15
- package/dist/commands/run-step-cli.js +173 -164
- package/dist/commands/run-tail-cli.js +1 -1
- package/dist/commands/run-tidy-main.js +30 -29
- package/dist/commands/run-wake-main.js +137 -119
- package/dist/commands/run-watcher-guard-cli.js +30 -29
- package/dist/commands/secretlint-scan.js +2 -2
- package/dist/commands/selfcheck-cli.js +27 -26
- package/dist/commands/session-language-main.js +48 -28
- package/dist/commands/sonar-hotspots-cli.js +3 -3
- package/dist/commands/split-assess-cli.js +24 -23
- package/dist/commands/split-child-recover-cli.js +13 -12
- package/dist/commands/start.js +37 -35
- package/dist/commands/stash-pop-main.js +3 -3
- package/dist/commands/stash-push-main.js +3 -3
- package/dist/commands/stop-guard.js +144 -143
- package/dist/commands/sync-main.js +11 -10
- package/dist/commands/telegram-test-main.js +5 -5
- package/dist/commands/test-declared.js +9 -8
- package/dist/commands/test-e2e-guard.js +23 -22
- package/dist/commands/test-pinned-main.js +26 -25
- package/dist/commands/test-reach-cli.js +15 -14
- package/dist/commands/test-red-main.js +5 -5
- package/dist/commands/{test-related-ZT2AO62I.js → test-related-ZCNC46MS.js} +31 -31
- package/dist/commands/test-related-main.js +51 -50
- package/dist/commands/test-unit-guard-main.js +9 -8
- package/dist/commands/time-cli.js +24 -27
- package/dist/commands/time-density-cli.js +8 -9
- package/dist/commands/tree-status-cli.js +4 -4
- package/dist/commands/type-check-command.js +8 -7
- package/dist/commands/ui-shot-cli.js +4 -4
- package/dist/commands/uninstall.js +20 -19
- package/dist/commands/unused-members-cli.js +9 -8
- package/dist/commands/upstream-interrupt-main.js +115 -111
- package/dist/commands/verification-gate.js +46 -46
- package/dist/commands/version-check.js +5 -5
- package/dist/hooks/{chunk-LWD43Z3C.js → chunk-5CUXGQT6.js} +1667 -107
- package/dist/hooks/{chunk-4YXV2REH.js → chunk-5R5YFQR5.js} +8 -8
- package/dist/hooks/{chunk-LKQBEKBI.js → chunk-6RLY27FT.js} +8 -8
- package/dist/hooks/{chunk-CICKRHTB.js → chunk-AO4TOV4V.js} +119 -2679
- package/dist/hooks/{chunk-NUPVO7RI.js → chunk-G5WSPYJ6.js} +4296 -1687
- package/dist/hooks/{chunk-UU4PTPEZ.js → chunk-HHIVWGHX.js} +250 -125
- package/dist/hooks/{chunk-P7BPAU26.js → chunk-IURJANNZ.js} +2 -2
- package/dist/hooks/{chunk-6RR6JZSB.js → chunk-OV22V63P.js} +357 -1744
- package/dist/hooks/{chunk-RQXECHAS.js → chunk-SXABK6UV.js} +57 -45
- package/dist/hooks/codex-hook-adapter.js +11 -11
- package/dist/hooks/daemon.js +1053 -690
- package/dist/hooks/format-edited.js +5 -5
- package/dist/hooks/inputs.json +551 -536
- package/dist/hooks/pretool-guard.js +7 -7
- package/dist/hooks/session-lang.js +292 -15
- package/dist/hooks/stop-guard.js +225 -48
- package/dist/inputs.json +65 -65
- package/dist/josh.js +73 -19
- package/dist/self-sync-guard/index.js +18 -1
- package/dist/version/index.js +18 -1
- package/package.json +3 -3
- package/pnpm-workspace.yaml +5 -13
- package/prompts/collaboration-workflow/issue-template.en.md +56 -52
- package/scripts/agent/agent-argv.ts +20 -6
- package/scripts/agent/agent-phase-profile.ts +89 -0
- package/scripts/agent/agent-role-profile.ts +3 -71
- package/scripts/agent/agent-ship-cap.ts +44 -0
- package/scripts/agent/agent-worker-profile.ts +154 -0
- package/scripts/agent/claude-agent-argv.ts +1 -1
- package/scripts/agent/lane-instructions.ts +29 -3
- package/scripts/auto-ok/auto-ok-judge-cli.ts +3 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +2 -1
- package/scripts/auto-ok/auto-ok-judge.ts +4 -2
- package/scripts/backlog/backlog-drive-escalate.ts +115 -0
- package/scripts/backlog/backlog-drive-stalled-retry.ts +48 -10
- package/scripts/document/document-scan.ts +35 -1
- package/scripts/gh/git-pr-checks-failed.ts +24 -0
- package/scripts/hooks/implementation-shell-deny-expansion.ts +20 -0
- package/scripts/hooks/implementation-shell-deny-git.ts +128 -0
- package/scripts/hooks/implementation-shell-deny.ts +14 -138
- package/scripts/hooks/implementation-shell.ts +28 -5
- package/scripts/hooks/step-zero-notice.ts +9 -6
- package/scripts/hooks/stop-actions.ts +4 -2
- package/scripts/init/init-logic-workspace.ts +1 -1
- package/scripts/issue/issue-auto-ok.ts +43 -4
- package/scripts/issue/issue-body-keys.ts +4 -0
- package/scripts/issue/issue-comment-cli.ts +15 -2
- package/scripts/issue/issue-evidence-exit.ts +6 -2
- package/scripts/issue/issue-file-cli.ts +5 -1
- package/scripts/issue/issue-file-pass.ts +14 -7
- package/scripts/issue/issue-file-worker.ts +95 -0
- package/scripts/issue/issue-file.ts +1 -1
- package/scripts/issue/issue-outcome.ts +107 -0
- package/scripts/issue/issue-read.ts +12 -7
- package/scripts/issue/issue-watch-diff.ts +2 -1
- package/scripts/josh/josh-commands-ai.ts +2 -2
- package/scripts/josh/josh-commands-development.ts +21 -5
- package/scripts/josh/josh-commands-issue-write.ts +3 -2
- package/scripts/josh/josh-commands-lint.ts +1 -1
- package/scripts/josh/josh-commands-project.ts +7 -2
- package/scripts/josh/josh-commands-run.ts +10 -2
- package/scripts/josh/josh-commands-workflow.ts +5 -0
- package/scripts/lane/lane-breakdown-cli.ts +14 -4
- package/scripts/lane/lane-breakdown-text.ts +7 -0
- package/scripts/lane/lane-breakdown.ts +21 -1
- package/scripts/lane/lane-dispatch-prepare.ts +83 -0
- package/scripts/lane/lane-dispatch.ts +3 -53
- package/scripts/lane/lane-elapsed-time.ts +118 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +4 -1
- package/scripts/lane/lane-net-time.ts +35 -7
- package/scripts/lane/lane-overrun.ts +1 -1
- package/scripts/lane/lane-plan-cli.ts +7 -3
- package/scripts/lane/lane-plan-estimate.ts +57 -0
- package/scripts/lane/lane-plan-size.ts +11 -20
- package/scripts/lane/lane-plan.ts +1 -0
- package/scripts/lane/lane-relaunch.ts +9 -4
- package/scripts/lane/lane-stage-budget.ts +6 -1
- package/scripts/lane/lane-stage-events.ts +103 -0
- package/scripts/lane/lane-stats-tables.ts +3 -0
- package/scripts/lane/lane-stop-check-stats.ts +117 -0
- package/scripts/lane/lane-stop-stats.ts +30 -6
- package/scripts/lane/lane-why-causes.ts +3 -11
- package/scripts/lane/openai-lane-supervisor-owner.ts +12 -0
- package/scripts/lane/openai-lane-supervisor.ts +36 -1
- package/scripts/lib/home-tilde.ts +24 -0
- package/scripts/lib/package-manifest.ts +27 -1
- package/scripts/observations/observation-ledger-archive.ts +180 -0
- package/scripts/observations/observation-ledger-home.ts +1 -0
- package/scripts/observations/observation-ledger.ts +5 -0
- package/scripts/observations/observations-flush-transaction.ts +358 -0
- package/scripts/observations/observations-flush.ts +72 -172
- package/scripts/plan/plan-scaffold-cli.ts +17 -6
- package/scripts/plan/plan-scaffold.ts +11 -0
- package/scripts/release/github-release-notes.ts +24 -0
- package/scripts/release/github-release-runs.ts +32 -6
- package/scripts/release/github-release.ts +10 -2
- package/scripts/release/release-progress.ts +22 -10
- package/scripts/release/release-publish-run.ts +39 -6
- package/scripts/repo/repository-labels.ts +23 -11
- package/scripts/review/review-comment-round.ts +10 -5
- package/scripts/rules/broad-investigation-shell.ts +2 -2
- package/scripts/rules/codex-prompt.ts +63 -0
- package/scripts/rules/direct-issue-comment.ts +62 -2
- package/scripts/rules/direct-issue-read.ts +55 -2
- package/scripts/rules/guard-remedy.ts +10 -4
- package/scripts/rules/issue-citation.ts +20 -9
- package/scripts/rules/last-prompt.ts +8 -4
- package/scripts/rules/rule-value-cli.ts +85 -4
- package/scripts/rules/rule-value-trend.ts +108 -0
- package/scripts/rules/shell-redirects.ts +19 -7
- package/scripts/rules/shell-segments.ts +145 -20
- package/scripts/rules/shell-tokens.ts +66 -0
- package/scripts/rules/standalone-gh-call.ts +63 -0
- package/scripts/rules/unasked-filing.ts +12 -4
- package/scripts/run/board/run-board-closed.ts +10 -1
- package/scripts/run/board/run-board-decision-read.ts +52 -12
- package/scripts/run/board/run-board-decision.ts +5 -0
- package/scripts/run/board/run-board-ending-reason.ts +21 -7
- package/scripts/run/board/run-board-github.ts +8 -1
- package/scripts/run/board/run-board-layout.ts +5 -3
- package/scripts/run/board/run-board-link.ts +2 -0
- package/scripts/run/board/run-board-operation.ts +6 -2
- package/scripts/run/board/run-board-pause-fixture.json +12 -0
- package/scripts/run/board/run-board-pause.ts +87 -0
- package/scripts/run/board/run-board-plan-shared.ts +2 -0
- package/scripts/run/board/run-board-render-condition.ts +10 -1
- package/scripts/run/board/run-board-render-title.ts +7 -0
- package/scripts/run/board/run-board-settle.ts +16 -2
- package/scripts/run/board/run-board-snapshot.ts +4 -0
- package/scripts/run/board/run-board-status.ts +11 -1
- package/scripts/run/cut/run-cut-cli.ts +2 -1
- package/scripts/run/park/run-park-cli.ts +13 -1
- package/scripts/run/park/run-park-escalate.ts +102 -0
- package/scripts/run/park/run-stalled.ts +29 -7
- package/scripts/run/review/run-review-early-push.ts +6 -6
- package/scripts/run/ship/run-ship-stop-cause.ts +12 -1
- package/scripts/split/split-assess.ts +14 -5
- package/scripts/test/test-related-touched.ts +21 -3
- package/scripts/test/test-related.ts +1 -1
- package/dist/commands/chunk-6WEVLIZE.js +0 -29
- package/dist/commands/chunk-E2ZCUKHT.js +0 -274
- package/dist/commands/chunk-NMLCPYBN.js +0 -134
- package/dist/commands/chunk-QEIO2ZNQ.js +0 -324
- package/dist/commands/chunk-QWX7EBC6.js +0 -112
- package/dist/commands/chunk-RQRLW4XK.js +0 -20
- package/dist/commands/chunk-UCQJDYE3.js +0 -21
- package/dist/commands/chunk-W4YH2DF3.js +0 -58
- package/dist/commands/{chunk-LRA3PXHS.js → chunk-ENKFCOVY.js} +3 -3
- package/dist/commands/{chunk-RUWV4INF.js → chunk-HQGNXR6I.js} +3 -3
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
import {
|
|
2
|
+
git_pr_merge_checked
|
|
3
|
+
} from "./chunk-RHKCWJQX.js";
|
|
4
|
+
import {
|
|
5
|
+
main_sync
|
|
6
|
+
} from "./chunk-475EFIJV.js";
|
|
7
|
+
import {
|
|
8
|
+
lane_install
|
|
9
|
+
} from "./chunk-HVCQYZVD.js";
|
|
10
|
+
import {
|
|
11
|
+
observation_ledger_prepare
|
|
12
|
+
} from "./chunk-G3HBYHFA.js";
|
|
13
|
+
import {
|
|
14
|
+
review_comment_carry
|
|
15
|
+
} from "./chunk-3Z425MM3.js";
|
|
16
|
+
import {
|
|
17
|
+
observation_ledger_archive
|
|
18
|
+
} from "./chunk-CKUKK7JG.js";
|
|
19
|
+
import {
|
|
20
|
+
git_gh_command,
|
|
21
|
+
git_pr_checks
|
|
22
|
+
} from "./chunk-YGFOGA7C.js";
|
|
23
|
+
import {
|
|
24
|
+
OBSERVATION_LEDGER_DIRECTORY,
|
|
25
|
+
observation_ledger
|
|
26
|
+
} from "./chunk-SV4FZR24.js";
|
|
27
|
+
import {
|
|
28
|
+
git_worktree
|
|
29
|
+
} from "./chunk-W3FX7FYN.js";
|
|
30
|
+
import {
|
|
31
|
+
repository_lock
|
|
32
|
+
} from "./chunk-P4KIQRSL.js";
|
|
33
|
+
import {
|
|
34
|
+
IGNORE_FOR_RELEASE_LABEL
|
|
35
|
+
} from "./chunk-QQBMVC5W.js";
|
|
36
|
+
import {
|
|
37
|
+
issue_cite
|
|
38
|
+
} from "./chunk-HQ2HSZBN.js";
|
|
39
|
+
import {
|
|
40
|
+
poll
|
|
41
|
+
} from "./chunk-SBGTCT2C.js";
|
|
42
|
+
import {
|
|
43
|
+
error_text
|
|
44
|
+
} from "./chunk-CDY4NFQG.js";
|
|
45
|
+
import {
|
|
46
|
+
git_command
|
|
47
|
+
} from "./chunk-AKQYYHP2.js";
|
|
48
|
+
import {
|
|
49
|
+
git_spawn
|
|
50
|
+
} from "./chunk-CJKPF5DJ.js";
|
|
51
|
+
import {
|
|
52
|
+
git_spawn_sync
|
|
53
|
+
} from "./chunk-B77ZMVHS.js";
|
|
54
|
+
import {
|
|
55
|
+
SUITE_TIMEOUT_MS
|
|
56
|
+
} from "./chunk-WPAQUMHC.js";
|
|
57
|
+
|
|
58
|
+
// scripts/observations/observations-flush-landing.ts
|
|
59
|
+
var AUTO_MERGE_WARNING = "Could not enable auto-merge on the flush pull request, so it merges only if this command stays alive to merge it:";
|
|
60
|
+
var MERGE_TIMEOUT_REASON = "auto-merge is enabled, but the pull request did not merge within the checks budget";
|
|
61
|
+
var MERGE_FAILED_REASON = "a required check failed or the branch conflicts, so auto-merge will not land the pull request";
|
|
62
|
+
async function request_auto_merge(branch_name) {
|
|
63
|
+
try {
|
|
64
|
+
await git_gh_command.pr_enable_auto_merge(branch_name, await git_command.head_commit());
|
|
65
|
+
return true;
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.warn(AUTO_MERGE_WARNING, error_text.message_of(error));
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async function wait_for_landing(branch_name, is_auto_merge) {
|
|
72
|
+
if (!is_auto_merge) {
|
|
73
|
+
await git_pr_merge_checked.merge_when_green(branch_name);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const progress = await git_pr_checks.wait_for_pr_merged(branch_name);
|
|
77
|
+
if (progress === "failed") throw new Error(MERGE_FAILED_REASON);
|
|
78
|
+
if (progress === "waiting") throw new Error(MERGE_TIMEOUT_REASON);
|
|
79
|
+
}
|
|
80
|
+
function describe_pull(pull) {
|
|
81
|
+
return `${issue_cite.plain_for("github", pull.number)} (\`${pull.head_ref}\`)`;
|
|
82
|
+
}
|
|
83
|
+
async function is_landing(pull) {
|
|
84
|
+
if (!pull.has_auto_merge) return false;
|
|
85
|
+
return await git_pr_checks.read_merge_progress(pull.head_ref) !== "failed";
|
|
86
|
+
}
|
|
87
|
+
function landing_flush_message(pulls) {
|
|
88
|
+
return `deferred \u2014 an earlier flush pull request is still landing with auto-merge on: ${pulls.map((pull) => describe_pull(pull)).join(", ")}. A new flush branch would conflict with it at the ledger's tail, so the appended observations stay in this working tree for the next flush.`;
|
|
89
|
+
}
|
|
90
|
+
function stuck_flush_message(pulls) {
|
|
91
|
+
return `An earlier \`pnpm josh observations:flush\` left a pull request open that nothing will merge \u2014 unless a flush in another checkout is still waiting on it: ${pulls.map((pull) => describe_pull(pull)).join(", ")}. Its appended observations exist only on that branch \u2014 land it (resolve the ledger conflict if there is one, then merge) before flushing again, or a new flush would conflict with it.`;
|
|
92
|
+
}
|
|
93
|
+
async function refuse_open_flush(branch_prefix) {
|
|
94
|
+
const pulls = await git_gh_command.pr_list_open_with_head_prefix(branch_prefix);
|
|
95
|
+
if (pulls.length === 0) return void 0;
|
|
96
|
+
const verdicts = await Promise.all(pulls.map(async (pull) => await is_landing(pull)));
|
|
97
|
+
const stuck = pulls.filter((_pull, index) => verdicts[index] !== true);
|
|
98
|
+
if (stuck.length > 0) throw new Error(stuck_flush_message(stuck));
|
|
99
|
+
return landing_flush_message(pulls);
|
|
100
|
+
}
|
|
101
|
+
var observations_flush_landing = {
|
|
102
|
+
landing_flush_message,
|
|
103
|
+
MERGE_FAILED_REASON,
|
|
104
|
+
MERGE_TIMEOUT_REASON,
|
|
105
|
+
refuse_open_flush,
|
|
106
|
+
request_auto_merge,
|
|
107
|
+
stuck_flush_message,
|
|
108
|
+
wait_for_landing
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// scripts/observations/observations-flush-transaction.ts
|
|
112
|
+
import { randomUUID } from "node:crypto";
|
|
113
|
+
import {
|
|
114
|
+
cpSync,
|
|
115
|
+
existsSync,
|
|
116
|
+
lstatSync,
|
|
117
|
+
mkdirSync,
|
|
118
|
+
readFileSync,
|
|
119
|
+
renameSync,
|
|
120
|
+
rmSync,
|
|
121
|
+
writeFileSync
|
|
122
|
+
} from "node:fs";
|
|
123
|
+
import path from "node:path";
|
|
124
|
+
import { z } from "zod";
|
|
125
|
+
var LOCK_WAIT_MS = 3e4;
|
|
126
|
+
var COMMIT_MESSAGE = "Record observation ledger entries";
|
|
127
|
+
var ATTEMPTS = 5;
|
|
128
|
+
var INTERVAL_MS = 250;
|
|
129
|
+
var snapshot_schema = z.object({
|
|
130
|
+
name: z.string(),
|
|
131
|
+
content: z.string().optional(),
|
|
132
|
+
base: z.string().optional()
|
|
133
|
+
});
|
|
134
|
+
var state_schema = z.object({
|
|
135
|
+
branch: z.string(),
|
|
136
|
+
base: z.string(),
|
|
137
|
+
tree: z.string(),
|
|
138
|
+
archived: z.number().optional(),
|
|
139
|
+
landed: z.boolean().optional(),
|
|
140
|
+
initialized: z.boolean().optional(),
|
|
141
|
+
committed: z.boolean().optional(),
|
|
142
|
+
installed: z.boolean().optional(),
|
|
143
|
+
index: z.string(),
|
|
144
|
+
files: z.array(snapshot_schema),
|
|
145
|
+
reconciled: z.array(snapshot_schema).optional()
|
|
146
|
+
});
|
|
147
|
+
function lock_failure(error) {
|
|
148
|
+
if (!/index\.lock.*(?:File exists|exists)/su.test(error_text.message_of(error))) throw error;
|
|
149
|
+
}
|
|
150
|
+
async function retry(work) {
|
|
151
|
+
const state = {};
|
|
152
|
+
const is_complete = await poll.poll_for(
|
|
153
|
+
async () => {
|
|
154
|
+
try {
|
|
155
|
+
await work();
|
|
156
|
+
delete state.failure;
|
|
157
|
+
} catch (error) {
|
|
158
|
+
lock_failure(error);
|
|
159
|
+
state.failure = error;
|
|
160
|
+
}
|
|
161
|
+
return state.failure === void 0 ? true : void 0;
|
|
162
|
+
},
|
|
163
|
+
{ attempts: ATTEMPTS, interval_ms: INTERVAL_MS }
|
|
164
|
+
);
|
|
165
|
+
if (is_complete === void 0) throw state.failure;
|
|
166
|
+
}
|
|
167
|
+
function read(root, name) {
|
|
168
|
+
const target = path.join(root, name);
|
|
169
|
+
if (!existsSync(target)) return void 0;
|
|
170
|
+
if (!lstatSync(target).isFile()) throw new Error(`Not a regular ledger file: ${target}`);
|
|
171
|
+
return readFileSync(target, "utf8");
|
|
172
|
+
}
|
|
173
|
+
function write(root, name, content) {
|
|
174
|
+
const target = path.join(root, name);
|
|
175
|
+
if (content === void 0) {
|
|
176
|
+
rmSync(target, { force: true });
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
mkdirSync(path.dirname(target), { recursive: true });
|
|
180
|
+
writeFileSync(target, content, "utf8");
|
|
181
|
+
}
|
|
182
|
+
async function capture(root) {
|
|
183
|
+
const output = await git_spawn.read([
|
|
184
|
+
"-C",
|
|
185
|
+
root,
|
|
186
|
+
"ls-files",
|
|
187
|
+
"-z",
|
|
188
|
+
"--cached",
|
|
189
|
+
"--others",
|
|
190
|
+
"--exclude-standard"
|
|
191
|
+
]);
|
|
192
|
+
const names = new Set(
|
|
193
|
+
output.split("\0").filter((name) => observation_ledger.is_ledger_path(name))
|
|
194
|
+
);
|
|
195
|
+
return [...names].map((name) => ({
|
|
196
|
+
name,
|
|
197
|
+
content: read(root, name)
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
function apply(root, files) {
|
|
201
|
+
for (const file of files) write(root, file.name, file.content);
|
|
202
|
+
}
|
|
203
|
+
function reconciled_content(file, suffix) {
|
|
204
|
+
if (suffix === "" && file.base === void 0) return void 0;
|
|
205
|
+
return (file.base ?? "") + suffix;
|
|
206
|
+
}
|
|
207
|
+
function reconciled_file(root, file) {
|
|
208
|
+
const current = read(root, file.name) ?? "";
|
|
209
|
+
const original = file.content ?? "";
|
|
210
|
+
if (!current.startsWith(original)) {
|
|
211
|
+
throw new Error(`Ledger changed beyond an append: ${file.name}; recovery retained`);
|
|
212
|
+
}
|
|
213
|
+
return { ...file, content: reconciled_content(file, current.slice(original.length)) };
|
|
214
|
+
}
|
|
215
|
+
function starts_with(current = "", expected = "") {
|
|
216
|
+
return current.startsWith(expected);
|
|
217
|
+
}
|
|
218
|
+
function restore_file(root, file, before) {
|
|
219
|
+
const current = read(root, file.name);
|
|
220
|
+
if (current === file.content) return;
|
|
221
|
+
if (before !== void 0 && starts_with(current, before.content)) {
|
|
222
|
+
write(root, file.name, reconciled_file(root, before).content);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (!starts_with(current, file.content)) throw new Error(`Recovery conflict: ${file.name}`);
|
|
226
|
+
}
|
|
227
|
+
function restore(root, before, after) {
|
|
228
|
+
for (const file of after) {
|
|
229
|
+
restore_file(
|
|
230
|
+
root,
|
|
231
|
+
file,
|
|
232
|
+
before.find((entry) => entry.name === file.name)
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
function save(target, state) {
|
|
237
|
+
writeFileSync(`${target}.tmp`, JSON.stringify(state), "utf8");
|
|
238
|
+
renameSync(`${target}.tmp`, target);
|
|
239
|
+
}
|
|
240
|
+
async function location(root) {
|
|
241
|
+
const own = await git_spawn.read(["-C", root, "rev-parse", "--absolute-git-dir"]);
|
|
242
|
+
const directory = path.join(own, "josh", "observation-flush");
|
|
243
|
+
mkdirSync(directory, { recursive: true });
|
|
244
|
+
return path.join(directory, "state.json");
|
|
245
|
+
}
|
|
246
|
+
async function create(root, branch, target) {
|
|
247
|
+
const existing = git_spawn_sync.read(
|
|
248
|
+
["show-ref", "--verify", `refs/heads/${branch}`],
|
|
249
|
+
git_spawn_sync.located(root)
|
|
250
|
+
);
|
|
251
|
+
const state = {
|
|
252
|
+
branch: existing === void 0 ? branch : `${branch}-${randomUUID()}`,
|
|
253
|
+
base: await git_command.head_commit(),
|
|
254
|
+
index: await git_spawn.read(["-C", root, "diff", "--cached", "--binary"]),
|
|
255
|
+
tree: `${path.dirname(target)}/tree`,
|
|
256
|
+
files: await capture(root)
|
|
257
|
+
};
|
|
258
|
+
save(target, state);
|
|
259
|
+
return state;
|
|
260
|
+
}
|
|
261
|
+
async function initialize(root, state, target) {
|
|
262
|
+
if (state.initialized === true) return;
|
|
263
|
+
const existing = git_spawn_sync.read(
|
|
264
|
+
["show-ref", "--verify", `refs/heads/${state.branch}`],
|
|
265
|
+
git_spawn_sync.located(root)
|
|
266
|
+
);
|
|
267
|
+
if (!existsSync(state.tree)) {
|
|
268
|
+
await git_worktree.worktree_add(
|
|
269
|
+
state.tree,
|
|
270
|
+
state.branch,
|
|
271
|
+
existing === void 0 ? state.base : void 0
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
Object.assign(state, {
|
|
275
|
+
files: state.files.map((file) => ({ ...file, base: read(state.tree, file.name) })),
|
|
276
|
+
initialized: true
|
|
277
|
+
});
|
|
278
|
+
save(target, state);
|
|
279
|
+
}
|
|
280
|
+
async function load(root, branch, target) {
|
|
281
|
+
const state = existsSync(target) ? state_schema.parse(JSON.parse(readFileSync(target, "utf8"))) : await create(root, branch, target);
|
|
282
|
+
await initialize(root, state, target);
|
|
283
|
+
return state;
|
|
284
|
+
}
|
|
285
|
+
async function pending(root) {
|
|
286
|
+
return existsSync(await location(root));
|
|
287
|
+
}
|
|
288
|
+
async function reset_preparation(state, target) {
|
|
289
|
+
const ledger = path.join(state.tree, OBSERVATION_LEDGER_DIRECTORY);
|
|
290
|
+
if (existsSync(ledger)) {
|
|
291
|
+
cpSync(ledger, `${path.dirname(target)}/attempt-${String(Date.now())}`, { recursive: true });
|
|
292
|
+
}
|
|
293
|
+
await git_spawn.read(["reset", "--hard", state.base]);
|
|
294
|
+
await git_spawn.read(["clean", "-fd", "--", OBSERVATION_LEDGER_DIRECTORY]);
|
|
295
|
+
apply(state.tree, state.files);
|
|
296
|
+
}
|
|
297
|
+
async function stage() {
|
|
298
|
+
const status = await git_command.status();
|
|
299
|
+
const unstaged = status.split("\n").filter((line) => line[1] !== " ").join("\n");
|
|
300
|
+
const names = observation_ledger.ledger_paths(unstaged);
|
|
301
|
+
for (const name of names) {
|
|
302
|
+
await retry(async () => await git_spawn.read(["add", "--", name]));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
async function prepare(state, target, steps) {
|
|
306
|
+
if (await git_command.head_commit() !== state.base) return;
|
|
307
|
+
if (state.archived === void 0) {
|
|
308
|
+
await reset_preparation(state, target);
|
|
309
|
+
Object.assign(state, { archived: await steps.prepare() });
|
|
310
|
+
save(target, state);
|
|
311
|
+
}
|
|
312
|
+
await stage();
|
|
313
|
+
if (!observation_ledger.has_pending_append(await git_command.status())) return;
|
|
314
|
+
await retry(async () => await git_spawn.read(["commit", "-m", COMMIT_MESSAGE], SUITE_TIMEOUT_MS));
|
|
315
|
+
}
|
|
316
|
+
async function publish(state, target, steps) {
|
|
317
|
+
const is_committed = await git_command.head_commit() !== state.base;
|
|
318
|
+
Object.assign(state, { committed: is_committed });
|
|
319
|
+
save(target, state);
|
|
320
|
+
if (is_committed) await steps.publish(state.branch, state.archived ?? 0);
|
|
321
|
+
Object.assign(state, { landed: true });
|
|
322
|
+
save(target, state);
|
|
323
|
+
}
|
|
324
|
+
async function install(state, target) {
|
|
325
|
+
if (state.installed === true) return;
|
|
326
|
+
const result = await lane_install.install_dependencies(state.tree);
|
|
327
|
+
if (!result.is_installed) {
|
|
328
|
+
throw new Error(`Flush worktree dependency installation failed: ${result.output}`);
|
|
329
|
+
}
|
|
330
|
+
Object.assign(state, { installed: true });
|
|
331
|
+
save(target, state);
|
|
332
|
+
}
|
|
333
|
+
async function inside(state, target, steps) {
|
|
334
|
+
if (state.landed === true) return;
|
|
335
|
+
const previous = process.cwd();
|
|
336
|
+
try {
|
|
337
|
+
process.chdir(state.tree);
|
|
338
|
+
await install(state, target);
|
|
339
|
+
await prepare(state, target, steps);
|
|
340
|
+
await publish(state, target, steps);
|
|
341
|
+
} finally {
|
|
342
|
+
process.chdir(previous);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
async function finish(root, state, target) {
|
|
346
|
+
const index = await git_spawn.read(["-C", root, "diff", "--cached", "--binary"]);
|
|
347
|
+
if (index !== state.index) throw new Error("Source index changed during flush; recovery retained");
|
|
348
|
+
state.reconciled ??= state.files.map((file) => reconciled_file(root, file));
|
|
349
|
+
save(target, state);
|
|
350
|
+
restore(root, state.files, state.reconciled);
|
|
351
|
+
if (existsSync(state.tree)) await git_worktree.worktree_remove(state.tree);
|
|
352
|
+
renameSync(target, `${target}.completed-${path.basename(state.branch)}`);
|
|
353
|
+
}
|
|
354
|
+
async function transact(root, branch, steps) {
|
|
355
|
+
const target = await location(root);
|
|
356
|
+
try {
|
|
357
|
+
const state = await load(root, branch, target);
|
|
358
|
+
await inside(state, target, steps);
|
|
359
|
+
await finish(root, state, target);
|
|
360
|
+
return state.committed === true ? state.branch : "";
|
|
361
|
+
} catch (error) {
|
|
362
|
+
throw new Error(
|
|
363
|
+
`${error_text.message_of(error)} \u2014 observations recovery: ${target}; rerun observations:flush; do not remove the recovery tree`,
|
|
364
|
+
{ cause: error }
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
async function run(root, branch, steps) {
|
|
369
|
+
const lock = repository_lock.lock_path("josh-observation-flush-", root);
|
|
370
|
+
const result = await repository_lock.with_lock(
|
|
371
|
+
async () => await transact(root, branch, steps),
|
|
372
|
+
lock,
|
|
373
|
+
LOCK_WAIT_MS
|
|
374
|
+
);
|
|
375
|
+
if (result === void 0) throw new Error("Observation flush is already running; retry later");
|
|
376
|
+
return result;
|
|
377
|
+
}
|
|
378
|
+
var observations_flush_transaction = { pending, run };
|
|
379
|
+
|
|
380
|
+
// scripts/observations/observations-flush.ts
|
|
381
|
+
var COMMIT_MESSAGE2 = "Record observation ledger entries";
|
|
382
|
+
var CLEAN_MESSAGE = `clean \u2014 ${OBSERVATION_LEDGER_DIRECTORY} matches the commit it sits on, so there is nothing to flush`;
|
|
383
|
+
var BRANCH_PREFIX = "observations/";
|
|
384
|
+
var SUCCESS_EXIT_CODE = 0;
|
|
385
|
+
var RETURN_FAILURE_MESSAGE = "Could not return this checkout to the default branch; `pnpm josh ms` printed the reason above.";
|
|
386
|
+
var DATE_END = 10;
|
|
387
|
+
var TIME_START = 11;
|
|
388
|
+
var TIME_END = 19;
|
|
389
|
+
var COLON = ":";
|
|
390
|
+
var NO_COMMITS = 0;
|
|
391
|
+
var NO_ARCHIVED_FILES = 0;
|
|
392
|
+
var UNKNOWN_COMMIT_COUNT = 1;
|
|
393
|
+
function timestamp_for(now) {
|
|
394
|
+
const iso = now.toISOString();
|
|
395
|
+
return `${iso.slice(0, DATE_END)}-${iso.slice(TIME_START, TIME_END).replaceAll(COLON, "")}`;
|
|
396
|
+
}
|
|
397
|
+
function branch_name_for(stamp) {
|
|
398
|
+
return `${BRANCH_PREFIX}${stamp}`;
|
|
399
|
+
}
|
|
400
|
+
function ledger_change_sentence(archived_files) {
|
|
401
|
+
if (archived_files === NO_ARCHIVED_FILES) {
|
|
402
|
+
return "so this pull request adds lines and changes none.";
|
|
403
|
+
}
|
|
404
|
+
return `so this pull request drops none: it adds lines, and moves ${String(archived_files)} closed issues' file(s) verbatim into the monthly \`archive-YYYY-MM.md\` files.`;
|
|
405
|
+
}
|
|
406
|
+
function pull_request_body(archived_files) {
|
|
407
|
+
return [
|
|
408
|
+
`Appended observations from \`${OBSERVATION_LEDGER_DIRECTORY}\` that no run's own commit carried.`,
|
|
409
|
+
"",
|
|
410
|
+
`The ledger is append-only, and a second line under one key is what promotes an observation to an issue \u2014 ${ledger_change_sentence(archived_files)}`,
|
|
411
|
+
"",
|
|
412
|
+
"Opened by `pnpm josh observations:flush` (joshuafolkken/kit#1756)."
|
|
413
|
+
].join("\n");
|
|
414
|
+
}
|
|
415
|
+
function status_paths(status_output) {
|
|
416
|
+
return status_output.split("\n").filter((line) => line.trim().length > 0).map((line) => observation_ledger.status_path(line));
|
|
417
|
+
}
|
|
418
|
+
function has_ledger_change(status_output) {
|
|
419
|
+
return observation_ledger.has_pending_append(status_output);
|
|
420
|
+
}
|
|
421
|
+
function other_changed_paths(status_output) {
|
|
422
|
+
return status_paths(status_output).filter(
|
|
423
|
+
(file_path) => !observation_ledger.is_ledger_path(file_path)
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
function stranded_flush_message(current) {
|
|
427
|
+
return `\`${current}\` is a flush branch an earlier \`pnpm josh observations:flush\` left behind, and its appended observations are committed only there. Land it before flushing again \u2014 \`git push -u origin ${current}\`, then open and merge its pull request; \`pnpm josh ms\` here would leave the only copy of those lines behind.`;
|
|
428
|
+
}
|
|
429
|
+
function empty_flush_message(current) {
|
|
430
|
+
return `\`${current}\` is a flush branch an earlier \`pnpm josh observations:flush\` left behind with no commit on it, so nothing is stranded: the appended observations are still in this working tree. Run \`pnpm josh ms\` and flush again \u2014 that cuts a fresh branch and loses no line, leaving \`${current}\` as an empty branch to clear whenever it suits you.`;
|
|
431
|
+
}
|
|
432
|
+
function flush_branch_message(current, commit_count) {
|
|
433
|
+
return commit_count === NO_COMMITS ? empty_flush_message(current) : stranded_flush_message(current);
|
|
434
|
+
}
|
|
435
|
+
function off_default_message(current, default_branch) {
|
|
436
|
+
return `\`pnpm josh observations:flush\` opens a branch of its own, so it starts from \`${default_branch}\` \u2014 this checkout is on \`${current}\`. Run \`pnpm josh ms\` first.`;
|
|
437
|
+
}
|
|
438
|
+
function behind_default_message(default_branch, reason) {
|
|
439
|
+
return `\`pnpm josh observations:flush\` cuts its branch from \`${default_branch}\`, which is behind \`origin/${default_branch}\` and could not be fast-forwarded (${reason}) \u2014 a branch cut here would open a pull request that cannot merge. Run \`pnpm josh ms\` first.`;
|
|
440
|
+
}
|
|
441
|
+
function is_flush_branch(current) {
|
|
442
|
+
return current.startsWith(BRANCH_PREFIX);
|
|
443
|
+
}
|
|
444
|
+
function rejected_commit_message(branch_name, reason) {
|
|
445
|
+
return `The ledger's commit was rejected, so \`${branch_name}\` was removed and this checkout is back on the default branch: ${reason} \u2014 the appended observations are still in the working tree. Fix what was rejected and run \`pnpm josh observations:flush\` again.`;
|
|
446
|
+
}
|
|
447
|
+
function roll_back_failure_message(branch_name, reason, roll_back_reason) {
|
|
448
|
+
return `The ledger's commit was rejected and \`${branch_name}\` could not be cleaned up afterwards. The commit was rejected by: ${reason}. The cleanup failed with: ${roll_back_reason}. Nothing was committed to that branch and the appended observations are still in the working tree, so \`pnpm josh ms\` followed by another flush loses no line.`;
|
|
449
|
+
}
|
|
450
|
+
function other_changes_message(paths) {
|
|
451
|
+
return `The working tree holds changes besides the ledger, so \`pnpm josh observations:flush\` stops rather than committing them: ${paths.join(", ")}`;
|
|
452
|
+
}
|
|
453
|
+
function stranded_branch_message(branch_name, reason) {
|
|
454
|
+
return `The ledger is committed on \`${branch_name}\` and the flush then failed: ${reason} \u2014 those lines now exist only on that branch, and this checkout is still on it. Finish that branch's pull request before running \`pnpm josh ms\` here.`;
|
|
455
|
+
}
|
|
456
|
+
async function commits_beyond(base, tip) {
|
|
457
|
+
try {
|
|
458
|
+
return await git_command.commit_count_beyond(base, tip);
|
|
459
|
+
} catch {
|
|
460
|
+
return UNKNOWN_COMMIT_COUNT;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
async function refuse_off_default(current, default_branch) {
|
|
464
|
+
if (!is_flush_branch(current)) throw new Error(off_default_message(current, default_branch));
|
|
465
|
+
throw new Error(flush_branch_message(current, await commits_beyond(default_branch, current)));
|
|
466
|
+
}
|
|
467
|
+
async function commits_behind_default(default_branch) {
|
|
468
|
+
await git_command.fetch_branch(default_branch);
|
|
469
|
+
return await git_command.commit_count_beyond("HEAD", `origin/${default_branch}`);
|
|
470
|
+
}
|
|
471
|
+
async function catch_up_default(default_branch) {
|
|
472
|
+
if (await commits_behind_default(default_branch) === NO_COMMITS) return;
|
|
473
|
+
try {
|
|
474
|
+
await git_command.merge_fast_forward(default_branch);
|
|
475
|
+
} catch (error) {
|
|
476
|
+
throw new Error(behind_default_message(default_branch, error_text.message_of(error)), {
|
|
477
|
+
cause: error
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
async function refuse_unsafe_flush(status_output) {
|
|
482
|
+
const current = await git_command.branch();
|
|
483
|
+
const default_branch = await git_command.get_default_branch();
|
|
484
|
+
if (current !== default_branch) await refuse_off_default(current, default_branch);
|
|
485
|
+
const others = other_changed_paths(status_output);
|
|
486
|
+
if (others.length > 0) throw new Error(other_changes_message(others));
|
|
487
|
+
return default_branch;
|
|
488
|
+
}
|
|
489
|
+
async function return_to_default_branch(default_branch) {
|
|
490
|
+
if (await git_command.branch() !== default_branch) throw new Error(RETURN_FAILURE_MESSAGE);
|
|
491
|
+
const exit_code = await main_sync.run([]);
|
|
492
|
+
if (exit_code !== SUCCESS_EXIT_CODE) throw new Error(RETURN_FAILURE_MESSAGE);
|
|
493
|
+
}
|
|
494
|
+
async function push_and_open(branch_name, body) {
|
|
495
|
+
try {
|
|
496
|
+
await git_command.push();
|
|
497
|
+
return await git_gh_command.pr_create(COMMIT_MESSAGE2, body, IGNORE_FOR_RELEASE_LABEL);
|
|
498
|
+
} catch (error) {
|
|
499
|
+
throw new Error(
|
|
500
|
+
`The ledger is committed on \`${branch_name}\` in the recovery worktree; publication failed: ${error_text.message_of(error)}. The source checkout and original records are preserved. Rerun \`pnpm josh observations:flush\` from the source checkout to resume.`,
|
|
501
|
+
{ cause: error }
|
|
502
|
+
);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
function merged_message(branch_name) {
|
|
506
|
+
return `merged \`${branch_name}\` \u2014 the appended observations are on the default branch`;
|
|
507
|
+
}
|
|
508
|
+
function broken_lines_message(broken) {
|
|
509
|
+
const rows = broken.map((entry) => ` ${entry.line}
|
|
510
|
+
\u21B3 ${entry.reason}`).join("\n");
|
|
511
|
+
return `\`${OBSERVATION_LEDGER_DIRECTORY}\` has ${String(broken.length)} line(s) that break the ledger grammar, so the ledger commit stops rather than carrying them:
|
|
512
|
+
${rows}`;
|
|
513
|
+
}
|
|
514
|
+
async function prepare_ledger() {
|
|
515
|
+
const broken = await observation_ledger_prepare.prepare(process.cwd());
|
|
516
|
+
if (broken.length > 0) throw new Error(broken_lines_message(broken));
|
|
517
|
+
}
|
|
518
|
+
async function ready_default_branch(status_output) {
|
|
519
|
+
const default_branch = await refuse_unsafe_flush(status_output);
|
|
520
|
+
if (status_output.split("\n").some((line) => /^[^ ?]/u.test(line))) {
|
|
521
|
+
throw new Error(
|
|
522
|
+
"Staged changes must be committed or unstaged before observations:flush; index left untouched"
|
|
523
|
+
);
|
|
524
|
+
}
|
|
525
|
+
if (!await observations_flush_transaction.pending(process.cwd())) {
|
|
526
|
+
await catch_up_default(default_branch);
|
|
527
|
+
}
|
|
528
|
+
return default_branch;
|
|
529
|
+
}
|
|
530
|
+
async function carried_status() {
|
|
531
|
+
await review_comment_carry.carry_reported(process.cwd());
|
|
532
|
+
const archived_files = await observation_ledger_archive.archive(process.cwd());
|
|
533
|
+
return { status_output: await git_command.status(), archived_files };
|
|
534
|
+
}
|
|
535
|
+
async function prepare_isolated() {
|
|
536
|
+
const { archived_files } = await carried_status();
|
|
537
|
+
await prepare_ledger();
|
|
538
|
+
return archived_files;
|
|
539
|
+
}
|
|
540
|
+
async function publish_isolated(branch_name, archived_files) {
|
|
541
|
+
if (await git_pr_checks.read_merge_progress(branch_name) === "merged") return;
|
|
542
|
+
const open = await git_gh_command.pr_list_open_with_head_prefix(branch_name);
|
|
543
|
+
if (open.length === 0) {
|
|
544
|
+
console.info(await push_and_open(branch_name, pull_request_body(archived_files)));
|
|
545
|
+
}
|
|
546
|
+
const is_auto_merge = await observations_flush_landing.request_auto_merge(branch_name);
|
|
547
|
+
await observations_flush_landing.wait_for_landing(branch_name, is_auto_merge);
|
|
548
|
+
}
|
|
549
|
+
async function flush(now) {
|
|
550
|
+
const default_branch = await ready_default_branch(await git_command.status());
|
|
551
|
+
const is_pending = await observations_flush_transaction.pending(process.cwd());
|
|
552
|
+
const deferred = is_pending ? void 0 : await observations_flush_landing.refuse_open_flush(BRANCH_PREFIX);
|
|
553
|
+
if (deferred !== void 0) return deferred;
|
|
554
|
+
const branch_name = branch_name_for(timestamp_for(now));
|
|
555
|
+
const committed_branch = await observations_flush_transaction.run(process.cwd(), branch_name, {
|
|
556
|
+
prepare: prepare_isolated,
|
|
557
|
+
publish: publish_isolated
|
|
558
|
+
});
|
|
559
|
+
if (committed_branch === "") return CLEAN_MESSAGE;
|
|
560
|
+
await return_to_default_branch(default_branch);
|
|
561
|
+
return merged_message(committed_branch);
|
|
562
|
+
}
|
|
563
|
+
var observations_flush = {
|
|
564
|
+
behind_default_message,
|
|
565
|
+
branch_name_for,
|
|
566
|
+
broken_lines_message,
|
|
567
|
+
CLEAN_MESSAGE,
|
|
568
|
+
COMMIT_MESSAGE: COMMIT_MESSAGE2,
|
|
569
|
+
flush,
|
|
570
|
+
flush_branch_message,
|
|
571
|
+
has_ledger_change,
|
|
572
|
+
merged_message,
|
|
573
|
+
off_default_message,
|
|
574
|
+
other_changed_paths,
|
|
575
|
+
other_changes_message,
|
|
576
|
+
pull_request_body,
|
|
577
|
+
rejected_commit_message,
|
|
578
|
+
roll_back_failure_message,
|
|
579
|
+
stranded_branch_message,
|
|
580
|
+
timestamp_for
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
export {
|
|
584
|
+
observations_flush
|
|
585
|
+
};
|
|
@@ -6,19 +6,19 @@ import {
|
|
|
6
6
|
} from "./chunk-KVURNO74.js";
|
|
7
7
|
import {
|
|
8
8
|
review_code_tree
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KK2SL42W.js";
|
|
10
10
|
import {
|
|
11
11
|
review_attest
|
|
12
12
|
} from "./chunk-KIILCKQR.js";
|
|
13
13
|
import {
|
|
14
14
|
observation_ledger_home
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WWVYEHQT.js";
|
|
16
16
|
import {
|
|
17
17
|
project_checks
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-JM6EVOFN.js";
|
|
19
19
|
import {
|
|
20
20
|
session_cite
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-22DVQCP6.js";
|
|
22
22
|
import {
|
|
23
23
|
changed_paths
|
|
24
24
|
} from "./chunk-V5FD7DVV.js";
|