@maycombhq/atticus 2.0.0-beta.21 → 2.0.0-beta.23
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 +12 -7
- package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
- package/dist/{chunk-PRW3HXM3.js → chunk-27AJAKX7.js} +29 -5
- package/dist/{chunk-PQH56YF6.js → chunk-2QPJ4E4Z.js} +6 -4
- package/dist/{chunk-7CZHUZBL.js → chunk-2UMSHYCB.js} +38 -27
- package/dist/{chunk-2V2ZPQQU.js → chunk-2WUTCPPJ.js} +9 -7
- package/dist/{chunk-YF5DZCPN.js → chunk-2YSD6E6V.js} +38 -34
- package/dist/{chunk-QHJJMZLX.js → chunk-3424TLIJ.js} +204 -97
- package/dist/{chunk-62DLJSLV.js → chunk-3ASYYMOX.js} +10 -8
- package/dist/{chunk-XOL3GFW2.js → chunk-3EWKO457.js} +111 -43
- package/dist/{chunk-G5YJBNDZ.js → chunk-3EX5HCZD.js} +8 -6
- package/dist/{chunk-WFU77T3A.js → chunk-3MYBT62N.js} +5 -5
- package/dist/{chunk-6EXDI5GI.js → chunk-3UHV76UD.js} +72 -41
- package/dist/{chunk-LU4MQVAL.js → chunk-3ZA3AK2D.js} +11 -10
- package/dist/{chunk-P2VBXX7N.js → chunk-4ETO2FXE.js} +11 -9
- package/dist/{chunk-GK4PYVEC.js → chunk-4FLNCK6Q.js} +31 -14
- package/dist/{chunk-64AADMTW.js → chunk-4GAB5ZOZ.js} +943 -336
- package/dist/{chunk-FLVZFTLQ.js → chunk-4MYHETJ3.js} +20 -18
- package/dist/chunk-4R3TO4VL.js +94 -0
- package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
- package/dist/chunk-5MYE42AP.js +43 -0
- package/dist/chunk-5O7U67UA.js +57 -0
- package/dist/{chunk-MZGRDONP.js → chunk-5OXKCH4Z.js} +54 -37
- package/dist/{chunk-PUEWDYGP.js → chunk-5VTIWEWP.js} +3 -2
- package/dist/{chunk-3G6S7LAA.js → chunk-63NFFAGI.js} +14 -12
- package/dist/{chunk-LIJJCBQI.js → chunk-66AQ2JIU.js} +15 -16
- package/dist/chunk-6JVPBGQG.js +50 -0
- package/dist/{chunk-WAZEXEJH.js → chunk-6NCPLIIP.js} +167 -2
- package/dist/{chunk-D57MFJPP.js → chunk-6NN36LVK.js} +3 -3
- package/dist/{chunk-G6IQYM25.js → chunk-6R5VHR3N.js} +8 -6
- package/dist/{chunk-Z3QFH7YG.js → chunk-6RQOINER.js} +5 -4
- package/dist/{chunk-TQTRWENN.js → chunk-6RYB3EET.js} +14 -12
- package/dist/{chunk-FYBF5MB2.js → chunk-6SNTHK43.js} +13 -11
- package/dist/{chunk-FRHD22WM.js → chunk-6Y4FXOMI.js} +27 -23
- package/dist/{chunk-LWDNKE4X.js → chunk-6ZFF7XSL.js} +6 -6
- package/dist/{chunk-FQ6WH6PB.js → chunk-6ZSYLZ7O.js} +6 -4
- package/dist/{chunk-LQH4P45K.js → chunk-73CC73I4.js} +1 -1
- package/dist/{chunk-Q46QDDMF.js → chunk-73GFVW2L.js} +14 -9
- package/dist/{chunk-QKMRFNMA.js → chunk-73V2OONC.js} +17 -15
- package/dist/{chunk-FVMPFCDS.js → chunk-75OMRKY2.js} +4 -4
- package/dist/{chunk-XEQCQO66.js → chunk-7IFTSAHP.js} +10 -8
- package/dist/{chunk-4FOAYLI4.js → chunk-7K5OH45X.js} +139 -17
- package/dist/{chunk-3SSTNB4E.js → chunk-7NQAGYK4.js} +34 -14
- package/dist/{chunk-URIKUID7.js → chunk-7XWJ6ED2.js} +14 -12
- package/dist/{chunk-TYD6I4CZ.js → chunk-7XYLNQFO.js} +7 -7
- package/dist/{chunk-BPPU3PW7.js → chunk-7YQBDE5W.js} +10 -4
- package/dist/{chunk-CPK7QSBG.js → chunk-A4JXVO5O.js} +8 -6
- package/dist/{chunk-YJ3TBOTK.js → chunk-AFBCNZRZ.js} +29 -26
- package/dist/{chunk-TW3KOSQK.js → chunk-AGOLEMHK.js} +13 -13
- package/dist/chunk-AHFQHPFF.js +49 -0
- package/dist/{chunk-NTAVOWYD.js → chunk-APDN6UOR.js} +118 -18
- package/dist/chunk-AQRUQNFB.js +322 -0
- package/dist/{chunk-KYZMRSPS.js → chunk-AVMWESFZ.js} +6 -3
- package/dist/chunk-B4AEL3RF.js +1011 -0
- package/dist/{chunk-GS76RXQE.js → chunk-BAY4K55I.js} +15 -12
- package/dist/{chunk-4CLK2RJO.js → chunk-BFL4PO64.js} +9 -7
- package/dist/{chunk-GCS3FZOB.js → chunk-BFMTGNAQ.js} +15 -4
- package/dist/{chunk-YBOVNMHC.js → chunk-BP33TBLI.js} +29 -16
- package/dist/chunk-BQGDB6ZL.js +7342 -0
- package/dist/{chunk-BXZ4PKIT.js → chunk-BUUJ7N4O.js} +15 -11
- package/dist/{chunk-HGHRSF3E.js → chunk-BYBU2EIB.js} +38 -19
- package/dist/{chunk-TQ4TG57V.js → chunk-C6ORPLCN.js} +4 -4
- package/dist/{chunk-HWD4JPU7.js → chunk-CA3DKO4D.js} +27 -3
- package/dist/{chunk-YTTNTQOX.js → chunk-CFUDAW3R.js} +17 -15
- package/dist/{chunk-OPQZISG3.js → chunk-CJEBRJBS.js} +5 -4
- package/dist/{chunk-RALY3E5U.js → chunk-CKVBDVIW.js} +6 -4
- package/dist/{chunk-DUPZPDCJ.js → chunk-CMB7FXHJ.js} +42 -16
- package/dist/{chunk-YIGBJNH4.js → chunk-CQ7RF4QN.js} +5 -4
- package/dist/{chunk-YAH5IQAL.js → chunk-CS4BMJLL.js} +6 -5
- package/dist/{chunk-455SYIIE.js → chunk-CT6NINGR.js} +5 -3
- package/dist/chunk-CXTG6AWM.js +40 -0
- package/dist/{chunk-JYMIB5XY.js → chunk-CZ2ZS7AT.js} +170 -45
- package/dist/{chunk-K332XW7K.js → chunk-D6BVLTDV.js} +100 -33
- package/dist/chunk-DCRYOMTM.js +37 -0
- package/dist/{chunk-G6X4YL4D.js → chunk-DHKDH464.js} +5 -4
- package/dist/{chunk-JRVNXLZP.js → chunk-DSHRA72L.js} +14 -12
- package/dist/{chunk-LNWEWYCM.js → chunk-E3PDCQRH.js} +2813 -621
- package/dist/chunk-EHXDB3SA.js +25 -0
- package/dist/{chunk-EZIN5E5B.js → chunk-EMVZIOOD.js} +11 -9
- package/dist/{chunk-IFHDV6KQ.js → chunk-ENH6Z4TY.js} +21 -20
- package/dist/{chunk-YKTE2RU3.js → chunk-EVTI22PQ.js} +7 -2
- package/dist/{chunk-2D7PWSOK.js → chunk-EXJZBL5N.js} +22 -20
- package/dist/{chunk-77O633L5.js → chunk-FBCVC2GJ.js} +14 -12
- package/dist/{chunk-HS4BGB4G.js → chunk-FJVUHQPS.js} +37 -24
- package/dist/{chunk-4KNOJC6J.js → chunk-FL344WQD.js} +270 -221
- package/dist/{chunk-GNWAOVFQ.js → chunk-FMJYKLDY.js} +5 -5
- package/dist/chunk-FMR2D3AZ.js +41 -0
- package/dist/{chunk-PAINMSID.js → chunk-FPBUTZI5.js} +3102 -7859
- package/dist/{chunk-ZOSD4FXV.js → chunk-FQVSLBTV.js} +3 -3
- package/dist/chunk-FRAEQVYN.js +52 -0
- package/dist/{chunk-UDXWIPCB.js → chunk-FRCOKUU4.js} +9 -7
- package/dist/{chunk-UYLBRRFK.js → chunk-FSN6JFXB.js} +129 -27
- package/dist/{chunk-BC6KKZ67.js → chunk-FTLYXMHA.js} +9 -6
- package/dist/{chunk-FAJDKNSD.js → chunk-FVYZ4Y52.js} +16 -3
- package/dist/{chunk-TWQRPM76.js → chunk-G6EFXTUO.js} +23 -16
- package/dist/{chunk-ZFQMMU5Y.js → chunk-G7VBMOZH.js} +6 -2
- package/dist/{chunk-VYOCPTUB.js → chunk-GM4EFHUX.js} +17 -15
- package/dist/chunk-GOZLTLRY.js +232 -0
- package/dist/chunk-GPNMSX5H.js +36 -0
- package/dist/{chunk-OZJ3JLYI.js → chunk-GUGQSIQM.js} +10 -9
- package/dist/chunk-H4VO6WG3.js +10 -0
- package/dist/{chunk-QJCJOMW3.js → chunk-HJQVUOUL.js} +16 -18
- package/dist/chunk-HMWJWYE2.js +31 -0
- package/dist/{chunk-4TKVU2I2.js → chunk-HMZ2DRBC.js} +2 -2
- package/dist/{chunk-HK3VOHIE.js → chunk-HRS5O7VV.js} +609 -171
- package/dist/{chunk-7FUIVIBG.js → chunk-HUGQZQ2K.js} +13 -8
- package/dist/{chunk-QOOEYDNJ.js → chunk-ICBGVVRI.js} +10 -10
- package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
- package/dist/{chunk-4SLBCEPD.js → chunk-IKAW2KJU.js} +95 -64
- package/dist/{chunk-L4CESDPB.js → chunk-IMZFOMVX.js} +1 -1
- package/dist/{chunk-XQ3YZ4QW.js → chunk-ISG547IS.js} +24 -22
- package/dist/{chunk-BA2HUMDN.js → chunk-IYNCSYU4.js} +5 -2
- package/dist/{chunk-UEVZZZU2.js → chunk-J25YOUIZ.js} +5 -4
- package/dist/chunk-J2CDBSFP.js +69 -0
- package/dist/chunk-J2H7YG3K.js +34 -0
- package/dist/{chunk-O4IKAIZ2.js → chunk-J32IPTVQ.js} +28 -22
- package/dist/{chunk-3AQ2R5NL.js → chunk-J4CPHJUL.js} +11 -9
- package/dist/{chunk-VUVGX5L2.js → chunk-JFFKHIM6.js} +1 -1
- package/dist/chunk-JMEWJPF2.js +384 -0
- package/dist/{chunk-LO3BLMVG.js → chunk-JSP73CDW.js} +13 -5
- package/dist/chunk-JXAKYP45.js +63 -0
- package/dist/{chunk-PNQLCRSS.js → chunk-K4OXYSGS.js} +7 -5
- package/dist/{chunk-3J5I7ZOU.js → chunk-K4RNVDR4.js} +4 -4
- package/dist/{chunk-LEBR5NHW.js → chunk-K757G7AD.js} +18 -15
- package/dist/{chunk-AHW3RY3X.js → chunk-KDJ2YKAZ.js} +8 -7
- package/dist/{chunk-4WXRPQDE.js → chunk-KT6Q44CA.js} +178 -31
- package/dist/{chunk-EFCQSMXB.js → chunk-KTNOBTV5.js} +10 -4
- package/dist/chunk-KVVNAUIG.js +66 -0
- package/dist/{chunk-26Z7OGQW.js → chunk-L3RCQWVQ.js} +64 -31
- package/dist/{chunk-3WON4G3M.js → chunk-LHH5KG5A.js} +21 -6
- package/dist/{chunk-NCB6656Z.js → chunk-LM45GMMB.js} +11 -8
- package/dist/{chunk-2HH3UCZM.js → chunk-LO6Y7OTG.js} +5 -4
- package/dist/{chunk-36RY7ZXM.js → chunk-LPDTDFKA.js} +88 -26
- package/dist/{chunk-67BP7HXL.js → chunk-LSHSDC6S.js} +19 -17
- package/dist/{chunk-GDZB57IU.js → chunk-LZVHP7CT.js} +7 -5
- package/dist/{chunk-GC2VK3JT.js → chunk-M3EOFSPY.js} +28 -25
- package/dist/chunk-MBYYQHPM.js +31 -0
- package/dist/{chunk-HXXP2NTE.js → chunk-MEJ63LDG.js} +35 -12
- package/dist/{chunk-2UCRFXFZ.js → chunk-MH2ZK67S.js} +13 -11
- package/dist/{chunk-BEPCKDCP.js → chunk-MLGWSBF4.js} +5447 -4165
- package/dist/{chunk-NRQ65LTQ.js → chunk-MNIPPBCT.js} +6 -5
- package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
- package/dist/{chunk-KDAHXQIE.js → chunk-MWF4PXQR.js} +38 -34
- package/dist/{chunk-WNTIOBOG.js → chunk-N2YX6JMY.js} +20 -18
- package/dist/{chunk-FY3QIRTL.js → chunk-NAPHHWW2.js} +3 -3
- package/dist/{chunk-D2WSW4GU.js → chunk-NC755EKE.js} +8 -2
- package/dist/{chunk-BA3U7ALS.js → chunk-NCLZJCXA.js} +26 -22
- package/dist/chunk-NKJDO4UC.js +39 -0
- package/dist/chunk-NOYOFYAJ.js +59 -0
- package/dist/{chunk-LPV6T362.js → chunk-NROSSWMS.js} +8 -6
- package/dist/{chunk-ZKYRDV7A.js → chunk-OBUB3H72.js} +14 -12
- package/dist/{chunk-ZQLRCA2V.js → chunk-OCQWSFJD.js} +10 -8
- package/dist/{chunk-42EPP7OB.js → chunk-OK6JGLE7.js} +14 -12
- package/dist/{chunk-MD7KUEJ3.js → chunk-OPWGPQ2N.js} +9 -7
- package/dist/{chunk-SH27FYPF.js → chunk-OSYHGGL3.js} +20 -18
- package/dist/chunk-OXXZZ7HQ.js +50 -0
- package/dist/chunk-P22EPEBR.js +57 -0
- package/dist/chunk-P4YUT7W7.js +45 -0
- package/dist/chunk-PCCLVIDP.js +217 -0
- package/dist/chunk-PFULMC2D.js +48 -0
- package/dist/chunk-PGAMTKBI.js +16 -0
- package/dist/{chunk-Y6K3CJBU.js → chunk-PNSSE7JM.js} +152 -29
- package/dist/{chunk-3UTYPHN3.js → chunk-POEMZECG.js} +1 -1
- package/dist/{chunk-GSGIZ2OO.js → chunk-POSDBRKV.js} +27 -24
- package/dist/{chunk-YZDZOEV4.js → chunk-POSZFDSQ.js} +3 -3
- package/dist/{chunk-7AB6OWTV.js → chunk-PQQKZPBU.js} +31 -25
- package/dist/{chunk-K6JB6XTX.js → chunk-PRMUQUWN.js} +20 -15
- package/dist/{chunk-ICHDSWEY.js → chunk-PT4USJNN.js} +10 -8
- package/dist/{chunk-265LWMOA.js → chunk-PWXB5GBB.js} +18 -16
- package/dist/{chunk-DCWN3HFV.js → chunk-PXMV2LLY.js} +6 -5
- package/dist/{chunk-THN26IEF.js → chunk-PXW2RZGQ.js} +4 -1
- package/dist/{chunk-CG6CULP6.js → chunk-Q367UGYN.js} +7 -5
- package/dist/chunk-QA4O2GGC.js +265 -0
- package/dist/{chunk-7FHNFCHK.js → chunk-QAVRDONY.js} +225 -375
- package/dist/{chunk-VAMHOHUU.js → chunk-QBMLBCQH.js} +16 -13
- package/dist/{chunk-WEOMJHPV.js → chunk-QLQIFJP3.js} +18 -15
- package/dist/{chunk-UZACEG2C.js → chunk-QLWDIKO4.js} +84 -27
- package/dist/{chunk-ZZFHLRQW.js → chunk-QVVGJVVX.js} +18 -16
- package/dist/{chunk-WIWTJMMR.js → chunk-QX4MAMUG.js} +23 -21
- package/dist/{chunk-JYTIHTIK.js → chunk-QZWRPQTI.js} +6 -6
- package/dist/{chunk-5WERBKLE.js → chunk-RCG5IAAT.js} +55 -227
- package/dist/chunk-RGZFOKVO.js +106 -0
- package/dist/{chunk-C7CEK3KW.js → chunk-RLZFL76D.js} +7 -5
- package/dist/{chunk-PTQ3ZALZ.js → chunk-RPQITJNX.js} +14 -12
- package/dist/{chunk-JS6WMC3J.js → chunk-RQQYEDAC.js} +10 -8
- package/dist/chunk-RQSLHZ7T.js +36 -0
- package/dist/{chunk-API5TOUB.js → chunk-RRQUQAXP.js} +1 -1
- package/dist/chunk-RYQ4JCFT.js +65 -0
- package/dist/chunk-S35DIFJH.js +38 -0
- package/dist/{chunk-YWAKDNMH.js → chunk-S5GSQPIN.js} +70 -19
- package/dist/chunk-S5XFO4GY.js +42 -0
- package/dist/chunk-S6LW2RRC.js +25 -0
- package/dist/{chunk-TSM6T6GQ.js → chunk-S6W3D5GS.js} +25 -23
- package/dist/{chunk-5PV7S2ZP.js → chunk-S7GUZ45I.js} +4 -3
- package/dist/{chunk-MMZUN7ZO.js → chunk-SCT4CEF7.js} +22 -20
- package/dist/{chunk-AOCWFA7T.js → chunk-SK5RVP7X.js} +8 -8
- package/dist/chunk-SRTUETF5.js +50 -0
- package/dist/{chunk-E57AOFYN.js → chunk-SVGGMBJI.js} +15 -13
- package/dist/{chunk-OV57AHCG.js → chunk-SWNKO4C4.js} +35 -26
- package/dist/chunk-SYP56T2D.js +65 -0
- package/dist/{chunk-5CMPVC3N.js → chunk-T33TPFGI.js} +25 -23
- package/dist/{chunk-Q26LDIUV.js → chunk-T3FNG2H2.js} +18 -15
- package/dist/{chunk-UFE36WJH.js → chunk-T6MAWL5P.js} +6 -4
- package/dist/{chunk-LN77DXBM.js → chunk-T6MX7WXM.js} +14 -11
- package/dist/{chunk-WCEF7H6L.js → chunk-T7IIEDA3.js} +10 -7
- package/dist/{chunk-2HTEMYTB.js → chunk-TABH4RBZ.js} +163 -84
- package/dist/{chunk-YO2PKTXT.js → chunk-TDSCKP3V.js} +5 -3
- package/dist/{chunk-BVWWPBKD.js → chunk-TMFMXQEN.js} +23 -21
- package/dist/{chunk-4B6BT75O.js → chunk-TNCF26JK.js} +83 -26
- package/dist/{chunk-75ASLHBT.js → chunk-TUM52SOE.js} +21 -15
- package/dist/{chunk-ZLS6PU2O.js → chunk-TV56QLLV.js} +4 -3
- package/dist/{chunk-JKIGL3XQ.js → chunk-TVQSXWWV.js} +36 -33
- package/dist/{chunk-OKUB6RJA.js → chunk-TXNSQ24G.js} +14 -11
- package/dist/{chunk-4CYTJ5TZ.js → chunk-UALE35WK.js} +4 -3
- package/dist/{chunk-CNU5Q2D5.js → chunk-UJF7PIMP.js} +35 -27
- package/dist/chunk-UMCDODBX.js +53 -0
- package/dist/{chunk-M6D2U3YM.js → chunk-UTPIFH4I.js} +4 -3
- package/dist/{chunk-COYN3UAN.js → chunk-V7PEHQZU.js} +95 -26
- package/dist/{chunk-U3NBK4EU.js → chunk-VJFXQISZ.js} +8 -8
- package/dist/chunk-VJZI6KFP.js +47 -0
- package/dist/{chunk-ECLXZWAG.js → chunk-VK7WYA64.js} +14 -12
- package/dist/{chunk-DDJPM5YX.js → chunk-VKTXFFOZ.js} +5 -3
- package/dist/{chunk-LIRVU3HW.js → chunk-VNIN7Q6Q.js} +32 -20
- package/dist/{chunk-7QPCGTPS.js → chunk-VRO7KSGL.js} +24 -21
- package/dist/{chunk-AZDITBCT.js → chunk-W3AZE7LN.js} +3 -3
- package/dist/chunk-W4TNCEI4.js +44 -0
- package/dist/{chunk-S2RY3BOD.js → chunk-W5VYJWOG.js} +31 -21
- package/dist/{chunk-X2CUXTWU.js → chunk-WF3RCZNO.js} +6 -6
- package/dist/{chunk-4D62IZII.js → chunk-WOMQQWTO.js} +7 -5
- package/dist/{chunk-UF4UHCIG.js → chunk-WXVTYLVH.js} +6 -4
- package/dist/{chunk-EDZ45WIR.js → chunk-WYGTSZHR.js} +18 -14
- package/dist/{chunk-HSZMPH5T.js → chunk-WZYM5M4U.js} +592 -133
- package/dist/chunk-X5ZHDSLU.js +49 -0
- package/dist/chunk-X7XVMYIL.js +5 -0
- package/dist/chunk-X7ZKNSK4.js +41 -0
- package/dist/{chunk-QE527XRY.js → chunk-XAPXKFIS.js} +26 -23
- package/dist/{chunk-HE3HRDNZ.js → chunk-XF6TSZW2.js} +2 -2
- package/dist/{chunk-GX74YWR7.js → chunk-XFDDJQT7.js} +16 -14
- package/dist/{chunk-5QUOPNLN.js → chunk-XGO74QWR.js} +4 -4
- package/dist/chunk-XLZAAAPX.js +43 -0
- package/dist/{chunk-NYOABJNK.js → chunk-XMUWPA56.js} +26 -24
- package/dist/{chunk-M4H2UG4R.js → chunk-XNFM6WUK.js} +19 -16
- package/dist/{chunk-TGVVUKTG.js → chunk-XOMEQVLK.js} +2 -2
- package/dist/{chunk-A2G72UI4.js → chunk-Y2H7X3VI.js} +7 -7
- package/dist/{chunk-37WE3LS2.js → chunk-Y5IE6YKD.js} +5 -3
- package/dist/{chunk-IFFRGC3N.js → chunk-YD3KTW4H.js} +14 -12
- package/dist/{chunk-75ZOZFGH.js → chunk-YDCOZOER.js} +20 -18
- package/dist/{chunk-6DQYZU2W.js → chunk-YERAAEO4.js} +20 -20
- package/dist/{chunk-J5AAZ6OJ.js → chunk-YHMPDIRG.js} +5 -4
- package/dist/{chunk-CNPY4NTZ.js → chunk-Z2D4P3R3.js} +15 -13
- package/dist/{chunk-E2VXBSIR.js → chunk-Z3H27OMV.js} +6 -4
- package/dist/{chunk-AE4P57KK.js → chunk-Z3RAFU5B.js} +17 -15
- package/dist/{chunk-RA33EYS4.js → chunk-ZENHDXRZ.js} +23 -17
- package/dist/{chunk-TJH2EUAZ.js → chunk-ZFHFC74B.js} +20 -18
- package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
- package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
- package/dist/{chunk-JAABT3DA.js → chunk-ZJGCGKA4.js} +4 -3
- package/dist/{chunk-GIFMBCTW.js → chunk-ZLQEQR3D.js} +10 -8
- package/dist/{chunk-I2A3Z5AK.js → chunk-ZNHQGG7J.js} +7 -7
- package/dist/{chunk-5TDRBOAV.js → chunk-ZNTTW4IT.js} +7 -5
- package/dist/{chunk-ZX7235KR.js → chunk-ZR6J4QFQ.js} +44 -383
- package/dist/{chunk-F6H2RJ3N.js → chunk-ZSNOILL5.js} +1 -1
- package/dist/files.json +585 -509
- package/dist/packages/sdk/npm/index.js +1491 -110
- package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-DxfAMOJq.js} +2 -2
- package/dist/packages/ui/dist/assets/index-Buit9TfP.js +62 -0
- package/dist/packages/ui/dist/assets/index-Jyc9dFeZ.css +1 -0
- package/dist/packages/ui/dist/index.html +3 -2
- package/package.json +3 -3
- 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-GUYL7RMK.js +0 -60
- package/dist/chunk-J2O4LFVI.js +0 -80
- 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-ODMBPDDV.js +0 -298
- package/dist/chunk-OMPENNWY.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-Dw20IRhQ.css +0 -1
- package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
|
@@ -6,7 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
|
6
6
|
import {
|
|
7
7
|
dotInt8,
|
|
8
8
|
textSha
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3424TLIJ.js";
|
|
10
10
|
import {
|
|
11
11
|
JOINED_BY_PERSON,
|
|
12
12
|
Question,
|
|
@@ -14,8 +14,14 @@ import {
|
|
|
14
14
|
RecordId,
|
|
15
15
|
answerByWords,
|
|
16
16
|
changesDirOf,
|
|
17
|
+
decodeText,
|
|
17
18
|
deserializeRecord,
|
|
19
|
+
globMatcher,
|
|
18
20
|
identifierWords,
|
|
21
|
+
ignoreRules,
|
|
22
|
+
ignoredBy,
|
|
23
|
+
isBinaryBytes,
|
|
24
|
+
isBinaryPath,
|
|
19
25
|
knowledgeDirOf,
|
|
20
26
|
knowledgeKindOf,
|
|
21
27
|
layoutOf,
|
|
@@ -23,14 +29,17 @@ import {
|
|
|
23
29
|
parseRecord,
|
|
24
30
|
questionsDirOf,
|
|
25
31
|
recordReferences,
|
|
26
|
-
require_dist,
|
|
27
32
|
serializeRecord,
|
|
28
33
|
specsDirOf,
|
|
29
34
|
specsRelOf,
|
|
30
35
|
splitForms,
|
|
31
36
|
stateDirOf,
|
|
32
|
-
toCanonicalYaml
|
|
33
|
-
|
|
37
|
+
toCanonicalYaml,
|
|
38
|
+
walkRepo
|
|
39
|
+
} from "./chunk-FPBUTZI5.js";
|
|
40
|
+
import {
|
|
41
|
+
require_dist
|
|
42
|
+
} from "./chunk-BQGDB6ZL.js";
|
|
34
43
|
import {
|
|
35
44
|
__toESM
|
|
36
45
|
} from "./chunk-TV45EUGM.js";
|
|
@@ -1006,8 +1015,8 @@ var DOCUMENT_EXTENSIONS = /\.(docx|pptx|xlsx|pdf|md|markdown|html?|txt)$/i;
|
|
|
1006
1015
|
async function documentNodes(path, bytes) {
|
|
1007
1016
|
const out = { nodes: [], names: [], links: [] };
|
|
1008
1017
|
const [{ readDocument }, { screenFile }] = await Promise.all([
|
|
1009
|
-
import("./chunk-
|
|
1010
|
-
import("./chunk-
|
|
1018
|
+
import("./chunk-MNIPPBCT.js"),
|
|
1019
|
+
import("./chunk-FRCOKUU4.js")
|
|
1011
1020
|
]);
|
|
1012
1021
|
const screen = screenFile(path, bytes);
|
|
1013
1022
|
if (screen.problem)
|
|
@@ -2260,7 +2269,7 @@ ${JSON.stringify(keyed)}`).digest("hex");
|
|
|
2260
2269
|
|
|
2261
2270
|
// packages/index/dist/catalog-index.js
|
|
2262
2271
|
import { mkdir } from "node:fs/promises";
|
|
2263
|
-
import { dirname as dirname2, join as join3 } from "node:path";
|
|
2272
|
+
import { dirname as dirname2, join as join3, resolve } from "node:path";
|
|
2264
2273
|
|
|
2265
2274
|
// packages/index/dist/db.js
|
|
2266
2275
|
import { createRequire } from "node:module";
|
|
@@ -2286,7 +2295,8 @@ function openDb(file) {
|
|
|
2286
2295
|
// packages/index/dist/catalog-index.js
|
|
2287
2296
|
var vectorsFileOf = (file) => join3(dirname2(file), "vectors.sqlite");
|
|
2288
2297
|
var notInstalled = (e, pkg) => e.code === "ERR_MODULE_NOT_FOUND" && String(e.message).includes(pkg);
|
|
2289
|
-
|
|
2298
|
+
var embedders = /* @__PURE__ */ new Map();
|
|
2299
|
+
async function embedderOf(root, setting, load = () => import("./chunk-JSP73CDW.js")) {
|
|
2290
2300
|
if (setting === "off")
|
|
2291
2301
|
return { why: "turned off for this command" };
|
|
2292
2302
|
if (setting && setting !== "auto")
|
|
@@ -2304,7 +2314,14 @@ async function embedderOf(root, setting, load = () => import("./chunk-LO3BLMVG.j
|
|
|
2304
2314
|
try {
|
|
2305
2315
|
const { embedderFor } = embed;
|
|
2306
2316
|
const r = await embedderFor(root);
|
|
2307
|
-
|
|
2317
|
+
if (!r.embedder)
|
|
2318
|
+
return { why: r.state.problem ?? "no embedding model" };
|
|
2319
|
+
const key = `${resolve(root)}\0${r.state.dir ?? ""}\0${r.state.id ?? r.embedder.id}`;
|
|
2320
|
+
const had = embedders.get(key);
|
|
2321
|
+
if (had)
|
|
2322
|
+
return { embedder: had };
|
|
2323
|
+
embedders.set(key, r.embedder);
|
|
2324
|
+
return { embedder: r.embedder };
|
|
2308
2325
|
} catch (e) {
|
|
2309
2326
|
return { why: `the embedding model couldn't be read: ${e.message.split("\n")[0]}` };
|
|
2310
2327
|
}
|
|
@@ -2312,11 +2329,10 @@ async function embedderOf(root, setting, load = () => import("./chunk-LO3BLMVG.j
|
|
|
2312
2329
|
async function openIndex(root, o = {}) {
|
|
2313
2330
|
const file = o.file ?? join3(stateDirOf(root), ".index", "catalog.sqlite");
|
|
2314
2331
|
await mkdir(dirname2(file), { recursive: true });
|
|
2315
|
-
const files = await listSources(root);
|
|
2316
2332
|
const db = openDb(file);
|
|
2317
2333
|
try {
|
|
2318
2334
|
const fresh = ensureSchema(db, o.rebuild === true);
|
|
2319
|
-
const u = await updateIndex(db, root,
|
|
2335
|
+
const u = o.trusted && !fresh ? { changed: [], removed: [], problems: [], rematched: false } : await updateIndex(db, root, await listSources(root), { force: fresh });
|
|
2320
2336
|
const rebuilt = fresh || u.changed.length > 0 || u.removed.length > 0;
|
|
2321
2337
|
attachVectors(db, vectorsFileOf(file));
|
|
2322
2338
|
const e = await embedderOf(root, o.embeddings, o.loadEmbed);
|
|
@@ -2896,133 +2912,9 @@ function translate(question, lookup) {
|
|
|
2896
2912
|
|
|
2897
2913
|
// packages/index/dist/tools.js
|
|
2898
2914
|
import { existsSync, readdirSync } from "node:fs";
|
|
2899
|
-
import {
|
|
2900
|
-
import { isAbsolute, join as join4, relative as relative2, resolve, sep as sep2 } from "node:path";
|
|
2915
|
+
import { readFile as readFile3, realpath, stat as stat2 } from "node:fs/promises";
|
|
2916
|
+
import { isAbsolute, join as join4, relative as relative2, resolve as resolve2, sep as sep2 } from "node:path";
|
|
2901
2917
|
import { createContext, runInContext, Script } from "node:vm";
|
|
2902
|
-
|
|
2903
|
-
// packages/index/dist/glob.js
|
|
2904
|
-
var notSlash = (c) => c !== "/";
|
|
2905
|
-
var anyChar = (c) => !/[\n\r\u2028\u2029]/.test(c);
|
|
2906
|
-
var Builder = class {
|
|
2907
|
-
states = [];
|
|
2908
|
-
add(s) {
|
|
2909
|
-
this.states.push(s);
|
|
2910
|
-
return this.states.length - 1;
|
|
2911
|
-
}
|
|
2912
|
-
/** `c*` looping on a test, then on to next. */
|
|
2913
|
-
loop(test, next) {
|
|
2914
|
-
const split = this.add({ kind: "split", outs: [] });
|
|
2915
|
-
const ch = this.add({ kind: "char", test, out: split });
|
|
2916
|
-
this.states[split].outs.push(ch, next);
|
|
2917
|
-
return split;
|
|
2918
|
-
}
|
|
2919
|
-
/** `(?:.*\/)?` then next: any folders, or none. */
|
|
2920
|
-
folders(next) {
|
|
2921
|
-
const slash = this.add({ kind: "char", test: (c) => c === "/", out: next });
|
|
2922
|
-
return this.add({ kind: "split", outs: [this.loop(anyChar, slash), next] });
|
|
2923
|
-
}
|
|
2924
|
-
};
|
|
2925
|
-
function tidy(glob2) {
|
|
2926
|
-
return glob2.trim().replace(/\\/g, "/").replace(/^\.\//, "");
|
|
2927
|
-
}
|
|
2928
|
-
function compile(b, g, next) {
|
|
2929
|
-
const pieces = [];
|
|
2930
|
-
for (let i = 0; i < g.length; i++) {
|
|
2931
|
-
const ch = g[i];
|
|
2932
|
-
if (ch === "*") {
|
|
2933
|
-
if (g[i + 1] === "*") {
|
|
2934
|
-
const slash = g[i + 2] === "/";
|
|
2935
|
-
pieces.push(slash ? (n) => b.folders(n) : (n) => b.loop(anyChar, n));
|
|
2936
|
-
i += slash ? 2 : 1;
|
|
2937
|
-
} else
|
|
2938
|
-
pieces.push((n) => b.loop(notSlash, n));
|
|
2939
|
-
} else if (ch === "?")
|
|
2940
|
-
pieces.push((n) => b.add({ kind: "char", test: notSlash, out: n }));
|
|
2941
|
-
else if (ch === "[") {
|
|
2942
|
-
const end = g.indexOf("]", i + 2);
|
|
2943
|
-
if (end < 0)
|
|
2944
|
-
pieces.push(lit("["));
|
|
2945
|
-
else {
|
|
2946
|
-
const body = g.slice(i + 1, end).replace(/^!/, "^").replace(/\\/g, "\\\\");
|
|
2947
|
-
const re = new RegExp(`^[${body}]$`);
|
|
2948
|
-
pieces.push((n) => b.add({ kind: "char", test: (c) => re.test(c), out: n }));
|
|
2949
|
-
i = end;
|
|
2950
|
-
}
|
|
2951
|
-
} else if (ch === "{") {
|
|
2952
|
-
const end = g.indexOf("}", i);
|
|
2953
|
-
if (end < 0)
|
|
2954
|
-
pieces.push(lit("{"));
|
|
2955
|
-
else {
|
|
2956
|
-
const parts = g.slice(i + 1, end).split(",").map((p) => {
|
|
2957
|
-
let t = tidy(p);
|
|
2958
|
-
if (t.startsWith("/"))
|
|
2959
|
-
t = t.slice(1);
|
|
2960
|
-
return t;
|
|
2961
|
-
});
|
|
2962
|
-
const probe = new Builder();
|
|
2963
|
-
for (const p of parts)
|
|
2964
|
-
compile(probe, p, probe.add({ kind: "match" }));
|
|
2965
|
-
pieces.push((n) => b.add({ kind: "split", outs: parts.map((p) => compile(b, p, n)) }));
|
|
2966
|
-
i = end;
|
|
2967
|
-
}
|
|
2968
|
-
} else
|
|
2969
|
-
pieces.push(lit(ch));
|
|
2970
|
-
}
|
|
2971
|
-
let at = next;
|
|
2972
|
-
for (let k = pieces.length - 1; k >= 0; k--)
|
|
2973
|
-
at = pieces[k](at);
|
|
2974
|
-
return at;
|
|
2975
|
-
function lit(c) {
|
|
2976
|
-
return (n) => b.add({ kind: "char", test: (x) => x === c, out: n });
|
|
2977
|
-
}
|
|
2978
|
-
}
|
|
2979
|
-
function globMatcher(glob2, anyDepth = !glob2.replace(/\/$/, "").includes("/")) {
|
|
2980
|
-
let g = tidy(glob2);
|
|
2981
|
-
if (g.startsWith("/")) {
|
|
2982
|
-
g = g.slice(1);
|
|
2983
|
-
anyDepth = false;
|
|
2984
|
-
}
|
|
2985
|
-
const b = new Builder();
|
|
2986
|
-
const end = b.add({ kind: "match" });
|
|
2987
|
-
let start = compile(b, g, end);
|
|
2988
|
-
if (anyDepth)
|
|
2989
|
-
start = b.folders(start);
|
|
2990
|
-
const states = b.states;
|
|
2991
|
-
const close = (set, s) => {
|
|
2992
|
-
const stack = [s];
|
|
2993
|
-
while (stack.length) {
|
|
2994
|
-
const at = stack.pop();
|
|
2995
|
-
if (set.has(at))
|
|
2996
|
-
continue;
|
|
2997
|
-
set.add(at);
|
|
2998
|
-
const st = states[at];
|
|
2999
|
-
if (st.kind === "split")
|
|
3000
|
-
for (const o of st.outs)
|
|
3001
|
-
stack.push(o);
|
|
3002
|
-
}
|
|
3003
|
-
};
|
|
3004
|
-
return {
|
|
3005
|
-
test(path) {
|
|
3006
|
-
let live = /* @__PURE__ */ new Set();
|
|
3007
|
-
close(live, start);
|
|
3008
|
-
for (let i = 0; i < path.length; i++) {
|
|
3009
|
-
const c = path[i];
|
|
3010
|
-
const next = /* @__PURE__ */ new Set();
|
|
3011
|
-
for (const s of live) {
|
|
3012
|
-
const st = states[s];
|
|
3013
|
-
if (st.kind === "char" && st.test(c))
|
|
3014
|
-
close(next, st.out);
|
|
3015
|
-
}
|
|
3016
|
-
if (!next.size)
|
|
3017
|
-
return false;
|
|
3018
|
-
live = next;
|
|
3019
|
-
}
|
|
3020
|
-
return live.has(end);
|
|
3021
|
-
}
|
|
3022
|
-
};
|
|
3023
|
-
}
|
|
3024
|
-
|
|
3025
|
-
// packages/index/dist/tools.js
|
|
3026
2918
|
var ContextToolError = class extends Error {
|
|
3027
2919
|
constructor(message) {
|
|
3028
2920
|
super(message);
|
|
@@ -3398,7 +3290,7 @@ function isCited(ix, root, c) {
|
|
|
3398
3290
|
async function insideClone(base, path) {
|
|
3399
3291
|
if (!path || path.includes("\0") || isAbsolute(path) || /^[a-zA-Z]:/.test(path))
|
|
3400
3292
|
throw new ContextToolError(`${path} isn't a path inside the repo.`);
|
|
3401
|
-
const full =
|
|
3293
|
+
const full = resolve2(base, ...path.split(/[\\/]+/));
|
|
3402
3294
|
const rel2 = relative2(base, full);
|
|
3403
3295
|
if (!rel2 || rel2.startsWith("..") || isAbsolute(rel2))
|
|
3404
3296
|
throw new ContextToolError(`${path} leaves the repo's checkout; Atticus reads nothing outside it.`);
|
|
@@ -3427,7 +3319,7 @@ async function excerpt(root, c, around, o) {
|
|
|
3427
3319
|
const size = (await stat2(file)).size;
|
|
3428
3320
|
if (size > CONTEXT_TOOL_BOUNDS.codeFileBytes)
|
|
3429
3321
|
return `${c.what} ${c.verb ?? "cites"} ${c.repo}/${c.path}:${c.line}, a file too big to show (${size} bytes).`;
|
|
3430
|
-
const lines = (await readFile3(file
|
|
3322
|
+
const lines = decodeText(await readFile3(file)).split(/\r?\n/);
|
|
3431
3323
|
if (c.line > lines.length)
|
|
3432
3324
|
return `${c.what} ${c.verb ?? "cites"} ${c.repo}/${c.path}:${c.line}, but the file has ${lines.length} lines now: the cite is stale.`;
|
|
3433
3325
|
const from = Math.max(1, c.line - around);
|
|
@@ -3556,17 +3448,20 @@ async function namesInCode(root, names, o = {}) {
|
|
|
3556
3448
|
const names2 = open.filter((n) => !found.has(n) && DECLARABLE.test(n));
|
|
3557
3449
|
if (!names2.length)
|
|
3558
3450
|
return;
|
|
3559
|
-
const
|
|
3451
|
+
const file = join4(dir, ...p.split("/"));
|
|
3452
|
+
if (!await readableCode(file, p))
|
|
3453
|
+
return;
|
|
3454
|
+
const buf = await readFile3(file).catch(() => void 0);
|
|
3560
3455
|
if (!buf || buf.length > B.codeFileBytes)
|
|
3561
3456
|
return;
|
|
3562
|
-
if (buf
|
|
3457
|
+
if (isBinaryBytes(buf))
|
|
3563
3458
|
return;
|
|
3564
3459
|
bytes += buf.length;
|
|
3565
3460
|
if (bytes > B.grepBytes) {
|
|
3566
3461
|
cut = true;
|
|
3567
3462
|
return false;
|
|
3568
3463
|
}
|
|
3569
|
-
const text = buf
|
|
3464
|
+
const text = decodeText(buf);
|
|
3570
3465
|
if (!names2.some((n) => text.includes(n)))
|
|
3571
3466
|
return;
|
|
3572
3467
|
const decls = await o.outline(p, text).catch(() => void 0);
|
|
@@ -3629,50 +3524,12 @@ function reposOf(root, input, o) {
|
|
|
3629
3524
|
throw new ContextToolError("No repo is cloned in the workspace.");
|
|
3630
3525
|
return out;
|
|
3631
3526
|
}
|
|
3632
|
-
function ignoreRules(text, base) {
|
|
3633
|
-
const out = [];
|
|
3634
|
-
for (let line of text.split(/\r?\n/)) {
|
|
3635
|
-
line = line.replace(/(?<!\\)\s+$/, "");
|
|
3636
|
-
if (!line || line.startsWith("#"))
|
|
3637
|
-
continue;
|
|
3638
|
-
let negate = false;
|
|
3639
|
-
if (line.startsWith("!")) {
|
|
3640
|
-
negate = true;
|
|
3641
|
-
line = line.slice(1);
|
|
3642
|
-
} else if (line.startsWith("\\!") || line.startsWith("\\#"))
|
|
3643
|
-
line = line.slice(1);
|
|
3644
|
-
const dirOnly = line.endsWith("/");
|
|
3645
|
-
if (dirOnly)
|
|
3646
|
-
line = line.slice(0, -1);
|
|
3647
|
-
if (!line)
|
|
3648
|
-
continue;
|
|
3649
|
-
const anchored = line.includes("/");
|
|
3650
|
-
try {
|
|
3651
|
-
out.push({ base, re: globMatcher(line.replace(/^\//, ""), !anchored), negate, dirOnly });
|
|
3652
|
-
} catch {
|
|
3653
|
-
}
|
|
3654
|
-
}
|
|
3655
|
-
return out;
|
|
3656
|
-
}
|
|
3657
|
-
function ignored(rules, path, isDir) {
|
|
3658
|
-
let out = false;
|
|
3659
|
-
for (const r of rules) {
|
|
3660
|
-
if (r.dirOnly && !isDir)
|
|
3661
|
-
continue;
|
|
3662
|
-
if (r.base && !path.startsWith(`${r.base}/`))
|
|
3663
|
-
continue;
|
|
3664
|
-
const rel2 = r.base ? path.slice(r.base.length + 1) : path;
|
|
3665
|
-
if (r.re.test(rel2))
|
|
3666
|
-
out = !r.negate;
|
|
3667
|
-
}
|
|
3668
|
-
return out;
|
|
3669
|
-
}
|
|
3670
3527
|
async function rulesFor(dir, path) {
|
|
3671
3528
|
const parts = path.split("/").slice(0, -1);
|
|
3672
3529
|
const rules = [];
|
|
3673
3530
|
for (let i = 0; i <= parts.length; i++) {
|
|
3674
3531
|
const base = parts.slice(0, i).join("/");
|
|
3675
|
-
const text = await readFile3(join4(dir, ...parts.slice(0, i), ".gitignore")
|
|
3532
|
+
const text = await readFile3(join4(dir, ...parts.slice(0, i), ".gitignore")).then(decodeText, () => void 0);
|
|
3676
3533
|
if (text)
|
|
3677
3534
|
rules.push(...ignoreRules(text, base));
|
|
3678
3535
|
}
|
|
@@ -3682,50 +3539,18 @@ async function isIgnored(dir, path) {
|
|
|
3682
3539
|
const rules = await rulesFor(dir, path);
|
|
3683
3540
|
const parts = path.split("/");
|
|
3684
3541
|
for (let i = 1; i < parts.length; i++)
|
|
3685
|
-
if (
|
|
3542
|
+
if (ignoredBy(rules, parts.slice(0, i).join("/"), true))
|
|
3686
3543
|
return true;
|
|
3687
|
-
return
|
|
3544
|
+
return ignoredBy(rules, path, false);
|
|
3688
3545
|
}
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
return true;
|
|
3698
|
-
}
|
|
3699
|
-
const here = entries.find((e) => e.name === ".gitignore" && e.isFile());
|
|
3700
|
-
const rules = here ? [
|
|
3701
|
-
...inherited,
|
|
3702
|
-
...ignoreRules(await readFile3(join4(dir, ...rel2.split("/"), ".gitignore"), "utf8"), rel2)
|
|
3703
|
-
] : inherited;
|
|
3704
|
-
for (const e of entries.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
|
|
3705
|
-
if (e.isSymbolicLink() || e.name === ".git")
|
|
3706
|
-
continue;
|
|
3707
|
-
const p = rel2 ? `${rel2}/${e.name}` : e.name;
|
|
3708
|
-
if (e.isDirectory()) {
|
|
3709
|
-
if (ignored(rules, p, true))
|
|
3710
|
-
continue;
|
|
3711
|
-
if (!await go(p, rules))
|
|
3712
|
-
return false;
|
|
3713
|
-
} else if (e.isFile()) {
|
|
3714
|
-
if (ignored(rules, p, false))
|
|
3715
|
-
continue;
|
|
3716
|
-
if (files >= max) {
|
|
3717
|
-
cut = true;
|
|
3718
|
-
return false;
|
|
3719
|
-
}
|
|
3720
|
-
files++;
|
|
3721
|
-
if (await visit(p) === false)
|
|
3722
|
-
return false;
|
|
3723
|
-
}
|
|
3724
|
-
}
|
|
3725
|
-
return true;
|
|
3726
|
-
};
|
|
3727
|
-
await go("", []);
|
|
3728
|
-
return { files, cut };
|
|
3546
|
+
function walkClone(dir, max, visit) {
|
|
3547
|
+
return walkRepo(dir, visit, { max });
|
|
3548
|
+
}
|
|
3549
|
+
async function readableCode(file, path) {
|
|
3550
|
+
if (isBinaryPath(path))
|
|
3551
|
+
return false;
|
|
3552
|
+
const size = (await stat2(file).catch(() => void 0))?.size;
|
|
3553
|
+
return size !== void 0 && size <= CONTEXT_TOOL_BOUNDS.codeFileBytes;
|
|
3729
3554
|
}
|
|
3730
3555
|
var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
3731
3556
|
async function runCodeTool(root, name, input, o) {
|
|
@@ -3801,10 +3626,13 @@ async function grepTool(root, input, o) {
|
|
|
3801
3626
|
const walked = await walkClone(dir, B.walkFiles - read, async (p) => {
|
|
3802
3627
|
if (only && !only.test(p))
|
|
3803
3628
|
return;
|
|
3804
|
-
const
|
|
3629
|
+
const file = join4(dir, ...p.split("/"));
|
|
3630
|
+
if (!await readableCode(file, p))
|
|
3631
|
+
return;
|
|
3632
|
+
const buf = await readFile3(file).catch(() => void 0);
|
|
3805
3633
|
if (!buf || buf.length > B.codeFileBytes)
|
|
3806
3634
|
return;
|
|
3807
|
-
if (buf
|
|
3635
|
+
if (isBinaryBytes(buf))
|
|
3808
3636
|
return;
|
|
3809
3637
|
bytes += buf.length;
|
|
3810
3638
|
if (bytes > B.grepBytes) {
|
|
@@ -3812,7 +3640,7 @@ async function grepTool(root, input, o) {
|
|
|
3812
3640
|
return false;
|
|
3813
3641
|
}
|
|
3814
3642
|
read++;
|
|
3815
|
-
const lines = buf
|
|
3643
|
+
const lines = decodeText(buf).split(/\r?\n/).map((l) => l.slice(0, 2e3));
|
|
3816
3644
|
const found = matching(lines);
|
|
3817
3645
|
if (!found) {
|
|
3818
3646
|
cut = true;
|
|
@@ -3926,7 +3754,7 @@ async function outlineTool(root, input, o) {
|
|
|
3926
3754
|
const size = (await stat2(file)).size;
|
|
3927
3755
|
if (size > CONTEXT_TOOL_BOUNDS.codeFileBytes)
|
|
3928
3756
|
throw new ContextToolError(`${path} is too big to outline (${size} bytes).`);
|
|
3929
|
-
const text = await readFile3(file
|
|
3757
|
+
const text = decodeText(await readFile3(file));
|
|
3930
3758
|
const head = `Outline of ${repo}:${rel2}`;
|
|
3931
3759
|
let how;
|
|
3932
3760
|
let lines;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { createRequire as __atticusCreateRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __atticusFileURLToPath } from "node:url";
|
|
3
|
+
var require = __atticusCreateRequire(import.meta.url);
|
|
4
|
+
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
|
+
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
|
+
import {
|
|
7
|
+
readUserState,
|
|
8
|
+
writeUserState
|
|
9
|
+
} from "./chunk-KVVNAUIG.js";
|
|
10
|
+
import {
|
|
11
|
+
loadOrgPack,
|
|
12
|
+
orgPackDirOf
|
|
13
|
+
} from "./chunk-FPBUTZI5.js";
|
|
14
|
+
|
|
15
|
+
// packages/cli/dist/model-address.js
|
|
16
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
17
|
+
var ADDRESS = /url|endpoint|host|address/i;
|
|
18
|
+
function whereKeyGoes(m) {
|
|
19
|
+
const s = m?.settings ?? {};
|
|
20
|
+
const picked = Object.keys(s).filter((k) => k === "keyEnv" || k === "caFile" || ADDRESS.test(k)).sort().map((k) => [k, s[k]]);
|
|
21
|
+
return JSON.stringify([m?.type ?? null, picked]);
|
|
22
|
+
}
|
|
23
|
+
function addressWords(m) {
|
|
24
|
+
const s = m?.settings ?? {};
|
|
25
|
+
const at = Object.keys(s).filter((k) => k === "caFile" || ADDRESS.test(k)).map((k) => `${k} ${String(s[k])}`);
|
|
26
|
+
return `${String(m?.type ?? "no provider")}${at.length ? ` (${at.join(", ")})` : " at its own address"}`;
|
|
27
|
+
}
|
|
28
|
+
var OWN_ADDRESS = /* @__PURE__ */ new Set(["anthropic", "bedrock"]);
|
|
29
|
+
function atProvidersOwnAddress(m) {
|
|
30
|
+
if (typeof m?.type !== "string" || !OWN_ADDRESS.has(m.type))
|
|
31
|
+
return false;
|
|
32
|
+
return !Object.keys(m.settings ?? {}).some((k) => k === "caFile" || ADDRESS.test(k));
|
|
33
|
+
}
|
|
34
|
+
var FILE = "model-address.json";
|
|
35
|
+
async function confirmedAddress(root, env = process.env) {
|
|
36
|
+
const r = await readUserState(root, FILE, env);
|
|
37
|
+
return typeof r?.address === "string" ? r.address : void 0;
|
|
38
|
+
}
|
|
39
|
+
async function recordConfirmedAddress(root, m, env = process.env) {
|
|
40
|
+
await writeUserState(root, FILE, { address: whereKeyGoes(m), at: (/* @__PURE__ */ new Date()).toISOString() }, env);
|
|
41
|
+
}
|
|
42
|
+
async function addressRefusal(root, m, env = process.env) {
|
|
43
|
+
if (!m || m.type === void 0 || m.type === "mock")
|
|
44
|
+
return void 0;
|
|
45
|
+
const confirmed = await confirmedAddress(root, env);
|
|
46
|
+
const ok = confirmed !== void 0 ? confirmed === whereKeyGoes(m) : atProvidersOwnAddress(m);
|
|
47
|
+
if (ok)
|
|
48
|
+
return void 0;
|
|
49
|
+
return `runtime.yaml sends the model's key to ${addressWords(m)}, which you haven't confirmed${confirmed !== void 0 ? " (it changed since you last did)" : ""}, so nothing was sent. Open AI settings in the Atticus app and press Test: it asks you to confirm where the key goes. Or run the step yourself in a terminal (ADR 0186).`;
|
|
50
|
+
}
|
|
51
|
+
var fromApp = new AsyncLocalStorage();
|
|
52
|
+
var serving = 0;
|
|
53
|
+
var asTheApp = (f) => fromApp.run(true, f);
|
|
54
|
+
function servingTheApp(on) {
|
|
55
|
+
serving = Math.max(0, serving + (on ? 1 : -1));
|
|
56
|
+
}
|
|
57
|
+
function whoStarts(env = process.env, tty = process.stdin.isTTY === true) {
|
|
58
|
+
if (fromApp.getStore() || serving > 0)
|
|
59
|
+
return "app";
|
|
60
|
+
if (env.ATTICUS_ACP_SESSION)
|
|
61
|
+
return "session";
|
|
62
|
+
return tty ? "person" : "unattended";
|
|
63
|
+
}
|
|
64
|
+
async function refusalError(message) {
|
|
65
|
+
const { RuntimeConfigError } = await import("./chunk-BFMTGNAQ.js");
|
|
66
|
+
const e = new RuntimeConfigError(message);
|
|
67
|
+
return Object.assign(e, { modelAddress: true });
|
|
68
|
+
}
|
|
69
|
+
async function guardModelAddress(o, env = process.env, tty = process.stdin.isTTY === true) {
|
|
70
|
+
const who = whoStarts(env, tty);
|
|
71
|
+
if (who === "unattended")
|
|
72
|
+
return;
|
|
73
|
+
const m = { type: o.type, settings: o.settings };
|
|
74
|
+
if (who === "person") {
|
|
75
|
+
if (await confirmedAddress(o.root) !== whereKeyGoes(m))
|
|
76
|
+
await recordConfirmedAddress(o.root, m).catch(() => void 0);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const no = await addressRefusal(o.root, m);
|
|
80
|
+
if (no)
|
|
81
|
+
throw await refusalError(no);
|
|
82
|
+
}
|
|
83
|
+
async function requireConfirmedModel(root, mode, env = process.env) {
|
|
84
|
+
const op = await loadOrgPack(orgPackDirOf(root));
|
|
85
|
+
const effective = mode ?? env.ATTICUS_RUNTIME ?? op.runtime.modes.default;
|
|
86
|
+
if (effective !== "model")
|
|
87
|
+
return;
|
|
88
|
+
const no = await addressRefusal(root, op.runtime.adapters.model, env);
|
|
89
|
+
if (!no)
|
|
90
|
+
return;
|
|
91
|
+
const { HttpError } = await import("./chunk-4R3TO4VL.js");
|
|
92
|
+
throw new HttpError(403, "Confirm where the model's key goes", no, { confirm: "ai-test" });
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export {
|
|
96
|
+
whereKeyGoes,
|
|
97
|
+
atProvidersOwnAddress,
|
|
98
|
+
confirmedAddress,
|
|
99
|
+
recordConfirmedAddress,
|
|
100
|
+
addressRefusal,
|
|
101
|
+
asTheApp,
|
|
102
|
+
servingTheApp,
|
|
103
|
+
whoStarts,
|
|
104
|
+
guardModelAddress,
|
|
105
|
+
requireConfirmedModel
|
|
106
|
+
};
|
|
@@ -5,14 +5,14 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
repoFor
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XOMEQVLK.js";
|
|
9
9
|
import {
|
|
10
10
|
draftRepoType,
|
|
11
11
|
matchRepoType
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-IKAW2KJU.js";
|
|
13
13
|
import {
|
|
14
14
|
fsRepo
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PQQKZPBU.js";
|
|
16
16
|
import {
|
|
17
17
|
CONVENTIONS_SCHEMA_VERSION,
|
|
18
18
|
ChecklistPack,
|
|
@@ -29,10 +29,12 @@ import {
|
|
|
29
29
|
noteRuleDrafts,
|
|
30
30
|
notesFor,
|
|
31
31
|
orgPackDirOf,
|
|
32
|
-
require_dist,
|
|
33
32
|
termAnswerNote,
|
|
34
33
|
termOfQuestion
|
|
35
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-FPBUTZI5.js";
|
|
35
|
+
import {
|
|
36
|
+
require_dist
|
|
37
|
+
} from "./chunk-BQGDB6ZL.js";
|
|
36
38
|
import {
|
|
37
39
|
__toESM
|
|
38
40
|
} from "./chunk-TV45EUGM.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
roundsUsed,
|
|
23
23
|
runCritic,
|
|
24
24
|
waitingLenses
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-D6BVLTDV.js";
|
|
26
26
|
import {
|
|
27
27
|
changeFolder,
|
|
28
28
|
changeStore,
|
|
@@ -30,21 +30,23 @@ import {
|
|
|
30
30
|
phaseStage,
|
|
31
31
|
stageCommand,
|
|
32
32
|
statePhase
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-WZYM5M4U.js";
|
|
34
34
|
import {
|
|
35
35
|
AiOffError,
|
|
36
36
|
HandoffRuntime,
|
|
37
37
|
RuntimeConfigError,
|
|
38
38
|
runtimeForCli
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-3424TLIJ.js";
|
|
40
40
|
import {
|
|
41
41
|
CriticQuestion,
|
|
42
42
|
LEGACY_LENSES,
|
|
43
43
|
Lens,
|
|
44
|
-
require_dist,
|
|
45
44
|
runsDirOf,
|
|
46
45
|
runsRelOf
|
|
47
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-FPBUTZI5.js";
|
|
47
|
+
import {
|
|
48
|
+
require_dist
|
|
49
|
+
} from "./chunk-BQGDB6ZL.js";
|
|
48
50
|
import {
|
|
49
51
|
__toESM
|
|
50
52
|
} from "./chunk-TV45EUGM.js";
|
|
@@ -108,7 +110,7 @@ function statusLine(s, change = "<change>") {
|
|
|
108
110
|
return owner;
|
|
109
111
|
if (s.humanDecides)
|
|
110
112
|
return `The ${s.gate} gate is closed (${counts}) and ${roundsUsed(s)}: a person decides now. Once a person acts on round ${s.round}'s findings, ${checkRoundRule(s.round)}.`;
|
|
111
|
-
return `The ${s.gate} gate is closed: ${counts}. Act on each with atticus finding <id> <action>.`;
|
|
113
|
+
return `The ${s.gate} gate is closed: ${counts}. Act on each with atticus finding ${change} <id> <action>.`;
|
|
112
114
|
}
|
|
113
115
|
async function runtimeOf(root, mode, deps) {
|
|
114
116
|
if (deps.runtime)
|
|
@@ -229,7 +231,7 @@ async function critic(root, changeId, o, io, deps = {}) {
|
|
|
229
231
|
io.out(`${l.lens} lens ${l.state}: ${l.reason ?? ""}`.trimEnd());
|
|
230
232
|
if (r.discarded.length)
|
|
231
233
|
io.out(`Discarded ${r.discarded.length} AI finding${r.discarded.length > 1 ? "s" : ""} without valid evidence.`);
|
|
232
|
-
io.out(statusLine(s));
|
|
234
|
+
io.out(statusLine(s, r.change));
|
|
233
235
|
return s.mayProceed ? 0 : 1;
|
|
234
236
|
}
|
|
235
237
|
function printCompleted(c, io) {
|
|
@@ -242,7 +244,7 @@ function printCompleted(c, io) {
|
|
|
242
244
|
if (c.waiting.length)
|
|
243
245
|
io.out(`${plural(c.waiting.length, "AI lens", "AI lenses")} ${c.waiting.length === 1 ? "is" : "are"} still with your assistant: ${c.waiting.map((w) => `${w.lens} (atticus handoff done ${w.runId})`).join(", ")}.`);
|
|
244
246
|
else
|
|
245
|
-
io.out(statusLine(c.status));
|
|
247
|
+
io.out(statusLine(c.status, c.change));
|
|
246
248
|
return c.waiting.length === 0;
|
|
247
249
|
}
|
|
248
250
|
async function completeCriticLens(root, run, io, o = {}) {
|
|
@@ -279,7 +281,7 @@ async function completeCriticBatch(root, batch, result, io, o = {}) {
|
|
|
279
281
|
if (last.waiting.length)
|
|
280
282
|
io.out(`${plural(last.waiting.length, "AI lens", "AI lenses")} ${last.waiting.length === 1 ? "is" : "are"} still with your assistant: ${last.waiting.map((w) => w.lens).join(", ")}.`);
|
|
281
283
|
else
|
|
282
|
-
io.out(statusLine(last.status));
|
|
284
|
+
io.out(statusLine(last.status, last.change));
|
|
283
285
|
}
|
|
284
286
|
return batch.state === "validated" && read.every((c) => c.lens.state === "ran") ? 0 : 1;
|
|
285
287
|
}
|
|
@@ -315,7 +317,7 @@ async function resumeLenses(root, changeId, o, io, deps) {
|
|
|
315
317
|
for (const gate of gates) {
|
|
316
318
|
const s = await gateStatus(root, changeId, gate);
|
|
317
319
|
if (!statusPrinted && (any || s.round !== void 0))
|
|
318
|
-
io.out(statusLine(s));
|
|
320
|
+
io.out(statusLine(s, changeId));
|
|
319
321
|
mayProceed = s.mayProceed && s.round !== void 0;
|
|
320
322
|
}
|
|
321
323
|
return mayProceed ? 0 : 1;
|
|
@@ -372,7 +374,7 @@ async function findings(root, changeId, o, io) {
|
|
|
372
374
|
f.finding.summary
|
|
373
375
|
])))
|
|
374
376
|
io.out(` ${line}`);
|
|
375
|
-
io.out(statusLine(s));
|
|
377
|
+
io.out(statusLine(s, changeId));
|
|
376
378
|
}
|
|
377
379
|
return 0;
|
|
378
380
|
}
|
|
@@ -401,7 +403,7 @@ async function findingAction(root, changeId, findingId, action, o, io, deps = {}
|
|
|
401
403
|
});
|
|
402
404
|
io.out(r.message);
|
|
403
405
|
if (r.finding.state !== "open") {
|
|
404
|
-
const { retireChangeEscalations } = await import("./chunk-
|
|
406
|
+
const { retireChangeEscalations } = await import("./chunk-APDN6UOR.js");
|
|
405
407
|
const at = deps.now ?? (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
406
408
|
const stages = await retireChangeEscalations(root, changeId, at).catch(() => []);
|
|
407
409
|
if (stages.length)
|