@maycombhq/atticus 2.0.0-beta.2 → 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 +8 -4
- package/dist/chunk-23XVSEV5.js +49 -0
- package/dist/{chunk-ZDPAS56H.js → chunk-24OXGB3P.js} +8 -2
- package/dist/{chunk-7EOBHUMC.js → chunk-24XLDU72.js} +4 -3
- package/dist/{chunk-CR3MTH32.js → chunk-2F4CYZKJ.js} +86 -11
- package/dist/{chunk-6IU67AEK.js → chunk-2GF7OLF3.js} +23 -15
- package/dist/chunk-2IIMFOPM.js +41 -0
- package/dist/chunk-2LGRMVCA.js +617 -0
- package/dist/{chunk-XPCM366L.js → chunk-2MMCFP5C.js} +10 -8
- package/dist/{chunk-JBTK5OP2.js → chunk-2Q56PQPS.js} +6 -4
- package/dist/{chunk-Z6LF7HQN.js → chunk-2Q5EDGEO.js} +7 -5
- package/dist/{chunk-3USYZGRF.js → chunk-2RLKFUUL.js} +38 -27
- package/dist/chunk-2SKB4O2E.js +59 -0
- package/dist/{chunk-SP2I63OO.js → chunk-34S2WGOB.js} +87 -4
- package/dist/{chunk-GQ4N4WKF.js → chunk-3NFFJL5D.js} +33 -27
- package/dist/{chunk-SJRGMG6A.js → chunk-3NWDLGG6.js} +28 -25
- package/dist/{chunk-4WBVUHXN.js → chunk-3RM4UK6W.js} +20 -18
- package/dist/chunk-42SIDKEU.js +583 -0
- package/dist/{chunk-GLUX4EEP.js → chunk-4EURQWQD.js} +20 -15
- package/dist/chunk-4U276ICE.js +39 -0
- package/dist/{chunk-ZMFPW66A.js → chunk-53T4O55J.js} +4 -3
- package/dist/{chunk-6J5OKA4Y.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-5NMKONLP.js +95 -0
- package/dist/{chunk-7ZUIMTOU.js → chunk-5SJZW52K.js} +26 -24
- package/dist/{chunk-4RS5KZQD.js → chunk-63YRMR6J.js} +6 -5
- package/dist/chunk-66PPNOON.js +62 -0
- package/dist/chunk-6H3Z5JHH.js +64 -0
- package/dist/{chunk-CEXSU4S6.js → chunk-6MUGR4LS.js} +775 -89
- package/dist/{chunk-QSXK2RGH.js → chunk-6OJQOPUN.js} +5 -3
- package/dist/{chunk-MVZVGYXH.js → chunk-6PPOWY5E.js} +84 -14
- package/dist/{chunk-7EKXJZ2Y.js → chunk-6ZGLAACW.js} +299 -38
- package/dist/chunk-6ZJ5A7AF.js +222 -0
- package/dist/{chunk-L24C55VN.js → chunk-745DAZ4L.js} +142 -30
- package/dist/{chunk-Q4D5X7QB.js → chunk-7ASNL4Q4.js} +46 -24
- package/dist/chunk-7BR7IPOH.js +35 -0
- package/dist/{chunk-7WD63HU2.js → chunk-7DOR27HL.js} +6 -6
- package/dist/chunk-7FTTA3HD.js +341 -0
- package/dist/{chunk-OLQJTJJU.js → chunk-7GJS6DNX.js} +12 -3
- package/dist/{chunk-7JUKDRSZ.js → chunk-7IGKHZ4Z.js} +347 -226
- package/dist/{chunk-G2B4ZQGH.js → chunk-7IOWA5D5.js} +11 -6
- package/dist/{chunk-EBEW3XXQ.js → chunk-7JITZFJC.js} +7 -5
- package/dist/chunk-7MJSQTL5.js +174 -0
- package/dist/{chunk-I4JRCD6M.js → chunk-7UOMVMFG.js} +25 -17
- package/dist/{chunk-YY6ZQQBP.js → chunk-AFWUDXEM.js} +19 -7
- package/dist/chunk-AFZ3QA6W.js +47 -0
- package/dist/chunk-AJQ72EBM.js +420 -0
- package/dist/chunk-AJYXNTNZ.js +317 -0
- package/dist/chunk-AVTBS4OW.js +49 -0
- package/dist/{chunk-FHH4I4ZV.js → chunk-BDKC6H5P.js} +12 -6
- package/dist/{chunk-IPKHE5D6.js → chunk-BEVTIBRH.js} +1526 -875
- package/dist/chunk-BHT7QK4G.js +162 -0
- package/dist/{chunk-6JUBZBMW.js → chunk-BIGDQDHD.js} +6 -4
- package/dist/{chunk-2BFCZ3RK.js → chunk-BO4KX37X.js} +20 -18
- package/dist/chunk-BPK5P77O.js +115 -0
- package/dist/chunk-BQ4SQQC6.js +59 -0
- package/dist/chunk-BQGDB6ZL.js +7342 -0
- package/dist/{chunk-2ANOROX3.js → chunk-BTGPE6CR.js} +11 -9
- package/dist/chunk-BTY3HZBO.js +93 -0
- package/dist/{chunk-DPZHZQKE.js → chunk-BXYMYEJ4.js} +44 -10
- package/dist/{chunk-2RMYG36Q.js → chunk-C3RY6KU6.js} +309 -346
- package/dist/chunk-C4R4JLHE.js +40 -0
- package/dist/chunk-CADWLE2T.js +18 -0
- package/dist/chunk-CBGGOQWU.js +82 -0
- package/dist/chunk-CMDXGQTS.js +47 -0
- package/dist/{chunk-MC3H7736.js → chunk-CQDGOPGH.js} +58 -18
- package/dist/{chunk-HFQCFSJR.js → chunk-CX4RZ2KS.js} +4 -3
- package/dist/{chunk-PAMPPUR6.js → chunk-CXJ6FUKN.js} +1852 -207
- package/dist/{chunk-ABWHYWNI.js → chunk-D73UEXYW.js} +3 -3
- package/dist/chunk-DCZWQLYT.js +1205 -0
- package/dist/chunk-DLOBCJL6.js +48 -0
- package/dist/{chunk-4BN53TG3.js → chunk-DOBQKHIF.js} +31 -23
- package/dist/chunk-E3ISYXO3.js +423 -0
- package/dist/{chunk-7SW2QWLU.js → chunk-E6ZIEVOI.js} +16 -13
- package/dist/chunk-EBL2R3YG.js +43 -0
- package/dist/{chunk-AIOQPLA5.js → chunk-EGQRREQH.js} +41 -15
- package/dist/chunk-EHA7RMZ3.js +58 -0
- package/dist/{chunk-M766ZJ6W.js → chunk-EIPTLPFC.js} +38 -27
- package/dist/chunk-EMRIQUND.js +517 -0
- package/dist/{chunk-DFBCSHVT.js → chunk-EPCJQQWD.js} +6 -4
- package/dist/{chunk-RZPYKDWS.js → chunk-F3P7N7SF.js} +1 -1
- package/dist/{chunk-R77KLRB3.js → chunk-FFLNS6VP.js} +21 -18
- package/dist/chunk-FFTRTL6R.js +26 -0
- package/dist/{chunk-IHMLFRVV.js → chunk-FPJPLKDW.js} +62 -16
- package/dist/{chunk-JCZIKA4C.js → chunk-FSMSFDLD.js} +5 -4
- package/dist/{chunk-AVJDSJ2F.js → chunk-FUJM6RTF.js} +8 -7
- package/dist/chunk-FZOJFH7Q.js +132 -0
- package/dist/{chunk-QRAOANID.js → chunk-G6X77UJZ.js} +23 -21
- package/dist/{chunk-3ALD2W2A.js → chunk-GCWRWSU7.js} +10 -4
- package/dist/chunk-GIW4ZVDB.js +39 -0
- package/dist/{chunk-B2WLAWNJ.js → chunk-GUX3PTYM.js} +3 -3
- package/dist/{chunk-DPUYDDQG.js → chunk-GZY6RUZ6.js} +25 -3
- package/dist/chunk-H4VO6WG3.js +10 -0
- package/dist/{chunk-MMOSZPWJ.js → chunk-H5HBGNXU.js} +5 -4
- package/dist/chunk-H7KM7LZE.js +229 -0
- package/dist/{chunk-AA6YULYB.js → chunk-HNM2YQT2.js} +7 -7
- package/dist/{chunk-3C7EYRFZ.js → chunk-HYU5VLGA.js} +1 -1
- package/dist/{chunk-XY3P7JW7.js → chunk-IDKCWSM5.js} +1032 -172
- package/dist/chunk-IFKEI4SA.js +237 -0
- package/dist/{chunk-F7HYOUFF.js → chunk-IGOE6KPG.js} +67 -22
- package/dist/{chunk-TDD55CJH.js → chunk-IH2XURVQ.js} +6 -5
- package/dist/chunk-INQHESFB.js +38 -0
- package/dist/chunk-IP74LCOQ.js +57 -0
- package/dist/chunk-IPHHDDC6.js +45 -0
- package/dist/{chunk-T6AIP7H5.js → chunk-ISUAAMGS.js} +110 -153
- package/dist/{chunk-A7UPUQFY.js → chunk-IUPG3UKI.js} +624 -319
- package/dist/{chunk-L6SGQIR3.js → chunk-IVBOQAGB.js} +7 -3
- package/dist/{chunk-27NKUS3X.js → chunk-J2JAKCIW.js} +2205 -796
- package/dist/{chunk-V2YTAIQO.js → chunk-J3IOLXWM.js} +24 -7
- package/dist/chunk-JA5FI3QV.js +142 -0
- package/dist/chunk-JAVI7JSP.js +49 -0
- package/dist/{chunk-HLJAXMM4.js → chunk-JB5LINEM.js} +6 -2
- package/dist/{chunk-2VHF7OXM.js → chunk-JENSEMXF.js} +1 -1
- package/dist/{chunk-6BVONWJ7.js → chunk-JJF6HALY.js} +4 -3
- package/dist/chunk-JLUCKAEL.js +38 -0
- package/dist/chunk-JRBFANFE.js +221 -0
- package/dist/{chunk-R6XF6UR3.js → chunk-KDNTAPLX.js} +4 -4
- package/dist/chunk-KFAVQZSX.js +33 -0
- package/dist/chunk-KJXD4PNL.js +50 -0
- package/dist/chunk-KN5BXMWN.js +44 -0
- package/dist/{chunk-PCVDV3UZ.js → chunk-KQGURXFU.js} +9 -7
- package/dist/{chunk-WY6PP6AA.js → chunk-KXITGYLF.js} +40 -6
- package/dist/{chunk-66YVAGGM.js → chunk-L27SV425.js} +22 -20
- package/dist/{chunk-NE2W3OO7.js → chunk-LDLL7LB3.js} +24 -22
- package/dist/chunk-LFGTYX5U.js +379 -0
- package/dist/{chunk-EYWIDJFU.js → chunk-LGBMTVNT.js} +7 -5
- package/dist/{chunk-Q5AMFEWD.js → chunk-LGFL54FP.js} +3 -2
- package/dist/{chunk-6TACQN3N.js → chunk-LJXMYKZJ.js} +7 -5
- package/dist/{chunk-BKVWTZ6A.js → chunk-LKOR5UET.js} +29 -26
- package/dist/chunk-LNBQOP7D.js +294 -0
- package/dist/{chunk-O3WI5KWW.js → chunk-LO6P2VYG.js} +2 -2
- package/dist/chunk-LQJPN536.js +122 -0
- package/dist/{chunk-YEDDOYSC.js → chunk-LYBNHMVZ.js} +29 -5
- package/dist/{chunk-A3GY6SOA.js → chunk-LZ7NUC62.js} +20 -18
- package/dist/chunk-M32BLWDH.js +37 -0
- package/dist/{chunk-VYDBJ73M.js → chunk-M3NANSDZ.js} +17 -15
- package/dist/chunk-MFHL5URL.js +31 -0
- package/dist/chunk-MFR5OPBD.js +109 -0
- package/dist/{chunk-DE76JROX.js → chunk-MG4ZL5RW.js} +32 -20
- package/dist/{chunk-N7IXEHK3.js → chunk-MO6P2JZH.js} +10 -8
- package/dist/{chunk-65NYPGRC.js → chunk-MUWDB4R4.js} +1 -1
- package/dist/chunk-MZCGSXVR.js +34 -0
- package/dist/{chunk-MGYZM27B.js → chunk-N3XIYPU3.js} +51 -23
- package/dist/chunk-NDCF4R6S.js +172 -0
- package/dist/{chunk-DHPACDG7.js → chunk-NR2UJWOC.js} +10 -8
- package/dist/chunk-NXJ5URP6.js +51 -0
- package/dist/{chunk-UNM6ZOKP.js → chunk-NY2XSR5K.js} +147 -18
- package/dist/{chunk-5GDRCDQB.js → chunk-O45HFTFS.js} +3 -2
- package/dist/{chunk-ONLS5QA5.js → chunk-O4GXGGBX.js} +14 -12
- package/dist/chunk-O5PXQR67.js +249 -0
- package/dist/{chunk-PRPPGYZG.js → chunk-O66DM6DJ.js} +6 -4
- package/dist/{chunk-KEM4SDDP.js → chunk-O7FDLW7L.js} +11 -8
- package/dist/{chunk-T2UYZSCQ.js → chunk-O7XLYEFA.js} +169 -29
- package/dist/{chunk-FITWGOJ2.js → chunk-OHNCWBKF.js} +4 -4
- package/dist/{chunk-652QWTLZ.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-OUBGGKDU.js +22 -0
- package/dist/chunk-OWNCM4ZN.js +330 -0
- package/dist/{chunk-YISXLPHN.js → chunk-P2V7QW4D.js} +235 -35
- package/dist/{chunk-CNUKCS2T.js → chunk-P32RUW3B.js} +1632 -93
- package/dist/{chunk-BWZ77RQT.js → chunk-PAQ2AS5E.js} +1 -1
- package/dist/{chunk-ZMAINWBW.js → chunk-PBPBMP2B.js} +4 -3
- package/dist/{chunk-ZVM6AKKM.js → chunk-PJSJPMJI.js} +3 -3
- package/dist/{chunk-EFHQ3TWP.js → chunk-PKBHS4AA.js} +233 -56
- package/dist/{chunk-GT4I4ZWM.js → chunk-PMUAJGLI.js} +20 -16
- package/dist/chunk-PPD7HTDP.js +152 -0
- package/dist/chunk-PSOFBQWB.js +42 -0
- package/dist/{chunk-S2A7YC3Q.js → chunk-Q2TECDIT.js} +10694 -8896
- package/dist/chunk-Q4K5WB2W.js +42 -0
- package/dist/{chunk-UGLN7QHV.js → chunk-Q6DFNVRJ.js} +14 -12
- package/dist/chunk-QA4O2GGC.js +265 -0
- package/dist/chunk-QAXW2N3B.js +1216 -0
- package/dist/chunk-QBNWF5ZU.js +19 -0
- package/dist/chunk-QFWA2DPH.js +224 -0
- package/dist/{chunk-23W7VWKR.js → chunk-QKUJMING.js} +1363 -114
- package/dist/{chunk-NXFPS2LR.js → chunk-R44CYFPV.js} +16 -13
- package/dist/{chunk-CKSITVS4.js → chunk-R7NYHMUU.js} +2687 -786
- package/dist/chunk-REWWDVQB.js +162 -0
- package/dist/{chunk-JMSCMUCA.js → chunk-RGERPOIV.js} +145 -21
- package/dist/{chunk-6JCPI55B.js → chunk-RLDGWLQ7.js} +49 -7
- package/dist/chunk-RUGXBPWI.js +384 -0
- package/dist/{chunk-CPA6HPVR.js → chunk-RXPJMEOW.js} +18 -12
- package/dist/{chunk-3HI6Z55Y.js → chunk-S4PMJU6H.js} +339 -43
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/chunk-S7FCV7S5.js +51 -0
- package/dist/{chunk-5GGOLAKC.js → chunk-SDKLKB6I.js} +28 -26
- package/dist/chunk-SFSPGFCV.js +62 -0
- package/dist/{chunk-ZNCEKR4J.js → chunk-SFUP7TTO.js} +12 -8
- package/dist/{chunk-64EQYWCA.js → chunk-SLXZOMA6.js} +69 -19
- package/dist/chunk-SQV37XO2.js +273 -0
- package/dist/{chunk-K65BJIMT.js → chunk-SU74NDMQ.js} +19 -17
- package/dist/chunk-SYV5LHML.js +165 -0
- package/dist/chunk-T4YPZIQN.js +36 -0
- package/dist/chunk-T6DQR5TV.js +323 -0
- package/dist/{chunk-JIITQXFB.js → chunk-THDMSZ3R.js} +3075 -802
- package/dist/{chunk-JGZCG5VM.js → chunk-TNR75OXT.js} +7 -7
- package/dist/{chunk-D3PO4DOZ.js → chunk-TUULXQRW.js} +174 -15
- package/dist/chunk-TYQBFTBR.js +516 -0
- package/dist/chunk-U76OWS3Q.js +49 -0
- package/dist/{chunk-YYQN46FY.js → chunk-UCROWG2D.js} +27 -24
- package/dist/{chunk-6M5NK3K3.js → chunk-UF4AZOZB.js} +50 -10
- package/dist/chunk-UF4GLFBX.js +345 -0
- package/dist/{chunk-OT2O76OS.js → chunk-UGUP3ZM6.js} +240 -39
- package/dist/chunk-UNAGJYET.js +45 -0
- package/dist/{chunk-5WG5YP4T.js → chunk-UOR2DTHH.js} +16 -14
- package/dist/{chunk-S3QNRWYR.js → chunk-UPOY4YSQ.js} +14 -12
- package/dist/{chunk-EPTBZ3GP.js → chunk-UPS2DGFC.js} +1 -1
- package/dist/{chunk-4AK7IBVP.js → chunk-UUU4CLJG.js} +4 -2
- package/dist/{chunk-W3BQAZ3Q.js → chunk-UWMJKX5U.js} +14 -12
- package/dist/{chunk-QZSX3F7C.js → chunk-UWOJLHFT.js} +27 -23
- package/dist/chunk-VBTP56CE.js +535 -0
- package/dist/chunk-VCTWPLAO.js +211 -0
- package/dist/chunk-VNU26RCO.js +1215 -0
- package/dist/{chunk-CSZ4C5N6.js → chunk-VTZMAJ3W.js} +93 -10
- package/dist/{chunk-TXLH6WHQ.js → chunk-VW62D6QE.js} +14 -12
- package/dist/{chunk-CAQZUNOH.js → chunk-VY72R2XZ.js} +610 -3
- package/dist/{chunk-2DIQQJCB.js → chunk-VZALIKIF.js} +18 -15
- package/dist/{chunk-TYAID7B7.js → chunk-W62H2XSO.js} +25 -23
- package/dist/{chunk-HVUPKCGJ.js → chunk-W7VWI2YH.js} +9 -6
- package/dist/{chunk-TANFV3MZ.js → chunk-WERM6KPJ.js} +7 -4
- package/dist/{chunk-BOHJZTEQ.js → chunk-WF7B67YE.js} +208 -87
- package/dist/{chunk-7FBGJFEE.js → chunk-WG5U3F5V.js} +14 -12
- package/dist/{chunk-4NDAAFQT.js → chunk-WJF2CS6M.js} +8 -5
- package/dist/{chunk-XAKWMCXI.js → chunk-WKUJ3KPV.js} +4 -4
- package/dist/chunk-WMTRHUI5.js +103 -0
- package/dist/chunk-WNKPRSGI.js +36 -0
- package/dist/chunk-WXFLMQSR.js +223 -0
- package/dist/{chunk-RRTKKSLQ.js → chunk-X3WY6MN3.js} +8 -6
- package/dist/{chunk-ZCJDOK2S.js → chunk-X4CXA2IL.js} +47 -23
- package/dist/{chunk-UBBC2XSG.js → chunk-X5F3Q5LV.js} +560 -105
- package/dist/{chunk-C6EKFH7J.js → chunk-XD75VZIH.js} +9 -7
- package/dist/chunk-XERYFDB5.js +297 -0
- package/dist/chunk-XI2LCCYQ.js +420 -0
- package/dist/chunk-Y2EQNWKV.js +933 -0
- package/dist/{chunk-LR3R6Z2A.js → chunk-YHCMZC2J.js} +7 -7
- package/dist/chunk-YYY3AZFE.js +122 -0
- package/dist/{chunk-GDLULHTC.js → chunk-Z5IA3WDR.js} +19 -31
- package/dist/{chunk-T6XQL73F.js → chunk-ZFFYNRIO.js} +63 -23
- package/dist/{chunk-EDS2L2LD.js → chunk-ZFL7NY4F.js} +56 -27
- package/dist/{chunk-YMZ3TNYB.js → chunk-ZGULQAPZ.js} +7 -4
- package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
- package/dist/{chunk-DKJA76CJ.js → chunk-ZJFRMSJT.js} +15 -13
- package/dist/chunk-ZJXLNDH4.js +239 -0
- package/dist/chunk-ZQ3ON2VQ.js +252 -0
- package/dist/{chunk-HITVBIJS.js → chunk-ZQ7SKESZ.js} +150 -415
- package/dist/{chunk-6QSERWXH.js → chunk-ZQXZ2SES.js} +24 -21
- package/dist/chunk-ZX57KSEQ.js +39 -0
- package/dist/{chunk-I3E7CX4H.js → chunk-ZZK56BLP.js} +5 -3
- package/dist/files.json +664 -368
- package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
- package/dist/packages/sdk/npm/index.js +6194 -2542
- package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.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/assets/index-Dw20IRhQ.css +1 -0
- package/dist/packages/ui/dist/index.html +3 -2
- package/package.json +5 -5
- package/dist/chunk-2BF2EYJV.js +0 -174
- package/dist/chunk-42EVSKME.js +0 -37
- package/dist/chunk-4BKGMUIK.js +0 -53
- package/dist/chunk-5KLGBXG5.js +0 -48
- package/dist/chunk-6BNC6EQ4.js +0 -41
- package/dist/chunk-6D2CQ5II.js +0 -41
- package/dist/chunk-7AVHLZGD.js +0 -45
- package/dist/chunk-D46WUV3T.js +0 -33
- package/dist/chunk-E36QOJMD.js +0 -47
- package/dist/chunk-FQXYPF7E.js +0 -147
- package/dist/chunk-GBRFVT63.js +0 -45
- package/dist/chunk-ICY36XCH.js +0 -34
- package/dist/chunk-J4K3KVLD.js +0 -131
- package/dist/chunk-JZU3H6UQ.js +0 -54
- package/dist/chunk-NN2ZQEB4.js +0 -38
- package/dist/chunk-PCOCACY3.js +0 -385
- package/dist/chunk-RTEYOSJY.js +0 -29
- package/dist/chunk-RUVFXE2L.js +0 -666
- package/dist/chunk-RVH5SUW5.js +0 -69
- package/dist/chunk-VN3DP4LQ.js +0 -43
- package/dist/chunk-W5BVQF44.js +0 -36
- package/dist/chunk-WVPJSRRJ.js +0 -52
- package/dist/chunk-XPTOBS2D.js +0 -48
- package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
- package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
|
@@ -6,14 +6,22 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
|
6
6
|
import {
|
|
7
7
|
dotInt8,
|
|
8
8
|
textSha
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P32RUW3B.js";
|
|
10
10
|
import {
|
|
11
|
+
JOINED_BY_PERSON,
|
|
11
12
|
Question,
|
|
12
13
|
RECORD_KINDS,
|
|
13
14
|
RecordId,
|
|
15
|
+
answerByWords,
|
|
14
16
|
changesDirOf,
|
|
17
|
+
decodeText,
|
|
15
18
|
deserializeRecord,
|
|
19
|
+
globMatcher,
|
|
16
20
|
identifierWords,
|
|
21
|
+
ignoreRules,
|
|
22
|
+
ignoredBy,
|
|
23
|
+
isBinaryBytes,
|
|
24
|
+
isBinaryPath,
|
|
17
25
|
knowledgeDirOf,
|
|
18
26
|
knowledgeKindOf,
|
|
19
27
|
layoutOf,
|
|
@@ -21,14 +29,17 @@ import {
|
|
|
21
29
|
parseRecord,
|
|
22
30
|
questionsDirOf,
|
|
23
31
|
recordReferences,
|
|
24
|
-
require_dist,
|
|
25
32
|
serializeRecord,
|
|
26
33
|
specsDirOf,
|
|
27
34
|
specsRelOf,
|
|
28
35
|
splitForms,
|
|
29
36
|
stateDirOf,
|
|
30
|
-
toCanonicalYaml
|
|
31
|
-
|
|
37
|
+
toCanonicalYaml,
|
|
38
|
+
walkRepo
|
|
39
|
+
} from "./chunk-Q2TECDIT.js";
|
|
40
|
+
import {
|
|
41
|
+
require_dist
|
|
42
|
+
} from "./chunk-BQGDB6ZL.js";
|
|
32
43
|
import {
|
|
33
44
|
__toESM
|
|
34
45
|
} from "./chunk-TV45EUGM.js";
|
|
@@ -870,9 +881,9 @@ function questionNodes(path, text) {
|
|
|
870
881
|
name: q.question,
|
|
871
882
|
file: path,
|
|
872
883
|
verified: false,
|
|
873
|
-
line: `answered question ${q.id}: ${q.question} Answer: ${answer} (${a.by}, ${a.at}) [${path}]`,
|
|
884
|
+
line: `answered question ${q.id}: ${q.question} Answer: ${answer} (${answerByWords(a.by)}, ${a.at}) [${path}]`,
|
|
874
885
|
detail: `Question ${q.id} (${path}), asked by ${q.askedBy.step} about repo ${q.repo}: ${q.question}
|
|
875
|
-
Answer, by ${a.by} at ${a.at}: ${answer}
|
|
886
|
+
Answer, by ${answerByWords(a.by)} at ${a.at}: ${answer}
|
|
876
887
|
Evidence: ${q.evidence.join(", ")}`,
|
|
877
888
|
names: "",
|
|
878
889
|
ids: q.id,
|
|
@@ -1004,8 +1015,8 @@ var DOCUMENT_EXTENSIONS = /\.(docx|pptx|xlsx|pdf|md|markdown|html?|txt)$/i;
|
|
|
1004
1015
|
async function documentNodes(path, bytes) {
|
|
1005
1016
|
const out = { nodes: [], names: [], links: [] };
|
|
1006
1017
|
const [{ readDocument }, { screenFile }] = await Promise.all([
|
|
1007
|
-
import("./chunk-
|
|
1008
|
-
import("./chunk-
|
|
1018
|
+
import("./chunk-WJF2CS6M.js"),
|
|
1019
|
+
import("./chunk-RLDGWLQ7.js")
|
|
1009
1020
|
]);
|
|
1010
1021
|
const screen = screenFile(path, bytes);
|
|
1011
1022
|
if (screen.problem)
|
|
@@ -2284,7 +2295,7 @@ function openDb(file) {
|
|
|
2284
2295
|
// packages/index/dist/catalog-index.js
|
|
2285
2296
|
var vectorsFileOf = (file) => join3(dirname2(file), "vectors.sqlite");
|
|
2286
2297
|
var notInstalled = (e, pkg) => e.code === "ERR_MODULE_NOT_FOUND" && String(e.message).includes(pkg);
|
|
2287
|
-
async function embedderOf(root, setting, load = () => import("./chunk-
|
|
2298
|
+
async function embedderOf(root, setting, load = () => import("./chunk-WERM6KPJ.js")) {
|
|
2288
2299
|
if (setting === "off")
|
|
2289
2300
|
return { why: "turned off for this command" };
|
|
2290
2301
|
if (setting && setting !== "auto")
|
|
@@ -2525,6 +2536,10 @@ var CatalogIndex = class {
|
|
|
2525
2536
|
list(kind, o = {}) {
|
|
2526
2537
|
const where = ["kind = ?"];
|
|
2527
2538
|
const params = [kind];
|
|
2539
|
+
if (o.confidence) {
|
|
2540
|
+
where.push("confidence = ?");
|
|
2541
|
+
params.push(o.confidence);
|
|
2542
|
+
}
|
|
2528
2543
|
if (o.status) {
|
|
2529
2544
|
where.push("status = ?");
|
|
2530
2545
|
params.push(o.status);
|
|
@@ -2713,7 +2728,8 @@ function impact(ix, rootId, depth = 4) {
|
|
|
2713
2728
|
};
|
|
2714
2729
|
for (const a of affected) {
|
|
2715
2730
|
const rec = recordOf(a.kind, a.id);
|
|
2716
|
-
|
|
2731
|
+
const paired = Array.isArray(rec.flags) && rec.flags.includes(JOINED_BY_PERSON);
|
|
2732
|
+
if (a.kind === "Interface" && rec.confidence === "inferred" && !paired)
|
|
2717
2733
|
addGap({
|
|
2718
2734
|
record: a.id,
|
|
2719
2735
|
field: "confidence",
|
|
@@ -2867,8 +2883,11 @@ function translate(question, lookup) {
|
|
|
2867
2883
|
terms.push(`refs:${rec.id}`);
|
|
2868
2884
|
if (has(/\b(without|no|missing) (a |an )?pattern\b/))
|
|
2869
2885
|
terms.push("missing:pattern");
|
|
2870
|
-
if (has(/\b(inferred|unconfirmed|one end)\b/))
|
|
2886
|
+
if (has(/\b(inferred|unconfirmed|one end)\b/)) {
|
|
2871
2887
|
terms.push("confidence:inferred");
|
|
2888
|
+
if (has(/\bone end\b/))
|
|
2889
|
+
terms.push("-flags:joined-by-person");
|
|
2890
|
+
}
|
|
2872
2891
|
return {
|
|
2873
2892
|
action: "query",
|
|
2874
2893
|
query: terms.join(" "),
|
|
@@ -2886,8 +2905,9 @@ function translate(question, lookup) {
|
|
|
2886
2905
|
|
|
2887
2906
|
// packages/index/dist/tools.js
|
|
2888
2907
|
import { existsSync, readdirSync } from "node:fs";
|
|
2889
|
-
import {
|
|
2908
|
+
import { readFile as readFile3, realpath, stat as stat2 } from "node:fs/promises";
|
|
2890
2909
|
import { isAbsolute, join as join4, relative as relative2, resolve, sep as sep2 } from "node:path";
|
|
2910
|
+
import { createContext, runInContext, Script } from "node:vm";
|
|
2891
2911
|
var ContextToolError = class extends Error {
|
|
2892
2912
|
constructor(message) {
|
|
2893
2913
|
super(message);
|
|
@@ -2918,6 +2938,12 @@ var CONTEXT_TOOL_BOUNDS = {
|
|
|
2918
2938
|
/** The longest pattern grep takes, and the most of a hit's line it shows. */
|
|
2919
2939
|
grepPattern: 200,
|
|
2920
2940
|
grepLineChars: 200,
|
|
2941
|
+
/**
|
|
2942
|
+
* The most time a regular expression may spend on one file, and on one grep call in all,
|
|
2943
|
+
* so a pattern that backtracks without end (`(a+)+$`) can't hang the MCP server or a scan.
|
|
2944
|
+
*/
|
|
2945
|
+
grepRegexMs: 1e3,
|
|
2946
|
+
grepRegexTotalMs: 5e3,
|
|
2921
2947
|
/** Files one grep or files call walks at most, and bytes grep reads at most. */
|
|
2922
2948
|
walkFiles: 2e4,
|
|
2923
2949
|
grepBytes: 64e6,
|
|
@@ -3286,7 +3312,7 @@ async function excerpt(root, c, around, o) {
|
|
|
3286
3312
|
const size = (await stat2(file)).size;
|
|
3287
3313
|
if (size > CONTEXT_TOOL_BOUNDS.codeFileBytes)
|
|
3288
3314
|
return `${c.what} ${c.verb ?? "cites"} ${c.repo}/${c.path}:${c.line}, a file too big to show (${size} bytes).`;
|
|
3289
|
-
const lines = (await readFile3(file
|
|
3315
|
+
const lines = decodeText(await readFile3(file)).split(/\r?\n/);
|
|
3290
3316
|
if (c.line > lines.length)
|
|
3291
3317
|
return `${c.what} ${c.verb ?? "cites"} ${c.repo}/${c.path}:${c.line}, but the file has ${lines.length} lines now: the cite is stale.`;
|
|
3292
3318
|
const from = Math.max(1, c.line - around);
|
|
@@ -3415,17 +3441,20 @@ async function namesInCode(root, names, o = {}) {
|
|
|
3415
3441
|
const names2 = open.filter((n) => !found.has(n) && DECLARABLE.test(n));
|
|
3416
3442
|
if (!names2.length)
|
|
3417
3443
|
return;
|
|
3418
|
-
const
|
|
3444
|
+
const file = join4(dir, ...p.split("/"));
|
|
3445
|
+
if (!await readableCode(file, p))
|
|
3446
|
+
return;
|
|
3447
|
+
const buf = await readFile3(file).catch(() => void 0);
|
|
3419
3448
|
if (!buf || buf.length > B.codeFileBytes)
|
|
3420
3449
|
return;
|
|
3421
|
-
if (buf
|
|
3450
|
+
if (isBinaryBytes(buf))
|
|
3422
3451
|
return;
|
|
3423
3452
|
bytes += buf.length;
|
|
3424
3453
|
if (bytes > B.grepBytes) {
|
|
3425
3454
|
cut = true;
|
|
3426
3455
|
return false;
|
|
3427
3456
|
}
|
|
3428
|
-
const text = buf
|
|
3457
|
+
const text = decodeText(buf);
|
|
3429
3458
|
if (!names2.some((n) => text.includes(n)))
|
|
3430
3459
|
return;
|
|
3431
3460
|
const decls = await o.outline(p, text).catch(() => void 0);
|
|
@@ -3488,90 +3517,12 @@ function reposOf(root, input, o) {
|
|
|
3488
3517
|
throw new ContextToolError("No repo is cloned in the workspace.");
|
|
3489
3518
|
return out;
|
|
3490
3519
|
}
|
|
3491
|
-
function globRe(glob2, anyDepth = !glob2.replace(/\/$/, "").includes("/")) {
|
|
3492
|
-
let g = glob2.trim().replace(/\\/g, "/").replace(/^\.\//, "");
|
|
3493
|
-
if (g.startsWith("/")) {
|
|
3494
|
-
g = g.slice(1);
|
|
3495
|
-
anyDepth = false;
|
|
3496
|
-
}
|
|
3497
|
-
let re = "";
|
|
3498
|
-
for (let i = 0; i < g.length; i++) {
|
|
3499
|
-
const ch = g[i];
|
|
3500
|
-
if (ch === "*") {
|
|
3501
|
-
if (g[i + 1] === "*") {
|
|
3502
|
-
const slash = g[i + 2] === "/";
|
|
3503
|
-
re += slash ? "(?:.*/)?" : ".*";
|
|
3504
|
-
i += slash ? 2 : 1;
|
|
3505
|
-
} else
|
|
3506
|
-
re += "[^/]*";
|
|
3507
|
-
} else if (ch === "?")
|
|
3508
|
-
re += "[^/]";
|
|
3509
|
-
else if (ch === "[") {
|
|
3510
|
-
const end = g.indexOf("]", i + 2);
|
|
3511
|
-
if (end < 0)
|
|
3512
|
-
re += "\\[";
|
|
3513
|
-
else {
|
|
3514
|
-
const body = g.slice(i + 1, end).replace(/^!/, "^").replace(/\\/g, "\\\\");
|
|
3515
|
-
re += `[${body}]`;
|
|
3516
|
-
i = end;
|
|
3517
|
-
}
|
|
3518
|
-
} else if (ch === "{") {
|
|
3519
|
-
const end = g.indexOf("}", i);
|
|
3520
|
-
if (end < 0)
|
|
3521
|
-
re += "\\{";
|
|
3522
|
-
else {
|
|
3523
|
-
re += `(?:${g.slice(i + 1, end).split(",").map((p) => globRe(p, false).source.slice(1, -1)).join("|")})`;
|
|
3524
|
-
i = end;
|
|
3525
|
-
}
|
|
3526
|
-
} else
|
|
3527
|
-
re += ch.replace(/[.+^$()|\\]/g, "\\$&");
|
|
3528
|
-
}
|
|
3529
|
-
return new RegExp(`^${anyDepth ? "(?:.*/)?" : ""}${re}$`);
|
|
3530
|
-
}
|
|
3531
|
-
function ignoreRules(text, base) {
|
|
3532
|
-
const out = [];
|
|
3533
|
-
for (let line of text.split(/\r?\n/)) {
|
|
3534
|
-
line = line.replace(/(?<!\\)\s+$/, "");
|
|
3535
|
-
if (!line || line.startsWith("#"))
|
|
3536
|
-
continue;
|
|
3537
|
-
let negate = false;
|
|
3538
|
-
if (line.startsWith("!")) {
|
|
3539
|
-
negate = true;
|
|
3540
|
-
line = line.slice(1);
|
|
3541
|
-
} else if (line.startsWith("\\!") || line.startsWith("\\#"))
|
|
3542
|
-
line = line.slice(1);
|
|
3543
|
-
const dirOnly = line.endsWith("/");
|
|
3544
|
-
if (dirOnly)
|
|
3545
|
-
line = line.slice(0, -1);
|
|
3546
|
-
if (!line)
|
|
3547
|
-
continue;
|
|
3548
|
-
const anchored = line.includes("/");
|
|
3549
|
-
try {
|
|
3550
|
-
out.push({ base, re: globRe(line.replace(/^\//, ""), !anchored), negate, dirOnly });
|
|
3551
|
-
} catch {
|
|
3552
|
-
}
|
|
3553
|
-
}
|
|
3554
|
-
return out;
|
|
3555
|
-
}
|
|
3556
|
-
function ignored(rules, path, isDir) {
|
|
3557
|
-
let out = false;
|
|
3558
|
-
for (const r of rules) {
|
|
3559
|
-
if (r.dirOnly && !isDir)
|
|
3560
|
-
continue;
|
|
3561
|
-
if (r.base && !path.startsWith(`${r.base}/`))
|
|
3562
|
-
continue;
|
|
3563
|
-
const rel2 = r.base ? path.slice(r.base.length + 1) : path;
|
|
3564
|
-
if (r.re.test(rel2))
|
|
3565
|
-
out = !r.negate;
|
|
3566
|
-
}
|
|
3567
|
-
return out;
|
|
3568
|
-
}
|
|
3569
3520
|
async function rulesFor(dir, path) {
|
|
3570
3521
|
const parts = path.split("/").slice(0, -1);
|
|
3571
3522
|
const rules = [];
|
|
3572
3523
|
for (let i = 0; i <= parts.length; i++) {
|
|
3573
3524
|
const base = parts.slice(0, i).join("/");
|
|
3574
|
-
const text = await readFile3(join4(dir, ...parts.slice(0, i), ".gitignore")
|
|
3525
|
+
const text = await readFile3(join4(dir, ...parts.slice(0, i), ".gitignore")).then(decodeText, () => void 0);
|
|
3575
3526
|
if (text)
|
|
3576
3527
|
rules.push(...ignoreRules(text, base));
|
|
3577
3528
|
}
|
|
@@ -3581,50 +3532,18 @@ async function isIgnored(dir, path) {
|
|
|
3581
3532
|
const rules = await rulesFor(dir, path);
|
|
3582
3533
|
const parts = path.split("/");
|
|
3583
3534
|
for (let i = 1; i < parts.length; i++)
|
|
3584
|
-
if (
|
|
3535
|
+
if (ignoredBy(rules, parts.slice(0, i).join("/"), true))
|
|
3585
3536
|
return true;
|
|
3586
|
-
return
|
|
3537
|
+
return ignoredBy(rules, path, false);
|
|
3587
3538
|
}
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
return true;
|
|
3597
|
-
}
|
|
3598
|
-
const here = entries.find((e) => e.name === ".gitignore" && e.isFile());
|
|
3599
|
-
const rules = here ? [
|
|
3600
|
-
...inherited,
|
|
3601
|
-
...ignoreRules(await readFile3(join4(dir, ...rel2.split("/"), ".gitignore"), "utf8"), rel2)
|
|
3602
|
-
] : inherited;
|
|
3603
|
-
for (const e of entries.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
|
|
3604
|
-
if (e.isSymbolicLink() || e.name === ".git")
|
|
3605
|
-
continue;
|
|
3606
|
-
const p = rel2 ? `${rel2}/${e.name}` : e.name;
|
|
3607
|
-
if (e.isDirectory()) {
|
|
3608
|
-
if (ignored(rules, p, true))
|
|
3609
|
-
continue;
|
|
3610
|
-
if (!await go(p, rules))
|
|
3611
|
-
return false;
|
|
3612
|
-
} else if (e.isFile()) {
|
|
3613
|
-
if (ignored(rules, p, false))
|
|
3614
|
-
continue;
|
|
3615
|
-
if (files >= max) {
|
|
3616
|
-
cut = true;
|
|
3617
|
-
return false;
|
|
3618
|
-
}
|
|
3619
|
-
files++;
|
|
3620
|
-
if (await visit(p) === false)
|
|
3621
|
-
return false;
|
|
3622
|
-
}
|
|
3623
|
-
}
|
|
3624
|
-
return true;
|
|
3625
|
-
};
|
|
3626
|
-
await go("", []);
|
|
3627
|
-
return { files, cut };
|
|
3539
|
+
function walkClone(dir, max, visit) {
|
|
3540
|
+
return walkRepo(dir, visit, { max });
|
|
3541
|
+
}
|
|
3542
|
+
async function readableCode(file, path) {
|
|
3543
|
+
if (isBinaryPath(path))
|
|
3544
|
+
return false;
|
|
3545
|
+
const size = (await stat2(file).catch(() => void 0))?.size;
|
|
3546
|
+
return size !== void 0 && size <= CONTEXT_TOOL_BOUNDS.codeFileBytes;
|
|
3628
3547
|
}
|
|
3629
3548
|
var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
3630
3549
|
async function runCodeTool(root, name, input, o) {
|
|
@@ -3634,6 +3553,34 @@ async function runCodeTool(root, name, input, o) {
|
|
|
3634
3553
|
return filesTool(root, input, o);
|
|
3635
3554
|
return outlineTool(root, input, o);
|
|
3636
3555
|
}
|
|
3556
|
+
var REGEX_LINES = new Script("(() => { const out = []; for (let i = 0; i < lines.length; i++) if (re.test(lines[i])) out.push(i); return out; })()");
|
|
3557
|
+
function regexMatcher(pattern, flags) {
|
|
3558
|
+
const B = CONTEXT_TOOL_BOUNDS;
|
|
3559
|
+
const context = createContext({ pattern, flags, lines: [] });
|
|
3560
|
+
runInContext("globalThis.re = new RegExp(pattern, flags);", context);
|
|
3561
|
+
let spent = 0;
|
|
3562
|
+
return (lines) => {
|
|
3563
|
+
const left = B.grepRegexTotalMs - spent;
|
|
3564
|
+
if (left < 1)
|
|
3565
|
+
return void 0;
|
|
3566
|
+
const timeout = Math.min(B.grepRegexMs, left);
|
|
3567
|
+
context.lines = lines;
|
|
3568
|
+
const started = performance.now();
|
|
3569
|
+
try {
|
|
3570
|
+
return Array.from(REGEX_LINES.runInContext(context, { timeout }));
|
|
3571
|
+
} catch (e) {
|
|
3572
|
+
if (e.code === "ERR_SCRIPT_EXECUTION_TIMEOUT") {
|
|
3573
|
+
if (timeout < B.grepRegexMs)
|
|
3574
|
+
return void 0;
|
|
3575
|
+
throw new ContextToolError(`The pattern ${pattern} took too long; make it simpler (no quantifier inside a repeated group, such as (a+)+).`);
|
|
3576
|
+
}
|
|
3577
|
+
throw e;
|
|
3578
|
+
} finally {
|
|
3579
|
+
context.lines = [];
|
|
3580
|
+
spent += performance.now() - started;
|
|
3581
|
+
}
|
|
3582
|
+
};
|
|
3583
|
+
}
|
|
3637
3584
|
async function grepTool(root, input, o) {
|
|
3638
3585
|
const B = CONTEXT_TOOL_BOUNDS;
|
|
3639
3586
|
const pattern = typeof input.pattern === "string" && input.pattern ? input.pattern : void 0;
|
|
@@ -3642,22 +3589,26 @@ async function grepTool(root, input, o) {
|
|
|
3642
3589
|
if (pattern.length > B.grepPattern)
|
|
3643
3590
|
throw new ContextToolError(`A grep pattern is at most ${B.grepPattern} characters.`);
|
|
3644
3591
|
const ignoreCase = input.ignoreCase === true;
|
|
3645
|
-
let
|
|
3592
|
+
let matching;
|
|
3646
3593
|
if (input.regex === true) {
|
|
3647
|
-
let re;
|
|
3648
3594
|
try {
|
|
3649
|
-
|
|
3595
|
+
new RegExp(pattern, ignoreCase ? "i" : "");
|
|
3650
3596
|
} catch (e) {
|
|
3651
3597
|
throw new ContextToolError(`${pattern} isn't a regular expression: ${e.message}.`);
|
|
3652
3598
|
}
|
|
3653
|
-
|
|
3599
|
+
matching = regexMatcher(pattern, ignoreCase ? "i" : "");
|
|
3654
3600
|
} else {
|
|
3655
3601
|
const p = ignoreCase ? pattern.toLowerCase() : pattern;
|
|
3656
|
-
test = ignoreCase ? (l) => l.toLowerCase().includes(p) : (l) => l.includes(p);
|
|
3602
|
+
const test = ignoreCase ? (l) => l.toLowerCase().includes(p) : (l) => l.includes(p);
|
|
3603
|
+
matching = function* (lines) {
|
|
3604
|
+
for (let i = 0; i < lines.length; i++)
|
|
3605
|
+
if (test(lines[i]))
|
|
3606
|
+
yield i;
|
|
3607
|
+
};
|
|
3657
3608
|
}
|
|
3658
3609
|
const limit = int(input.limit, 1, B.grepLimit, B.grepDefault);
|
|
3659
3610
|
const paths = str2(input.paths);
|
|
3660
|
-
const only = paths ?
|
|
3611
|
+
const only = paths ? globMatcher(paths) : void 0;
|
|
3661
3612
|
const repos = reposOf(root, input, o);
|
|
3662
3613
|
const hits = [];
|
|
3663
3614
|
let more = false;
|
|
@@ -3668,10 +3619,13 @@ async function grepTool(root, input, o) {
|
|
|
3668
3619
|
const walked = await walkClone(dir, B.walkFiles - read, async (p) => {
|
|
3669
3620
|
if (only && !only.test(p))
|
|
3670
3621
|
return;
|
|
3671
|
-
const
|
|
3622
|
+
const file = join4(dir, ...p.split("/"));
|
|
3623
|
+
if (!await readableCode(file, p))
|
|
3624
|
+
return;
|
|
3625
|
+
const buf = await readFile3(file).catch(() => void 0);
|
|
3672
3626
|
if (!buf || buf.length > B.codeFileBytes)
|
|
3673
3627
|
return;
|
|
3674
|
-
if (buf
|
|
3628
|
+
if (isBinaryBytes(buf))
|
|
3675
3629
|
return;
|
|
3676
3630
|
bytes += buf.length;
|
|
3677
3631
|
if (bytes > B.grepBytes) {
|
|
@@ -3679,11 +3633,14 @@ async function grepTool(root, input, o) {
|
|
|
3679
3633
|
return false;
|
|
3680
3634
|
}
|
|
3681
3635
|
read++;
|
|
3682
|
-
const lines = buf
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3636
|
+
const lines = decodeText(buf).split(/\r?\n/).map((l) => l.slice(0, 2e3));
|
|
3637
|
+
const found = matching(lines);
|
|
3638
|
+
if (!found) {
|
|
3639
|
+
cut = true;
|
|
3640
|
+
return false;
|
|
3641
|
+
}
|
|
3642
|
+
for (const i of found) {
|
|
3643
|
+
const line = lines[i];
|
|
3687
3644
|
if (hits.length >= limit) {
|
|
3688
3645
|
more = true;
|
|
3689
3646
|
return false;
|
|
@@ -3707,7 +3664,7 @@ async function grepTool(root, input, o) {
|
|
|
3707
3664
|
`${plural(hits.length, "hit")} for "${pattern}"${where}${scope} (${plural(read, "file")} read):`,
|
|
3708
3665
|
...hits,
|
|
3709
3666
|
...more ? [`\u2026 more hits past the ${limit} shown; narrow the pattern or the paths.`] : [],
|
|
3710
|
-
...cut ? [`\u2026 the search stopped at its cap of files or
|
|
3667
|
+
...cut ? [`\u2026 the search stopped at its cap of files, bytes or time; name a repo or narrower paths.`] : [],
|
|
3711
3668
|
"Show the lines around a hit with show_code (repo, path, line). A hit is a pointer, not a fact: a fact cites its file and line, and Atticus checks the value there."
|
|
3712
3669
|
].join("\n");
|
|
3713
3670
|
}
|
|
@@ -3717,7 +3674,7 @@ async function filesTool(root, input, o) {
|
|
|
3717
3674
|
if (!glob2)
|
|
3718
3675
|
throw new ContextToolError("files needs a glob, for example src/**/*.java.");
|
|
3719
3676
|
const limit = int(input.limit, 1, B.filesLimit, B.filesDefault);
|
|
3720
|
-
const re =
|
|
3677
|
+
const re = globMatcher(glob2);
|
|
3721
3678
|
const repos = reposOf(root, input, o);
|
|
3722
3679
|
const out = [];
|
|
3723
3680
|
let more = false;
|
|
@@ -3790,7 +3747,7 @@ async function outlineTool(root, input, o) {
|
|
|
3790
3747
|
const size = (await stat2(file)).size;
|
|
3791
3748
|
if (size > CONTEXT_TOOL_BOUNDS.codeFileBytes)
|
|
3792
3749
|
throw new ContextToolError(`${path} is too big to outline (${size} bytes).`);
|
|
3793
|
-
const text = await readFile3(file
|
|
3750
|
+
const text = decodeText(await readFile3(file));
|
|
3794
3751
|
const head = `Outline of ${repo}:${rel2}`;
|
|
3795
3752
|
let how;
|
|
3796
3753
|
let lines;
|