@zyycn/claudex 1.0.3-fork.63859d8
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/LICENSE.md +5 -0
- package/README.md +468 -0
- package/bin/claudex.js +40 -0
- package/dist/chunk-02bk4pn4.js +696 -0
- package/dist/chunk-06saje2v.js +39 -0
- package/dist/chunk-0731m51q.js +8 -0
- package/dist/chunk-07wsrc0z.js +5017 -0
- package/dist/chunk-0a7cn092.js +500 -0
- package/dist/chunk-0ahhw7bz.js +525 -0
- package/dist/chunk-0att9gx6.js +564 -0
- package/dist/chunk-0edbx65p.js +86 -0
- package/dist/chunk-0fstqfpr.js +438 -0
- package/dist/chunk-0hgm34fp.js +655 -0
- package/dist/chunk-0mrfv28j.js +83 -0
- package/dist/chunk-0n3w76pm.js +724 -0
- package/dist/chunk-0paqc2yw.js +15 -0
- package/dist/chunk-0q2xkmse.js +58 -0
- package/dist/chunk-0r20f5sd.js +277 -0
- package/dist/chunk-0vkfrmqm.js +690 -0
- package/dist/chunk-0x4wp2ks.js +3198 -0
- package/dist/chunk-0xjaqda8.js +1124 -0
- package/dist/chunk-10k1h112.js +654 -0
- package/dist/chunk-1141xmr4.js +8 -0
- package/dist/chunk-151y6sdp.js +242 -0
- package/dist/chunk-16egjxjg.js +606 -0
- package/dist/chunk-1cbn5kxf.js +7 -0
- package/dist/chunk-1g08kq8k.js +127 -0
- package/dist/chunk-1h2famwb.js +49 -0
- package/dist/chunk-1hvgwx0r.js +38 -0
- package/dist/chunk-1xkekb9y.js +19 -0
- package/dist/chunk-238g70xa.js +36 -0
- package/dist/chunk-27xc1csx.js +104 -0
- package/dist/chunk-28et4nhw.js +102 -0
- package/dist/chunk-2a42s11t.js +412 -0
- package/dist/chunk-2e5b3tkf.js +109 -0
- package/dist/chunk-2eykm0j0.js +20 -0
- package/dist/chunk-2gzv8nrw.js +205 -0
- package/dist/chunk-2jebr2b3.js +469 -0
- package/dist/chunk-2k995y2x.js +880 -0
- package/dist/chunk-2m3nn9wn.js +212 -0
- package/dist/chunk-2nayx6q1.js +63 -0
- package/dist/chunk-2p1yg770.js +113 -0
- package/dist/chunk-2ssrm349.js +173558 -0
- package/dist/chunk-2t3vw4tx.js +22820 -0
- package/dist/chunk-2xng67gx.js +108 -0
- package/dist/chunk-30rst83v.js +168 -0
- package/dist/chunk-38700exh.js +42 -0
- package/dist/chunk-3b00105q.js +17 -0
- package/dist/chunk-3c25bcsw.js +17 -0
- package/dist/chunk-3dzknnm6.js +38 -0
- package/dist/chunk-3h8a89gy.js +46 -0
- package/dist/chunk-3hy8ccbv.js +275 -0
- package/dist/chunk-3qfhn68g.js +87 -0
- package/dist/chunk-3tq8k5r7.js +87 -0
- package/dist/chunk-3vs3nm7w.js +31 -0
- package/dist/chunk-3w6s9m5w.js +16 -0
- package/dist/chunk-3zvw1hg8.js +71 -0
- package/dist/chunk-41bv0qr9.js +713 -0
- package/dist/chunk-41qb7ggn.js +1013 -0
- package/dist/chunk-41x5pfyr.js +463 -0
- package/dist/chunk-44fpr6jq.js +434 -0
- package/dist/chunk-46j4s200.js +93 -0
- package/dist/chunk-495d85x1.js +8066 -0
- package/dist/chunk-4aahjqsx.js +96 -0
- package/dist/chunk-4bt4tycr.js +1391 -0
- package/dist/chunk-4g3v8y12.js +23 -0
- package/dist/chunk-4hv1jgmd.js +129 -0
- package/dist/chunk-4jm600zv.js +13 -0
- package/dist/chunk-4qz9vbs1.js +349 -0
- package/dist/chunk-4rxzk7tv.js +258 -0
- package/dist/chunk-4tcernwd.js +267 -0
- package/dist/chunk-4v84xyct.js +1549 -0
- package/dist/chunk-4vrcx9cz.js +88 -0
- package/dist/chunk-4xhhtzah.js +602 -0
- package/dist/chunk-4zfkzkt6.js +37 -0
- package/dist/chunk-52ps3ztw.js +89 -0
- package/dist/chunk-54056j9z.js +176 -0
- package/dist/chunk-55wgxwa9.js +13877 -0
- package/dist/chunk-56jgazae.js +28 -0
- package/dist/chunk-58vfra9b.js +8966 -0
- package/dist/chunk-5k919r4p.js +374 -0
- package/dist/chunk-5x0qecy1.js +1322 -0
- package/dist/chunk-5ys5mwe2.js +83 -0
- package/dist/chunk-5zmq9q3e.js +100 -0
- package/dist/chunk-65s8h28p.js +123 -0
- package/dist/chunk-674v1ftd.js +3443 -0
- package/dist/chunk-67zb3v67.js +117 -0
- package/dist/chunk-68hy9wpy.js +74 -0
- package/dist/chunk-68k646wc.js +432 -0
- package/dist/chunk-69ky64mf.js +229 -0
- package/dist/chunk-6bd8brc4.js +48 -0
- package/dist/chunk-6dj5t602.js +341 -0
- package/dist/chunk-6edknq5c.js +279 -0
- package/dist/chunk-6gr3c3w9.js +378 -0
- package/dist/chunk-6n2qgm9v.js +8 -0
- package/dist/chunk-6qsdqh0f.js +47 -0
- package/dist/chunk-6tphsenx.js +143 -0
- package/dist/chunk-6tq2v3rk.js +186 -0
- package/dist/chunk-73kdatnx.js +89 -0
- package/dist/chunk-73rpbt04.js +1947 -0
- package/dist/chunk-760252na.js +101 -0
- package/dist/chunk-7739pg2c.js +4261 -0
- package/dist/chunk-7a2jf60n.js +281 -0
- package/dist/chunk-7aw745vx.js +40175 -0
- package/dist/chunk-7dynrzwa.js +1864 -0
- package/dist/chunk-7e6ahfxz.js +61 -0
- package/dist/chunk-7m2nd8da.js +110 -0
- package/dist/chunk-7sxd56xv.js +10476 -0
- package/dist/chunk-7wm5s02e.js +216 -0
- package/dist/chunk-7x9kyp5a.js +780 -0
- package/dist/chunk-7yksfkaa.js +3036 -0
- package/dist/chunk-7zaxrfnt.js +42 -0
- package/dist/chunk-82pj9548.js +765 -0
- package/dist/chunk-83hfzbx3.js +10 -0
- package/dist/chunk-8ax52psx.js +345 -0
- package/dist/chunk-8bedvdm1.js +32 -0
- package/dist/chunk-8gas56p1.js +297 -0
- package/dist/chunk-8gf60417.js +198 -0
- package/dist/chunk-8hq5kk3y.js +44 -0
- package/dist/chunk-8jdz7wfb.js +90 -0
- package/dist/chunk-8qm7hxn7.js +27 -0
- package/dist/chunk-8tnsngw2.js +31 -0
- package/dist/chunk-8w0r66wr.js +584 -0
- package/dist/chunk-8y12jxg8.js +10 -0
- package/dist/chunk-8ymf4e6z.js +48 -0
- package/dist/chunk-8zqswz9e.js +470 -0
- package/dist/chunk-90wp6wez.js +10510 -0
- package/dist/chunk-92yxvq6c.js +5393 -0
- package/dist/chunk-9519vn44.js +756 -0
- package/dist/chunk-95ndwcrd.js +442 -0
- package/dist/chunk-9acbbgmc.js +1556 -0
- package/dist/chunk-9bh231gs.js +333 -0
- package/dist/chunk-9gbamk79.js +93 -0
- package/dist/chunk-9jetfeq0.js +114 -0
- package/dist/chunk-9k2drwej.js +106 -0
- package/dist/chunk-9nta4x35.js +726 -0
- package/dist/chunk-9w599e3a.js +305 -0
- package/dist/chunk-a0p2qhvp.js +84 -0
- package/dist/chunk-a37n4kr4.js +536 -0
- package/dist/chunk-a62sss8p.js +496 -0
- package/dist/chunk-a63ksyvs.js +602 -0
- package/dist/chunk-a8ejc632.js +3094 -0
- package/dist/chunk-a9vdeb6y.js +258 -0
- package/dist/chunk-a9zh40sj.js +48 -0
- package/dist/chunk-aczfb3vf.js +208 -0
- package/dist/chunk-ah6a2fb0.js +5946 -0
- package/dist/chunk-ajs4f0bc.js +4521 -0
- package/dist/chunk-amskwnzz.js +42 -0
- package/dist/chunk-aw44hsj7.js +691 -0
- package/dist/chunk-awb5xkq3.js +91 -0
- package/dist/chunk-b25ezktx.js +348 -0
- package/dist/chunk-b2px10ft.js +103 -0
- package/dist/chunk-b4jy0s3f.js +40767 -0
- package/dist/chunk-b4wg70y1.js +54 -0
- package/dist/chunk-b5fkptr7.js +120 -0
- package/dist/chunk-b75fzr8e.js +969 -0
- package/dist/chunk-b8x1gk3y.js +1299 -0
- package/dist/chunk-bftwqs59.js +224 -0
- package/dist/chunk-bjqw6798.js +328 -0
- package/dist/chunk-bm1qb16p.js +17 -0
- package/dist/chunk-bqfnp99q.js +477 -0
- package/dist/chunk-br557xrm.js +112 -0
- package/dist/chunk-bvp4dgm4.js +182 -0
- package/dist/chunk-bwv35h1r.js +750 -0
- package/dist/chunk-bx3fzqtt.js +192 -0
- package/dist/chunk-c1077c9c.js +820 -0
- package/dist/chunk-c5m3cg5c.js +1919 -0
- package/dist/chunk-cdz5yb0r.js +57 -0
- package/dist/chunk-cfv996bs.js +22 -0
- package/dist/chunk-cgeewb6e.js +63 -0
- package/dist/chunk-cgfdkzhb.js +12 -0
- package/dist/chunk-cgqxb74c.js +99 -0
- package/dist/chunk-chbeyhvx.js +115 -0
- package/dist/chunk-cjrhgkc5.js +532 -0
- package/dist/chunk-cm3fv459.js +86 -0
- package/dist/chunk-cs3fj3pz.js +105 -0
- package/dist/chunk-cthzgjxe.js +128 -0
- package/dist/chunk-cyp8x61z.js +246 -0
- package/dist/chunk-d1gtryh9.js +40 -0
- package/dist/chunk-d3kffc86.js +24 -0
- package/dist/chunk-d6rxfmhy.js +4389 -0
- package/dist/chunk-d9kz373t.js +122 -0
- package/dist/chunk-dbf076r1.js +520 -0
- package/dist/chunk-ddqs9xnj.js +173 -0
- package/dist/chunk-dgqrcy74.js +48 -0
- package/dist/chunk-dhd6zm3z.js +1095 -0
- package/dist/chunk-djfvtc4j.js +849 -0
- package/dist/chunk-dk04svw2.js +130 -0
- package/dist/chunk-dnh7jtpb.js +37 -0
- package/dist/chunk-dstxhxsx.js +121 -0
- package/dist/chunk-dv1wfr85.js +6373 -0
- package/dist/chunk-e5pntxye.js +37 -0
- package/dist/chunk-e65m636c.js +26840 -0
- package/dist/chunk-e8xahfkt.js +2057 -0
- package/dist/chunk-eag9xeqh.js +70 -0
- package/dist/chunk-eebcvtbb.js +1646 -0
- package/dist/chunk-eegrp4q3.js +644 -0
- package/dist/chunk-ehtwnxpg.js +1591 -0
- package/dist/chunk-em7mxr1y.js +641 -0
- package/dist/chunk-ene0rqec.js +2838 -0
- package/dist/chunk-epy41asf.js +175 -0
- package/dist/chunk-eqp1rfft.js +17 -0
- package/dist/chunk-evdp9tp6.js +1493 -0
- package/dist/chunk-ewadzrm8.js +103 -0
- package/dist/chunk-f1dcrf3f.js +79 -0
- package/dist/chunk-f2m3jj5b.js +672 -0
- package/dist/chunk-f59vm2wr.js +157 -0
- package/dist/chunk-f5ma3nh5.js +3436 -0
- package/dist/chunk-fbpftpf0.js +69 -0
- package/dist/chunk-fbv4apne.js +51 -0
- package/dist/chunk-fe28tydf.js +87 -0
- package/dist/chunk-fhf695ja.js +229 -0
- package/dist/chunk-fht1rp3n.js +266 -0
- package/dist/chunk-fmkhaba7.js +1585 -0
- package/dist/chunk-fx9bv58w.js +165 -0
- package/dist/chunk-fxh5vfg8.js +457 -0
- package/dist/chunk-fyc5fepv.js +10 -0
- package/dist/chunk-g0j0t6qk.js +26 -0
- package/dist/chunk-g338npwr.js +1061 -0
- package/dist/chunk-g3t0act8.js +8 -0
- package/dist/chunk-gbd3vt5e.js +306 -0
- package/dist/chunk-gnqrg21t.js +109 -0
- package/dist/chunk-gnves4xd.js +169 -0
- package/dist/chunk-gr655xh9.js +152 -0
- package/dist/chunk-gv0tqhg0.js +118 -0
- package/dist/chunk-gxf6dm7a.js +281 -0
- package/dist/chunk-gyj242zr.js +20 -0
- package/dist/chunk-gzzfhtdv.js +7189 -0
- package/dist/chunk-h0qngp9w.js +157 -0
- package/dist/chunk-h0rbjg6x.js +55 -0
- package/dist/chunk-h5f90qy3.js +220 -0
- package/dist/chunk-h7m0dkj5.js +328 -0
- package/dist/chunk-h9ss6jmy.js +160 -0
- package/dist/chunk-hakdhagh.js +16606 -0
- package/dist/chunk-harq79ch.js +490 -0
- package/dist/chunk-hdy46n07.js +87 -0
- package/dist/chunk-heg1nmw6.js +16 -0
- package/dist/chunk-hh7cmy4k.js +20 -0
- package/dist/chunk-hk9xz7gk.js +118 -0
- package/dist/chunk-hmd50qnc.js +1316 -0
- package/dist/chunk-hmxx5m0j.js +2642 -0
- package/dist/chunk-hq2bbp9m.js +105 -0
- package/dist/chunk-hqmz36b3.js +552 -0
- package/dist/chunk-hqwn51wm.js +173 -0
- package/dist/chunk-hv343bav.js +674 -0
- package/dist/chunk-hzhe8ygc.js +547 -0
- package/dist/chunk-j2k4p94p.js +55 -0
- package/dist/chunk-j3a4p81y.js +184 -0
- package/dist/chunk-j5hc27hv.js +444 -0
- package/dist/chunk-j64ga6ta.js +8035 -0
- package/dist/chunk-ja5ndhsq.js +98 -0
- package/dist/chunk-jb82y7f5.js +26 -0
- package/dist/chunk-jce5r25x.js +18 -0
- package/dist/chunk-jd32zbps.js +15 -0
- package/dist/chunk-jdgeec04.js +4249 -0
- package/dist/chunk-jdvy710r.js +32 -0
- package/dist/chunk-jja22ke5.js +81 -0
- package/dist/chunk-jm26x16f.js +153 -0
- package/dist/chunk-jmawd9e7.js +400 -0
- package/dist/chunk-jnhkref0.js +30 -0
- package/dist/chunk-jwft70vy.js +476 -0
- package/dist/chunk-jx817w05.js +11 -0
- package/dist/chunk-jzmz18nn.js +65 -0
- package/dist/chunk-k0j7zgsv.js +117 -0
- package/dist/chunk-k0p9w03v.js +4957 -0
- package/dist/chunk-k2s22ypg.js +202 -0
- package/dist/chunk-k5876c7b.js +745 -0
- package/dist/chunk-k7gjm8sr.js +810 -0
- package/dist/chunk-kb20jst8.js +87 -0
- package/dist/chunk-kbzszx69.js +1152 -0
- package/dist/chunk-keh6rhb9.js +98 -0
- package/dist/chunk-kh4zk8k3.js +16386 -0
- package/dist/chunk-kn9tvhfx.js +6106 -0
- package/dist/chunk-kq8vbzm5.js +71 -0
- package/dist/chunk-ksccst8q.js +89 -0
- package/dist/chunk-kwekc97v.js +18 -0
- package/dist/chunk-kwfkfd6t.js +103 -0
- package/dist/chunk-kxc04m1t.js +88 -0
- package/dist/chunk-kxp86zsr.js +255 -0
- package/dist/chunk-kynkgy2b.js +195 -0
- package/dist/chunk-kz6f106c.js +6956 -0
- package/dist/chunk-kzvcbm2a.js +225 -0
- package/dist/chunk-m86aa1c1.js +160 -0
- package/dist/chunk-mahta9jh.js +56 -0
- package/dist/chunk-md3se9pg.js +648 -0
- package/dist/chunk-mn5dbpj6.js +120 -0
- package/dist/chunk-mqxwvjev.js +121 -0
- package/dist/chunk-mt25echc.js +6157 -0
- package/dist/chunk-n04af68e.js +3394 -0
- package/dist/chunk-n0qaeaa5.js +256 -0
- package/dist/chunk-n20vgzea.js +66 -0
- package/dist/chunk-n21beyta.js +69 -0
- package/dist/chunk-n7ttdtk0.js +641 -0
- package/dist/chunk-n9n0mrjy.js +802 -0
- package/dist/chunk-nbfaqb9f.js +54 -0
- package/dist/chunk-ncag7yd4.js +194 -0
- package/dist/chunk-nj17bhkh.js +125 -0
- package/dist/chunk-nka1g8f4.js +773 -0
- package/dist/chunk-nq0fxyxh.js +752 -0
- package/dist/chunk-nt837qt9.js +21 -0
- package/dist/chunk-nwsmn6zm.js +15 -0
- package/dist/chunk-nx4e896a.js +208 -0
- package/dist/chunk-p0b6mrmr.js +418 -0
- package/dist/chunk-p2816w9z.js +1486 -0
- package/dist/chunk-p2d5nh3g.js +342 -0
- package/dist/chunk-p331ghzg.js +391 -0
- package/dist/chunk-pa86j0bt.js +216 -0
- package/dist/chunk-pb4906ef.js +95 -0
- package/dist/chunk-pdja94je.js +285 -0
- package/dist/chunk-pfz2eecq.js +59 -0
- package/dist/chunk-pgmdnz6t.js +32 -0
- package/dist/chunk-pmsp9ed2.js +34 -0
- package/dist/chunk-pn0gryjm.js +714 -0
- package/dist/chunk-png9e5ck.js +287 -0
- package/dist/chunk-ps49ymvj.js +43 -0
- package/dist/chunk-pwwa7s62.js +11 -0
- package/dist/chunk-py5y9jh1.js +38 -0
- package/dist/chunk-q25bjaev.js +15 -0
- package/dist/chunk-q3y7hz85.js +263 -0
- package/dist/chunk-q5981tda.js +184 -0
- package/dist/chunk-qbt1tq74.js +145 -0
- package/dist/chunk-qhfhd3vp.js +155 -0
- package/dist/chunk-qm3nkwce.js +71 -0
- package/dist/chunk-qnfx3qtx.js +617 -0
- package/dist/chunk-qp2qdcda.js +100 -0
- package/dist/chunk-qqfa0dqg.js +2343 -0
- package/dist/chunk-qsd1r4pm.js +9300 -0
- package/dist/chunk-qseetcxd.js +908 -0
- package/dist/chunk-qwg20wpg.js +99 -0
- package/dist/chunk-qxem93da.js +253 -0
- package/dist/chunk-qz2x630m.js +49145 -0
- package/dist/chunk-r05x881j.js +458 -0
- package/dist/chunk-r1ww9cw4.js +642 -0
- package/dist/chunk-r6b58y3x.js +17 -0
- package/dist/chunk-r77has4c.js +85 -0
- package/dist/chunk-r7wg5rc4.js +788 -0
- package/dist/chunk-r855fz3z.js +41 -0
- package/dist/chunk-raqgs410.js +116 -0
- package/dist/chunk-rc0ha2yr.js +1579 -0
- package/dist/chunk-renve22b.js +524 -0
- package/dist/chunk-rm56f6q8.js +41 -0
- package/dist/chunk-rmcsv3z0.js +128 -0
- package/dist/chunk-rn0v1hk8.js +34 -0
- package/dist/chunk-rvdbsq4q.js +247 -0
- package/dist/chunk-rz4jtfde.js +339 -0
- package/dist/chunk-rzmx8nhh.js +140 -0
- package/dist/chunk-s3pzvdss.js +50 -0
- package/dist/chunk-s59j7gwp.js +316 -0
- package/dist/chunk-s5mcnqdj.js +266 -0
- package/dist/chunk-s88vzmek.js +542 -0
- package/dist/chunk-s9jbg9pc.js +142 -0
- package/dist/chunk-sbbj6ta3.js +1711 -0
- package/dist/chunk-sd36yzx8.js +954 -0
- package/dist/chunk-sdj9b9wh.js +782 -0
- package/dist/chunk-seccg7jz.js +247 -0
- package/dist/chunk-sf1qb20v.js +338 -0
- package/dist/chunk-sf6wtnqs.js +690 -0
- package/dist/chunk-shb6nvk6.js +27 -0
- package/dist/chunk-smfnjta6.js +825 -0
- package/dist/chunk-szj5wvdy.js +28 -0
- package/dist/chunk-t0rgmccj.js +39 -0
- package/dist/chunk-t3360k46.js +75 -0
- package/dist/chunk-t3d6vdah.js +97 -0
- package/dist/chunk-t6nhrqn5.js +373 -0
- package/dist/chunk-texzbcna.js +716 -0
- package/dist/chunk-tjw7n4me.js +21933 -0
- package/dist/chunk-ts2p6bv1.js +224 -0
- package/dist/chunk-tsfs1vf8.js +105 -0
- package/dist/chunk-ttk5dzz8.js +25 -0
- package/dist/chunk-twhe6v3t.js +61 -0
- package/dist/chunk-twjvkefv.js +44 -0
- package/dist/chunk-v16d7g1x.js +73 -0
- package/dist/chunk-v1kzp02e.js +785 -0
- package/dist/chunk-v1qr0n3a.js +101 -0
- package/dist/chunk-v4j0vaec.js +220 -0
- package/dist/chunk-v5zhbvpq.js +83 -0
- package/dist/chunk-v78fj8by.js +145 -0
- package/dist/chunk-v90xv5n9.js +157 -0
- package/dist/chunk-v9smspw2.js +4301 -0
- package/dist/chunk-veby851k.js +92 -0
- package/dist/chunk-vest0y6x.js +3830 -0
- package/dist/chunk-vf5sd1nq.js +12 -0
- package/dist/chunk-vhjx5fag.js +56 -0
- package/dist/chunk-vpgbh5bf.js +165 -0
- package/dist/chunk-vqk1n5qr.js +63 -0
- package/dist/chunk-vqvd3qz0.js +151 -0
- package/dist/chunk-vta85bqs.js +271 -0
- package/dist/chunk-vxk8d3bf.js +250 -0
- package/dist/chunk-vyjeh50y.js +2149 -0
- package/dist/chunk-vyxz19k4.js +40 -0
- package/dist/chunk-vz6s9tzt.js +43 -0
- package/dist/chunk-w3dz905t.js +22 -0
- package/dist/chunk-w5qmx5qj.js +299 -0
- package/dist/chunk-w60scsje.js +62 -0
- package/dist/chunk-w65b80a1.js +104 -0
- package/dist/chunk-w83va2p1.js +90 -0
- package/dist/chunk-w8yw30sd.js +15 -0
- package/dist/chunk-wfz0qffj.js +3939 -0
- package/dist/chunk-wgcssf6v.js +722 -0
- package/dist/chunk-wmnqnhdt.js +92 -0
- package/dist/chunk-wn2268qd.js +335 -0
- package/dist/chunk-wvazv5bb.js +61 -0
- package/dist/chunk-wzjhrjtm.js +88 -0
- package/dist/chunk-wzpdet3m.js +843 -0
- package/dist/chunk-x5psxyg8.js +20 -0
- package/dist/chunk-x8b7vft8.js +132 -0
- package/dist/chunk-xb93c8k2.js +54 -0
- package/dist/chunk-xh1kgbeq.js +99 -0
- package/dist/chunk-xh72pz56.js +114 -0
- package/dist/chunk-xj6921ek.js +88 -0
- package/dist/chunk-xjrg0ghm.js +153 -0
- package/dist/chunk-xq2kcm6c.js +162 -0
- package/dist/chunk-xq4cfvpn.js +213 -0
- package/dist/chunk-xsq9ae7x.js +90 -0
- package/dist/chunk-xszk7n10.js +14358 -0
- package/dist/chunk-y1784krc.js +19 -0
- package/dist/chunk-y1twysg3.js +131 -0
- package/dist/chunk-y5yzya8k.js +385 -0
- package/dist/chunk-ycbkq0vg.js +60 -0
- package/dist/chunk-ycdypzgh.js +91 -0
- package/dist/chunk-ydp9e689.js +98 -0
- package/dist/chunk-ywxd4qw4.js +22 -0
- package/dist/chunk-yysj6sxt.js +336 -0
- package/dist/chunk-z2dp53wn.js +17 -0
- package/dist/chunk-z2tsjhf3.js +2334 -0
- package/dist/chunk-z3xgnyvt.js +467 -0
- package/dist/chunk-z4gz6dxr.js +438 -0
- package/dist/chunk-z83r4ard.js +28 -0
- package/dist/chunk-z8f41zjt.js +69 -0
- package/dist/chunk-zc4bvzph.js +40 -0
- package/dist/chunk-zc6g0qqe.js +29 -0
- package/dist/chunk-zc9ds5qb.js +274 -0
- package/dist/chunk-zej1a9jp.js +998 -0
- package/dist/chunk-zf7nyn7m.js +95 -0
- package/dist/chunk-zk2wsm7d.js +15 -0
- package/dist/chunk-zkpjxvnd.js +154 -0
- package/dist/chunk-zpwh305r.js +372 -0
- package/dist/chunk-zpywc76a.js +862 -0
- package/dist/chunk-zsfxha74.js +17655 -0
- package/dist/cli.js +89 -0
- package/package.json +36 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
getDesktopPath,
|
|
4
|
+
init_file
|
|
5
|
+
} from "./chunk-kh4zk8k3.js";
|
|
6
|
+
import"./chunk-eebcvtbb.js";
|
|
7
|
+
import"./chunk-xq4cfvpn.js";
|
|
8
|
+
import"./chunk-4qz9vbs1.js";
|
|
9
|
+
import"./chunk-9nta4x35.js";
|
|
10
|
+
import"./chunk-b75fzr8e.js";
|
|
11
|
+
import"./chunk-g0j0t6qk.js";
|
|
12
|
+
import"./chunk-3c25bcsw.js";
|
|
13
|
+
import"./chunk-nj17bhkh.js";
|
|
14
|
+
import"./chunk-55wgxwa9.js";
|
|
15
|
+
import"./chunk-wn2268qd.js";
|
|
16
|
+
import"./chunk-vqvd3qz0.js";
|
|
17
|
+
import"./chunk-f5ma3nh5.js";
|
|
18
|
+
import"./chunk-p2816w9z.js";
|
|
19
|
+
import"./chunk-v1kzp02e.js";
|
|
20
|
+
import"./chunk-wgcssf6v.js";
|
|
21
|
+
import"./chunk-cdz5yb0r.js";
|
|
22
|
+
import {
|
|
23
|
+
init_analytics,
|
|
24
|
+
logEvent
|
|
25
|
+
} from "./chunk-h0rbjg6x.js";
|
|
26
|
+
import"./chunk-b8x1gk3y.js";
|
|
27
|
+
import"./chunk-9k2drwej.js";
|
|
28
|
+
import"./chunk-qnfx3qtx.js";
|
|
29
|
+
import"./chunk-fbpftpf0.js";
|
|
30
|
+
import"./chunk-3vs3nm7w.js";
|
|
31
|
+
import"./chunk-gzzfhtdv.js";
|
|
32
|
+
import {
|
|
33
|
+
init_log,
|
|
34
|
+
logError
|
|
35
|
+
} from "./chunk-yysj6sxt.js";
|
|
36
|
+
import"./chunk-8tnsngw2.js";
|
|
37
|
+
import"./chunk-8bedvdm1.js";
|
|
38
|
+
import"./chunk-7wm5s02e.js";
|
|
39
|
+
import {
|
|
40
|
+
getFsImplementation,
|
|
41
|
+
init_debug,
|
|
42
|
+
init_errors,
|
|
43
|
+
init_fsOperations,
|
|
44
|
+
init_slowOperations,
|
|
45
|
+
jsonStringify,
|
|
46
|
+
logForDebugging,
|
|
47
|
+
toError
|
|
48
|
+
} from "./chunk-sbbj6ta3.js";
|
|
49
|
+
import"./chunk-fbv4apne.js";
|
|
50
|
+
import"./chunk-raqgs410.js";
|
|
51
|
+
import {
|
|
52
|
+
getSessionId,
|
|
53
|
+
init_state
|
|
54
|
+
} from "./chunk-qqfa0dqg.js";
|
|
55
|
+
import"./chunk-hqmz36b3.js";
|
|
56
|
+
import"./chunk-4g3v8y12.js";
|
|
57
|
+
import"./chunk-7739pg2c.js";
|
|
58
|
+
import"./chunk-xszk7n10.js";
|
|
59
|
+
import"./chunk-sdj9b9wh.js";
|
|
60
|
+
import {
|
|
61
|
+
__esm
|
|
62
|
+
} from "./chunk-qp2qdcda.js";
|
|
63
|
+
|
|
64
|
+
// src/utils/heapDumpService.ts
|
|
65
|
+
import { createWriteStream, writeFileSync } from "fs";
|
|
66
|
+
import { readdir, readFile, writeFile } from "fs/promises";
|
|
67
|
+
import { join } from "path";
|
|
68
|
+
import { pipeline } from "stream/promises";
|
|
69
|
+
import {
|
|
70
|
+
getHeapSnapshot,
|
|
71
|
+
getHeapSpaceStatistics,
|
|
72
|
+
getHeapStatistics
|
|
73
|
+
} from "v8";
|
|
74
|
+
async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
75
|
+
const usage = process.memoryUsage();
|
|
76
|
+
const heapStats = getHeapStatistics();
|
|
77
|
+
const resourceUsage = process.resourceUsage();
|
|
78
|
+
const uptimeSeconds = process.uptime();
|
|
79
|
+
let heapSpaceStats;
|
|
80
|
+
try {
|
|
81
|
+
heapSpaceStats = getHeapSpaceStatistics();
|
|
82
|
+
} catch {}
|
|
83
|
+
const activeHandles = process._getActiveHandles().length;
|
|
84
|
+
const activeRequests = process._getActiveRequests().length;
|
|
85
|
+
let openFileDescriptors;
|
|
86
|
+
try {
|
|
87
|
+
openFileDescriptors = (await readdir("/proc/self/fd")).length;
|
|
88
|
+
} catch {}
|
|
89
|
+
let smapsRollup;
|
|
90
|
+
try {
|
|
91
|
+
smapsRollup = await readFile("/proc/self/smaps_rollup", "utf8");
|
|
92
|
+
} catch {}
|
|
93
|
+
const nativeMemory = usage.rss - usage.heapUsed;
|
|
94
|
+
const bytesPerSecond = uptimeSeconds > 0 ? usage.rss / uptimeSeconds : 0;
|
|
95
|
+
const mbPerHour = bytesPerSecond * 3600 / (1024 * 1024);
|
|
96
|
+
const potentialLeaks = [];
|
|
97
|
+
if (heapStats.number_of_detached_contexts > 0) {
|
|
98
|
+
potentialLeaks.push(`${heapStats.number_of_detached_contexts} detached context(s) - possible iframe/context leak`);
|
|
99
|
+
}
|
|
100
|
+
if (activeHandles > 100) {
|
|
101
|
+
potentialLeaks.push(`${activeHandles} active handles - possible timer/socket leak`);
|
|
102
|
+
}
|
|
103
|
+
if (nativeMemory > usage.heapUsed) {
|
|
104
|
+
potentialLeaks.push("Native memory > heap - leak may be in native addons (node-pty, sharp, etc.)");
|
|
105
|
+
}
|
|
106
|
+
if (mbPerHour > 100) {
|
|
107
|
+
potentialLeaks.push(`High memory growth rate: ${mbPerHour.toFixed(1)} MB/hour`);
|
|
108
|
+
}
|
|
109
|
+
if (openFileDescriptors && openFileDescriptors > 500) {
|
|
110
|
+
potentialLeaks.push(`${openFileDescriptors} open file descriptors - possible file/socket leak`);
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
timestamp: new Date().toISOString(),
|
|
114
|
+
sessionId: getSessionId(),
|
|
115
|
+
trigger,
|
|
116
|
+
dumpNumber,
|
|
117
|
+
uptimeSeconds,
|
|
118
|
+
memoryUsage: {
|
|
119
|
+
heapUsed: usage.heapUsed,
|
|
120
|
+
heapTotal: usage.heapTotal,
|
|
121
|
+
external: usage.external,
|
|
122
|
+
arrayBuffers: usage.arrayBuffers,
|
|
123
|
+
rss: usage.rss
|
|
124
|
+
},
|
|
125
|
+
memoryGrowthRate: {
|
|
126
|
+
bytesPerSecond,
|
|
127
|
+
mbPerHour
|
|
128
|
+
},
|
|
129
|
+
v8HeapStats: {
|
|
130
|
+
heapSizeLimit: heapStats.heap_size_limit,
|
|
131
|
+
mallocedMemory: heapStats.malloced_memory,
|
|
132
|
+
peakMallocedMemory: heapStats.peak_malloced_memory,
|
|
133
|
+
detachedContexts: heapStats.number_of_detached_contexts,
|
|
134
|
+
nativeContexts: heapStats.number_of_native_contexts
|
|
135
|
+
},
|
|
136
|
+
v8HeapSpaces: heapSpaceStats?.map((space) => ({
|
|
137
|
+
name: space.space_name,
|
|
138
|
+
size: space.space_size,
|
|
139
|
+
used: space.space_used_size,
|
|
140
|
+
available: space.space_available_size
|
|
141
|
+
})),
|
|
142
|
+
resourceUsage: {
|
|
143
|
+
maxRSS: resourceUsage.maxRSS * 1024,
|
|
144
|
+
userCPUTime: resourceUsage.userCPUTime,
|
|
145
|
+
systemCPUTime: resourceUsage.systemCPUTime
|
|
146
|
+
},
|
|
147
|
+
activeHandles,
|
|
148
|
+
activeRequests,
|
|
149
|
+
openFileDescriptors,
|
|
150
|
+
analysis: {
|
|
151
|
+
potentialLeaks,
|
|
152
|
+
recommendation: potentialLeaks.length > 0 ? `WARNING: ${potentialLeaks.length} potential leak indicator(s) found. See potentialLeaks array.` : "No obvious leak indicators. Check heap snapshot for retained objects."
|
|
153
|
+
},
|
|
154
|
+
smapsRollup,
|
|
155
|
+
platform: process.platform,
|
|
156
|
+
nodeVersion: process.version,
|
|
157
|
+
ccVersion: "1.0.3-fork.63859d8"
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
161
|
+
try {
|
|
162
|
+
const sessionId = getSessionId();
|
|
163
|
+
const diagnostics = await captureMemoryDiagnostics(trigger, dumpNumber);
|
|
164
|
+
const toGB = (bytes) => (bytes / 1024 / 1024 / 1024).toFixed(3);
|
|
165
|
+
logForDebugging(`[HeapDump] Memory state:
|
|
166
|
+
heapUsed: ${toGB(diagnostics.memoryUsage.heapUsed)} GB (in snapshot)
|
|
167
|
+
external: ${toGB(diagnostics.memoryUsage.external)} GB (NOT in snapshot)
|
|
168
|
+
rss: ${toGB(diagnostics.memoryUsage.rss)} GB (total process)
|
|
169
|
+
${diagnostics.analysis.recommendation}`);
|
|
170
|
+
const dumpDir = getDesktopPath();
|
|
171
|
+
await getFsImplementation().mkdir(dumpDir);
|
|
172
|
+
const suffix = dumpNumber > 0 ? `-dump${dumpNumber}` : "";
|
|
173
|
+
const heapFilename = `${sessionId}${suffix}.heapsnapshot`;
|
|
174
|
+
const diagFilename = `${sessionId}${suffix}-diagnostics.json`;
|
|
175
|
+
const heapPath = join(dumpDir, heapFilename);
|
|
176
|
+
const diagPath = join(dumpDir, diagFilename);
|
|
177
|
+
await writeFile(diagPath, jsonStringify(diagnostics, null, 2), {
|
|
178
|
+
mode: 384
|
|
179
|
+
});
|
|
180
|
+
logForDebugging(`[HeapDump] Diagnostics written to ${diagPath}`);
|
|
181
|
+
await writeHeapSnapshot(heapPath);
|
|
182
|
+
logForDebugging(`[HeapDump] Heap dump written to ${heapPath}`);
|
|
183
|
+
logEvent("tengu_heap_dump", {
|
|
184
|
+
triggerManual: trigger === "manual",
|
|
185
|
+
triggerAuto15GB: trigger === "auto-1.5GB",
|
|
186
|
+
dumpNumber,
|
|
187
|
+
success: true
|
|
188
|
+
});
|
|
189
|
+
return { success: true, heapPath, diagPath };
|
|
190
|
+
} catch (err) {
|
|
191
|
+
const error = toError(err);
|
|
192
|
+
logError(error);
|
|
193
|
+
logEvent("tengu_heap_dump", {
|
|
194
|
+
triggerManual: trigger === "manual",
|
|
195
|
+
triggerAuto15GB: trigger === "auto-1.5GB",
|
|
196
|
+
dumpNumber,
|
|
197
|
+
success: false
|
|
198
|
+
});
|
|
199
|
+
return { success: false, error: error.message };
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
async function writeHeapSnapshot(filepath) {
|
|
203
|
+
if (typeof Bun !== "undefined") {
|
|
204
|
+
writeFileSync(filepath, Bun.generateHeapSnapshot("v8", "arraybuffer"), {
|
|
205
|
+
mode: 384
|
|
206
|
+
});
|
|
207
|
+
Bun.gc(true);
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const writeStream = createWriteStream(filepath, { mode: 384 });
|
|
211
|
+
const heapSnapshotStream = getHeapSnapshot();
|
|
212
|
+
await pipeline(heapSnapshotStream, writeStream);
|
|
213
|
+
}
|
|
214
|
+
var init_heapDumpService = __esm(() => {
|
|
215
|
+
init_state();
|
|
216
|
+
init_analytics();
|
|
217
|
+
init_debug();
|
|
218
|
+
init_errors();
|
|
219
|
+
init_file();
|
|
220
|
+
init_fsOperations();
|
|
221
|
+
init_log();
|
|
222
|
+
init_slowOperations();
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
// src/commands/heapdump/heapdump.ts
|
|
226
|
+
async function call() {
|
|
227
|
+
const result = await performHeapDump();
|
|
228
|
+
if (!result.success) {
|
|
229
|
+
return {
|
|
230
|
+
type: "text",
|
|
231
|
+
value: `Failed to create heap dump: ${result.error}`
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
type: "text",
|
|
236
|
+
value: `${result.heapPath}
|
|
237
|
+
${result.diagPath}`
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
var init_heapdump = __esm(() => {
|
|
241
|
+
init_heapDumpService();
|
|
242
|
+
});
|
|
243
|
+
init_heapdump();
|
|
244
|
+
|
|
245
|
+
export {
|
|
246
|
+
call
|
|
247
|
+
};
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
BROWSER_TOOLS,
|
|
4
|
+
init_src
|
|
5
|
+
} from "./chunk-gyj242zr.js";
|
|
6
|
+
import {
|
|
7
|
+
getChromeSystemPrompt,
|
|
8
|
+
init_prompt
|
|
9
|
+
} from "./chunk-41x5pfyr.js";
|
|
10
|
+
import {
|
|
11
|
+
CLAUDE_IN_CHROME_MCP_SERVER_NAME,
|
|
12
|
+
getAllBrowserDataPaths,
|
|
13
|
+
getAllNativeMessagingHostsDirs,
|
|
14
|
+
getAllWindowsRegistryKeys,
|
|
15
|
+
init_common,
|
|
16
|
+
openInChrome
|
|
17
|
+
} from "./chunk-j5hc27hv.js";
|
|
18
|
+
import {
|
|
19
|
+
getFeatureValue_CACHED_MAY_BE_STALE,
|
|
20
|
+
getGlobalConfig,
|
|
21
|
+
init_config1 as init_config,
|
|
22
|
+
init_growthbook,
|
|
23
|
+
saveGlobalConfig
|
|
24
|
+
} from "./chunk-kh4zk8k3.js";
|
|
25
|
+
import {
|
|
26
|
+
getPlatform,
|
|
27
|
+
init_platform
|
|
28
|
+
} from "./chunk-nj17bhkh.js";
|
|
29
|
+
import {
|
|
30
|
+
init_bundledMode,
|
|
31
|
+
isInBundledMode
|
|
32
|
+
} from "./chunk-wn2268qd.js";
|
|
33
|
+
import {
|
|
34
|
+
execFileNoThrowWithCwd,
|
|
35
|
+
init_execFileNoThrow
|
|
36
|
+
} from "./chunk-gzzfhtdv.js";
|
|
37
|
+
import {
|
|
38
|
+
init_debug,
|
|
39
|
+
init_errors,
|
|
40
|
+
init_slowOperations,
|
|
41
|
+
isFsInaccessible,
|
|
42
|
+
jsonStringify,
|
|
43
|
+
logForDebugging
|
|
44
|
+
} from "./chunk-sbbj6ta3.js";
|
|
45
|
+
import {
|
|
46
|
+
getClaudeConfigHomeDir,
|
|
47
|
+
init_envUtils,
|
|
48
|
+
isEnvDefinedFalsy,
|
|
49
|
+
isEnvTruthy
|
|
50
|
+
} from "./chunk-raqgs410.js";
|
|
51
|
+
import {
|
|
52
|
+
getIsInteractive,
|
|
53
|
+
getIsNonInteractiveSession,
|
|
54
|
+
getSessionBypassPermissionsMode,
|
|
55
|
+
init_state
|
|
56
|
+
} from "./chunk-qqfa0dqg.js";
|
|
57
|
+
import {
|
|
58
|
+
__esm
|
|
59
|
+
} from "./chunk-qp2qdcda.js";
|
|
60
|
+
|
|
61
|
+
// src/utils/claudeInChrome/setupPortable.ts
|
|
62
|
+
import { readdir } from "fs/promises";
|
|
63
|
+
import { join } from "path";
|
|
64
|
+
function getExtensionIds() {
|
|
65
|
+
return process.env.USER_TYPE === "ant" ? [PROD_EXTENSION_ID, DEV_EXTENSION_ID, ANT_EXTENSION_ID] : [PROD_EXTENSION_ID];
|
|
66
|
+
}
|
|
67
|
+
async function detectExtensionInstallationPortable(browserPaths, log) {
|
|
68
|
+
if (browserPaths.length === 0) {
|
|
69
|
+
log?.(`[Claude in Chrome] No browser paths to check`);
|
|
70
|
+
return { isInstalled: false, browser: null };
|
|
71
|
+
}
|
|
72
|
+
const extensionIds = getExtensionIds();
|
|
73
|
+
for (const { browser, path: browserBasePath } of browserPaths) {
|
|
74
|
+
let browserProfileEntries = [];
|
|
75
|
+
try {
|
|
76
|
+
browserProfileEntries = await readdir(browserBasePath, {
|
|
77
|
+
withFileTypes: true
|
|
78
|
+
});
|
|
79
|
+
} catch (e) {
|
|
80
|
+
if (isFsInaccessible(e))
|
|
81
|
+
continue;
|
|
82
|
+
throw e;
|
|
83
|
+
}
|
|
84
|
+
const profileDirs = browserProfileEntries.filter((entry) => entry.isDirectory()).filter((entry) => entry.name === "Default" || entry.name.startsWith("Profile ")).map((entry) => entry.name);
|
|
85
|
+
if (profileDirs.length > 0) {
|
|
86
|
+
log?.(`[Claude in Chrome] Found ${browser} profiles: ${profileDirs.join(", ")}`);
|
|
87
|
+
}
|
|
88
|
+
for (const profile of profileDirs) {
|
|
89
|
+
for (const extensionId of extensionIds) {
|
|
90
|
+
const extensionPath = join(browserBasePath, profile, "Extensions", extensionId);
|
|
91
|
+
try {
|
|
92
|
+
await readdir(extensionPath);
|
|
93
|
+
log?.(`[Claude in Chrome] Extension ${extensionId} found in ${browser} ${profile}`);
|
|
94
|
+
return { isInstalled: true, browser };
|
|
95
|
+
} catch {}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
log?.(`[Claude in Chrome] Extension not found in any browser`);
|
|
100
|
+
return { isInstalled: false, browser: null };
|
|
101
|
+
}
|
|
102
|
+
async function isChromeExtensionInstalledPortable(browserPaths, log) {
|
|
103
|
+
const result = await detectExtensionInstallationPortable(browserPaths, log);
|
|
104
|
+
return result.isInstalled;
|
|
105
|
+
}
|
|
106
|
+
var PROD_EXTENSION_ID = "fcoeoabgfenejglbffodgkkbkcdhcgfn", DEV_EXTENSION_ID = "dihbgbndebgnbjfmelmegjepbnkhlgni", ANT_EXTENSION_ID = "dngcpimnedloihjnnfngkgjoidhnaolf";
|
|
107
|
+
var init_setupPortable = __esm(() => {
|
|
108
|
+
init_errors();
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// src/utils/claudeInChrome/setup.ts
|
|
112
|
+
import { chmod, mkdir, readFile, writeFile } from "fs/promises";
|
|
113
|
+
import { homedir } from "os";
|
|
114
|
+
import { join as join2 } from "path";
|
|
115
|
+
import { fileURLToPath } from "url";
|
|
116
|
+
function shouldEnableClaudeInChrome(chromeFlag) {
|
|
117
|
+
if (getIsNonInteractiveSession() && chromeFlag !== true) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
if (chromeFlag === true) {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
if (chromeFlag === false) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
if (isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_CFC)) {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
if (isEnvDefinedFalsy(process.env.CLAUDE_CODE_ENABLE_CFC)) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
const config = getGlobalConfig();
|
|
133
|
+
if (config.claudeInChromeDefaultEnabled !== undefined) {
|
|
134
|
+
return config.claudeInChromeDefaultEnabled;
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
function shouldAutoEnableClaudeInChrome() {
|
|
139
|
+
if (shouldAutoEnable !== undefined) {
|
|
140
|
+
return shouldAutoEnable;
|
|
141
|
+
}
|
|
142
|
+
shouldAutoEnable = getIsInteractive() && isChromeExtensionInstalled_CACHED_MAY_BE_STALE() && (process.env.USER_TYPE === "ant" || getFeatureValue_CACHED_MAY_BE_STALE("tengu_chrome_auto_enable", false));
|
|
143
|
+
return shouldAutoEnable;
|
|
144
|
+
}
|
|
145
|
+
function setupClaudeInChrome() {
|
|
146
|
+
const isNativeBuild = isInBundledMode();
|
|
147
|
+
const allowedTools = BROWSER_TOOLS.map((tool) => `mcp__claude-in-chrome__${tool.name}`);
|
|
148
|
+
const env = {};
|
|
149
|
+
if (getSessionBypassPermissionsMode()) {
|
|
150
|
+
env.CLAUDE_CHROME_PERMISSION_MODE = "skip_all_permission_checks";
|
|
151
|
+
}
|
|
152
|
+
const hasEnv = Object.keys(env).length > 0;
|
|
153
|
+
if (isNativeBuild) {
|
|
154
|
+
const execCommand = `"${process.execPath}" --chrome-native-host`;
|
|
155
|
+
createWrapperScript(execCommand).then((manifestBinaryPath) => installChromeNativeHostManifest(manifestBinaryPath)).catch((e) => logForDebugging(`[Claude in Chrome] Failed to install native host: ${e}`, { level: "error" }));
|
|
156
|
+
return {
|
|
157
|
+
mcpConfig: {
|
|
158
|
+
[CLAUDE_IN_CHROME_MCP_SERVER_NAME]: {
|
|
159
|
+
type: "stdio",
|
|
160
|
+
command: process.execPath,
|
|
161
|
+
args: ["--claude-in-chrome-mcp"],
|
|
162
|
+
scope: "dynamic",
|
|
163
|
+
...hasEnv && { env }
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
allowedTools,
|
|
167
|
+
systemPrompt: getChromeSystemPrompt()
|
|
168
|
+
};
|
|
169
|
+
} else {
|
|
170
|
+
const __filename2 = fileURLToPath(import.meta.url);
|
|
171
|
+
const __dirname2 = join2(__filename2, "..");
|
|
172
|
+
const cliPath = join2(__dirname2, "cli.js");
|
|
173
|
+
createWrapperScript(`"${process.execPath}" "${cliPath}" --chrome-native-host`).then((manifestBinaryPath) => installChromeNativeHostManifest(manifestBinaryPath)).catch((e) => logForDebugging(`[Claude in Chrome] Failed to install native host: ${e}`, { level: "error" }));
|
|
174
|
+
const mcpConfig = {
|
|
175
|
+
[CLAUDE_IN_CHROME_MCP_SERVER_NAME]: {
|
|
176
|
+
type: "stdio",
|
|
177
|
+
command: process.execPath,
|
|
178
|
+
args: [`${cliPath}`, "--claude-in-chrome-mcp"],
|
|
179
|
+
scope: "dynamic",
|
|
180
|
+
...hasEnv && { env }
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
return {
|
|
184
|
+
mcpConfig,
|
|
185
|
+
allowedTools,
|
|
186
|
+
systemPrompt: getChromeSystemPrompt()
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function getNativeMessagingHostsDirs() {
|
|
191
|
+
const platform = getPlatform();
|
|
192
|
+
if (platform === "windows") {
|
|
193
|
+
const home = homedir();
|
|
194
|
+
const appData = process.env.APPDATA || join2(home, "AppData", "Local");
|
|
195
|
+
return [join2(appData, "Claude Code", "ChromeNativeHost")];
|
|
196
|
+
}
|
|
197
|
+
return getAllNativeMessagingHostsDirs().map(({ path }) => path);
|
|
198
|
+
}
|
|
199
|
+
async function installChromeNativeHostManifest(manifestBinaryPath) {
|
|
200
|
+
const manifestDirs = getNativeMessagingHostsDirs();
|
|
201
|
+
if (manifestDirs.length === 0) {
|
|
202
|
+
throw Error("Claude in Chrome Native Host not supported on this platform");
|
|
203
|
+
}
|
|
204
|
+
const manifest = {
|
|
205
|
+
name: NATIVE_HOST_IDENTIFIER,
|
|
206
|
+
description: "Claude Code Browser Extension Native Host",
|
|
207
|
+
path: manifestBinaryPath,
|
|
208
|
+
type: "stdio",
|
|
209
|
+
allowed_origins: [
|
|
210
|
+
`chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/`,
|
|
211
|
+
...process.env.USER_TYPE === "ant" ? [
|
|
212
|
+
"chrome-extension://dihbgbndebgnbjfmelmegjepbnkhlgni/",
|
|
213
|
+
"chrome-extension://dngcpimnedloihjnnfngkgjoidhnaolf/"
|
|
214
|
+
] : []
|
|
215
|
+
]
|
|
216
|
+
};
|
|
217
|
+
const manifestContent = jsonStringify(manifest, null, 2);
|
|
218
|
+
let anyManifestUpdated = false;
|
|
219
|
+
for (const manifestDir of manifestDirs) {
|
|
220
|
+
const manifestPath = join2(manifestDir, NATIVE_HOST_MANIFEST_NAME);
|
|
221
|
+
const existingContent = await readFile(manifestPath, "utf-8").catch(() => null);
|
|
222
|
+
if (existingContent === manifestContent) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
await mkdir(manifestDir, { recursive: true });
|
|
227
|
+
await writeFile(manifestPath, manifestContent);
|
|
228
|
+
logForDebugging(`[Claude in Chrome] Installed native host manifest at: ${manifestPath}`);
|
|
229
|
+
anyManifestUpdated = true;
|
|
230
|
+
} catch (error) {
|
|
231
|
+
logForDebugging(`[Claude in Chrome] Failed to install manifest at ${manifestPath}: ${error}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if (getPlatform() === "windows") {
|
|
235
|
+
const manifestPath = join2(manifestDirs[0], NATIVE_HOST_MANIFEST_NAME);
|
|
236
|
+
registerWindowsNativeHosts(manifestPath);
|
|
237
|
+
}
|
|
238
|
+
if (anyManifestUpdated) {
|
|
239
|
+
isChromeExtensionInstalled().then((isInstalled) => {
|
|
240
|
+
if (isInstalled) {
|
|
241
|
+
logForDebugging(`[Claude in Chrome] First-time install detected, opening reconnect page in browser`);
|
|
242
|
+
openInChrome(CHROME_EXTENSION_RECONNECT_URL);
|
|
243
|
+
} else {
|
|
244
|
+
logForDebugging(`[Claude in Chrome] First-time install detected, but extension not installed, skipping reconnect`);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function registerWindowsNativeHosts(manifestPath) {
|
|
250
|
+
const registryKeys = getAllWindowsRegistryKeys();
|
|
251
|
+
for (const { browser, key } of registryKeys) {
|
|
252
|
+
const fullKey = `${key}\\${NATIVE_HOST_IDENTIFIER}`;
|
|
253
|
+
execFileNoThrowWithCwd("reg", [
|
|
254
|
+
"add",
|
|
255
|
+
fullKey,
|
|
256
|
+
"/ve",
|
|
257
|
+
"/t",
|
|
258
|
+
"REG_SZ",
|
|
259
|
+
"/d",
|
|
260
|
+
manifestPath,
|
|
261
|
+
"/f"
|
|
262
|
+
]).then((result) => {
|
|
263
|
+
if (result.code === 0) {
|
|
264
|
+
logForDebugging(`[Claude in Chrome] Registered native host for ${browser} in Windows registry: ${fullKey}`);
|
|
265
|
+
} else {
|
|
266
|
+
logForDebugging(`[Claude in Chrome] Failed to register native host for ${browser} in Windows registry: ${result.stderr}`);
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
async function createWrapperScript(command) {
|
|
272
|
+
const platform = getPlatform();
|
|
273
|
+
const chromeDir = join2(getClaudeConfigHomeDir(), "chrome");
|
|
274
|
+
const wrapperPath = platform === "windows" ? join2(chromeDir, "chrome-native-host.bat") : join2(chromeDir, "chrome-native-host");
|
|
275
|
+
const scriptContent = platform === "windows" ? `@echo off
|
|
276
|
+
REM Chrome native host wrapper script
|
|
277
|
+
REM Generated by Claude Code - do not edit manually
|
|
278
|
+
${command}
|
|
279
|
+
` : `#!/bin/sh
|
|
280
|
+
# Chrome native host wrapper script
|
|
281
|
+
# Generated by Claude Code - do not edit manually
|
|
282
|
+
exec ${command}
|
|
283
|
+
`;
|
|
284
|
+
const existingContent = await readFile(wrapperPath, "utf-8").catch(() => null);
|
|
285
|
+
if (existingContent === scriptContent) {
|
|
286
|
+
return wrapperPath;
|
|
287
|
+
}
|
|
288
|
+
await mkdir(chromeDir, { recursive: true });
|
|
289
|
+
await writeFile(wrapperPath, scriptContent);
|
|
290
|
+
if (platform !== "windows") {
|
|
291
|
+
await chmod(wrapperPath, 493);
|
|
292
|
+
}
|
|
293
|
+
logForDebugging(`[Claude in Chrome] Created Chrome native host wrapper script: ${wrapperPath}`);
|
|
294
|
+
return wrapperPath;
|
|
295
|
+
}
|
|
296
|
+
function isChromeExtensionInstalled_CACHED_MAY_BE_STALE() {
|
|
297
|
+
isChromeExtensionInstalled().then((isInstalled) => {
|
|
298
|
+
if (!isInstalled) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const config = getGlobalConfig();
|
|
302
|
+
if (config.cachedChromeExtensionInstalled !== isInstalled) {
|
|
303
|
+
saveGlobalConfig((prev) => ({
|
|
304
|
+
...prev,
|
|
305
|
+
cachedChromeExtensionInstalled: isInstalled
|
|
306
|
+
}));
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
const cached = getGlobalConfig().cachedChromeExtensionInstalled;
|
|
310
|
+
return cached ?? false;
|
|
311
|
+
}
|
|
312
|
+
async function isChromeExtensionInstalled() {
|
|
313
|
+
const browserPaths = getAllBrowserDataPaths();
|
|
314
|
+
if (browserPaths.length === 0) {
|
|
315
|
+
logForDebugging(`[Claude in Chrome] Unsupported platform for extension detection: ${getPlatform()}`);
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
return isChromeExtensionInstalledPortable(browserPaths, logForDebugging);
|
|
319
|
+
}
|
|
320
|
+
var CHROME_EXTENSION_RECONNECT_URL = "https://clau.de/chrome/reconnect", NATIVE_HOST_IDENTIFIER = "com.anthropic.claude_code_browser_extension", NATIVE_HOST_MANIFEST_NAME, shouldAutoEnable = undefined;
|
|
321
|
+
var init_setup = __esm(() => {
|
|
322
|
+
init_src();
|
|
323
|
+
init_state();
|
|
324
|
+
init_growthbook();
|
|
325
|
+
init_bundledMode();
|
|
326
|
+
init_config();
|
|
327
|
+
init_debug();
|
|
328
|
+
init_envUtils();
|
|
329
|
+
init_execFileNoThrow();
|
|
330
|
+
init_platform();
|
|
331
|
+
init_slowOperations();
|
|
332
|
+
init_common();
|
|
333
|
+
init_prompt();
|
|
334
|
+
init_setupPortable();
|
|
335
|
+
NATIVE_HOST_MANIFEST_NAME = `${NATIVE_HOST_IDENTIFIER}.json`;
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
export { shouldEnableClaudeInChrome, shouldAutoEnableClaudeInChrome, setupClaudeInChrome, isChromeExtensionInstalled, init_setup };
|