@jdi-code/claude-code 1.0.3
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/README.md +437 -0
- package/dist/chunk-05gxvwvf.js +692 -0
- package/dist/chunk-06saje2v.js +39 -0
- package/dist/chunk-0731m51q.js +8 -0
- package/dist/chunk-0e1xsncc.js +969 -0
- package/dist/chunk-0gemty6d.js +70 -0
- package/dist/chunk-0nt9md2b.js +216 -0
- package/dist/chunk-0nz8sqg4.js +8960 -0
- package/dist/chunk-0paqc2yw.js +15 -0
- package/dist/chunk-0pjw8y9z.js +2833 -0
- package/dist/chunk-0ragr30c.js +4389 -0
- package/dist/chunk-0vkfrmqm.js +690 -0
- package/dist/chunk-0vvej174.js +38 -0
- package/dist/chunk-0w63x62y.js +145 -0
- package/dist/chunk-0xjaqda8.js +1124 -0
- package/dist/chunk-0xn1zr3e.js +5018 -0
- package/dist/chunk-1141xmr4.js +8 -0
- package/dist/chunk-1a61g8t2.js +287 -0
- package/dist/chunk-1c8z1b5v.js +16 -0
- package/dist/chunk-1cbn5kxf.js +7 -0
- package/dist/chunk-1ebedmba.js +90 -0
- package/dist/chunk-1h2famwb.js +49 -0
- package/dist/chunk-1jrcb7cs.js +165 -0
- package/dist/chunk-1n1xqxv5.js +3353 -0
- package/dist/chunk-1rnkpxy4.js +227 -0
- package/dist/chunk-1rvz0433.js +722 -0
- package/dist/chunk-1wfb8e3m.js +107 -0
- package/dist/chunk-1x2wb3tc.js +542 -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-28r6z9br.js +28 -0
- package/dist/chunk-2a42s11t.js +412 -0
- package/dist/chunk-2eykm0j0.js +20 -0
- package/dist/chunk-2gzv8nrw.js +205 -0
- package/dist/chunk-2k995y2x.js +880 -0
- package/dist/chunk-2md1yavs.js +248 -0
- package/dist/chunk-2nayx6q1.js +63 -0
- package/dist/chunk-2qjywwq4.js +3445 -0
- package/dist/chunk-2tw2ve8h.js +145 -0
- package/dist/chunk-2y37w6dg.js +41 -0
- package/dist/chunk-2y659zbj.js +103 -0
- package/dist/chunk-30rst83v.js +168 -0
- package/dist/chunk-35x3tjnr.js +59 -0
- package/dist/chunk-3be7ka25.js +56 -0
- package/dist/chunk-3c25bcsw.js +17 -0
- package/dist/chunk-3gqdqmzb.js +75 -0
- package/dist/chunk-3h8a89gy.js +46 -0
- package/dist/chunk-3r24h7t6.js +113 -0
- package/dist/chunk-3sagmdbp.js +276 -0
- package/dist/chunk-3sdp7ds7.js +338 -0
- package/dist/chunk-3vzs2gbq.js +87 -0
- package/dist/chunk-3w6s9m5w.js +16 -0
- package/dist/chunk-3z6rf0m3.js +220 -0
- package/dist/chunk-40b8p5em.js +287 -0
- package/dist/chunk-41md7gny.js +91 -0
- package/dist/chunk-44fpr6jq.js +434 -0
- package/dist/chunk-455a8z6g.js +1529 -0
- package/dist/chunk-4589pec2.js +102 -0
- package/dist/chunk-45kxdsp8.js +444 -0
- package/dist/chunk-45m062tx.js +2058 -0
- package/dist/chunk-48z7dgy1.js +281 -0
- package/dist/chunk-495d85x1.js +8066 -0
- package/dist/chunk-4anyx5bv.js +38 -0
- package/dist/chunk-4br37gsw.js +107 -0
- package/dist/chunk-4g3v8y12.js +23 -0
- package/dist/chunk-4jm600zv.js +13 -0
- package/dist/chunk-4kxr1pwz.js +654 -0
- package/dist/chunk-4nfrc6sq.js +2431 -0
- package/dist/chunk-4pdedeb4.js +2644 -0
- package/dist/chunk-4qv4z794.js +88 -0
- package/dist/chunk-4t7n5hfg.js +173 -0
- package/dist/chunk-4tyxyfsv.js +20 -0
- package/dist/chunk-4wzyhqbt.js +444 -0
- package/dist/chunk-4zfkzkt6.js +37 -0
- package/dist/chunk-4zsw4fhp.js +67 -0
- package/dist/chunk-52wv09zw.js +102 -0
- package/dist/chunk-53nbpp47.js +17055 -0
- package/dist/chunk-55sfqnz4.js +1921 -0
- package/dist/chunk-55wgxwa9.js +13877 -0
- package/dist/chunk-5cd9cptq.js +110 -0
- package/dist/chunk-5dbar61y.js +265 -0
- package/dist/chunk-5dbk24zg.js +890 -0
- package/dist/chunk-5frcqxsv.js +172285 -0
- package/dist/chunk-5ndexvh1.js +40764 -0
- package/dist/chunk-5q7c8vt9.js +94 -0
- package/dist/chunk-5qbwrz8m.js +458 -0
- package/dist/chunk-5tfppbkq.js +55 -0
- package/dist/chunk-5xz7ts0k.js +726 -0
- package/dist/chunk-60xyrp86.js +117 -0
- package/dist/chunk-67kbbt9h.js +100 -0
- package/dist/chunk-6bd8brc4.js +48 -0
- package/dist/chunk-6deqb0mc.js +376 -0
- package/dist/chunk-6dj5t602.js +341 -0
- package/dist/chunk-6fjab2dp.js +62 -0
- package/dist/chunk-6g62sjpf.js +328 -0
- package/dist/chunk-6gr3c3w9.js +378 -0
- package/dist/chunk-6h9zcxaa.js +140 -0
- package/dist/chunk-6kpbgc5w.js +23 -0
- package/dist/chunk-6mapphaq.js +208 -0
- package/dist/chunk-6n2qgm9v.js +8 -0
- package/dist/chunk-6ndpfxcn.js +222 -0
- package/dist/chunk-6tq2v3rk.js +186 -0
- package/dist/chunk-70qb5sds.js +61 -0
- package/dist/chunk-720qpv6d.js +2336 -0
- package/dist/chunk-72p24c9k.js +534 -0
- package/dist/chunk-73rpbt04.js +1947 -0
- package/dist/chunk-74v9z7z4.js +50 -0
- package/dist/chunk-760252na.js +101 -0
- package/dist/chunk-7739pg2c.js +4261 -0
- package/dist/chunk-77czbpcq.js +472 -0
- package/dist/chunk-77g09znh.js +391 -0
- package/dist/chunk-7aw745vx.js +40175 -0
- package/dist/chunk-7d2700y8.js +650 -0
- package/dist/chunk-7jma9mhn.js +257 -0
- package/dist/chunk-7m2nd8da.js +110 -0
- package/dist/chunk-7nvpa5ex.js +123 -0
- package/dist/chunk-7sb5axvf.js +122 -0
- package/dist/chunk-7va8tw32.js +128 -0
- package/dist/chunk-7wm5s02e.js +216 -0
- package/dist/chunk-7ymfj7m3.js +151 -0
- package/dist/chunk-7z3tkgec.js +66 -0
- package/dist/chunk-7z8j9qfn.js +121 -0
- package/dist/chunk-83hfzbx3.js +10 -0
- package/dist/chunk-8440dz44.js +266 -0
- package/dist/chunk-893mewv4.js +98 -0
- package/dist/chunk-8bedvdm1.js +32 -0
- package/dist/chunk-8bw3ft0x.js +81 -0
- package/dist/chunk-8e8set87.js +281 -0
- package/dist/chunk-8fg1egbv.js +107 -0
- package/dist/chunk-8hq5kk3y.js +44 -0
- package/dist/chunk-8ngxagxq.js +18 -0
- package/dist/chunk-8thd6sgk.js +106 -0
- package/dist/chunk-8tnsngw2.js +31 -0
- package/dist/chunk-8y12jxg8.js +10 -0
- package/dist/chunk-8ymf4e6z.js +48 -0
- package/dist/chunk-8ytkb7k9.js +84 -0
- package/dist/chunk-8yx1trkj.js +438 -0
- package/dist/chunk-90wp6wez.js +10510 -0
- package/dist/chunk-91rcbmch.js +440 -0
- package/dist/chunk-96awg5tc.js +276 -0
- package/dist/chunk-99t8enmg.js +476 -0
- package/dist/chunk-9e2kqv5g.js +125 -0
- package/dist/chunk-9ewmqkgb.js +862 -0
- package/dist/chunk-9f7xza5r.js +253 -0
- package/dist/chunk-9gbamk79.js +93 -0
- package/dist/chunk-9gttd1xq.js +229 -0
- package/dist/chunk-9s5nkgsg.js +699 -0
- package/dist/chunk-9wce9hrc.js +1015 -0
- package/dist/chunk-9wm5e9e9.js +154 -0
- package/dist/chunk-9xmsmn93.js +275 -0
- package/dist/chunk-9y91z69v.js +44 -0
- package/dist/chunk-a7mq5r2z.js +41 -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-ae76ded0.js +30 -0
- package/dist/chunk-amhzxqj4.js +22 -0
- package/dist/chunk-ax83mpvw.js +250 -0
- package/dist/chunk-b0eez8w0.js +169 -0
- package/dist/chunk-b4wg70y1.js +54 -0
- package/dist/chunk-b57sb1dw.js +642 -0
- package/dist/chunk-b6av9ny9.js +765 -0
- package/dist/chunk-b74ht3xj.js +177 -0
- package/dist/chunk-bg3mt9bm.js +28 -0
- package/dist/chunk-bhdt6k7w.js +15 -0
- package/dist/chunk-bm1qb16p.js +17 -0
- package/dist/chunk-bqfnp99q.js +477 -0
- package/dist/chunk-bsbmmfyt.js +17 -0
- package/dist/chunk-bw9a5v0b.js +277 -0
- package/dist/chunk-c7q12yes.js +269 -0
- package/dist/chunk-cdz5yb0r.js +57 -0
- package/dist/chunk-cejskpky.js +307 -0
- package/dist/chunk-cfv996bs.js +22 -0
- package/dist/chunk-cgfdkzhb.js +12 -0
- package/dist/chunk-cha1tdry.js +95 -0
- package/dist/chunk-ctw5jwcd.js +213 -0
- package/dist/chunk-cv6y320h.js +299 -0
- package/dist/chunk-cvy3vntc.js +65 -0
- package/dist/chunk-cy2hswr1.js +15 -0
- package/dist/chunk-czkshaff.js +500 -0
- package/dist/chunk-d18z9pna.js +106 -0
- package/dist/chunk-d238zp4m.js +87 -0
- package/dist/chunk-d5d398m4.js +184 -0
- package/dist/chunk-d5e75scx.js +155 -0
- package/dist/chunk-d7q4zp2z.js +89 -0
- package/dist/chunk-das977za.js +306 -0
- package/dist/chunk-dchkdhzs.js +318 -0
- package/dist/chunk-df6bwb4a.js +40 -0
- package/dist/chunk-dgqrcy74.js +48 -0
- package/dist/chunk-dh1vws6m.js +21933 -0
- package/dist/chunk-dnh7jtpb.js +37 -0
- package/dist/chunk-dnk519qv.js +94 -0
- package/dist/chunk-dqqde43e.js +93 -0
- package/dist/chunk-drrw55jr.js +5802 -0
- package/dist/chunk-dv1wfr85.js +6373 -0
- package/dist/chunk-dy4ayw0p.js +522 -0
- package/dist/chunk-e2yv57c2.js +780 -0
- package/dist/chunk-e3g8q4cn.js +1646 -0
- package/dist/chunk-e4ak3jfc.js +1154 -0
- package/dist/chunk-e4vsvf0r.js +83 -0
- package/dist/chunk-e5ga3s0y.js +1188 -0
- package/dist/chunk-e5pntxye.js +37 -0
- package/dist/chunk-e5tfw9f7.js +604 -0
- package/dist/chunk-e64spn53.js +283 -0
- package/dist/chunk-e7393td6.js +42 -0
- package/dist/chunk-e8pk14j0.js +527 -0
- package/dist/chunk-eashsrsv.js +88 -0
- package/dist/chunk-eb90vwvr.js +152 -0
- package/dist/chunk-edg1yhec.js +32 -0
- package/dist/chunk-eh8h36nt.js +80 -0
- package/dist/chunk-ehtwnxpg.js +1591 -0
- package/dist/chunk-ep47dy22.js +198 -0
- package/dist/chunk-eqp1rfft.js +17 -0
- package/dist/chunk-eqrh0yjm.js +32 -0
- package/dist/chunk-ese2g7hc.js +92 -0
- package/dist/chunk-et4jnyb5.js +713 -0
- package/dist/chunk-ewadzrm8.js +103 -0
- package/dist/chunk-ey03t39w.js +822 -0
- package/dist/chunk-f1rrxxcf.js +432 -0
- package/dist/chunk-f2mhrmww.js +62 -0
- package/dist/chunk-f5ma3nh5.js +3436 -0
- package/dist/chunk-fbv4apne.js +51 -0
- package/dist/chunk-fdy0651p.js +212 -0
- package/dist/chunk-fj4hkg6k.js +691 -0
- package/dist/chunk-fpjeh2em.js +86 -0
- package/dist/chunk-fqc5mcw7.js +4521 -0
- package/dist/chunk-frsyts9j.js +1170 -0
- package/dist/chunk-ft2jssz4.js +424 -0
- package/dist/chunk-fw49pe3p.js +726 -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-g41hzcy2.js +101 -0
- package/dist/chunk-g653q217.js +802 -0
- package/dist/chunk-g8dr8vvj.js +111 -0
- package/dist/chunk-gax0fcbx.js +182 -0
- package/dist/chunk-gb2q3nvc.js +224 -0
- package/dist/chunk-gbq6jz9a.js +469 -0
- package/dist/chunk-gdp8wgnd.js +674 -0
- package/dist/chunk-gfkppe34.js +655 -0
- package/dist/chunk-ghmbr193.js +202 -0
- package/dist/chunk-gj71pd83.js +5395 -0
- package/dist/chunk-gjdwtdch.js +154 -0
- package/dist/chunk-gm2m2yba.js +99 -0
- package/dist/chunk-gyj242zr.js +20 -0
- package/dist/chunk-h0qngp9w.js +157 -0
- package/dist/chunk-h3fqb66h.js +301 -0
- package/dist/chunk-h3qa8f5w.js +790 -0
- package/dist/chunk-h6wtwdk0.js +908 -0
- package/dist/chunk-hakdhagh.js +16606 -0
- package/dist/chunk-hh7cmy4k.js +20 -0
- package/dist/chunk-hjhc4cpt.js +69 -0
- package/dist/chunk-hk9xz7gk.js +118 -0
- package/dist/chunk-hqmz36b3.js +552 -0
- package/dist/chunk-hr719wjg.js +144 -0
- package/dist/chunk-hrzerbfw.js +1299 -0
- package/dist/chunk-hs8ph4p8.js +8 -0
- package/dist/chunk-hx2tr4ep.js +7189 -0
- package/dist/chunk-hzhe8ygc.js +547 -0
- package/dist/chunk-j287ctwr.js +167 -0
- package/dist/chunk-j2k4p94p.js +55 -0
- package/dist/chunk-j3a4p81y.js +184 -0
- package/dist/chunk-j64ga6ta.js +8035 -0
- package/dist/chunk-j7gpr82p.js +105 -0
- package/dist/chunk-j9wpkwjj.js +644 -0
- package/dist/chunk-jafes477.js +29 -0
- package/dist/chunk-jczedp5x.js +91 -0
- package/dist/chunk-jd0t67a6.js +259 -0
- package/dist/chunk-jd32zbps.js +15 -0
- package/dist/chunk-jdgeec04.js +4249 -0
- package/dist/chunk-jgv78tv0.js +716 -0
- package/dist/chunk-jgyp3mzg.js +1318 -0
- package/dist/chunk-jhsywyw8.js +1585 -0
- package/dist/chunk-jnhkref0.js +30 -0
- package/dist/chunk-jq1kp9yy.js +90 -0
- package/dist/chunk-js8rvgs1.js +27 -0
- package/dist/chunk-jskhn7bz.js +71 -0
- package/dist/chunk-jx817w05.js +11 -0
- package/dist/chunk-jzmz18nn.js +65 -0
- package/dist/chunk-k0p9w03v.js +4957 -0
- package/dist/chunk-k48thqgp.js +1551 -0
- package/dist/chunk-k5aas9d3.js +6108 -0
- package/dist/chunk-k5bpc8d5.js +84 -0
- package/dist/chunk-k8jcy7mj.js +48 -0
- package/dist/chunk-ka22ccvm.js +1581 -0
- package/dist/chunk-ka6jav10.js +91 -0
- package/dist/chunk-kd63fbhw.js +566 -0
- package/dist/chunk-kkkneeg1.js +73 -0
- package/dist/chunk-kq6j096k.js +538 -0
- package/dist/chunk-kqd0e3xj.js +463 -0
- package/dist/chunk-kqjrsah4.js +85 -0
- package/dist/chunk-kwekc97v.js +18 -0
- package/dist/chunk-m06q12hg.js +61 -0
- package/dist/chunk-m21hvkn4.js +40 -0
- package/dist/chunk-m390jta5.js +114 -0
- package/dist/chunk-m44a9yfj.js +90 -0
- package/dist/chunk-m4edbpcz.js +268 -0
- package/dist/chunk-m5c8ng6v.js +328 -0
- package/dist/chunk-meag7bbe.js +89 -0
- package/dist/chunk-meefz2g4.js +1095 -0
- package/dist/chunk-mhqthgdg.js +208 -0
- package/dist/chunk-mnsrmwn8.js +604 -0
- package/dist/chunk-mt25echc.js +6157 -0
- package/dist/chunk-mzdwvbb0.js +71 -0
- package/dist/chunk-mzj4mtye.js +115 -0
- package/dist/chunk-mzy911jq.js +128 -0
- package/dist/chunk-n0fwapk6.js +347 -0
- package/dist/chunk-n0qaeaa5.js +256 -0
- package/dist/chunk-n1erf6kh.js +22820 -0
- package/dist/chunk-n7ttdtk0.js +641 -0
- package/dist/chunk-n8sjmqba.js +714 -0
- package/dist/chunk-neh2frnn.js +154 -0
- package/dist/chunk-nerv0jvx.js +74 -0
- package/dist/chunk-nka1g8f4.js +773 -0
- package/dist/chunk-nq0fxyxh.js +752 -0
- package/dist/chunk-nstbdz07.js +159 -0
- package/dist/chunk-nt0mgsh6.js +496 -0
- package/dist/chunk-nt837qt9.js +21 -0
- package/dist/chunk-nwcfrws3.js +273 -0
- package/dist/chunk-nxsh6de2.js +1711 -0
- package/dist/chunk-p2816w9z.js +1486 -0
- package/dist/chunk-p2d5nh3g.js +342 -0
- package/dist/chunk-p452k1xp.js +6956 -0
- package/dist/chunk-p7g7pf3f.js +336 -0
- package/dist/chunk-pa2xksyb.js +57 -0
- package/dist/chunk-pmjqdasm.js +10476 -0
- package/dist/chunk-pnhs96g8.js +140 -0
- package/dist/chunk-ps49ymvj.js +43 -0
- package/dist/chunk-ps4c75j7.js +105 -0
- package/dist/chunk-pwwa7s62.js +11 -0
- package/dist/chunk-pxrffn0w.js +246 -0
- package/dist/chunk-q0yg73za.js +490 -0
- package/dist/chunk-q25bjaev.js +15 -0
- package/dist/chunk-q5by3da6.js +8 -0
- package/dist/chunk-q5hb65kq.js +155 -0
- package/dist/chunk-q6av622g.js +38 -0
- package/dist/chunk-q6b51yc5.js +63 -0
- package/dist/chunk-qbmhde47.js +92 -0
- package/dist/chunk-qbx1rq4f.js +812 -0
- package/dist/chunk-qnfx3qtx.js +617 -0
- package/dist/chunk-qp2qdcda.js +100 -0
- package/dist/chunk-qp3dw7b4.js +100 -0
- package/dist/chunk-qqfa0dqg.js +2343 -0
- package/dist/chunk-qt0b9x2w.js +42 -0
- package/dist/chunk-qxe98jgk.js +584 -0
- package/dist/chunk-qz2x630m.js +49145 -0
- package/dist/chunk-r5k04v8g.js +176 -0
- package/dist/chunk-r66hz8j6.js +34 -0
- package/dist/chunk-r6b58y3x.js +17 -0
- package/dist/chunk-r7n42k56.js +756 -0
- package/dist/chunk-radsjrmv.js +55 -0
- package/dist/chunk-rckj9gd1.js +55 -0
- package/dist/chunk-rn0v1hk8.js +34 -0
- package/dist/chunk-rn4kqfvd.js +99 -0
- package/dist/chunk-rngmdt2v.js +97 -0
- package/dist/chunk-rnjbczcy.js +229 -0
- package/dist/chunk-rs45skes.js +123 -0
- package/dist/chunk-rs5e0520.js +87 -0
- package/dist/chunk-rzgtgtaf.js +71 -0
- package/dist/chunk-s0xfxkys.js +1391 -0
- package/dist/chunk-s274nv8k.js +8 -0
- package/dist/chunk-s3pzvdss.js +50 -0
- package/dist/chunk-s7t2e2tw.js +1493 -0
- package/dist/chunk-s8amjdwf.js +524 -0
- package/dist/chunk-sbbt0ct3.js +90 -0
- package/dist/chunk-sd36yzx8.js +954 -0
- package/dist/chunk-sdj9b9wh.js +782 -0
- package/dist/chunk-se7v9emp.js +130 -0
- package/dist/chunk-sfq65q9w.js +117 -0
- package/dist/chunk-spde0bf5.js +71 -0
- package/dist/chunk-spqaamnc.js +63 -0
- package/dist/chunk-src9fqj8.js +60 -0
- package/dist/chunk-szj5wvdy.js +28 -0
- package/dist/chunk-t0mnk0qp.js +105 -0
- package/dist/chunk-t0rgmccj.js +39 -0
- package/dist/chunk-t1qmy36p.js +94 -0
- package/dist/chunk-t36rb2a8.js +3198 -0
- package/dist/chunk-tdy66rf9.js +116 -0
- package/dist/chunk-tf40vqky.js +70 -0
- package/dist/chunk-tj79kfmn.js +849 -0
- package/dist/chunk-tjaqa99q.js +125 -0
- package/dist/chunk-tmcxeatp.js +116 -0
- package/dist/chunk-ts2p6bv1.js +224 -0
- package/dist/chunk-ttk5dzz8.js +25 -0
- package/dist/chunk-twsxz9ph.js +110 -0
- package/dist/chunk-v1kzp02e.js +785 -0
- package/dist/chunk-v1mgv1et.js +15 -0
- package/dist/chunk-v399mzxk.js +58 -0
- package/dist/chunk-v3gm2day.js +8 -0
- package/dist/chunk-v496te8v.js +192 -0
- package/dist/chunk-v7455ztd.js +164 -0
- package/dist/chunk-v78fj8by.js +145 -0
- package/dist/chunk-v9smspw2.js +4301 -0
- package/dist/chunk-vd2hwk8d.js +61 -0
- package/dist/chunk-vdbes184.js +687 -0
- package/dist/chunk-vdsmt7v0.js +998 -0
- package/dist/chunk-vest0y6x.js +3830 -0
- package/dist/chunk-vf3qxte3.js +93 -0
- package/dist/chunk-vf5sd1nq.js +12 -0
- package/dist/chunk-vfqe1jqj.js +643 -0
- package/dist/chunk-vk3270s6.js +119 -0
- package/dist/chunk-vp25xhav.js +374 -0
- package/dist/chunk-vqr58rfh.js +160 -0
- package/dist/chunk-vratq94g.js +349 -0
- package/dist/chunk-vsr9mbnq.js +195 -0
- package/dist/chunk-vyc0rjyx.js +31 -0
- package/dist/chunk-vyjeh50y.js +2149 -0
- package/dist/chunk-vykgfhrb.js +120 -0
- package/dist/chunk-w18zryr9.js +348 -0
- package/dist/chunk-w2z5pqd3.js +336 -0
- package/dist/chunk-w5ctjgmx.js +17 -0
- package/dist/chunk-w6q6a1qj.js +3038 -0
- package/dist/chunk-w7wgpqcp.js +157 -0
- package/dist/chunk-wbkahkdc.js +27 -0
- package/dist/chunk-wdxcgk6m.js +196 -0
- package/dist/chunk-wef07p3j.js +131 -0
- package/dist/chunk-wf4q1xj3.js +62 -0
- package/dist/chunk-wfz0qffj.js +3939 -0
- package/dist/chunk-wjq4zq3t.js +162 -0
- package/dist/chunk-wp4hc4n7.js +133 -0
- package/dist/chunk-wzpdet3m.js +843 -0
- package/dist/chunk-wzx6mmft.js +387 -0
- package/dist/chunk-x0rjttct.js +420 -0
- package/dist/chunk-x5j50p5x.js +120 -0
- package/dist/chunk-xdw5dv00.js +8 -0
- package/dist/chunk-xe6z85xc.js +825 -0
- package/dist/chunk-xf4wsjdm.js +26 -0
- package/dist/chunk-xk66xrkk.js +339 -0
- package/dist/chunk-xm8fv5c9.js +469 -0
- package/dist/chunk-xq5ztz4g.js +130 -0
- package/dist/chunk-xsq9ae7x.js +90 -0
- package/dist/chunk-xszk7n10.js +14358 -0
- package/dist/chunk-xvc4gp3x.js +606 -0
- package/dist/chunk-xvcdtezw.js +401 -0
- package/dist/chunk-y1784krc.js +19 -0
- package/dist/chunk-y18mc4m4.js +225 -0
- package/dist/chunk-y47cg3kz.js +42 -0
- package/dist/chunk-y7njq3z3.js +1866 -0
- package/dist/chunk-ycxwftfh.js +97 -0
- package/dist/chunk-yd3av9a3.js +16 -0
- package/dist/chunk-yn38f69a.js +105 -0
- package/dist/chunk-yp5kc8hq.js +372 -0
- package/dist/chunk-ywxd4qw4.js +22 -0
- package/dist/chunk-z09n2krq.js +752 -0
- package/dist/chunk-z0cm9r7f.js +9300 -0
- package/dist/chunk-z2dp53wn.js +17 -0
- package/dist/chunk-z47tm067.js +678 -0
- package/dist/chunk-z4dm354d.js +24 -0
- package/dist/chunk-z72st5c8.js +26840 -0
- package/dist/chunk-zerg8qwf.js +96 -0
- package/dist/chunk-zfc67eqj.js +173 -0
- package/dist/chunk-zk2wsm7d.js +15 -0
- package/dist/chunk-zsfxha74.js +17655 -0
- package/dist/chunk-zvbpaaa1.js +244 -0
- package/dist/chunk-zxzwfa0b.js +43 -0
- package/dist/cli.js +194 -0
- package/package.json +168 -0
|
@@ -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-kqd0e3xj.js";
|
|
10
|
+
import {
|
|
11
|
+
CLAUDE_IN_CHROME_MCP_SERVER_NAME,
|
|
12
|
+
getAllBrowserDataPaths,
|
|
13
|
+
getAllNativeMessagingHostsDirs,
|
|
14
|
+
getAllWindowsRegistryKeys,
|
|
15
|
+
init_common,
|
|
16
|
+
openInChrome
|
|
17
|
+
} from "./chunk-45kxdsp8.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-53nbpp47.js";
|
|
25
|
+
import {
|
|
26
|
+
getPlatform,
|
|
27
|
+
init_platform
|
|
28
|
+
} from "./chunk-tjaqa99q.js";
|
|
29
|
+
import {
|
|
30
|
+
init_bundledMode,
|
|
31
|
+
isInBundledMode
|
|
32
|
+
} from "./chunk-w2z5pqd3.js";
|
|
33
|
+
import {
|
|
34
|
+
execFileNoThrowWithCwd,
|
|
35
|
+
init_execFileNoThrow
|
|
36
|
+
} from "./chunk-hx2tr4ep.js";
|
|
37
|
+
import {
|
|
38
|
+
init_debug,
|
|
39
|
+
init_errors,
|
|
40
|
+
init_slowOperations,
|
|
41
|
+
isFsInaccessible,
|
|
42
|
+
jsonStringify,
|
|
43
|
+
logForDebugging
|
|
44
|
+
} from "./chunk-nxsh6de2.js";
|
|
45
|
+
import {
|
|
46
|
+
getClaudeConfigHomeDir,
|
|
47
|
+
init_envUtils,
|
|
48
|
+
isEnvDefinedFalsy,
|
|
49
|
+
isEnvTruthy
|
|
50
|
+
} from "./chunk-3r24h7t6.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 };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
addFlaggedPlugin,
|
|
4
|
+
getFlaggedPlugins,
|
|
5
|
+
init_pluginFlagging,
|
|
6
|
+
loadFlaggedPlugins
|
|
7
|
+
} from "./chunk-czkshaff.js";
|
|
8
|
+
import {
|
|
9
|
+
init_pluginOperations,
|
|
10
|
+
uninstallPluginOp
|
|
11
|
+
} from "./chunk-j9wpkwjj.js";
|
|
12
|
+
import {
|
|
13
|
+
getMarketplace,
|
|
14
|
+
init_installedPluginsManager,
|
|
15
|
+
init_marketplaceManager,
|
|
16
|
+
loadInstalledPluginsV2,
|
|
17
|
+
loadKnownMarketplacesConfigSafe
|
|
18
|
+
} from "./chunk-5frcqxsv.js";
|
|
19
|
+
import {
|
|
20
|
+
errorMessage,
|
|
21
|
+
init_debug,
|
|
22
|
+
init_errors,
|
|
23
|
+
logForDebugging
|
|
24
|
+
} from "./chunk-nxsh6de2.js";
|
|
25
|
+
|
|
26
|
+
// src/utils/plugins/pluginBlocklist.ts
|
|
27
|
+
init_pluginOperations();
|
|
28
|
+
init_debug();
|
|
29
|
+
init_errors();
|
|
30
|
+
init_installedPluginsManager();
|
|
31
|
+
init_marketplaceManager();
|
|
32
|
+
init_pluginFlagging();
|
|
33
|
+
function detectDelistedPlugins(installedPlugins, marketplace, marketplaceName) {
|
|
34
|
+
const marketplacePluginNames = new Set(marketplace.plugins.map((p) => p.name));
|
|
35
|
+
const suffix = `@${marketplaceName}`;
|
|
36
|
+
const delisted = [];
|
|
37
|
+
for (const pluginId of Object.keys(installedPlugins.plugins)) {
|
|
38
|
+
if (!pluginId.endsWith(suffix))
|
|
39
|
+
continue;
|
|
40
|
+
const pluginName = pluginId.slice(0, -suffix.length);
|
|
41
|
+
if (!marketplacePluginNames.has(pluginName)) {
|
|
42
|
+
delisted.push(pluginId);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return delisted;
|
|
46
|
+
}
|
|
47
|
+
async function detectAndUninstallDelistedPlugins() {
|
|
48
|
+
await loadFlaggedPlugins();
|
|
49
|
+
const installedPlugins = loadInstalledPluginsV2();
|
|
50
|
+
const alreadyFlagged = getFlaggedPlugins();
|
|
51
|
+
const knownMarketplaces = await loadKnownMarketplacesConfigSafe();
|
|
52
|
+
const newlyFlagged = [];
|
|
53
|
+
for (const marketplaceName of Object.keys(knownMarketplaces)) {
|
|
54
|
+
try {
|
|
55
|
+
const marketplace = await getMarketplace(marketplaceName);
|
|
56
|
+
if (!marketplace.forceRemoveDeletedPlugins)
|
|
57
|
+
continue;
|
|
58
|
+
const delisted = detectDelistedPlugins(installedPlugins, marketplace, marketplaceName);
|
|
59
|
+
for (const pluginId of delisted) {
|
|
60
|
+
if (pluginId in alreadyFlagged)
|
|
61
|
+
continue;
|
|
62
|
+
const installations = installedPlugins.plugins[pluginId] ?? [];
|
|
63
|
+
const hasUserInstall = installations.some((i) => i.scope === "user" || i.scope === "project" || i.scope === "local");
|
|
64
|
+
if (!hasUserInstall)
|
|
65
|
+
continue;
|
|
66
|
+
for (const installation of installations) {
|
|
67
|
+
const { scope } = installation;
|
|
68
|
+
if (scope !== "user" && scope !== "project" && scope !== "local") {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
await uninstallPluginOp(pluginId, scope);
|
|
73
|
+
} catch (error) {
|
|
74
|
+
logForDebugging(`Failed to auto-uninstall delisted plugin ${pluginId} from ${scope}: ${errorMessage(error)}`, { level: "error" });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
await addFlaggedPlugin(pluginId);
|
|
78
|
+
newlyFlagged.push(pluginId);
|
|
79
|
+
}
|
|
80
|
+
} catch (error) {
|
|
81
|
+
logForDebugging(`Failed to check for delisted plugins in "${marketplaceName}": ${errorMessage(error)}`, { level: "warn" });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return newlyFlagged;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { detectAndUninstallDelistedPlugins };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
__commonJS,
|
|
4
|
+
__require
|
|
5
|
+
} from "./chunk-qp2qdcda.js";
|
|
6
|
+
|
|
7
|
+
// node_modules/.bun/@opentelemetry+resources@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js
|
|
8
|
+
var require_execAsync = __commonJS((exports) => {
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.execAsync = undefined;
|
|
11
|
+
var child_process = __require("child_process");
|
|
12
|
+
var util = __require("util");
|
|
13
|
+
exports.execAsync = util.promisify(child_process.exec);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export { require_execAsync };
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
fromSso,
|
|
4
|
+
init_dist_es
|
|
5
|
+
} from "./chunk-mhqthgdg.js";
|
|
6
|
+
import {
|
|
7
|
+
require_dist_cjs as require_dist_cjs2
|
|
8
|
+
} from "./chunk-n0qaeaa5.js";
|
|
9
|
+
import {
|
|
10
|
+
require_client
|
|
11
|
+
} from "./chunk-b4wg70y1.js";
|
|
12
|
+
import {
|
|
13
|
+
require_dist_cjs
|
|
14
|
+
} from "./chunk-hk9xz7gk.js";
|
|
15
|
+
import {
|
|
16
|
+
__esm,
|
|
17
|
+
__require,
|
|
18
|
+
__toESM
|
|
19
|
+
} from "./chunk-qp2qdcda.js";
|
|
20
|
+
|
|
21
|
+
// node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.27/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js
|
|
22
|
+
var isSsoProfile = (arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string");
|
|
23
|
+
var init_isSsoProfile = () => {};
|
|
24
|
+
|
|
25
|
+
// node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.27/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js
|
|
26
|
+
var import_client, import_property_provider, import_shared_ini_file_loader, SHOULD_FAIL_CREDENTIAL_CHAIN = false, resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, callerClientConfig, profile, filepath, configFilepath, ignoreCache, logger }) => {
|
|
27
|
+
let token;
|
|
28
|
+
const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;
|
|
29
|
+
if (ssoSession) {
|
|
30
|
+
try {
|
|
31
|
+
const _token = await fromSso({
|
|
32
|
+
profile,
|
|
33
|
+
filepath,
|
|
34
|
+
configFilepath,
|
|
35
|
+
ignoreCache
|
|
36
|
+
})();
|
|
37
|
+
token = {
|
|
38
|
+
accessToken: _token.token,
|
|
39
|
+
expiresAt: new Date(_token.expiration).toISOString()
|
|
40
|
+
};
|
|
41
|
+
} catch (e) {
|
|
42
|
+
throw new import_property_provider.CredentialsProviderError(e.message, {
|
|
43
|
+
tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
|
|
44
|
+
logger
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
try {
|
|
49
|
+
token = await import_shared_ini_file_loader.getSSOTokenFromFile(ssoStartUrl);
|
|
50
|
+
} catch (e) {
|
|
51
|
+
throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {
|
|
52
|
+
tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
|
|
53
|
+
logger
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {
|
|
58
|
+
throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {
|
|
59
|
+
tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
|
|
60
|
+
logger
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const { accessToken } = token;
|
|
64
|
+
const { SSOClient, GetRoleCredentialsCommand } = await import("./chunk-jgv78tv0.js");
|
|
65
|
+
const sso = ssoClient || new SSOClient(Object.assign({}, clientConfig ?? {}, {
|
|
66
|
+
logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,
|
|
67
|
+
region: clientConfig?.region ?? ssoRegion,
|
|
68
|
+
userAgentAppId: clientConfig?.userAgentAppId ?? callerClientConfig?.userAgentAppId ?? parentClientConfig?.userAgentAppId
|
|
69
|
+
}));
|
|
70
|
+
let ssoResp;
|
|
71
|
+
try {
|
|
72
|
+
ssoResp = await sso.send(new GetRoleCredentialsCommand({
|
|
73
|
+
accountId: ssoAccountId,
|
|
74
|
+
roleName: ssoRoleName,
|
|
75
|
+
accessToken
|
|
76
|
+
}));
|
|
77
|
+
} catch (e) {
|
|
78
|
+
throw new import_property_provider.CredentialsProviderError(e, {
|
|
79
|
+
tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
|
|
80
|
+
logger
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {} } = ssoResp;
|
|
84
|
+
if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {
|
|
85
|
+
throw new import_property_provider.CredentialsProviderError("SSO returns an invalid temporary credential.", {
|
|
86
|
+
tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
|
|
87
|
+
logger
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const credentials = {
|
|
91
|
+
accessKeyId,
|
|
92
|
+
secretAccessKey,
|
|
93
|
+
sessionToken,
|
|
94
|
+
expiration: new Date(expiration),
|
|
95
|
+
...credentialScope && { credentialScope },
|
|
96
|
+
...accountId && { accountId }
|
|
97
|
+
};
|
|
98
|
+
if (ssoSession) {
|
|
99
|
+
import_client.setCredentialFeature(credentials, "CREDENTIALS_SSO", "s");
|
|
100
|
+
} else {
|
|
101
|
+
import_client.setCredentialFeature(credentials, "CREDENTIALS_SSO_LEGACY", "u");
|
|
102
|
+
}
|
|
103
|
+
return credentials;
|
|
104
|
+
};
|
|
105
|
+
var init_resolveSSOCredentials = __esm(() => {
|
|
106
|
+
init_dist_es();
|
|
107
|
+
import_client = __toESM(require_client(), 1);
|
|
108
|
+
import_property_provider = __toESM(require_dist_cjs(), 1);
|
|
109
|
+
import_shared_ini_file_loader = __toESM(require_dist_cjs2(), 1);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.27/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js
|
|
113
|
+
var import_property_provider2, validateSsoProfile = (profile, logger) => {
|
|
114
|
+
const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;
|
|
115
|
+
if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {
|
|
116
|
+
throw new import_property_provider2.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", ` + `"sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join(", ")}
|
|
117
|
+
Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });
|
|
118
|
+
}
|
|
119
|
+
return profile;
|
|
120
|
+
};
|
|
121
|
+
var init_validateSsoProfile = __esm(() => {
|
|
122
|
+
import_property_provider2 = __toESM(require_dist_cjs(), 1);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
// node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.27/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js
|
|
126
|
+
var import_property_provider3, import_shared_ini_file_loader2, fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
127
|
+
init.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");
|
|
128
|
+
const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
|
|
129
|
+
const { ssoClient } = init;
|
|
130
|
+
const profileName = import_shared_ini_file_loader2.getProfileName({
|
|
131
|
+
profile: init.profile ?? callerClientConfig?.profile
|
|
132
|
+
});
|
|
133
|
+
if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
|
|
134
|
+
const profiles = await import_shared_ini_file_loader2.parseKnownFiles(init);
|
|
135
|
+
const profile = profiles[profileName];
|
|
136
|
+
if (!profile) {
|
|
137
|
+
throw new import_property_provider3.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });
|
|
138
|
+
}
|
|
139
|
+
if (!isSsoProfile(profile)) {
|
|
140
|
+
throw new import_property_provider3.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {
|
|
141
|
+
logger: init.logger
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (profile?.sso_session) {
|
|
145
|
+
const ssoSessions = await import_shared_ini_file_loader2.loadSsoSessionData(init);
|
|
146
|
+
const session = ssoSessions[profile.sso_session];
|
|
147
|
+
const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;
|
|
148
|
+
if (ssoRegion && ssoRegion !== session.sso_region) {
|
|
149
|
+
throw new import_property_provider3.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {
|
|
150
|
+
tryNextLink: false,
|
|
151
|
+
logger: init.logger
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {
|
|
155
|
+
throw new import_property_provider3.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {
|
|
156
|
+
tryNextLink: false,
|
|
157
|
+
logger: init.logger
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
profile.sso_region = session.sso_region;
|
|
161
|
+
profile.sso_start_url = session.sso_start_url;
|
|
162
|
+
}
|
|
163
|
+
const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);
|
|
164
|
+
return resolveSSOCredentials({
|
|
165
|
+
ssoStartUrl: sso_start_url,
|
|
166
|
+
ssoSession: sso_session,
|
|
167
|
+
ssoAccountId: sso_account_id,
|
|
168
|
+
ssoRegion: sso_region,
|
|
169
|
+
ssoRoleName: sso_role_name,
|
|
170
|
+
ssoClient,
|
|
171
|
+
clientConfig: init.clientConfig,
|
|
172
|
+
parentClientConfig: init.parentClientConfig,
|
|
173
|
+
callerClientConfig: init.callerClientConfig,
|
|
174
|
+
profile: profileName,
|
|
175
|
+
filepath: init.filepath,
|
|
176
|
+
configFilepath: init.configFilepath,
|
|
177
|
+
ignoreCache: init.ignoreCache,
|
|
178
|
+
logger: init.logger
|
|
179
|
+
});
|
|
180
|
+
} else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {
|
|
181
|
+
throw new import_property_provider3.CredentialsProviderError("Incomplete configuration. The fromSSO() argument hash must include " + '"ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', { tryNextLink: false, logger: init.logger });
|
|
182
|
+
} else {
|
|
183
|
+
return resolveSSOCredentials({
|
|
184
|
+
ssoStartUrl,
|
|
185
|
+
ssoSession,
|
|
186
|
+
ssoAccountId,
|
|
187
|
+
ssoRegion,
|
|
188
|
+
ssoRoleName,
|
|
189
|
+
ssoClient,
|
|
190
|
+
clientConfig: init.clientConfig,
|
|
191
|
+
parentClientConfig: init.parentClientConfig,
|
|
192
|
+
callerClientConfig: init.callerClientConfig,
|
|
193
|
+
profile: profileName,
|
|
194
|
+
filepath: init.filepath,
|
|
195
|
+
configFilepath: init.configFilepath,
|
|
196
|
+
ignoreCache: init.ignoreCache,
|
|
197
|
+
logger: init.logger
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
var init_fromSSO = __esm(() => {
|
|
202
|
+
init_isSsoProfile();
|
|
203
|
+
init_resolveSSOCredentials();
|
|
204
|
+
init_validateSsoProfile();
|
|
205
|
+
import_property_provider3 = __toESM(require_dist_cjs(), 1);
|
|
206
|
+
import_shared_ini_file_loader2 = __toESM(require_dist_cjs2(), 1);
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.27/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js
|
|
210
|
+
var init_types = () => {};
|
|
211
|
+
|
|
212
|
+
// node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.27/node_modules/@aws-sdk/credential-provider-sso/dist-es/index.js
|
|
213
|
+
var init_dist_es2 = __esm(() => {
|
|
214
|
+
init_fromSSO();
|
|
215
|
+
init_isSsoProfile();
|
|
216
|
+
init_types();
|
|
217
|
+
init_validateSsoProfile();
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
export { isSsoProfile, validateSsoProfile, fromSSO, init_dist_es2 as init_dist_es };
|