@maycombhq/atticus 2.0.0-beta.21 → 2.0.0-beta.22
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/dist/bin.js +3 -3
- package/dist/{chunk-TJH2EUAZ.js → chunk-23XVSEV5.js} +20 -18
- package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
- package/dist/{chunk-DCWN3HFV.js → chunk-24XLDU72.js} +4 -3
- package/dist/{chunk-Q46QDDMF.js → chunk-2F4CYZKJ.js} +14 -9
- package/dist/{chunk-75ASLHBT.js → chunk-2GF7OLF3.js} +17 -15
- package/dist/chunk-2IIMFOPM.js +41 -0
- package/dist/{chunk-JRVNXLZP.js → chunk-2LGRMVCA.js} +14 -12
- package/dist/{chunk-62DLJSLV.js → chunk-2MMCFP5C.js} +10 -8
- package/dist/{chunk-UF4UHCIG.js → chunk-2Q56PQPS.js} +6 -4
- package/dist/{chunk-5TDRBOAV.js → chunk-2Q5EDGEO.js} +7 -5
- package/dist/{chunk-NYOABJNK.js → chunk-2RLKFUUL.js} +26 -24
- package/dist/chunk-2SKB4O2E.js +59 -0
- package/dist/{chunk-GCS3FZOB.js → chunk-34S2WGOB.js} +13 -4
- package/dist/{chunk-7AB6OWTV.js → chunk-3NFFJL5D.js} +31 -25
- package/dist/{chunk-GC2VK3JT.js → chunk-3NWDLGG6.js} +28 -25
- package/dist/{chunk-FLVZFTLQ.js → chunk-3RM4UK6W.js} +20 -18
- package/dist/{chunk-CNU5Q2D5.js → chunk-42SIDKEU.js} +37 -29
- package/dist/{chunk-K6JB6XTX.js → chunk-4EURQWQD.js} +20 -15
- package/dist/{chunk-OMPENNWY.js → chunk-4U276ICE.js} +1 -1
- package/dist/{chunk-JAABT3DA.js → chunk-53T4O55J.js} +4 -3
- package/dist/{chunk-YTTNTQOX.js → chunk-57TDNMI3.js} +17 -15
- package/dist/chunk-5BD2KYLE.js +57 -0
- package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
- package/dist/{chunk-KYZMRSPS.js → chunk-5NMKONLP.js} +5 -3
- package/dist/{chunk-5CMPVC3N.js → chunk-5SJZW52K.js} +25 -23
- package/dist/{chunk-YAH5IQAL.js → chunk-63YRMR6J.js} +6 -5
- package/dist/{chunk-GUYL7RMK.js → chunk-66PPNOON.js} +27 -25
- package/dist/chunk-6H3Z5JHH.js +64 -0
- package/dist/{chunk-Y6K3CJBU.js → chunk-6MUGR4LS.js} +75 -27
- package/dist/{chunk-DDJPM5YX.js → chunk-6OJQOPUN.js} +5 -3
- package/dist/{chunk-2V2ZPQQU.js → chunk-6PPOWY5E.js} +9 -7
- package/dist/{chunk-YO2PKTXT.js → chunk-6ZGLAACW.js} +5 -3
- package/dist/{chunk-LIJJCBQI.js → chunk-6ZJ5A7AF.js} +15 -16
- package/dist/{chunk-64AADMTW.js → chunk-745DAZ4L.js} +50 -12
- package/dist/{chunk-VYOCPTUB.js → chunk-7ASNL4Q4.js} +17 -15
- package/dist/{chunk-XEQCQO66.js → chunk-7BR7IPOH.js} +10 -8
- package/dist/{chunk-X2CUXTWU.js → chunk-7DOR27HL.js} +6 -6
- package/dist/{chunk-G6IQYM25.js → chunk-7FTTA3HD.js} +8 -6
- package/dist/{chunk-FAJDKNSD.js → chunk-7GJS6DNX.js} +8 -3
- package/dist/{chunk-4KNOJC6J.js → chunk-7IGKHZ4Z.js} +55 -13
- package/dist/{chunk-3WON4G3M.js → chunk-7IOWA5D5.js} +11 -6
- package/dist/{chunk-PNQLCRSS.js → chunk-7JITZFJC.js} +7 -5
- package/dist/{chunk-2D7PWSOK.js → chunk-7MJSQTL5.js} +22 -20
- package/dist/{chunk-AE4P57KK.js → chunk-7UOMVMFG.js} +17 -15
- package/dist/{chunk-GK4PYVEC.js → chunk-AFWUDXEM.js} +10 -8
- package/dist/chunk-AFZ3QA6W.js +47 -0
- package/dist/{chunk-7FUIVIBG.js → chunk-AJQ72EBM.js} +13 -8
- package/dist/{chunk-QOOEYDNJ.js → chunk-AJYXNTNZ.js} +6 -6
- package/dist/chunk-AVTBS4OW.js +49 -0
- package/dist/{chunk-WFU77T3A.js → chunk-BDKC6H5P.js} +5 -5
- package/dist/{chunk-3AQ2R5NL.js → chunk-BEVTIBRH.js} +9 -7
- package/dist/{chunk-J5AAZ6OJ.js → chunk-BHT7QK4G.js} +5 -4
- package/dist/{chunk-UFE36WJH.js → chunk-BIGDQDHD.js} +6 -4
- package/dist/{chunk-WNTIOBOG.js → chunk-BO4KX37X.js} +20 -18
- package/dist/{chunk-455SYIIE.js → chunk-BPK5P77O.js} +5 -3
- package/dist/{chunk-OZJ3JLYI.js → chunk-BQ4SQQC6.js} +10 -9
- package/dist/chunk-BQGDB6ZL.js +7342 -0
- package/dist/{chunk-EZIN5E5B.js → chunk-BTGPE6CR.js} +11 -9
- package/dist/{chunk-265LWMOA.js → chunk-BTY3HZBO.js} +18 -16
- package/dist/{chunk-TW3KOSQK.js → chunk-BXYMYEJ4.js} +7 -6
- package/dist/{chunk-HK3VOHIE.js → chunk-C3RY6KU6.js} +119 -18
- package/dist/chunk-C4R4JLHE.js +40 -0
- package/dist/{chunk-Z3QFH7YG.js → chunk-CADWLE2T.js} +5 -4
- package/dist/{chunk-J2O4LFVI.js → chunk-CBGGOQWU.js} +6 -4
- package/dist/chunk-CMDXGQTS.js +47 -0
- package/dist/{chunk-TWQRPM76.js → chunk-CQDGOPGH.js} +23 -16
- package/dist/{chunk-5PV7S2ZP.js → chunk-CX4RZ2KS.js} +4 -3
- package/dist/{chunk-JYMIB5XY.js → chunk-CXJ6FUKN.js} +164 -44
- package/dist/{chunk-D57MFJPP.js → chunk-D73UEXYW.js} +3 -3
- package/dist/{chunk-UYLBRRFK.js → chunk-DCZWQLYT.js} +125 -26
- package/dist/chunk-DLOBCJL6.js +48 -0
- package/dist/{chunk-IFHDV6KQ.js → chunk-DOBQKHIF.js} +23 -23
- package/dist/{chunk-QJCJOMW3.js → chunk-E3ISYXO3.js} +19 -21
- package/dist/{chunk-VAMHOHUU.js → chunk-E6ZIEVOI.js} +16 -13
- package/dist/{chunk-EFCQSMXB.js → chunk-EBL2R3YG.js} +10 -4
- package/dist/{chunk-HGHRSF3E.js → chunk-EGQRREQH.js} +25 -17
- package/dist/{chunk-3J5I7ZOU.js → chunk-EHA7RMZ3.js} +4 -4
- package/dist/{chunk-7CZHUZBL.js → chunk-EIPTLPFC.js} +38 -27
- package/dist/{chunk-UZACEG2C.js → chunk-EMRIQUND.js} +17 -15
- package/dist/{chunk-RALY3E5U.js → chunk-EPCJQQWD.js} +6 -4
- package/dist/{chunk-VUVGX5L2.js → chunk-F3P7N7SF.js} +1 -1
- package/dist/{chunk-RA33EYS4.js → chunk-FFLNS6VP.js} +19 -17
- package/dist/{chunk-OPQZISG3.js → chunk-FFTRTL6R.js} +5 -4
- package/dist/{chunk-DUPZPDCJ.js → chunk-FPJPLKDW.js} +18 -14
- package/dist/{chunk-2HH3UCZM.js → chunk-FSMSFDLD.js} +5 -4
- package/dist/{chunk-AHW3RY3X.js → chunk-FUJM6RTF.js} +8 -7
- package/dist/{chunk-2UCRFXFZ.js → chunk-FZOJFH7Q.js} +13 -11
- package/dist/{chunk-BVWWPBKD.js → chunk-G6X77UJZ.js} +20 -18
- package/dist/{chunk-BPPU3PW7.js → chunk-GCWRWSU7.js} +10 -4
- package/dist/chunk-GIW4ZVDB.js +39 -0
- package/dist/{chunk-FY3QIRTL.js → chunk-GUX3PTYM.js} +3 -3
- package/dist/{chunk-BA2HUMDN.js → chunk-GZY6RUZ6.js} +2 -2
- package/dist/chunk-H4VO6WG3.js +10 -0
- package/dist/{chunk-UEVZZZU2.js → chunk-H5HBGNXU.js} +5 -4
- package/dist/{chunk-GS76RXQE.js → chunk-H7KM7LZE.js} +15 -12
- package/dist/{chunk-I2A3Z5AK.js → chunk-HNM2YQT2.js} +4 -4
- package/dist/{chunk-3UTYPHN3.js → chunk-HYU5VLGA.js} +1 -1
- package/dist/{chunk-HSZMPH5T.js → chunk-IDKCWSM5.js} +225 -50
- package/dist/{chunk-BXZ4PKIT.js → chunk-IFKEI4SA.js} +15 -11
- package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
- package/dist/{chunk-GNWAOVFQ.js → chunk-IH2XURVQ.js} +5 -5
- package/dist/{chunk-YIGBJNH4.js → chunk-INQHESFB.js} +5 -4
- package/dist/chunk-IP74LCOQ.js +57 -0
- package/dist/chunk-IPHHDDC6.js +45 -0
- package/dist/{chunk-5WERBKLE.js → chunk-ISUAAMGS.js} +42 -221
- package/dist/{chunk-7FHNFCHK.js → chunk-IUPG3UKI.js} +154 -368
- package/dist/{chunk-HWD4JPU7.js → chunk-IVBOQAGB.js} +4 -2
- package/dist/{chunk-4SLBCEPD.js → chunk-J2JAKCIW.js} +88 -57
- package/dist/{chunk-G5YJBNDZ.js → chunk-J3IOLXWM.js} +8 -6
- package/dist/{chunk-FQ6WH6PB.js → chunk-JA5FI3QV.js} +6 -4
- package/dist/chunk-JAVI7JSP.js +49 -0
- package/dist/{chunk-ZFQMMU5Y.js → chunk-JB5LINEM.js} +6 -2
- package/dist/{chunk-LQH4P45K.js → chunk-JENSEMXF.js} +1 -1
- package/dist/{chunk-M6D2U3YM.js → chunk-JJF6HALY.js} +4 -3
- package/dist/chunk-JLUCKAEL.js +38 -0
- package/dist/{chunk-M4H2UG4R.js → chunk-JRBFANFE.js} +19 -16
- package/dist/{chunk-YZDZOEV4.js → chunk-KDNTAPLX.js} +3 -3
- package/dist/{chunk-IFFRGC3N.js → chunk-KFAVQZSX.js} +14 -12
- package/dist/chunk-KJXD4PNL.js +50 -0
- package/dist/chunk-KN5BXMWN.js +44 -0
- package/dist/{chunk-HXXP2NTE.js → chunk-KQGURXFU.js} +9 -7
- package/dist/{chunk-PQH56YF6.js → chunk-KXITGYLF.js} +6 -4
- package/dist/{chunk-MMZUN7ZO.js → chunk-L27SV425.js} +22 -20
- package/dist/{chunk-XQ3YZ4QW.js → chunk-LDLL7LB3.js} +24 -22
- package/dist/{chunk-6DQYZU2W.js → chunk-LFGTYX5U.js} +15 -15
- package/dist/{chunk-4D62IZII.js → chunk-LGBMTVNT.js} +7 -5
- package/dist/{chunk-YKTE2RU3.js → chunk-LGFL54FP.js} +3 -2
- package/dist/{chunk-GDZB57IU.js → chunk-LJXMYKZJ.js} +7 -5
- package/dist/{chunk-YJ3TBOTK.js → chunk-LKOR5UET.js} +29 -26
- package/dist/{chunk-WIWTJMMR.js → chunk-LNBQOP7D.js} +23 -21
- package/dist/{chunk-TGVVUKTG.js → chunk-LO6P2VYG.js} +2 -2
- package/dist/{chunk-HE3HRDNZ.js → chunk-LQJPN536.js} +2 -2
- package/dist/{chunk-PRW3HXM3.js → chunk-LYBNHMVZ.js} +29 -5
- package/dist/{chunk-75ZOZFGH.js → chunk-LZ7NUC62.js} +20 -18
- package/dist/chunk-M32BLWDH.js +37 -0
- package/dist/{chunk-QKMRFNMA.js → chunk-M3NANSDZ.js} +17 -15
- package/dist/chunk-MFHL5URL.js +31 -0
- package/dist/{chunk-TYD6I4CZ.js → chunk-MFR5OPBD.js} +6 -6
- package/dist/{chunk-LIRVU3HW.js → chunk-MG4ZL5RW.js} +32 -20
- package/dist/{chunk-ICHDSWEY.js → chunk-MO6P2JZH.js} +10 -8
- package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
- package/dist/{chunk-E57AOFYN.js → chunk-MZCGSXVR.js} +15 -13
- package/dist/{chunk-77O633L5.js → chunk-N3XIYPU3.js} +14 -12
- package/dist/{chunk-CG6CULP6.js → chunk-NDCF4R6S.js} +7 -5
- package/dist/{chunk-JS6WMC3J.js → chunk-NR2UJWOC.js} +10 -8
- package/dist/chunk-NXJ5URP6.js +51 -0
- package/dist/{chunk-NTAVOWYD.js → chunk-NY2XSR5K.js} +20 -18
- package/dist/{chunk-PUEWDYGP.js → chunk-O45HFTFS.js} +3 -2
- package/dist/{chunk-URIKUID7.js → chunk-O4GXGGBX.js} +14 -12
- package/dist/{chunk-C7CEK3KW.js → chunk-O5PXQR67.js} +7 -5
- package/dist/{chunk-E2VXBSIR.js → chunk-O66DM6DJ.js} +6 -4
- package/dist/{chunk-P2VBXX7N.js → chunk-O7FDLW7L.js} +11 -9
- package/dist/{chunk-COYN3UAN.js → chunk-O7XLYEFA.js} +59 -22
- package/dist/{chunk-5QUOPNLN.js → chunk-OHNCWBKF.js} +4 -4
- package/dist/{chunk-AZDITBCT.js → chunk-OHVTTOPS.js} +3 -3
- package/dist/chunk-OMI6FPPN.js +43 -0
- package/dist/chunk-ONUPY3H6.js +53 -0
- package/dist/chunk-OTLDSZDV.js +69 -0
- package/dist/{chunk-L4CESDPB.js → chunk-OUBGGKDU.js} +1 -1
- package/dist/{chunk-4FOAYLI4.js → chunk-OWNCM4ZN.js} +9 -7
- package/dist/{chunk-4B6BT75O.js → chunk-P2V7QW4D.js} +81 -24
- package/dist/{chunk-QHJJMZLX.js → chunk-P32RUW3B.js} +167 -92
- package/dist/{chunk-F6H2RJ3N.js → chunk-PAQ2AS5E.js} +1 -1
- package/dist/{chunk-ZLS6PU2O.js → chunk-PBPBMP2B.js} +4 -3
- package/dist/{chunk-ZOSD4FXV.js → chunk-PJSJPMJI.js} +3 -3
- package/dist/{chunk-XOL3GFW2.js → chunk-PKBHS4AA.js} +68 -31
- package/dist/{chunk-ZZFHLRQW.js → chunk-PMUAJGLI.js} +18 -16
- package/dist/{chunk-SH27FYPF.js → chunk-PPD7HTDP.js} +20 -18
- package/dist/chunk-PSOFBQWB.js +42 -0
- package/dist/{chunk-PAINMSID.js → chunk-Q2TECDIT.js} +987 -7619
- package/dist/{chunk-LU4MQVAL.js → chunk-Q4K5WB2W.js} +11 -10
- package/dist/{chunk-ECLXZWAG.js → chunk-Q6DFNVRJ.js} +14 -12
- package/dist/chunk-QA4O2GGC.js +265 -0
- package/dist/{chunk-4WXRPQDE.js → chunk-QAXW2N3B.js} +182 -33
- package/dist/{chunk-WCEF7H6L.js → chunk-QFWA2DPH.js} +8 -5
- package/dist/{chunk-CPK7QSBG.js → chunk-QKUJMING.js} +8 -6
- package/dist/{chunk-LEBR5NHW.js → chunk-R44CYFPV.js} +18 -15
- package/dist/{chunk-BEPCKDCP.js → chunk-R7NYHMUU.js} +153 -84
- package/dist/{chunk-G6X4YL4D.js → chunk-REWWDVQB.js} +5 -4
- package/dist/{chunk-LN77DXBM.js → chunk-RGERPOIV.js} +10 -10
- package/dist/{chunk-UDXWIPCB.js → chunk-RLDGWLQ7.js} +9 -7
- package/dist/chunk-RUGXBPWI.js +384 -0
- package/dist/{chunk-FYBF5MB2.js → chunk-RXPJMEOW.js} +13 -11
- package/dist/{chunk-K332XW7K.js → chunk-S4PMJU6H.js} +20 -9
- package/dist/{chunk-THN26IEF.js → chunk-S7FCV7S5.js} +4 -1
- package/dist/{chunk-OV57AHCG.js → chunk-SDKLKB6I.js} +26 -24
- package/dist/{chunk-O4IKAIZ2.js → chunk-SFSPGFCV.js} +28 -22
- package/dist/{chunk-TQ4TG57V.js → chunk-SFUP7TTO.js} +4 -4
- package/dist/{chunk-YBOVNMHC.js → chunk-SLXZOMA6.js} +29 -16
- package/dist/{chunk-LWDNKE4X.js → chunk-SQV37XO2.js} +6 -6
- package/dist/{chunk-67BP7HXL.js → chunk-SU74NDMQ.js} +19 -17
- package/dist/{chunk-JKIGL3XQ.js → chunk-SYV5LHML.js} +36 -33
- package/dist/chunk-T4YPZIQN.js +36 -0
- package/dist/{chunk-GX74YWR7.js → chunk-T6DQR5TV.js} +16 -14
- package/dist/{chunk-LNWEWYCM.js → chunk-THDMSZ3R.js} +345 -253
- package/dist/{chunk-NCB6656Z.js → chunk-TNR75OXT.js} +7 -7
- package/dist/{chunk-ODMBPDDV.js → chunk-TUULXQRW.js} +124 -2
- package/dist/{chunk-MD7KUEJ3.js → chunk-TYQBFTBR.js} +9 -7
- package/dist/chunk-U76OWS3Q.js +49 -0
- package/dist/{chunk-GSGIZ2OO.js → chunk-UCROWG2D.js} +27 -24
- package/dist/{chunk-PTQ3ZALZ.js → chunk-UF4AZOZB.js} +14 -12
- package/dist/{chunk-QE527XRY.js → chunk-UF4GLFBX.js} +26 -23
- package/dist/{chunk-YWAKDNMH.js → chunk-UGUP3ZM6.js} +70 -19
- package/dist/{chunk-3G6S7LAA.js → chunk-UNAGJYET.js} +14 -12
- package/dist/{chunk-EDZ45WIR.js → chunk-UOR2DTHH.js} +16 -14
- package/dist/{chunk-42EPP7OB.js → chunk-UPOY4YSQ.js} +14 -12
- package/dist/{chunk-API5TOUB.js → chunk-UPS2DGFC.js} +1 -1
- package/dist/{chunk-D2WSW4GU.js → chunk-UUU4CLJG.js} +4 -2
- package/dist/{chunk-ZKYRDV7A.js → chunk-UWMJKX5U.js} +14 -12
- package/dist/{chunk-HS4BGB4G.js → chunk-UWOJLHFT.js} +25 -23
- package/dist/{chunk-OKUB6RJA.js → chunk-VBTP56CE.js} +8 -6
- package/dist/{chunk-3SSTNB4E.js → chunk-VCTWPLAO.js} +34 -14
- package/dist/{chunk-YF5DZCPN.js → chunk-VNU26RCO.js} +37 -34
- package/dist/{chunk-AOCWFA7T.js → chunk-VTZMAJ3W.js} +8 -8
- package/dist/{chunk-ZQLRCA2V.js → chunk-VW62D6QE.js} +10 -8
- package/dist/{chunk-WAZEXEJH.js → chunk-VY72R2XZ.js} +45 -2
- package/dist/{chunk-WEOMJHPV.js → chunk-VZALIKIF.js} +18 -15
- package/dist/{chunk-TSM6T6GQ.js → chunk-W62H2XSO.js} +25 -23
- package/dist/{chunk-BC6KKZ67.js → chunk-W7VWI2YH.js} +9 -6
- package/dist/{chunk-LO3BLMVG.js → chunk-WERM6KPJ.js} +7 -4
- package/dist/{chunk-36RY7ZXM.js → chunk-WF7B67YE.js} +88 -26
- package/dist/{chunk-TQTRWENN.js → chunk-WG5U3F5V.js} +14 -12
- package/dist/{chunk-NRQ65LTQ.js → chunk-WJF2CS6M.js} +6 -5
- package/dist/{chunk-FVMPFCDS.js → chunk-WKUJ3KPV.js} +4 -4
- package/dist/{chunk-BA3U7ALS.js → chunk-WMTRHUI5.js} +26 -22
- package/dist/chunk-WNKPRSGI.js +36 -0
- package/dist/{chunk-GIFMBCTW.js → chunk-WXFLMQSR.js} +10 -8
- package/dist/{chunk-JYTIHTIK.js → chunk-X3WY6MN3.js} +4 -4
- package/dist/{chunk-S2RY3BOD.js → chunk-X4CXA2IL.js} +31 -21
- package/dist/{chunk-26Z7OGQW.js → chunk-X5F3Q5LV.js} +60 -30
- package/dist/{chunk-4CLK2RJO.js → chunk-XD75VZIH.js} +6 -4
- package/dist/{chunk-KDAHXQIE.js → chunk-XERYFDB5.js} +37 -34
- package/dist/{chunk-U3NBK4EU.js → chunk-XI2LCCYQ.js} +8 -8
- package/dist/{chunk-MZGRDONP.js → chunk-Y2EQNWKV.js} +55 -38
- package/dist/{chunk-A2G72UI4.js → chunk-YHCMZC2J.js} +7 -7
- package/dist/{chunk-4TKVU2I2.js → chunk-YYY3AZFE.js} +2 -2
- package/dist/{chunk-2HTEMYTB.js → chunk-Z5IA3WDR.js} +17 -15
- package/dist/{chunk-FRHD22WM.js → chunk-ZFFYNRIO.js} +25 -23
- package/dist/{chunk-6EXDI5GI.js → chunk-ZFL7NY4F.js} +43 -40
- package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
- package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
- package/dist/{chunk-CNPY4NTZ.js → chunk-ZJFRMSJT.js} +15 -13
- package/dist/{chunk-Q26LDIUV.js → chunk-ZJXLNDH4.js} +18 -15
- package/dist/{chunk-LPV6T362.js → chunk-ZQ3ON2VQ.js} +8 -6
- package/dist/{chunk-ZX7235KR.js → chunk-ZQ7SKESZ.js} +44 -383
- package/dist/{chunk-7QPCGTPS.js → chunk-ZQXZ2SES.js} +24 -21
- package/dist/{chunk-4CYTJ5TZ.js → chunk-ZX57KSEQ.js} +4 -3
- package/dist/{chunk-37WE3LS2.js → chunk-ZZK56BLP.js} +5 -3
- package/dist/files.json +533 -509
- package/dist/packages/sdk/npm/index.js +448 -67
- package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-CIf-0gz5.js} +2 -2
- package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
- package/dist/packages/ui/dist/index.html +2 -1
- package/package.json +4 -4
- package/dist/chunk-26WBY34Y.js +0 -37
- package/dist/chunk-3TD6S4TC.js +0 -49
- package/dist/chunk-5G7ILBUG.js +0 -66
- package/dist/chunk-6FNAKCET.js +0 -38
- package/dist/chunk-AM6FP6JW.js +0 -43
- package/dist/chunk-CFH3QH26.js +0 -29
- package/dist/chunk-CLD4RVTA.js +0 -45
- package/dist/chunk-D5KV5PSK.js +0 -45
- package/dist/chunk-D5MASS4I.js +0 -48
- package/dist/chunk-DN4A2Q2O.js +0 -57
- package/dist/chunk-FGAGWYZB.js +0 -47
- package/dist/chunk-JITJP64K.js +0 -34
- package/dist/chunk-JRXHON4E.js +0 -41
- package/dist/chunk-JU4QNJSR.js +0 -62
- package/dist/chunk-N3RUGTGV.js +0 -39
- package/dist/chunk-PKJAV25S.js +0 -43
- package/dist/chunk-PRTBPXYA.js +0 -50
- package/dist/chunk-PRZ7KMWL.js +0 -42
- package/dist/chunk-QSIDVFB7.js +0 -45
- package/dist/chunk-SB5GRUFM.js +0 -54
- package/dist/chunk-T74WQQGS.js +0 -40
- package/dist/chunk-X7EMBM5X.js +0 -34
- package/dist/chunk-Z6VLC5X4.js +0 -36
- package/dist/chunk-ZPDDEVQX.js +0 -47
- package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
|
@@ -3,6 +3,9 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
|
|
|
3
3
|
var require = __atticusCreateRequire(import.meta.url);
|
|
4
4
|
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
|
+
import {
|
|
7
|
+
commandWords
|
|
8
|
+
} from "./chunk-QA4O2GGC.js";
|
|
6
9
|
import {
|
|
7
10
|
ANSWERED_BY,
|
|
8
11
|
AgentDefinition,
|
|
@@ -16,6 +19,7 @@ import {
|
|
|
16
19
|
copilotAcpOf,
|
|
17
20
|
currentSignal,
|
|
18
21
|
differentThings,
|
|
22
|
+
estimateTokens,
|
|
19
23
|
identifierWords,
|
|
20
24
|
judgmentKey,
|
|
21
25
|
loadOrgPack,
|
|
@@ -23,21 +27,25 @@ import {
|
|
|
23
27
|
namedBeyondAnswer,
|
|
24
28
|
orgPackDirOf,
|
|
25
29
|
quotedIn,
|
|
26
|
-
require_dist,
|
|
27
30
|
runsDirOf,
|
|
28
31
|
runsRelOf,
|
|
29
32
|
stateDirOf,
|
|
30
|
-
stepModelsOf
|
|
31
|
-
|
|
33
|
+
stepModelsOf,
|
|
34
|
+
tokenUnits
|
|
35
|
+
} from "./chunk-Q2TECDIT.js";
|
|
32
36
|
import {
|
|
33
37
|
writeFileAtomic
|
|
34
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-TUULXQRW.js";
|
|
39
|
+
import {
|
|
40
|
+
require_dist
|
|
41
|
+
} from "./chunk-BQGDB6ZL.js";
|
|
35
42
|
import {
|
|
36
43
|
__toESM
|
|
37
44
|
} from "./chunk-TV45EUGM.js";
|
|
38
45
|
|
|
39
46
|
// packages/ai/dist/person-only.js
|
|
40
47
|
var flag = (a, ...names) => a.some((x) => names.some((n) => x === n || x.startsWith(`${n}=`)));
|
|
48
|
+
var switchOn = (a, name) => a.some((x) => x === name || x.startsWith(`${name}=`) && /^(true)?$/i.test(x.slice(name.length + 1)));
|
|
41
49
|
var RULES = [
|
|
42
50
|
{
|
|
43
51
|
test: (w, a) => w[0] === "change" && w[1] === "release-prs" && flag(a, "--approve"),
|
|
@@ -89,7 +97,7 @@ var RULES = [
|
|
|
89
97
|
},
|
|
90
98
|
{ test: (_w, a) => flag(a, "--as"), why: "--as names a person; a session acts as no one" },
|
|
91
99
|
{
|
|
92
|
-
test: (w, a) => w[0] === "rules" && (w[1] === "activate" || w[1] === "off" || w[1] === "add" && !
|
|
100
|
+
test: (w, a) => w[0] === "rules" && (w[1] === "activate" || w[1] === "off" || w[1] === "add" && !switchOn(a, "--draft")),
|
|
93
101
|
why: "a person sets a reading rule active or off (a session drafts)"
|
|
94
102
|
},
|
|
95
103
|
{
|
|
@@ -124,13 +132,12 @@ var RULES = [
|
|
|
124
132
|
why: "a person says who looks after the org pack"
|
|
125
133
|
}
|
|
126
134
|
];
|
|
135
|
+
function withoutLegacy(argv) {
|
|
136
|
+
return argv[0] === "legacy" && argv[1] !== void 0 && !argv[1].startsWith("-") ? argv.slice(1) : argv;
|
|
137
|
+
}
|
|
127
138
|
function personOnlyWhy(argv) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (x.startsWith("-"))
|
|
131
|
-
break;
|
|
132
|
-
words2.push(x);
|
|
133
|
-
}
|
|
139
|
+
argv = withoutLegacy(argv);
|
|
140
|
+
const words2 = commandWords(argv);
|
|
134
141
|
return RULES.find((r) => r.test(words2, argv))?.why;
|
|
135
142
|
}
|
|
136
143
|
var isPersonsFactsFile = (name) => /\.audit\.yaml$|\.corrections\.jsonl$/i.test(windowsName(name));
|
|
@@ -956,9 +963,16 @@ var PromptTooLong = class extends Error {
|
|
|
956
963
|
|
|
957
964
|
// packages/ai/dist/context.js
|
|
958
965
|
var sha2562 = (s) => createHash2("sha256").update(s, "utf8").digest("hex");
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
966
|
+
var RequiredSourceLeftOut = class extends Error {
|
|
967
|
+
step;
|
|
968
|
+
left;
|
|
969
|
+
constructor(step, left) {
|
|
970
|
+
super(`atticus ${step} can't go without ${left.map((l) => `${l.origin}: ${l.reason}`).join("; ")}.`);
|
|
971
|
+
this.step = step;
|
|
972
|
+
this.left = left;
|
|
973
|
+
this.name = "RequiredSourceLeftOut";
|
|
974
|
+
}
|
|
975
|
+
};
|
|
962
976
|
function wrapData(source, text) {
|
|
963
977
|
const safe = escapeDelimiters(text).text;
|
|
964
978
|
return `<atticus-data id="${attr(source.id)}" kind="${attr(source.kind)}" origin="${attr(source.origin)}">
|
|
@@ -971,10 +985,10 @@ function buildContextPack(given) {
|
|
|
971
985
|
const maxTokens = given.maxTokens ?? currentPromptLimit();
|
|
972
986
|
const o = { ...given, budget: fitBudget(given.budget, maxTokens) };
|
|
973
987
|
if (maxTokens !== void 0) {
|
|
974
|
-
const
|
|
975
|
-
const needed = o.sources.filter((s) => s.trusted ||
|
|
988
|
+
const required2 = new Set(o.required ?? []);
|
|
989
|
+
const needed = o.sources.filter((s) => s.trusted || required2.has(s.id)).reduce((n, s) => n + estimateTokens(s.trusted ? s.text : wrapData(s, s.text)), estimateTokens(DATA_RULE));
|
|
976
990
|
if (needed > o.budget)
|
|
977
|
-
throw new PromptTooLong(o.step ?? o.agent, needed, o.budget, maxTokens, o.sources.filter((s) => !s.trusted &&
|
|
991
|
+
throw new PromptTooLong(o.step ?? o.agent, needed, o.budget, maxTokens, o.sources.filter((s) => !s.trusted && required2.has(s.id)).map((s) => s.id), o.smaller);
|
|
978
992
|
}
|
|
979
993
|
const maxLevel = o.levels.indexOf(o.maxClassification);
|
|
980
994
|
if (maxLevel === -1)
|
|
@@ -1030,6 +1044,14 @@ function buildContextPack(given) {
|
|
|
1030
1044
|
}
|
|
1031
1045
|
if (total > o.budget)
|
|
1032
1046
|
throw new Error(`instructions alone (${total} tokens) exceed the ${o.budget}-token budget`);
|
|
1047
|
+
const required = new Set(o.required ?? []);
|
|
1048
|
+
const left = dropped.filter((d) => required.has(d.id));
|
|
1049
|
+
if (left.length)
|
|
1050
|
+
throw new RequiredSourceLeftOut(o.step ?? o.agent, left.map((d) => ({
|
|
1051
|
+
id: d.id,
|
|
1052
|
+
origin: o.sources.find((s) => s.id === d.id)?.origin ?? d.id,
|
|
1053
|
+
reason: d.reason
|
|
1054
|
+
})));
|
|
1033
1055
|
const prompt = parts.join("\n\n") + "\n";
|
|
1034
1056
|
return {
|
|
1035
1057
|
prompt,
|
|
@@ -1048,6 +1070,11 @@ function buildContextPack(given) {
|
|
|
1048
1070
|
};
|
|
1049
1071
|
}
|
|
1050
1072
|
|
|
1073
|
+
// packages/ai/dist/runtime.js
|
|
1074
|
+
import { randomBytes } from "node:crypto";
|
|
1075
|
+
import { mkdir } from "node:fs/promises";
|
|
1076
|
+
import { join } from "node:path";
|
|
1077
|
+
|
|
1051
1078
|
// packages/ai/dist/step-class.js
|
|
1052
1079
|
var STEP_CLASS_BY_AGENT = {
|
|
1053
1080
|
// read: the repo read into facts (atticus map, and its fix round for the facts rejected).
|
|
@@ -1212,9 +1239,22 @@ function checkAllowed(kind, agent) {
|
|
|
1212
1239
|
}
|
|
1213
1240
|
function makeRunId(now, seq) {
|
|
1214
1241
|
const stamp = now.toISOString().replace(/[-:TZ.]/g, "").slice(0, 14);
|
|
1215
|
-
const tail2 = seq !== void 0 ? String(seq).padStart(4, "0") :
|
|
1242
|
+
const tail2 = seq !== void 0 ? String(seq).padStart(4, "0") : randomBytes(3).toString("hex");
|
|
1216
1243
|
return `run-${stamp}-${tail2}`;
|
|
1217
1244
|
}
|
|
1245
|
+
async function claimRunDir(dir, next) {
|
|
1246
|
+
await mkdir(dir, { recursive: true });
|
|
1247
|
+
for (let i = 0; ; i++) {
|
|
1248
|
+
const runId = next();
|
|
1249
|
+
try {
|
|
1250
|
+
await mkdir(join(dir, runId));
|
|
1251
|
+
return runId;
|
|
1252
|
+
} catch (e) {
|
|
1253
|
+
if (e.code !== "EEXIST" || i >= 9999)
|
|
1254
|
+
throw e;
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1218
1258
|
function toRunSummary(run) {
|
|
1219
1259
|
return {
|
|
1220
1260
|
schemaVersion: RUN_SCHEMA_VERSION,
|
|
@@ -1260,6 +1300,17 @@ var OneShotRuntime = class {
|
|
|
1260
1300
|
/** Keep a finished run where Model runs reads it (the model runtime, given a root). */
|
|
1261
1301
|
async keep(_run) {
|
|
1262
1302
|
}
|
|
1303
|
+
/**
|
|
1304
|
+
* The next run id: counted from 1 on a test's clock (deterministic), with a random tail on the
|
|
1305
|
+
* real one, so two commands' runtimes in one second don't share an id (round 46).
|
|
1306
|
+
*/
|
|
1307
|
+
nextRunId(now) {
|
|
1308
|
+
return makeRunId(now, this.opts.now ? ++this.seq : void 0);
|
|
1309
|
+
}
|
|
1310
|
+
/** A new run's id; a runtime that keeps its runs in folders claims the folder (`claimRunDir`). */
|
|
1311
|
+
async newRunId(_request, now) {
|
|
1312
|
+
return this.nextRunId(now);
|
|
1313
|
+
}
|
|
1263
1314
|
async prepare(request) {
|
|
1264
1315
|
checkAllowed(this.allowedAs(request.agent), request.agent);
|
|
1265
1316
|
if (request.pack.manifest.totalTokens > request.agent.tokenBudget) {
|
|
@@ -1267,7 +1318,7 @@ var OneShotRuntime = class {
|
|
|
1267
1318
|
}
|
|
1268
1319
|
const now = this.now();
|
|
1269
1320
|
const run = {
|
|
1270
|
-
runId:
|
|
1321
|
+
runId: await this.newRunId(request, now),
|
|
1271
1322
|
request,
|
|
1272
1323
|
runtime: this.kind,
|
|
1273
1324
|
state: "prepared",
|
|
@@ -1322,12 +1373,12 @@ var OneShotRuntime = class {
|
|
|
1322
1373
|
};
|
|
1323
1374
|
|
|
1324
1375
|
// packages/ai/dist/runtimes.js
|
|
1325
|
-
import { mkdir as
|
|
1326
|
-
import { join as
|
|
1376
|
+
import { mkdir as mkdir3, readdir as readdir2, readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
|
|
1377
|
+
import { join as join3 } from "node:path";
|
|
1327
1378
|
|
|
1328
1379
|
// packages/ai/dist/tools.js
|
|
1329
|
-
import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
1330
|
-
import { join } from "node:path";
|
|
1380
|
+
import { mkdir as mkdir2, readdir, readFile, writeFile } from "node:fs/promises";
|
|
1381
|
+
import { join as join2 } from "node:path";
|
|
1331
1382
|
var ToolError = class extends Error {
|
|
1332
1383
|
constructor(message) {
|
|
1333
1384
|
super(message);
|
|
@@ -1409,8 +1460,18 @@ function guardToolText(name, raw, room) {
|
|
|
1409
1460
|
if (estimateTokens(wrap(text)) > room) {
|
|
1410
1461
|
const note = `
|
|
1411
1462
|
\u2026 cut at ${room} tokens; ask for less (a smaller limit, fewer hops, one id).`;
|
|
1412
|
-
const
|
|
1413
|
-
|
|
1463
|
+
const units = Math.max(0, room * 4 - tokenUnits(wrap("")) - tokenUnits(note));
|
|
1464
|
+
let end = 0;
|
|
1465
|
+
for (let used = 0; end < text.length; end++) {
|
|
1466
|
+
const c = text.charCodeAt(end);
|
|
1467
|
+
used += c < 128 ? 1 : c >= 56320 && c <= 57343 ? 0 : 4;
|
|
1468
|
+
if (used > units)
|
|
1469
|
+
break;
|
|
1470
|
+
}
|
|
1471
|
+
const last = text.charCodeAt(end - 1);
|
|
1472
|
+
if (end > 0 && last >= 55296 && last <= 56319)
|
|
1473
|
+
end--;
|
|
1474
|
+
text = text.slice(0, end) + note;
|
|
1414
1475
|
}
|
|
1415
1476
|
return wrap(text);
|
|
1416
1477
|
}
|
|
@@ -1457,7 +1518,7 @@ async function recordToolCalls(root, runId, update) {
|
|
|
1457
1518
|
if (!found)
|
|
1458
1519
|
return void 0;
|
|
1459
1520
|
const tools = update(found.run.tools);
|
|
1460
|
-
await
|
|
1521
|
+
await mkdir2(join2(found.file, ".."), { recursive: true });
|
|
1461
1522
|
await writeFile(found.file, JSON.stringify({ ...found.run, tools }, null, 2) + "\n", "utf8");
|
|
1462
1523
|
return tools;
|
|
1463
1524
|
}
|
|
@@ -1472,7 +1533,7 @@ async function runFile(root, runId) {
|
|
|
1472
1533
|
for (const change of await readdir(runs).catch(() => [])) {
|
|
1473
1534
|
if (change.includes(".."))
|
|
1474
1535
|
continue;
|
|
1475
|
-
const file =
|
|
1536
|
+
const file = join2(runs, change, runId, "run.json");
|
|
1476
1537
|
const text = await readFile(file, "utf8").catch(() => void 0);
|
|
1477
1538
|
if (text)
|
|
1478
1539
|
return { file, run: JSON.parse(text) };
|
|
@@ -1516,8 +1577,8 @@ var ReplayRuntime = class _ReplayRuntime extends OneShotRuntime {
|
|
|
1516
1577
|
} catch {
|
|
1517
1578
|
}
|
|
1518
1579
|
for (const a of agents.sort()) {
|
|
1519
|
-
for (const f of (await readdir2(
|
|
1520
|
-
out.push(Recording.parse(JSON.parse(await readFile2(
|
|
1580
|
+
for (const f of (await readdir2(join3(dir, a)).catch(() => [])).filter((x) => x.endsWith(".json")).sort()) {
|
|
1581
|
+
out.push(Recording.parse(JSON.parse(await readFile2(join3(dir, a, f), "utf8"))));
|
|
1521
1582
|
}
|
|
1522
1583
|
}
|
|
1523
1584
|
return new _ReplayRuntime(out, opts);
|
|
@@ -1545,8 +1606,8 @@ async function recordRun(live, request, dir, model, now = /* @__PURE__ */ new Da
|
|
|
1545
1606
|
model,
|
|
1546
1607
|
recordedAt: now.toISOString()
|
|
1547
1608
|
};
|
|
1548
|
-
await
|
|
1549
|
-
await writeFile2(
|
|
1609
|
+
await mkdir3(join3(dir, rec.agent), { recursive: true });
|
|
1610
|
+
await writeFile2(join3(dir, rec.agent, `${rec.promptSha256}.json`), JSON.stringify(rec, null, 2) + "\n", "utf8");
|
|
1550
1611
|
return rec;
|
|
1551
1612
|
}
|
|
1552
1613
|
var MockModelProvider = class {
|
|
@@ -1645,17 +1706,26 @@ ${DATA_RULE}`;
|
|
|
1645
1706
|
async keep(run) {
|
|
1646
1707
|
if (!this.mo.root)
|
|
1647
1708
|
return;
|
|
1648
|
-
const dir =
|
|
1649
|
-
await
|
|
1650
|
-
await writeFile2(
|
|
1651
|
-
await writeFile2(
|
|
1652
|
-
await writeFile2(
|
|
1709
|
+
const dir = join3(runsDirOf(this.mo.root), run.request.change, run.runId);
|
|
1710
|
+
await mkdir3(dir, { recursive: true });
|
|
1711
|
+
await writeFile2(join3(dir, "prompt.md"), run.request.pack.prompt, "utf8");
|
|
1712
|
+
await writeFile2(join3(dir, "context-manifest.json"), JSON.stringify(run.request.pack.manifest, null, 2) + "\n", "utf8");
|
|
1713
|
+
await writeFile2(join3(dir, "run.json"), JSON.stringify(run, null, 2) + "\n", "utf8");
|
|
1714
|
+
}
|
|
1715
|
+
/**
|
|
1716
|
+
* Round 46: given a root, the run's folder is claimed with its id, so another command's run in
|
|
1717
|
+
* the same second (its runtime counts from 1 too) never gets this id and overwrites it.
|
|
1718
|
+
*/
|
|
1719
|
+
async newRunId(request, now) {
|
|
1720
|
+
if (!this.mo.root)
|
|
1721
|
+
return super.newRunId(request, now);
|
|
1722
|
+
return claimRunDir(join3(runsDirOf(this.mo.root), request.change), () => this.nextRunId(now));
|
|
1653
1723
|
}
|
|
1654
1724
|
};
|
|
1655
1725
|
|
|
1656
1726
|
// packages/ai/dist/handoff.js
|
|
1657
|
-
import { mkdir as
|
|
1658
|
-
import { join as
|
|
1727
|
+
import { mkdir as mkdir4, readdir as readdir3, readFile as readFile3, rm, stat, writeFile as writeFile3 } from "node:fs/promises";
|
|
1728
|
+
import { join as join4 } from "node:path";
|
|
1659
1729
|
var BATCH_OUTPUT = "answers.md";
|
|
1660
1730
|
var DEFAULT_BATCH_MAX_TOKENS = 6e4;
|
|
1661
1731
|
var SECTION = /^===[ \t]*([a-z][a-z0-9-]*)[ \t]*$/;
|
|
@@ -1694,12 +1764,12 @@ var HandoffRuntime = class _HandoffRuntime {
|
|
|
1694
1764
|
this.o = o;
|
|
1695
1765
|
}
|
|
1696
1766
|
now = () => this.o.now?.() ?? /* @__PURE__ */ new Date();
|
|
1697
|
-
runDir = (change, runId) =>
|
|
1698
|
-
outputFile = (r) => r.request.outputIn === "run" ?
|
|
1767
|
+
runDir = (change, runId) => join4(runsDirOf(this.o.root), change, runId);
|
|
1768
|
+
outputFile = (r) => r.request.outputIn === "run" ? join4(this.runDir(r.request.change, r.runId), r.request.outputPath) : join4(changesDirOf(this.o.root), r.request.change, r.request.outputPath);
|
|
1699
1769
|
// Atomic: a step reading run.json while `handoff done` writes it never sees half a file.
|
|
1700
1770
|
async save(run) {
|
|
1701
1771
|
const dir = this.runDir(run.request.change, run.runId);
|
|
1702
|
-
await writeFileAtomic(
|
|
1772
|
+
await writeFileAtomic(join4(dir, "run.json"), JSON.stringify(run, null, 2) + "\n");
|
|
1703
1773
|
return run;
|
|
1704
1774
|
}
|
|
1705
1775
|
/** Where a run's prompt is, relative to the root (`atticus <step> --handoff` prints it). */
|
|
@@ -1761,12 +1831,9 @@ var HandoffRuntime = class _HandoffRuntime {
|
|
|
1761
1831
|
""
|
|
1762
1832
|
].join("\n");
|
|
1763
1833
|
}
|
|
1764
|
-
/** A run id no run folder of the change has yet. */
|
|
1834
|
+
/** A run id no run folder of the change has yet, its folder made (claimed) with it. */
|
|
1765
1835
|
async freshId(change, now) {
|
|
1766
|
-
|
|
1767
|
-
while (await stat(this.runDir(change, runId)).catch(() => void 0))
|
|
1768
|
-
runId = makeRunId(now, ++this.seq);
|
|
1769
|
-
return runId;
|
|
1836
|
+
return claimRunDir(join4(runsDirOf(this.o.root), change), () => makeRunId(now, ++this.seq));
|
|
1770
1837
|
}
|
|
1771
1838
|
/**
|
|
1772
1839
|
* Whether `parts` runs that wait together, `tokens` in all, are asked in one prompt (ADR 0185):
|
|
@@ -1836,9 +1903,9 @@ var HandoffRuntime = class _HandoffRuntime {
|
|
|
1836
1903
|
};
|
|
1837
1904
|
run.request.pack = { prompt, manifest };
|
|
1838
1905
|
const dir = this.runDir(o.change, runId);
|
|
1839
|
-
await
|
|
1840
|
-
await writeFile3(
|
|
1841
|
-
await writeFile3(
|
|
1906
|
+
await mkdir4(dir, { recursive: true });
|
|
1907
|
+
await writeFile3(join4(dir, "prompt.md"), prompt, "utf8");
|
|
1908
|
+
await writeFile3(join4(dir, "context-manifest.json"), JSON.stringify(manifest, null, 2) + "\n", "utf8");
|
|
1842
1909
|
await this.save(run);
|
|
1843
1910
|
for (const p of parts)
|
|
1844
1911
|
await this.save({ ...p.run, batch: runId });
|
|
@@ -1863,9 +1930,9 @@ var HandoffRuntime = class _HandoffRuntime {
|
|
|
1863
1930
|
stepClass: stepClassOf(request)
|
|
1864
1931
|
};
|
|
1865
1932
|
const dir = this.runDir(request.change, run.runId);
|
|
1866
|
-
await
|
|
1867
|
-
await writeFile3(
|
|
1868
|
-
await writeFile3(
|
|
1933
|
+
await mkdir4(dir, { recursive: true });
|
|
1934
|
+
await writeFile3(join4(dir, "prompt.md"), _HandoffRuntime.promptFor(run, changesRelOf(this.o.root), runsRelOf(this.o.root)), "utf8");
|
|
1935
|
+
await writeFile3(join4(dir, "context-manifest.json"), JSON.stringify(request.pack.manifest, null, 2) + "\n", "utf8");
|
|
1869
1936
|
return this.save(run);
|
|
1870
1937
|
}
|
|
1871
1938
|
/** Hand the prompt to the assistant; Atticus now waits. */
|
|
@@ -1984,7 +2051,7 @@ var HandoffRuntime = class _HandoffRuntime {
|
|
|
1984
2051
|
throw new RuntimeError(`not a run id: ${runId}`);
|
|
1985
2052
|
const runs = runsDirOf(this.o.root);
|
|
1986
2053
|
for (const change of await readdir3(runs).catch(() => [])) {
|
|
1987
|
-
const f =
|
|
2054
|
+
const f = join4(runs, change, runId, "run.json");
|
|
1988
2055
|
const text = await readFile3(f, "utf8").catch(() => void 0);
|
|
1989
2056
|
if (text)
|
|
1990
2057
|
return JSON.parse(text);
|
|
@@ -1998,12 +2065,12 @@ async function pruneRuns(root, days, now = /* @__PURE__ */ new Date(), only) {
|
|
|
1998
2065
|
const cutoff = now.getTime() - days * 864e5;
|
|
1999
2066
|
const changes = only ? [only] : await readdir3(runs).catch(() => []);
|
|
2000
2067
|
for (const change of changes) {
|
|
2001
|
-
for (const runId of await readdir3(
|
|
2002
|
-
const f =
|
|
2068
|
+
for (const runId of await readdir3(join4(runs, change)).catch(() => [])) {
|
|
2069
|
+
const f = join4(runs, change, runId, "run.json");
|
|
2003
2070
|
const text = await readFile3(f, "utf8").catch(() => void 0);
|
|
2004
2071
|
const started = text ? Date.parse(JSON.parse(text).startedAt) : NaN;
|
|
2005
2072
|
if (!Number.isNaN(started) && started < cutoff) {
|
|
2006
|
-
await rm(
|
|
2073
|
+
await rm(join4(runs, change, runId), { recursive: true, force: true });
|
|
2007
2074
|
removed.push(`${change}/${runId}`);
|
|
2008
2075
|
}
|
|
2009
2076
|
}
|
|
@@ -2014,15 +2081,15 @@ async function pruneRuns(root, days, now = /* @__PURE__ */ new Date(), only) {
|
|
|
2014
2081
|
// packages/ai/dist/factory.js
|
|
2015
2082
|
import { existsSync as existsSync2 } from "node:fs";
|
|
2016
2083
|
import { spawn as spawn2 } from "node:child_process";
|
|
2017
|
-
import { mkdir as
|
|
2084
|
+
import { mkdir as mkdir6, mkdtemp, readFile as readFile5, rm as rm2, stat as stat3, writeFile as writeFile5 } from "node:fs/promises";
|
|
2018
2085
|
import { tmpdir } from "node:os";
|
|
2019
|
-
import { dirname as dirname2, join as
|
|
2086
|
+
import { dirname as dirname2, join as join6 } from "node:path";
|
|
2020
2087
|
|
|
2021
2088
|
// packages/ai/dist/copilot-acp.js
|
|
2022
2089
|
import { spawn } from "node:child_process";
|
|
2023
2090
|
import { existsSync, realpathSync } from "node:fs";
|
|
2024
|
-
import { mkdir as
|
|
2025
|
-
import { basename, dirname, isAbsolute, join as
|
|
2091
|
+
import { mkdir as mkdir5, readFile as readFile4, stat as stat2, writeFile as writeFile4 } from "node:fs/promises";
|
|
2092
|
+
import { basename, dirname, isAbsolute, join as join5, relative, resolve, sep } from "node:path";
|
|
2026
2093
|
import { createInterface } from "node:readline";
|
|
2027
2094
|
|
|
2028
2095
|
// packages/ai/dist/acp.js
|
|
@@ -2301,10 +2368,12 @@ function atticusArgvOf(command, args = []) {
|
|
|
2301
2368
|
const argv = all.slice(1);
|
|
2302
2369
|
if (!argv.length)
|
|
2303
2370
|
return { refused: "atticus needs a command (atticus next, atticus verify <repo>, ...)" };
|
|
2371
|
+
const named = [...withoutLegacy(argv)];
|
|
2304
2372
|
for (const p of PERSONS)
|
|
2305
|
-
if (p.test(
|
|
2373
|
+
if (p.test(named))
|
|
2306
2374
|
return { refused: `Refused: ${p.why}.` };
|
|
2307
|
-
|
|
2375
|
+
const hidden = argv[0] === "legacy" && argv[1]?.startsWith("-") && argv.slice(2).some((x) => !x.startsWith("-"));
|
|
2376
|
+
if (hidden || argv[0].startsWith("-") && !["--help", "--version", "-h"].includes(argv[0]))
|
|
2308
2377
|
return {
|
|
2309
2378
|
refused: `Put the command first: atticus <command> [arguments] (got ${short(argv.join(" "))})`
|
|
2310
2379
|
};
|
|
@@ -2319,7 +2388,7 @@ function real(p) {
|
|
|
2319
2388
|
const rest = [];
|
|
2320
2389
|
for (; ; ) {
|
|
2321
2390
|
try {
|
|
2322
|
-
return
|
|
2391
|
+
return join5(realpathSync.native(cur), ...rest.reverse());
|
|
2323
2392
|
} catch {
|
|
2324
2393
|
const up = dirname(cur);
|
|
2325
2394
|
if (up === cur)
|
|
@@ -2383,7 +2452,7 @@ var factsOnly = (root, factsDir) => ({
|
|
|
2383
2452
|
});
|
|
2384
2453
|
function readRootsOf(root) {
|
|
2385
2454
|
const out = [root];
|
|
2386
|
-
const state =
|
|
2455
|
+
const state = join5(stateDirOf(root), "workspace");
|
|
2387
2456
|
if (!sameOrUnder(resolve(root), resolve(state)))
|
|
2388
2457
|
out.push(state);
|
|
2389
2458
|
return out;
|
|
@@ -2634,7 +2703,7 @@ async function runAcpSession(o) {
|
|
|
2634
2703
|
const why = paths.writable(p.path);
|
|
2635
2704
|
if (why)
|
|
2636
2705
|
return refuse("fs/write_text_file", { path: p.path }, why);
|
|
2637
|
-
await
|
|
2706
|
+
await mkdir5(dirname(p.path), { recursive: true });
|
|
2638
2707
|
await writeFile4(p.path, p.content, "utf8");
|
|
2639
2708
|
record("fs/write_text_file", { path: p.path }, `${p.content.length} characters written`);
|
|
2640
2709
|
return null;
|
|
@@ -2829,7 +2898,7 @@ async function runAcpSession(o) {
|
|
|
2829
2898
|
t.kill.abort();
|
|
2830
2899
|
await server.close().catch(() => void 0);
|
|
2831
2900
|
if (o.transcript) {
|
|
2832
|
-
await
|
|
2901
|
+
await mkdir5(dirname(o.transcript), { recursive: true });
|
|
2833
2902
|
await writeFile4(o.transcript, transcript.join("\n") + (transcript.length ? "\n" : ""), "utf8");
|
|
2834
2903
|
}
|
|
2835
2904
|
}
|
|
@@ -2968,20 +3037,24 @@ var CopilotAcpRuntime = class extends OneShotRuntime {
|
|
|
2968
3037
|
modelFor() {
|
|
2969
3038
|
return this.c.model;
|
|
2970
3039
|
}
|
|
3040
|
+
/** Review round 48: the run's folder is claimed, as a model run's is (claimRunDir). */
|
|
3041
|
+
async newRunId(request, now) {
|
|
3042
|
+
return claimRunDir(join5(runsDirOf(this.c.root), request.change), () => this.nextRunId(now));
|
|
3043
|
+
}
|
|
2971
3044
|
async produce(run, signal) {
|
|
2972
3045
|
const { request } = run;
|
|
2973
3046
|
const root = this.c.root;
|
|
2974
|
-
const dir =
|
|
2975
|
-
await
|
|
3047
|
+
const dir = join5(runsDirOf(root), request.change, run.runId);
|
|
3048
|
+
await mkdir5(dir, { recursive: true });
|
|
2976
3049
|
const outRel = HandoffRuntime.outputRel(run, changesRelOf(root), runsRelOf(root));
|
|
2977
3050
|
const prompt = HandoffRuntime.promptFor(run, changesRelOf(root), runsRelOf(root)).replace(/\nWhen the file is complete.*\n$/s, "\n") + (request.selfCheck ? `
|
|
2978
3051
|
Before you finish, check the file: run ${request.selfCheck.command} ${outRel}. Fix each problem it lists and run it again, until it says the file is clean (at most ${request.selfCheck.limit} times).
|
|
2979
3052
|
` : "") + `
|
|
2980
3053
|
${DATA_RULE}
|
|
2981
3054
|
`;
|
|
2982
|
-
await writeFile4(
|
|
2983
|
-
await writeFile4(
|
|
2984
|
-
const outputFile = request.outputIn === "run" ?
|
|
3055
|
+
await writeFile4(join5(dir, "prompt.md"), prompt, "utf8");
|
|
3056
|
+
await writeFile4(join5(dir, "context-manifest.json"), JSON.stringify(request.pack.manifest, null, 2) + "\n", "utf8");
|
|
3057
|
+
const outputFile = request.outputIn === "run" ? join5(dir, request.outputPath) : join5(changesDirOf(root), request.change, request.outputPath);
|
|
2985
3058
|
const before = (await stat2(outputFile).catch(() => void 0))?.mtimeMs;
|
|
2986
3059
|
const r = await runAcpSession({
|
|
2987
3060
|
command: this.c.command,
|
|
@@ -2997,7 +3070,7 @@ ${DATA_RULE}
|
|
|
2997
3070
|
...this.c.env ? { env: this.c.env } : {},
|
|
2998
3071
|
...this.c.spawn ? { spawn: this.c.spawn } : {},
|
|
2999
3072
|
...this.c.clientVersion ? { clientVersion: this.c.clientVersion } : {},
|
|
3000
|
-
transcript:
|
|
3073
|
+
transcript: join5(dir, "transcript.jsonl")
|
|
3001
3074
|
});
|
|
3002
3075
|
const after = (await stat2(outputFile).catch(() => void 0))?.mtimeMs;
|
|
3003
3076
|
const written = after !== void 0 && after !== before ? await readFile4(outputFile, "utf8") : void 0;
|
|
@@ -3021,9 +3094,9 @@ ${DATA_RULE}
|
|
|
3021
3094
|
}
|
|
3022
3095
|
/** Kept as a hand-off run is: run.json beside the prompt, so Model runs shows it. */
|
|
3023
3096
|
async keep(run) {
|
|
3024
|
-
const dir =
|
|
3025
|
-
await
|
|
3026
|
-
await writeFile4(
|
|
3097
|
+
const dir = join5(runsDirOf(this.c.root), run.request.change, run.runId);
|
|
3098
|
+
await mkdir5(dir, { recursive: true });
|
|
3099
|
+
await writeFile4(join5(dir, "run.json"), JSON.stringify(run, null, 2) + "\n", "utf8");
|
|
3027
3100
|
}
|
|
3028
3101
|
};
|
|
3029
3102
|
var noExec = async (argv) => ({
|
|
@@ -3032,10 +3105,10 @@ var noExec = async (argv) => ({
|
|
|
3032
3105
|
`
|
|
3033
3106
|
});
|
|
3034
3107
|
async function keepAcpRun(o) {
|
|
3035
|
-
const dir =
|
|
3036
|
-
await
|
|
3037
|
-
if (!existsSync(
|
|
3038
|
-
await writeFile4(
|
|
3108
|
+
const dir = join5(runsDirOf(o.root), o.change, o.runId);
|
|
3109
|
+
await mkdir5(dir, { recursive: true });
|
|
3110
|
+
if (!existsSync(join5(dir, "prompt.md")))
|
|
3111
|
+
await writeFile4(join5(dir, "prompt.md"), o.prompt, "utf8");
|
|
3039
3112
|
const r = o.result;
|
|
3040
3113
|
const run = {
|
|
3041
3114
|
runId: o.runId,
|
|
@@ -3058,7 +3131,7 @@ async function keepAcpRun(o) {
|
|
|
3058
3131
|
...r?.model ? { model: r.model } : {},
|
|
3059
3132
|
...r ? { assistant: r.assistant } : {}
|
|
3060
3133
|
};
|
|
3061
|
-
await writeFile4(
|
|
3134
|
+
await writeFile4(join5(dir, "run.json"), JSON.stringify(run, null, 2) + "\n", "utf8");
|
|
3062
3135
|
return dir;
|
|
3063
3136
|
}
|
|
3064
3137
|
|
|
@@ -3161,7 +3234,7 @@ function collectChild(start, prompt, timeoutMs, cwd, platform = process.platform
|
|
|
3161
3234
|
child.stdin.end(prompt, "utf8");
|
|
3162
3235
|
});
|
|
3163
3236
|
}
|
|
3164
|
-
var cloneDirs = (root) => [
|
|
3237
|
+
var cloneDirs = (root) => [join6(root, "workspace"), join6(stateDirOf(root), "workspace")];
|
|
3165
3238
|
async function existingDirs(dirs) {
|
|
3166
3239
|
const out = [];
|
|
3167
3240
|
for (const d of [...new Set(dirs)])
|
|
@@ -3202,9 +3275,9 @@ var HeadlessClaudeCodeRuntime = class _HeadlessClaudeCodeRuntime extends OneShot
|
|
|
3202
3275
|
}
|
|
3203
3276
|
async produce(run, signal) {
|
|
3204
3277
|
const { request } = run;
|
|
3205
|
-
const dir =
|
|
3278
|
+
const dir = join6(runsDirOf(this.h.root), request.change, run.runId);
|
|
3206
3279
|
const reviewer = request.agent.outputArtifact === "findings" && request.outputIn === "run";
|
|
3207
|
-
const work = reviewer ? await mkdtemp(
|
|
3280
|
+
const work = reviewer ? await mkdtemp(join6(tmpdir(), "atticus-review-")) : void 0;
|
|
3208
3281
|
const clones = work ? await existingDirs(cloneDirs(this.h.root)) : [];
|
|
3209
3282
|
const base = work ? {
|
|
3210
3283
|
cwd: work,
|
|
@@ -3218,8 +3291,8 @@ var HeadlessClaudeCodeRuntime = class _HeadlessClaudeCodeRuntime extends OneShot
|
|
|
3218
3291
|
`Bash(${request.selfCheck.command}:*)`
|
|
3219
3292
|
]
|
|
3220
3293
|
} : base;
|
|
3221
|
-
await
|
|
3222
|
-
const promptFile =
|
|
3294
|
+
await mkdir6(dir, { recursive: true });
|
|
3295
|
+
const promptFile = join6(dir, "prompt.md");
|
|
3223
3296
|
const self = reviewer ? void 0 : request.selfCheck;
|
|
3224
3297
|
const handoff = HandoffRuntime.promptFor(run, changesRelOf(this.h.root), runsRelOf(this.h.root)).replace(/\nWhen the file is complete.*\n$/s, "\n") + // W3a: the drafter checks its own file with the stage's checks before it finishes.
|
|
3225
3298
|
(self ? `
|
|
@@ -3227,18 +3300,18 @@ Before you finish, check the file: run ${self.command} ${HandoffRuntime.outputRe
|
|
|
3227
3300
|
` : "");
|
|
3228
3301
|
const prompt = reviewer ? handoff.replace(`Write the result to ${HandoffRuntime.outputRel(run, changesRelOf(this.h.root), runsRelOf(this.h.root))}.`, `Write the result to ${request.outputPath}.${clones.length ? ` The metarepo is at ${this.h.root}: a folder named relative to the metarepo (the repos' clones under workspace/) is there, to read, never to edit.` : ""}`) : handoff;
|
|
3229
3302
|
await writeFile5(promptFile, prompt, "utf8");
|
|
3230
|
-
await writeFile5(
|
|
3303
|
+
await writeFile5(join6(dir, "context-manifest.json"), JSON.stringify(request.pack.manifest, null, 2) + "\n", "utf8");
|
|
3231
3304
|
if (!await stat3(inv.cwd).catch(() => void 0))
|
|
3232
3305
|
throw new RuntimeError(`the worktree ${inv.cwd} doesn't exist`);
|
|
3233
|
-
const outputFile = work ?
|
|
3306
|
+
const outputFile = work ? join6(work, request.outputPath) : request.outputIn === "run" ? join6(dir, request.outputPath) : join6(changesDirOf(this.h.root), request.change, request.outputPath);
|
|
3234
3307
|
try {
|
|
3235
3308
|
return await this.runIn(run, dir, inv, prompt, promptFile, outputFile, signal);
|
|
3236
3309
|
} finally {
|
|
3237
3310
|
if (work) {
|
|
3238
3311
|
const kept = await readFile5(outputFile, "utf8").catch(() => void 0);
|
|
3239
3312
|
if (kept !== void 0) {
|
|
3240
|
-
await
|
|
3241
|
-
await writeFile5(
|
|
3313
|
+
await mkdir6(dirname2(join6(dir, request.outputPath)), { recursive: true });
|
|
3314
|
+
await writeFile5(join6(dir, request.outputPath), kept, "utf8");
|
|
3242
3315
|
}
|
|
3243
3316
|
await rm2(work, { recursive: true, force: true, maxRetries: 5 }).catch(() => void 0);
|
|
3244
3317
|
}
|
|
@@ -3262,7 +3335,7 @@ Before you finish, check the file: run ${self.command} ${HandoffRuntime.outputRe
|
|
|
3262
3335
|
timeoutMs: this.h.timeoutMs ?? 30 * 6e4,
|
|
3263
3336
|
...signal ? { signal } : {}
|
|
3264
3337
|
});
|
|
3265
|
-
await writeFile5(
|
|
3338
|
+
await writeFile5(join6(dir, "claude-output.json"), res.stdout, "utf8");
|
|
3266
3339
|
let parsed;
|
|
3267
3340
|
try {
|
|
3268
3341
|
parsed = JSON.parse(res.stdout);
|
|
@@ -3437,7 +3510,7 @@ var sayOnce = (line) => process.stderr.write(`${line}
|
|
|
3437
3510
|
`);
|
|
3438
3511
|
async function runtimeForCli(root, o = {}) {
|
|
3439
3512
|
const env = o.env ?? process.env;
|
|
3440
|
-
const op = await loadOrgPack(
|
|
3513
|
+
const op = await loadOrgPack(join6(orgPackDirOf(root)));
|
|
3441
3514
|
const bad = op.problems.filter((p) => p.file === "runtime.yaml");
|
|
3442
3515
|
if (bad.length)
|
|
3443
3516
|
throw new RuntimeConfigError(`org-pack/runtime.yaml has problems: ${bad.map((p) => `${p.path ? `${p.path}: ` : ""}${p.message}`).join("; ")}`);
|
|
@@ -4045,6 +4118,7 @@ function recordedJudge(byTexts, o = {}) {
|
|
|
4045
4118
|
}
|
|
4046
4119
|
|
|
4047
4120
|
export {
|
|
4121
|
+
withoutLegacy,
|
|
4048
4122
|
personOnlyWhy,
|
|
4049
4123
|
isPersonsFactsFile,
|
|
4050
4124
|
windowsName,
|
|
@@ -4081,7 +4155,7 @@ export {
|
|
|
4081
4155
|
BIGGER_MODEL,
|
|
4082
4156
|
PromptTooLong,
|
|
4083
4157
|
sha2562 as sha256,
|
|
4084
|
-
|
|
4158
|
+
RequiredSourceLeftOut,
|
|
4085
4159
|
wrapData,
|
|
4086
4160
|
DATA_RULE,
|
|
4087
4161
|
buildContextPack,
|
|
@@ -4097,6 +4171,7 @@ export {
|
|
|
4097
4171
|
RuntimeError,
|
|
4098
4172
|
checkAllowed,
|
|
4099
4173
|
makeRunId,
|
|
4174
|
+
claimRunDir,
|
|
4100
4175
|
toRunSummary,
|
|
4101
4176
|
OneShotRuntime,
|
|
4102
4177
|
ToolError,
|
|
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
runtimeForCli
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-P32RUW3B.js";
|
|
9
9
|
|
|
10
10
|
// packages/cli/dist/judging.js
|
|
11
11
|
async function judgingRuntime(root, given) {
|
|
@@ -7,9 +7,10 @@ import {
|
|
|
7
7
|
ME_FILE,
|
|
8
8
|
readMe,
|
|
9
9
|
writeMe
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-2Q56PQPS.js";
|
|
11
|
+
import "./chunk-Q2TECDIT.js";
|
|
12
|
+
import "./chunk-TUULXQRW.js";
|
|
13
|
+
import "./chunk-BQGDB6ZL.js";
|
|
13
14
|
import "./chunk-TV45EUGM.js";
|
|
14
15
|
export {
|
|
15
16
|
ME_FILE,
|