@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.
Files changed (280) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-TJH2EUAZ.js → chunk-23XVSEV5.js} +20 -18
  3. package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
  4. package/dist/{chunk-DCWN3HFV.js → chunk-24XLDU72.js} +4 -3
  5. package/dist/{chunk-Q46QDDMF.js → chunk-2F4CYZKJ.js} +14 -9
  6. package/dist/{chunk-75ASLHBT.js → chunk-2GF7OLF3.js} +17 -15
  7. package/dist/chunk-2IIMFOPM.js +41 -0
  8. package/dist/{chunk-JRVNXLZP.js → chunk-2LGRMVCA.js} +14 -12
  9. package/dist/{chunk-62DLJSLV.js → chunk-2MMCFP5C.js} +10 -8
  10. package/dist/{chunk-UF4UHCIG.js → chunk-2Q56PQPS.js} +6 -4
  11. package/dist/{chunk-5TDRBOAV.js → chunk-2Q5EDGEO.js} +7 -5
  12. package/dist/{chunk-NYOABJNK.js → chunk-2RLKFUUL.js} +26 -24
  13. package/dist/chunk-2SKB4O2E.js +59 -0
  14. package/dist/{chunk-GCS3FZOB.js → chunk-34S2WGOB.js} +13 -4
  15. package/dist/{chunk-7AB6OWTV.js → chunk-3NFFJL5D.js} +31 -25
  16. package/dist/{chunk-GC2VK3JT.js → chunk-3NWDLGG6.js} +28 -25
  17. package/dist/{chunk-FLVZFTLQ.js → chunk-3RM4UK6W.js} +20 -18
  18. package/dist/{chunk-CNU5Q2D5.js → chunk-42SIDKEU.js} +37 -29
  19. package/dist/{chunk-K6JB6XTX.js → chunk-4EURQWQD.js} +20 -15
  20. package/dist/{chunk-OMPENNWY.js → chunk-4U276ICE.js} +1 -1
  21. package/dist/{chunk-JAABT3DA.js → chunk-53T4O55J.js} +4 -3
  22. package/dist/{chunk-YTTNTQOX.js → chunk-57TDNMI3.js} +17 -15
  23. package/dist/chunk-5BD2KYLE.js +57 -0
  24. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  25. package/dist/{chunk-KYZMRSPS.js → chunk-5NMKONLP.js} +5 -3
  26. package/dist/{chunk-5CMPVC3N.js → chunk-5SJZW52K.js} +25 -23
  27. package/dist/{chunk-YAH5IQAL.js → chunk-63YRMR6J.js} +6 -5
  28. package/dist/{chunk-GUYL7RMK.js → chunk-66PPNOON.js} +27 -25
  29. package/dist/chunk-6H3Z5JHH.js +64 -0
  30. package/dist/{chunk-Y6K3CJBU.js → chunk-6MUGR4LS.js} +75 -27
  31. package/dist/{chunk-DDJPM5YX.js → chunk-6OJQOPUN.js} +5 -3
  32. package/dist/{chunk-2V2ZPQQU.js → chunk-6PPOWY5E.js} +9 -7
  33. package/dist/{chunk-YO2PKTXT.js → chunk-6ZGLAACW.js} +5 -3
  34. package/dist/{chunk-LIJJCBQI.js → chunk-6ZJ5A7AF.js} +15 -16
  35. package/dist/{chunk-64AADMTW.js → chunk-745DAZ4L.js} +50 -12
  36. package/dist/{chunk-VYOCPTUB.js → chunk-7ASNL4Q4.js} +17 -15
  37. package/dist/{chunk-XEQCQO66.js → chunk-7BR7IPOH.js} +10 -8
  38. package/dist/{chunk-X2CUXTWU.js → chunk-7DOR27HL.js} +6 -6
  39. package/dist/{chunk-G6IQYM25.js → chunk-7FTTA3HD.js} +8 -6
  40. package/dist/{chunk-FAJDKNSD.js → chunk-7GJS6DNX.js} +8 -3
  41. package/dist/{chunk-4KNOJC6J.js → chunk-7IGKHZ4Z.js} +55 -13
  42. package/dist/{chunk-3WON4G3M.js → chunk-7IOWA5D5.js} +11 -6
  43. package/dist/{chunk-PNQLCRSS.js → chunk-7JITZFJC.js} +7 -5
  44. package/dist/{chunk-2D7PWSOK.js → chunk-7MJSQTL5.js} +22 -20
  45. package/dist/{chunk-AE4P57KK.js → chunk-7UOMVMFG.js} +17 -15
  46. package/dist/{chunk-GK4PYVEC.js → chunk-AFWUDXEM.js} +10 -8
  47. package/dist/chunk-AFZ3QA6W.js +47 -0
  48. package/dist/{chunk-7FUIVIBG.js → chunk-AJQ72EBM.js} +13 -8
  49. package/dist/{chunk-QOOEYDNJ.js → chunk-AJYXNTNZ.js} +6 -6
  50. package/dist/chunk-AVTBS4OW.js +49 -0
  51. package/dist/{chunk-WFU77T3A.js → chunk-BDKC6H5P.js} +5 -5
  52. package/dist/{chunk-3AQ2R5NL.js → chunk-BEVTIBRH.js} +9 -7
  53. package/dist/{chunk-J5AAZ6OJ.js → chunk-BHT7QK4G.js} +5 -4
  54. package/dist/{chunk-UFE36WJH.js → chunk-BIGDQDHD.js} +6 -4
  55. package/dist/{chunk-WNTIOBOG.js → chunk-BO4KX37X.js} +20 -18
  56. package/dist/{chunk-455SYIIE.js → chunk-BPK5P77O.js} +5 -3
  57. package/dist/{chunk-OZJ3JLYI.js → chunk-BQ4SQQC6.js} +10 -9
  58. package/dist/chunk-BQGDB6ZL.js +7342 -0
  59. package/dist/{chunk-EZIN5E5B.js → chunk-BTGPE6CR.js} +11 -9
  60. package/dist/{chunk-265LWMOA.js → chunk-BTY3HZBO.js} +18 -16
  61. package/dist/{chunk-TW3KOSQK.js → chunk-BXYMYEJ4.js} +7 -6
  62. package/dist/{chunk-HK3VOHIE.js → chunk-C3RY6KU6.js} +119 -18
  63. package/dist/chunk-C4R4JLHE.js +40 -0
  64. package/dist/{chunk-Z3QFH7YG.js → chunk-CADWLE2T.js} +5 -4
  65. package/dist/{chunk-J2O4LFVI.js → chunk-CBGGOQWU.js} +6 -4
  66. package/dist/chunk-CMDXGQTS.js +47 -0
  67. package/dist/{chunk-TWQRPM76.js → chunk-CQDGOPGH.js} +23 -16
  68. package/dist/{chunk-5PV7S2ZP.js → chunk-CX4RZ2KS.js} +4 -3
  69. package/dist/{chunk-JYMIB5XY.js → chunk-CXJ6FUKN.js} +164 -44
  70. package/dist/{chunk-D57MFJPP.js → chunk-D73UEXYW.js} +3 -3
  71. package/dist/{chunk-UYLBRRFK.js → chunk-DCZWQLYT.js} +125 -26
  72. package/dist/chunk-DLOBCJL6.js +48 -0
  73. package/dist/{chunk-IFHDV6KQ.js → chunk-DOBQKHIF.js} +23 -23
  74. package/dist/{chunk-QJCJOMW3.js → chunk-E3ISYXO3.js} +19 -21
  75. package/dist/{chunk-VAMHOHUU.js → chunk-E6ZIEVOI.js} +16 -13
  76. package/dist/{chunk-EFCQSMXB.js → chunk-EBL2R3YG.js} +10 -4
  77. package/dist/{chunk-HGHRSF3E.js → chunk-EGQRREQH.js} +25 -17
  78. package/dist/{chunk-3J5I7ZOU.js → chunk-EHA7RMZ3.js} +4 -4
  79. package/dist/{chunk-7CZHUZBL.js → chunk-EIPTLPFC.js} +38 -27
  80. package/dist/{chunk-UZACEG2C.js → chunk-EMRIQUND.js} +17 -15
  81. package/dist/{chunk-RALY3E5U.js → chunk-EPCJQQWD.js} +6 -4
  82. package/dist/{chunk-VUVGX5L2.js → chunk-F3P7N7SF.js} +1 -1
  83. package/dist/{chunk-RA33EYS4.js → chunk-FFLNS6VP.js} +19 -17
  84. package/dist/{chunk-OPQZISG3.js → chunk-FFTRTL6R.js} +5 -4
  85. package/dist/{chunk-DUPZPDCJ.js → chunk-FPJPLKDW.js} +18 -14
  86. package/dist/{chunk-2HH3UCZM.js → chunk-FSMSFDLD.js} +5 -4
  87. package/dist/{chunk-AHW3RY3X.js → chunk-FUJM6RTF.js} +8 -7
  88. package/dist/{chunk-2UCRFXFZ.js → chunk-FZOJFH7Q.js} +13 -11
  89. package/dist/{chunk-BVWWPBKD.js → chunk-G6X77UJZ.js} +20 -18
  90. package/dist/{chunk-BPPU3PW7.js → chunk-GCWRWSU7.js} +10 -4
  91. package/dist/chunk-GIW4ZVDB.js +39 -0
  92. package/dist/{chunk-FY3QIRTL.js → chunk-GUX3PTYM.js} +3 -3
  93. package/dist/{chunk-BA2HUMDN.js → chunk-GZY6RUZ6.js} +2 -2
  94. package/dist/chunk-H4VO6WG3.js +10 -0
  95. package/dist/{chunk-UEVZZZU2.js → chunk-H5HBGNXU.js} +5 -4
  96. package/dist/{chunk-GS76RXQE.js → chunk-H7KM7LZE.js} +15 -12
  97. package/dist/{chunk-I2A3Z5AK.js → chunk-HNM2YQT2.js} +4 -4
  98. package/dist/{chunk-3UTYPHN3.js → chunk-HYU5VLGA.js} +1 -1
  99. package/dist/{chunk-HSZMPH5T.js → chunk-IDKCWSM5.js} +225 -50
  100. package/dist/{chunk-BXZ4PKIT.js → chunk-IFKEI4SA.js} +15 -11
  101. package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
  102. package/dist/{chunk-GNWAOVFQ.js → chunk-IH2XURVQ.js} +5 -5
  103. package/dist/{chunk-YIGBJNH4.js → chunk-INQHESFB.js} +5 -4
  104. package/dist/chunk-IP74LCOQ.js +57 -0
  105. package/dist/chunk-IPHHDDC6.js +45 -0
  106. package/dist/{chunk-5WERBKLE.js → chunk-ISUAAMGS.js} +42 -221
  107. package/dist/{chunk-7FHNFCHK.js → chunk-IUPG3UKI.js} +154 -368
  108. package/dist/{chunk-HWD4JPU7.js → chunk-IVBOQAGB.js} +4 -2
  109. package/dist/{chunk-4SLBCEPD.js → chunk-J2JAKCIW.js} +88 -57
  110. package/dist/{chunk-G5YJBNDZ.js → chunk-J3IOLXWM.js} +8 -6
  111. package/dist/{chunk-FQ6WH6PB.js → chunk-JA5FI3QV.js} +6 -4
  112. package/dist/chunk-JAVI7JSP.js +49 -0
  113. package/dist/{chunk-ZFQMMU5Y.js → chunk-JB5LINEM.js} +6 -2
  114. package/dist/{chunk-LQH4P45K.js → chunk-JENSEMXF.js} +1 -1
  115. package/dist/{chunk-M6D2U3YM.js → chunk-JJF6HALY.js} +4 -3
  116. package/dist/chunk-JLUCKAEL.js +38 -0
  117. package/dist/{chunk-M4H2UG4R.js → chunk-JRBFANFE.js} +19 -16
  118. package/dist/{chunk-YZDZOEV4.js → chunk-KDNTAPLX.js} +3 -3
  119. package/dist/{chunk-IFFRGC3N.js → chunk-KFAVQZSX.js} +14 -12
  120. package/dist/chunk-KJXD4PNL.js +50 -0
  121. package/dist/chunk-KN5BXMWN.js +44 -0
  122. package/dist/{chunk-HXXP2NTE.js → chunk-KQGURXFU.js} +9 -7
  123. package/dist/{chunk-PQH56YF6.js → chunk-KXITGYLF.js} +6 -4
  124. package/dist/{chunk-MMZUN7ZO.js → chunk-L27SV425.js} +22 -20
  125. package/dist/{chunk-XQ3YZ4QW.js → chunk-LDLL7LB3.js} +24 -22
  126. package/dist/{chunk-6DQYZU2W.js → chunk-LFGTYX5U.js} +15 -15
  127. package/dist/{chunk-4D62IZII.js → chunk-LGBMTVNT.js} +7 -5
  128. package/dist/{chunk-YKTE2RU3.js → chunk-LGFL54FP.js} +3 -2
  129. package/dist/{chunk-GDZB57IU.js → chunk-LJXMYKZJ.js} +7 -5
  130. package/dist/{chunk-YJ3TBOTK.js → chunk-LKOR5UET.js} +29 -26
  131. package/dist/{chunk-WIWTJMMR.js → chunk-LNBQOP7D.js} +23 -21
  132. package/dist/{chunk-TGVVUKTG.js → chunk-LO6P2VYG.js} +2 -2
  133. package/dist/{chunk-HE3HRDNZ.js → chunk-LQJPN536.js} +2 -2
  134. package/dist/{chunk-PRW3HXM3.js → chunk-LYBNHMVZ.js} +29 -5
  135. package/dist/{chunk-75ZOZFGH.js → chunk-LZ7NUC62.js} +20 -18
  136. package/dist/chunk-M32BLWDH.js +37 -0
  137. package/dist/{chunk-QKMRFNMA.js → chunk-M3NANSDZ.js} +17 -15
  138. package/dist/chunk-MFHL5URL.js +31 -0
  139. package/dist/{chunk-TYD6I4CZ.js → chunk-MFR5OPBD.js} +6 -6
  140. package/dist/{chunk-LIRVU3HW.js → chunk-MG4ZL5RW.js} +32 -20
  141. package/dist/{chunk-ICHDSWEY.js → chunk-MO6P2JZH.js} +10 -8
  142. package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/{chunk-E57AOFYN.js → chunk-MZCGSXVR.js} +15 -13
  144. package/dist/{chunk-77O633L5.js → chunk-N3XIYPU3.js} +14 -12
  145. package/dist/{chunk-CG6CULP6.js → chunk-NDCF4R6S.js} +7 -5
  146. package/dist/{chunk-JS6WMC3J.js → chunk-NR2UJWOC.js} +10 -8
  147. package/dist/chunk-NXJ5URP6.js +51 -0
  148. package/dist/{chunk-NTAVOWYD.js → chunk-NY2XSR5K.js} +20 -18
  149. package/dist/{chunk-PUEWDYGP.js → chunk-O45HFTFS.js} +3 -2
  150. package/dist/{chunk-URIKUID7.js → chunk-O4GXGGBX.js} +14 -12
  151. package/dist/{chunk-C7CEK3KW.js → chunk-O5PXQR67.js} +7 -5
  152. package/dist/{chunk-E2VXBSIR.js → chunk-O66DM6DJ.js} +6 -4
  153. package/dist/{chunk-P2VBXX7N.js → chunk-O7FDLW7L.js} +11 -9
  154. package/dist/{chunk-COYN3UAN.js → chunk-O7XLYEFA.js} +59 -22
  155. package/dist/{chunk-5QUOPNLN.js → chunk-OHNCWBKF.js} +4 -4
  156. package/dist/{chunk-AZDITBCT.js → chunk-OHVTTOPS.js} +3 -3
  157. package/dist/chunk-OMI6FPPN.js +43 -0
  158. package/dist/chunk-ONUPY3H6.js +53 -0
  159. package/dist/chunk-OTLDSZDV.js +69 -0
  160. package/dist/{chunk-L4CESDPB.js → chunk-OUBGGKDU.js} +1 -1
  161. package/dist/{chunk-4FOAYLI4.js → chunk-OWNCM4ZN.js} +9 -7
  162. package/dist/{chunk-4B6BT75O.js → chunk-P2V7QW4D.js} +81 -24
  163. package/dist/{chunk-QHJJMZLX.js → chunk-P32RUW3B.js} +167 -92
  164. package/dist/{chunk-F6H2RJ3N.js → chunk-PAQ2AS5E.js} +1 -1
  165. package/dist/{chunk-ZLS6PU2O.js → chunk-PBPBMP2B.js} +4 -3
  166. package/dist/{chunk-ZOSD4FXV.js → chunk-PJSJPMJI.js} +3 -3
  167. package/dist/{chunk-XOL3GFW2.js → chunk-PKBHS4AA.js} +68 -31
  168. package/dist/{chunk-ZZFHLRQW.js → chunk-PMUAJGLI.js} +18 -16
  169. package/dist/{chunk-SH27FYPF.js → chunk-PPD7HTDP.js} +20 -18
  170. package/dist/chunk-PSOFBQWB.js +42 -0
  171. package/dist/{chunk-PAINMSID.js → chunk-Q2TECDIT.js} +987 -7619
  172. package/dist/{chunk-LU4MQVAL.js → chunk-Q4K5WB2W.js} +11 -10
  173. package/dist/{chunk-ECLXZWAG.js → chunk-Q6DFNVRJ.js} +14 -12
  174. package/dist/chunk-QA4O2GGC.js +265 -0
  175. package/dist/{chunk-4WXRPQDE.js → chunk-QAXW2N3B.js} +182 -33
  176. package/dist/{chunk-WCEF7H6L.js → chunk-QFWA2DPH.js} +8 -5
  177. package/dist/{chunk-CPK7QSBG.js → chunk-QKUJMING.js} +8 -6
  178. package/dist/{chunk-LEBR5NHW.js → chunk-R44CYFPV.js} +18 -15
  179. package/dist/{chunk-BEPCKDCP.js → chunk-R7NYHMUU.js} +153 -84
  180. package/dist/{chunk-G6X4YL4D.js → chunk-REWWDVQB.js} +5 -4
  181. package/dist/{chunk-LN77DXBM.js → chunk-RGERPOIV.js} +10 -10
  182. package/dist/{chunk-UDXWIPCB.js → chunk-RLDGWLQ7.js} +9 -7
  183. package/dist/chunk-RUGXBPWI.js +384 -0
  184. package/dist/{chunk-FYBF5MB2.js → chunk-RXPJMEOW.js} +13 -11
  185. package/dist/{chunk-K332XW7K.js → chunk-S4PMJU6H.js} +20 -9
  186. package/dist/{chunk-THN26IEF.js → chunk-S7FCV7S5.js} +4 -1
  187. package/dist/{chunk-OV57AHCG.js → chunk-SDKLKB6I.js} +26 -24
  188. package/dist/{chunk-O4IKAIZ2.js → chunk-SFSPGFCV.js} +28 -22
  189. package/dist/{chunk-TQ4TG57V.js → chunk-SFUP7TTO.js} +4 -4
  190. package/dist/{chunk-YBOVNMHC.js → chunk-SLXZOMA6.js} +29 -16
  191. package/dist/{chunk-LWDNKE4X.js → chunk-SQV37XO2.js} +6 -6
  192. package/dist/{chunk-67BP7HXL.js → chunk-SU74NDMQ.js} +19 -17
  193. package/dist/{chunk-JKIGL3XQ.js → chunk-SYV5LHML.js} +36 -33
  194. package/dist/chunk-T4YPZIQN.js +36 -0
  195. package/dist/{chunk-GX74YWR7.js → chunk-T6DQR5TV.js} +16 -14
  196. package/dist/{chunk-LNWEWYCM.js → chunk-THDMSZ3R.js} +345 -253
  197. package/dist/{chunk-NCB6656Z.js → chunk-TNR75OXT.js} +7 -7
  198. package/dist/{chunk-ODMBPDDV.js → chunk-TUULXQRW.js} +124 -2
  199. package/dist/{chunk-MD7KUEJ3.js → chunk-TYQBFTBR.js} +9 -7
  200. package/dist/chunk-U76OWS3Q.js +49 -0
  201. package/dist/{chunk-GSGIZ2OO.js → chunk-UCROWG2D.js} +27 -24
  202. package/dist/{chunk-PTQ3ZALZ.js → chunk-UF4AZOZB.js} +14 -12
  203. package/dist/{chunk-QE527XRY.js → chunk-UF4GLFBX.js} +26 -23
  204. package/dist/{chunk-YWAKDNMH.js → chunk-UGUP3ZM6.js} +70 -19
  205. package/dist/{chunk-3G6S7LAA.js → chunk-UNAGJYET.js} +14 -12
  206. package/dist/{chunk-EDZ45WIR.js → chunk-UOR2DTHH.js} +16 -14
  207. package/dist/{chunk-42EPP7OB.js → chunk-UPOY4YSQ.js} +14 -12
  208. package/dist/{chunk-API5TOUB.js → chunk-UPS2DGFC.js} +1 -1
  209. package/dist/{chunk-D2WSW4GU.js → chunk-UUU4CLJG.js} +4 -2
  210. package/dist/{chunk-ZKYRDV7A.js → chunk-UWMJKX5U.js} +14 -12
  211. package/dist/{chunk-HS4BGB4G.js → chunk-UWOJLHFT.js} +25 -23
  212. package/dist/{chunk-OKUB6RJA.js → chunk-VBTP56CE.js} +8 -6
  213. package/dist/{chunk-3SSTNB4E.js → chunk-VCTWPLAO.js} +34 -14
  214. package/dist/{chunk-YF5DZCPN.js → chunk-VNU26RCO.js} +37 -34
  215. package/dist/{chunk-AOCWFA7T.js → chunk-VTZMAJ3W.js} +8 -8
  216. package/dist/{chunk-ZQLRCA2V.js → chunk-VW62D6QE.js} +10 -8
  217. package/dist/{chunk-WAZEXEJH.js → chunk-VY72R2XZ.js} +45 -2
  218. package/dist/{chunk-WEOMJHPV.js → chunk-VZALIKIF.js} +18 -15
  219. package/dist/{chunk-TSM6T6GQ.js → chunk-W62H2XSO.js} +25 -23
  220. package/dist/{chunk-BC6KKZ67.js → chunk-W7VWI2YH.js} +9 -6
  221. package/dist/{chunk-LO3BLMVG.js → chunk-WERM6KPJ.js} +7 -4
  222. package/dist/{chunk-36RY7ZXM.js → chunk-WF7B67YE.js} +88 -26
  223. package/dist/{chunk-TQTRWENN.js → chunk-WG5U3F5V.js} +14 -12
  224. package/dist/{chunk-NRQ65LTQ.js → chunk-WJF2CS6M.js} +6 -5
  225. package/dist/{chunk-FVMPFCDS.js → chunk-WKUJ3KPV.js} +4 -4
  226. package/dist/{chunk-BA3U7ALS.js → chunk-WMTRHUI5.js} +26 -22
  227. package/dist/chunk-WNKPRSGI.js +36 -0
  228. package/dist/{chunk-GIFMBCTW.js → chunk-WXFLMQSR.js} +10 -8
  229. package/dist/{chunk-JYTIHTIK.js → chunk-X3WY6MN3.js} +4 -4
  230. package/dist/{chunk-S2RY3BOD.js → chunk-X4CXA2IL.js} +31 -21
  231. package/dist/{chunk-26Z7OGQW.js → chunk-X5F3Q5LV.js} +60 -30
  232. package/dist/{chunk-4CLK2RJO.js → chunk-XD75VZIH.js} +6 -4
  233. package/dist/{chunk-KDAHXQIE.js → chunk-XERYFDB5.js} +37 -34
  234. package/dist/{chunk-U3NBK4EU.js → chunk-XI2LCCYQ.js} +8 -8
  235. package/dist/{chunk-MZGRDONP.js → chunk-Y2EQNWKV.js} +55 -38
  236. package/dist/{chunk-A2G72UI4.js → chunk-YHCMZC2J.js} +7 -7
  237. package/dist/{chunk-4TKVU2I2.js → chunk-YYY3AZFE.js} +2 -2
  238. package/dist/{chunk-2HTEMYTB.js → chunk-Z5IA3WDR.js} +17 -15
  239. package/dist/{chunk-FRHD22WM.js → chunk-ZFFYNRIO.js} +25 -23
  240. package/dist/{chunk-6EXDI5GI.js → chunk-ZFL7NY4F.js} +43 -40
  241. package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
  242. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  243. package/dist/{chunk-CNPY4NTZ.js → chunk-ZJFRMSJT.js} +15 -13
  244. package/dist/{chunk-Q26LDIUV.js → chunk-ZJXLNDH4.js} +18 -15
  245. package/dist/{chunk-LPV6T362.js → chunk-ZQ3ON2VQ.js} +8 -6
  246. package/dist/{chunk-ZX7235KR.js → chunk-ZQ7SKESZ.js} +44 -383
  247. package/dist/{chunk-7QPCGTPS.js → chunk-ZQXZ2SES.js} +24 -21
  248. package/dist/{chunk-4CYTJ5TZ.js → chunk-ZX57KSEQ.js} +4 -3
  249. package/dist/{chunk-37WE3LS2.js → chunk-ZZK56BLP.js} +5 -3
  250. package/dist/files.json +533 -509
  251. package/dist/packages/sdk/npm/index.js +448 -67
  252. package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-CIf-0gz5.js} +2 -2
  253. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
  254. package/dist/packages/ui/dist/index.html +2 -1
  255. package/package.json +4 -4
  256. package/dist/chunk-26WBY34Y.js +0 -37
  257. package/dist/chunk-3TD6S4TC.js +0 -49
  258. package/dist/chunk-5G7ILBUG.js +0 -66
  259. package/dist/chunk-6FNAKCET.js +0 -38
  260. package/dist/chunk-AM6FP6JW.js +0 -43
  261. package/dist/chunk-CFH3QH26.js +0 -29
  262. package/dist/chunk-CLD4RVTA.js +0 -45
  263. package/dist/chunk-D5KV5PSK.js +0 -45
  264. package/dist/chunk-D5MASS4I.js +0 -48
  265. package/dist/chunk-DN4A2Q2O.js +0 -57
  266. package/dist/chunk-FGAGWYZB.js +0 -47
  267. package/dist/chunk-JITJP64K.js +0 -34
  268. package/dist/chunk-JRXHON4E.js +0 -41
  269. package/dist/chunk-JU4QNJSR.js +0 -62
  270. package/dist/chunk-N3RUGTGV.js +0 -39
  271. package/dist/chunk-PKJAV25S.js +0 -43
  272. package/dist/chunk-PRTBPXYA.js +0 -50
  273. package/dist/chunk-PRZ7KMWL.js +0 -42
  274. package/dist/chunk-QSIDVFB7.js +0 -45
  275. package/dist/chunk-SB5GRUFM.js +0 -54
  276. package/dist/chunk-T74WQQGS.js +0 -40
  277. package/dist/chunk-X7EMBM5X.js +0 -34
  278. package/dist/chunk-Z6VLC5X4.js +0 -36
  279. package/dist/chunk-ZPDDEVQX.js +0 -47
  280. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
@@ -5,26 +5,26 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  loadCatalog
8
- } from "./chunk-5QUOPNLN.js";
8
+ } from "./chunk-OHNCWBKF.js";
9
9
  import {
10
10
  TARGET_DIR,
11
11
  mergeDelta,
12
12
  readDeltas
13
- } from "./chunk-BEPCKDCP.js";
13
+ } from "./chunk-R7NYHMUU.js";
14
14
  import {
15
15
  changeStore
16
- } from "./chunk-HSZMPH5T.js";
16
+ } from "./chunk-IDKCWSM5.js";
17
17
  import {
18
18
  changeView,
19
19
  toDrawio,
20
20
  toMermaid
21
- } from "./chunk-JYMIB5XY.js";
21
+ } from "./chunk-CXJ6FUKN.js";
22
22
  import {
23
23
  changesDirOf,
24
24
  changesRelOf,
25
25
  readRepoSpec,
26
26
  specRepos
27
- } from "./chunk-PAINMSID.js";
27
+ } from "./chunk-Q2TECDIT.js";
28
28
 
29
29
  // packages/cli/dist/change-map.js
30
30
  import { stat } from "node:fs/promises";
@@ -16,10 +16,11 @@ import {
16
16
  sourcesOf,
17
17
  splitFm,
18
18
  teamFrontmatter
19
- } from "./chunk-OKUB6RJA.js";
20
- import "./chunk-THN26IEF.js";
21
- import "./chunk-PAINMSID.js";
22
- import "./chunk-ODMBPDDV.js";
19
+ } from "./chunk-VBTP56CE.js";
20
+ import "./chunk-S7FCV7S5.js";
21
+ import "./chunk-Q2TECDIT.js";
22
+ import "./chunk-TUULXQRW.js";
23
+ import "./chunk-BQGDB6ZL.js";
23
24
  import "./chunk-TV45EUGM.js";
24
25
  export {
25
26
  REF,
@@ -0,0 +1,57 @@
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
+ completionOf,
8
+ handoffDone,
9
+ openspecCheck,
10
+ openspecSetup,
11
+ workspaceOpen,
12
+ workspacePrune,
13
+ workspaceSync
14
+ } from "./chunk-DOBQKHIF.js";
15
+ import "./chunk-JENSEMXF.js";
16
+ import "./chunk-O7FDLW7L.js";
17
+ import "./chunk-HNM2YQT2.js";
18
+ import "./chunk-PAQ2AS5E.js";
19
+ import "./chunk-RUGXBPWI.js";
20
+ import "./chunk-BTGPE6CR.js";
21
+ import "./chunk-MUWDB4R4.js";
22
+ import "./chunk-ZQ7SKESZ.js";
23
+ import "./chunk-UGUP3ZM6.js";
24
+ import "./chunk-R7NYHMUU.js";
25
+ import "./chunk-IVBOQAGB.js";
26
+ import "./chunk-ISUAAMGS.js";
27
+ import "./chunk-BEVTIBRH.js";
28
+ import "./chunk-UF4AZOZB.js";
29
+ import "./chunk-YHCMZC2J.js";
30
+ import "./chunk-VOGCSYOI.js";
31
+ import "./chunk-S4PMJU6H.js";
32
+ import "./chunk-IDKCWSM5.js";
33
+ import "./chunk-UUU4CLJG.js";
34
+ import "./chunk-7IGKHZ4Z.js";
35
+ import "./chunk-J2JAKCIW.js";
36
+ import "./chunk-745DAZ4L.js";
37
+ import "./chunk-CXJ6FUKN.js";
38
+ import "./chunk-QKUJMING.js";
39
+ import "./chunk-6ZGLAACW.js";
40
+ import "./chunk-CQDGOPGH.js";
41
+ import "./chunk-3NFFJL5D.js";
42
+ import "./chunk-PKBHS4AA.js";
43
+ import "./chunk-P32RUW3B.js";
44
+ import "./chunk-QA4O2GGC.js";
45
+ import "./chunk-Q2TECDIT.js";
46
+ import "./chunk-TUULXQRW.js";
47
+ import "./chunk-BQGDB6ZL.js";
48
+ import "./chunk-TV45EUGM.js";
49
+ export {
50
+ completionOf,
51
+ handoffDone,
52
+ openspecCheck,
53
+ openspecSetup,
54
+ workspaceOpen,
55
+ workspacePrune,
56
+ workspaceSync
57
+ };
@@ -0,0 +1,45 @@
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
+ explainCommand,
8
+ learnCheck,
9
+ learnList,
10
+ learnStart,
11
+ sandboxCreate
12
+ } from "./chunk-VW62D6QE.js";
13
+ import "./chunk-P2V7QW4D.js";
14
+ import "./chunk-Z5IA3WDR.js";
15
+ import "./chunk-R7NYHMUU.js";
16
+ import "./chunk-IVBOQAGB.js";
17
+ import "./chunk-ISUAAMGS.js";
18
+ import "./chunk-BEVTIBRH.js";
19
+ import "./chunk-VOGCSYOI.js";
20
+ import "./chunk-S4PMJU6H.js";
21
+ import "./chunk-IDKCWSM5.js";
22
+ import "./chunk-UUU4CLJG.js";
23
+ import "./chunk-7IGKHZ4Z.js";
24
+ import "./chunk-J2JAKCIW.js";
25
+ import "./chunk-745DAZ4L.js";
26
+ import "./chunk-CXJ6FUKN.js";
27
+ import "./chunk-QKUJMING.js";
28
+ import "./chunk-6ZGLAACW.js";
29
+ import "./chunk-CQDGOPGH.js";
30
+ import "./chunk-3NFFJL5D.js";
31
+ import "./chunk-F3P7N7SF.js";
32
+ import "./chunk-PKBHS4AA.js";
33
+ import "./chunk-P32RUW3B.js";
34
+ import "./chunk-QA4O2GGC.js";
35
+ import "./chunk-Q2TECDIT.js";
36
+ import "./chunk-TUULXQRW.js";
37
+ import "./chunk-BQGDB6ZL.js";
38
+ import "./chunk-TV45EUGM.js";
39
+ export {
40
+ explainCommand,
41
+ learnCheck,
42
+ learnList,
43
+ learnStart,
44
+ sandboxCreate
45
+ };
@@ -6,7 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  dotInt8,
8
8
  textSha
9
- } from "./chunk-QHJJMZLX.js";
9
+ } from "./chunk-P32RUW3B.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
- } from "./chunk-PAINMSID.js";
37
+ toCanonicalYaml,
38
+ walkRepo
39
+ } from "./chunk-Q2TECDIT.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-NRQ65LTQ.js"),
1010
- import("./chunk-UDXWIPCB.js")
1018
+ import("./chunk-WJF2CS6M.js"),
1019
+ import("./chunk-RLDGWLQ7.js")
1011
1020
  ]);
1012
1021
  const screen = screenFile(path, bytes);
1013
1022
  if (screen.problem)
@@ -2286,7 +2295,7 @@ 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
- async function embedderOf(root, setting, load = () => import("./chunk-LO3BLMVG.js")) {
2298
+ async function embedderOf(root, setting, load = () => import("./chunk-WERM6KPJ.js")) {
2290
2299
  if (setting === "off")
2291
2300
  return { why: "turned off for this command" };
2292
2301
  if (setting && setting !== "auto")
@@ -2896,133 +2905,9 @@ function translate(question, lookup) {
2896
2905
 
2897
2906
  // packages/index/dist/tools.js
2898
2907
  import { existsSync, readdirSync } from "node:fs";
2899
- import { readdir as readdir2, readFile as readFile3, realpath, stat as stat2 } from "node:fs/promises";
2908
+ import { readFile as readFile3, realpath, stat as stat2 } from "node:fs/promises";
2900
2909
  import { isAbsolute, join as join4, relative as relative2, resolve, sep as sep2 } from "node:path";
2901
2910
  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
2911
  var ContextToolError = class extends Error {
3027
2912
  constructor(message) {
3028
2913
  super(message);
@@ -3427,7 +3312,7 @@ async function excerpt(root, c, around, o) {
3427
3312
  const size = (await stat2(file)).size;
3428
3313
  if (size > CONTEXT_TOOL_BOUNDS.codeFileBytes)
3429
3314
  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, "utf8")).split(/\r?\n/);
3315
+ const lines = decodeText(await readFile3(file)).split(/\r?\n/);
3431
3316
  if (c.line > lines.length)
3432
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.`;
3433
3318
  const from = Math.max(1, c.line - around);
@@ -3556,17 +3441,20 @@ async function namesInCode(root, names, o = {}) {
3556
3441
  const names2 = open.filter((n) => !found.has(n) && DECLARABLE.test(n));
3557
3442
  if (!names2.length)
3558
3443
  return;
3559
- const buf = await readFile3(join4(dir, ...p.split("/"))).catch(() => void 0);
3444
+ const file = join4(dir, ...p.split("/"));
3445
+ if (!await readableCode(file, p))
3446
+ return;
3447
+ const buf = await readFile3(file).catch(() => void 0);
3560
3448
  if (!buf || buf.length > B.codeFileBytes)
3561
3449
  return;
3562
- if (buf.subarray(0, 8e3).includes(0))
3450
+ if (isBinaryBytes(buf))
3563
3451
  return;
3564
3452
  bytes += buf.length;
3565
3453
  if (bytes > B.grepBytes) {
3566
3454
  cut = true;
3567
3455
  return false;
3568
3456
  }
3569
- const text = buf.toString("utf8");
3457
+ const text = decodeText(buf);
3570
3458
  if (!names2.some((n) => text.includes(n)))
3571
3459
  return;
3572
3460
  const decls = await o.outline(p, text).catch(() => void 0);
@@ -3629,50 +3517,12 @@ function reposOf(root, input, o) {
3629
3517
  throw new ContextToolError("No repo is cloned in the workspace.");
3630
3518
  return out;
3631
3519
  }
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
3520
  async function rulesFor(dir, path) {
3671
3521
  const parts = path.split("/").slice(0, -1);
3672
3522
  const rules = [];
3673
3523
  for (let i = 0; i <= parts.length; i++) {
3674
3524
  const base = parts.slice(0, i).join("/");
3675
- const text = await readFile3(join4(dir, ...parts.slice(0, i), ".gitignore"), "utf8").catch(() => void 0);
3525
+ const text = await readFile3(join4(dir, ...parts.slice(0, i), ".gitignore")).then(decodeText, () => void 0);
3676
3526
  if (text)
3677
3527
  rules.push(...ignoreRules(text, base));
3678
3528
  }
@@ -3682,50 +3532,18 @@ async function isIgnored(dir, path) {
3682
3532
  const rules = await rulesFor(dir, path);
3683
3533
  const parts = path.split("/");
3684
3534
  for (let i = 1; i < parts.length; i++)
3685
- if (ignored(rules, parts.slice(0, i).join("/"), true))
3535
+ if (ignoredBy(rules, parts.slice(0, i).join("/"), true))
3686
3536
  return true;
3687
- return ignored(rules, path, false);
3537
+ return ignoredBy(rules, path, false);
3688
3538
  }
3689
- async function walkClone(dir, max, visit) {
3690
- let files = 0;
3691
- let cut = false;
3692
- const go = async (rel2, inherited) => {
3693
- let entries;
3694
- try {
3695
- entries = await readdir2(rel2 ? join4(dir, ...rel2.split("/")) : dir, { withFileTypes: true });
3696
- } catch {
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 };
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;
3729
3547
  }
3730
3548
  var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
3731
3549
  async function runCodeTool(root, name, input, o) {
@@ -3801,10 +3619,13 @@ async function grepTool(root, input, o) {
3801
3619
  const walked = await walkClone(dir, B.walkFiles - read, async (p) => {
3802
3620
  if (only && !only.test(p))
3803
3621
  return;
3804
- const buf = await readFile3(join4(dir, ...p.split("/"))).catch(() => void 0);
3622
+ const file = join4(dir, ...p.split("/"));
3623
+ if (!await readableCode(file, p))
3624
+ return;
3625
+ const buf = await readFile3(file).catch(() => void 0);
3805
3626
  if (!buf || buf.length > B.codeFileBytes)
3806
3627
  return;
3807
- if (buf.subarray(0, 8e3).includes(0))
3628
+ if (isBinaryBytes(buf))
3808
3629
  return;
3809
3630
  bytes += buf.length;
3810
3631
  if (bytes > B.grepBytes) {
@@ -3812,7 +3633,7 @@ async function grepTool(root, input, o) {
3812
3633
  return false;
3813
3634
  }
3814
3635
  read++;
3815
- const lines = buf.toString("utf8").split(/\r?\n/).map((l) => l.slice(0, 2e3));
3636
+ const lines = decodeText(buf).split(/\r?\n/).map((l) => l.slice(0, 2e3));
3816
3637
  const found = matching(lines);
3817
3638
  if (!found) {
3818
3639
  cut = true;
@@ -3926,7 +3747,7 @@ async function outlineTool(root, input, o) {
3926
3747
  const size = (await stat2(file)).size;
3927
3748
  if (size > CONTEXT_TOOL_BOUNDS.codeFileBytes)
3928
3749
  throw new ContextToolError(`${path} is too big to outline (${size} bytes).`);
3929
- const text = await readFile3(file, "utf8");
3750
+ const text = decodeText(await readFile3(file));
3930
3751
  const head = `Outline of ${repo}:${rel2}`;
3931
3752
  let how;
3932
3753
  let lines;