@redscope-ai/redscope 1.0.1 → 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.en.md +227 -0
- package/README.md +220 -217
- package/dist/{chunk-3x0s9z1q.js → chunk-023acdm0.js} +25 -25
- package/dist/{chunk-m7r5vcgq.js → chunk-06jm5f5w.js} +3 -3
- package/dist/{chunk-facpqya9.js → chunk-06w1r147.js} +2 -2
- package/dist/{chunk-9vfydwy6.js → chunk-0avzafsa.js} +2 -5
- package/dist/{chunk-rrk7d1rq.js → chunk-0c1e6nsn.js} +25 -25
- package/dist/{chunk-dgpvgy8x.js → chunk-0cw0nqjs.js} +3 -1
- package/dist/{chunk-3em6npyp.js → chunk-0jka50w4.js} +3 -3
- package/dist/{chunk-7rjwrny5.js → chunk-0rbc26z4.js} +26 -31
- package/dist/{chunk-s6m0q0ay.js → chunk-0rf3q4pf.js} +39 -80
- package/dist/{chunk-hb9ktw1z.js → chunk-0svk90hg.js} +25 -25
- package/dist/{chunk-38ss09df.js → chunk-0vzzrkz4.js} +25 -25
- package/dist/{chunk-95drsk81.js → chunk-0wcq2t8n.js} +2 -2
- package/dist/{chunk-3byh4jew.js → chunk-0yxm7z9z.js} +3 -3
- package/dist/{chunk-xkpkfzk8.js → chunk-123bvtj1.js} +30 -48
- package/dist/{chunk-djgf5xch.js → chunk-12hpfrr1.js} +25 -25
- package/dist/{chunk-byq8np07.js → chunk-15tat68f.js} +2 -2
- package/dist/{chunk-ebmxh8nf.js → chunk-16ykprvr.js} +1 -1
- package/dist/{chunk-zrewvwc3.js → chunk-17dcqvgw.js} +1 -1
- package/dist/{chunk-mmm8kj27.js → chunk-192cahpv.js} +38 -50
- package/dist/{chunk-nkk989sg.js → chunk-21c75grh.js} +27 -27
- package/dist/{chunk-cdw0xw6e.js → chunk-21rqe34c.js} +25 -25
- package/dist/{chunk-48ba4bv3.js → chunk-24dea3bm.js} +26 -26
- package/dist/{chunk-118jdzmk.js → chunk-24gt9tem.js} +4 -4
- package/dist/{chunk-2zeke2mx.js → chunk-257f88xy.js} +25 -25
- package/dist/{chunk-etsm0ajc.js → chunk-25a7e2b2.js} +2 -3
- package/dist/{chunk-g1cwsyvs.js → chunk-27jq35w7.js} +2 -4
- package/dist/{chunk-xymn8svx.js → chunk-2gr8wd1e.js} +31 -31
- package/dist/{chunk-9fc170m9.js → chunk-2hhnyc9z.js} +1 -1
- package/dist/{chunk-ps28aehs.js → chunk-2r358tjd.js} +3 -3
- package/dist/{chunk-m1xjf821.js → chunk-2wtxmesv.js} +1 -1
- package/dist/{chunk-wqwj2tpk.js → chunk-34dbp6b1.js} +51 -162
- package/dist/{chunk-3y22e541.js → chunk-36hnfrpk.js} +25 -25
- package/dist/{chunk-az9kwsq6.js → chunk-36qfna0k.js} +49 -29
- package/dist/{chunk-3s34rpkc.js → chunk-38cze5hg.js} +4 -4
- package/dist/{chunk-zaavsjhp.js → chunk-38qbfqxd.js} +28 -26
- package/dist/{chunk-845qrs4g.js → chunk-392qkvj0.js} +1 -1
- package/dist/{chunk-2y9tthav.js → chunk-3brgt1g6.js} +3 -3
- package/dist/{chunk-vjef66jt.js → chunk-3df47gdq.js} +3 -3
- package/dist/{chunk-jmvph1v2.js → chunk-3e4mz6v4.js} +26 -26
- package/dist/{chunk-pe2aev4q.js → chunk-3ehdg9ak.js} +1 -1
- package/dist/{chunk-35c7a56h.js → chunk-3gv7d6fm.js} +8 -8
- package/dist/{chunk-y7sm71r6.js → chunk-3hp43psz.js} +25 -25
- package/dist/{chunk-qf0neqhd.js → chunk-3psr6x6b.js} +2 -2
- package/dist/{chunk-hae38370.js → chunk-3x87ez75.js} +1 -1
- package/dist/{chunk-ws8ktkp2.js → chunk-3z9myktf.js} +40 -63
- package/dist/{chunk-3tmdbgn2.js → chunk-41246kaz.js} +1 -1
- package/dist/{chunk-m89pwye4.js → chunk-420rqw3z.js} +30 -29
- package/dist/{chunk-f3az90wc.js → chunk-4380xxa3.js} +2 -2
- package/dist/{chunk-g9x2ap0b.js → chunk-43rvg1zq.js} +3 -3
- package/dist/{chunk-yvxcjtz7.js → chunk-449d7km7.js} +25 -25
- package/dist/{chunk-k6mma3ve.js → chunk-4b63tj55.js} +1 -1
- package/dist/{chunk-msq2j1xq.js → chunk-4baty7hv.js} +2 -2
- package/dist/{chunk-9rhnq6vb.js → chunk-4f0xjp4j.js} +26 -26
- package/dist/{chunk-hpz6p72y.js → chunk-4g8b675z.js} +1 -1
- package/dist/{chunk-nh067a2v.js → chunk-4hys4qgz.js} +26 -26
- package/dist/{chunk-wpq11vtx.js → chunk-4pdg7btc.js} +29 -37
- package/dist/{chunk-dskw04f8.js → chunk-4yx011va.js} +2 -2
- package/dist/{chunk-96km1ywr.js → chunk-53smzk07.js} +1 -1
- package/dist/{chunk-teeb7f70.js → chunk-58q8wak5.js} +2 -2
- package/dist/{chunk-6vf405r0.js → chunk-5a87wve4.js} +1 -1
- package/dist/{chunk-kv5gqm4t.js → chunk-5f669g1y.js} +34 -34
- package/dist/{chunk-v1gzhmc4.js → chunk-5hfkz8z3.js} +26 -29
- package/dist/{chunk-gehsdyty.js → chunk-5ms6ey49.js} +10 -10
- package/dist/{chunk-4hpf2hs5.js → chunk-5n03fg3b.js} +33 -33
- package/dist/{chunk-gn4ts3wj.js → chunk-5qrv6nyj.js} +30 -34
- package/dist/{chunk-t3cdrybs.js → chunk-5xzdjshx.js} +4 -4
- package/dist/{chunk-nybfe7qh.js → chunk-62jt470s.js} +28 -28
- package/dist/{chunk-108674yb.js → chunk-651s7b3k.js} +3 -3
- package/dist/{chunk-1prwdfyt.js → chunk-6b2n30vp.js} +11 -3
- package/dist/{chunk-fp7kqndy.js → chunk-6drv9gkd.js} +1 -1
- package/dist/{chunk-pwvv7adz.js → chunk-6h02w7mw.js} +31 -31
- package/dist/{chunk-qaa5zdf5.js → chunk-6hvaee4x.js} +7 -7
- package/dist/{chunk-6m4f9pt8.js → chunk-6myhvvnb.js} +3 -3
- package/dist/{chunk-dn38ghbx.js → chunk-6rana23t.js} +25 -25
- package/dist/{chunk-5vgs6h6r.js → chunk-6tm0pvfz.js} +25 -25
- package/dist/{chunk-qgn7adb3.js → chunk-70x23w21.js} +3 -3
- package/dist/{chunk-1zmk2k73.js → chunk-71bfm075.js} +5 -14
- package/dist/{chunk-jyc9ee3b.js → chunk-71ty5kab.js} +26 -28
- package/dist/{chunk-xcbtmk08.js → chunk-72f32e05.js} +4 -4
- package/dist/{chunk-tvjm482f.js → chunk-77cdmh9s.js} +2 -2
- package/dist/{chunk-es80866m.js → chunk-7bb4vr99.js} +4 -4
- package/dist/{chunk-ayp1cck9.js → chunk-7e312nps.js} +28 -35
- package/dist/{chunk-03sgymkc.js → chunk-7g1ate44.js} +3 -3
- package/dist/{chunk-gkwfk6pk.js → chunk-7gcjspsw.js} +2 -2
- package/dist/{chunk-pysmrsg6.js → chunk-7hsebpzz.js} +25 -25
- package/dist/{chunk-40ew9zet.js → chunk-7k2k3bms.js} +4 -4
- package/dist/{chunk-fgewf3s5.js → chunk-82de4zqa.js} +1 -1
- package/dist/{chunk-xxxb7ay6.js → chunk-85jwc8ct.js} +1 -1
- package/dist/{chunk-5k0h7yng.js → chunk-8dsmcq3w.js} +1 -1
- package/dist/{chunk-fktq06we.js → chunk-8dxjycb5.js} +1 -1
- package/dist/{chunk-aqy4rhff.js → chunk-8fkhrc99.js} +28 -28
- package/dist/{chunk-bt0jjtxe.js → chunk-8gyxs2mr.js} +11 -15
- package/dist/{chunk-ynwz88mf.js → chunk-8jaazkcj.js} +28 -28
- package/dist/{chunk-shqdbrjy.js → chunk-8jzdq5e3.js} +25 -25
- package/dist/{chunk-tnkxj15w.js → chunk-8p35ye53.js} +2 -2
- package/dist/{chunk-btvdr85j.js → chunk-8q5tkq8h.js} +3 -10
- package/dist/{chunk-pxm90z87.js → chunk-8wv5ta2v.js} +1 -1
- package/dist/{chunk-c92b3yxx.js → chunk-8yk09jf7.js} +1 -6
- package/dist/{chunk-m34de98f.js → chunk-90mtjp37.js} +25 -25
- package/dist/{chunk-24x4tpcg.js → chunk-9f6wwesg.js} +1 -1
- package/dist/{chunk-bbtb1e16.js → chunk-9ga8nhmh.js} +5 -5
- package/dist/{chunk-y1q7rt9n.js → chunk-9hbhydvp.js} +9 -1
- package/dist/{chunk-h3vhqwda.js → chunk-9jztbykz.js} +3 -3
- package/dist/{chunk-z5bh8n1z.js → chunk-9kbb2tkx.js} +27 -31
- package/dist/{chunk-8gf0j7a3.js → chunk-9m216tqg.js} +3 -3
- package/dist/{chunk-42aq57ss.js → chunk-9ntm4n7z.js} +26 -26
- package/dist/{chunk-cqpdmmd2.js → chunk-9sbrrmez.js} +53 -53
- package/dist/{chunk-f6cd6jxz.js → chunk-9sm4ege9.js} +2 -2
- package/dist/{chunk-0d4ekx1g.js → chunk-9t2bqb6a.js} +1 -1
- package/dist/{chunk-sqb9zs51.js → chunk-9tbt0tz4.js} +2 -2
- package/dist/{chunk-t263bh1j.js → chunk-9tpg56r8.js} +10 -10
- package/dist/{chunk-8xnm5637.js → chunk-9zyj24r6.js} +1 -3
- package/dist/{chunk-46bx77pc.js → chunk-a2dhamw6.js} +3 -3
- package/dist/{chunk-2hssetay.js → chunk-a61hmmch.js} +29 -36
- package/dist/{chunk-6c6ajnxc.js → chunk-a771zcw5.js} +23 -14
- package/dist/{chunk-k2rnemk9.js → chunk-a9280tpx.js} +40 -70
- package/dist/{chunk-8fxs2ek5.js → chunk-aabp3a25.js} +2 -2
- package/dist/{chunk-kapm0z1r.js → chunk-ab6vt3av.js} +3 -3
- package/dist/{chunk-zr2r1pp2.js → chunk-aghqm7cp.js} +1 -1
- package/dist/{chunk-crcnq5mc.js → chunk-ahsxxya9.js} +2 -2
- package/dist/{chunk-dew0tnpy.js → chunk-anqc1vt9.js} +4 -5
- package/dist/{chunk-rdr4pc38.js → chunk-ar9m0mhy.js} +3 -3
- package/dist/{chunk-n7avn8wg.js → chunk-at0k7eqj.js} +3 -3
- package/dist/{chunk-bzkz1ky7.js → chunk-b1y3s14w.js} +25 -25
- package/dist/{chunk-h9y0jnsy.js → chunk-b34jxkk8.js} +1 -1
- package/dist/{chunk-4h7xy4dh.js → chunk-b502p09b.js} +26 -26
- package/dist/{chunk-m8d8228q.js → chunk-b60rrn7g.js} +2 -2
- package/dist/{chunk-gnw38h0h.js → chunk-b68d32sc.js} +1 -1
- package/dist/{chunk-wadkkd06.js → chunk-b6q03jm8.js} +1 -1
- package/dist/{chunk-y17h3nem.js → chunk-b94ss7th.js} +383 -511
- package/dist/{chunk-zx3t16wy.js → chunk-ba1vxwa1.js} +3 -3
- package/dist/{chunk-ke2xr0zp.js → chunk-be6vpz65.js} +26 -26
- package/dist/{chunk-5grskch0.js → chunk-bss7me0y.js} +2 -2
- package/dist/{chunk-v6xy1kav.js → chunk-bt3v9b0h.js} +1 -1
- package/dist/{chunk-6pp44ghd.js → chunk-bvef4qyt.js} +2 -2
- package/dist/{chunk-69b48vvv.js → chunk-byap8c9b.js} +31 -31
- package/dist/{chunk-cfmqtqkn.js → chunk-c49174me.js} +25 -25
- package/dist/{chunk-5acyx193.js → chunk-c6m406sh.js} +143 -155
- package/dist/{chunk-k71bwvbw.js → chunk-c9typ3gb.js} +4 -4
- package/dist/{chunk-d8nsyprn.js → chunk-c9ys0mwc.js} +25 -25
- package/dist/{chunk-b5z2220y.js → chunk-ca3vzvgb.js} +31 -100
- package/dist/{chunk-hmrpceqa.js → chunk-cb26shy6.js} +26 -26
- package/dist/{chunk-16bhs1p0.js → chunk-cdt0ke60.js} +4 -4
- package/dist/{chunk-zavsx6cm.js → chunk-cfr43xmx.js} +36 -40
- package/dist/{chunk-15s0b32z.js → chunk-cmk2h8qj.js} +2 -2
- package/dist/{chunk-6mtezaym.js → chunk-cnsdtq6g.js} +1 -1
- package/dist/{chunk-v1txebaq.js → chunk-cqt1d235.js} +7 -7
- package/dist/{chunk-jkxvsyw2.js → chunk-crbaqxvp.js} +26 -28
- package/dist/{chunk-7cbah69x.js → chunk-cvby21xy.js} +2 -2
- package/dist/{chunk-tdp8bfv9.js → chunk-d5jz3f04.js} +30 -30
- package/dist/{chunk-yc1stfve.js → chunk-d6h68rz1.js} +35 -6
- package/dist/{chunk-3zvf9eb0.js → chunk-d7xyzd78.js} +26 -26
- package/dist/{chunk-1vsyejd5.js → chunk-d9epkj9j.js} +27 -32
- package/dist/{chunk-5r5hs5my.js → chunk-dbw5akz5.js} +3 -3
- package/dist/{chunk-569r8cxc.js → chunk-dby9tdb2.js} +2 -2
- package/dist/{chunk-rsqb6k6s.js → chunk-dp4hee08.js} +1 -1
- package/dist/{chunk-wf8nkt8n.js → chunk-dtzw81qk.js} +26 -26
- package/dist/{chunk-rpnc9jnq.js → chunk-dy0d3azb.js} +26 -26
- package/dist/{chunk-7n6v7ekm.js → chunk-e1qjcy3t.js} +33 -33
- package/dist/{chunk-py80f1er.js → chunk-e2vw8fnp.js} +1 -1
- package/dist/{chunk-ybdfv1s0.js → chunk-e4mxbs7d.js} +26 -26
- package/dist/{chunk-qdbrpgaa.js → chunk-e8y0f1x6.js} +27 -27
- package/dist/{chunk-cvz1013b.js → chunk-e9fr4ty1.js} +26 -26
- package/dist/{chunk-dgg25rc9.js → chunk-eb7me6rb.js} +3 -3
- package/dist/{chunk-eb1tdxht.js → chunk-edh2j03b.js} +33 -31
- package/dist/{chunk-dmpht44r.js → chunk-ep4mg38n.js} +25 -25
- package/dist/{chunk-x05pr8cv.js → chunk-exbhf2jv.js} +1 -1
- package/dist/{chunk-vqge5991.js → chunk-f14rjxna.js} +28 -28
- package/dist/{chunk-x4k49p69.js → chunk-f5rmx8bc.js} +1 -1
- package/dist/{chunk-h52jr0s2.js → chunk-fb3pkd06.js} +4 -4
- package/dist/{chunk-3r0chvv3.js → chunk-ffjggx50.js} +4 -4
- package/dist/{chunk-y0jpkqb0.js → chunk-ffjh6d8h.js} +1 -1
- package/dist/{chunk-py4a4pqa.js → chunk-fh7znw23.js} +3 -3
- package/dist/{chunk-m3fpv9m4.js → chunk-fn3yf8bk.js} +25 -25
- package/dist/{chunk-bxfjr8qb.js → chunk-fnnydvgk.js} +1 -4
- package/dist/{chunk-gqxhxbrm.js → chunk-fwm9m18x.js} +27 -27
- package/dist/{chunk-0aga5p4j.js → chunk-fxeh76ke.js} +9 -14
- package/dist/{chunk-k7zhd1n9.js → chunk-fz3xtmax.js} +3 -6
- package/dist/{chunk-x467jkr2.js → chunk-g3vt8j66.js} +3 -3
- package/dist/{chunk-wjrh437v.js → chunk-g8j9w65z.js} +25 -25
- package/dist/{chunk-2r0xe849.js → chunk-gat2rqe3.js} +2 -2
- package/dist/{chunk-1cp4tssa.js → chunk-gbz90cv0.js} +29 -29
- package/dist/{chunk-pgzra72s.js → chunk-gk4qt842.js} +1 -1
- package/dist/{chunk-0ftxzg6b.js → chunk-gm93y7fr.js} +4 -4
- package/dist/{chunk-j67j0q8e.js → chunk-gtyc70v3.js} +31 -31
- package/dist/{chunk-ccpnm053.js → chunk-gz78s9g7.js} +4 -12
- package/dist/{chunk-1x33yqwv.js → chunk-h097dbka.js} +12 -17
- package/dist/{chunk-g9rfhsrg.js → chunk-h82jhs55.js} +27 -30
- package/dist/{chunk-crrygp6w.js → chunk-h9sg6p3n.js} +50 -41
- package/dist/{chunk-0v6nwehr.js → chunk-hafb4dd5.js} +3 -3
- package/dist/{chunk-w3hh65pc.js → chunk-hk680c8v.js} +1 -1
- package/dist/{chunk-ygps2yzm.js → chunk-hqzh5gj7.js} +2 -2
- package/dist/{chunk-nvyayxg0.js → chunk-hs3svh16.js} +2 -2
- package/dist/{chunk-ws23ec48.js → chunk-hs6ef6rn.js} +31 -31
- package/dist/{chunk-bm4zs1ey.js → chunk-hv3kvkak.js} +1 -1
- package/dist/{chunk-6j53g6b7.js → chunk-hx4rsg90.js} +450 -765
- package/dist/{chunk-rtfaxrgn.js → chunk-hxkjw3ze.js} +28 -28
- package/dist/{chunk-vy3ymppm.js → chunk-jefhpktc.js} +3 -3
- package/dist/{chunk-g7e0x5ps.js → chunk-k04vcf1j.js} +25 -25
- package/dist/{chunk-39pep784.js → chunk-k1ykjp3a.js} +25 -25
- package/dist/{chunk-0x1h010f.js → chunk-k31kre8q.js} +33 -32
- package/dist/{chunk-b20ya4fm.js → chunk-k840zqh9.js} +17 -17
- package/dist/{chunk-9q08s5jb.js → chunk-k8n9ccw9.js} +2 -2
- package/dist/{chunk-42tbpab3.js → chunk-k9fq0b0p.js} +33 -33
- package/dist/{chunk-awktpdj2.js → chunk-kbsg78a2.js} +26 -26
- package/dist/{chunk-rnpzn3ta.js → chunk-kcyjy5xm.js} +26 -26
- package/dist/{chunk-ydqv268k.js → chunk-keh8g5s4.js} +25 -25
- package/dist/{chunk-hadfe3zm.js → chunk-kg0qj6wr.js} +4 -4
- package/dist/{chunk-ss3gcwt8.js → chunk-ks8085nc.js} +1 -1
- package/dist/{chunk-a9t328ze.js → chunk-kw569tcv.js} +1 -1
- package/dist/{chunk-71tg4ah6.js → chunk-kxnysa9r.js} +4 -4
- package/dist/{chunk-0f0krwqd.js → chunk-m1axrn8w.js} +32 -32
- package/dist/{chunk-67k6y6sx.js → chunk-m3af8apr.js} +24 -54
- package/dist/{chunk-tz6g7907.js → chunk-m64yv2y0.js} +39 -41
- package/dist/{chunk-d9q04mc9.js → chunk-mbq17qwc.js} +5 -5
- package/dist/{chunk-dcj7m5pd.js → chunk-me221fnz.js} +25 -25
- package/dist/{chunk-0vfyxe04.js → chunk-mfsg67f4.js} +1 -1
- package/dist/{chunk-fvchxg7c.js → chunk-mgdqb67t.js} +4 -4
- package/dist/{chunk-hnjaedaa.js → chunk-mk3eatzp.js} +28 -28
- package/dist/{chunk-1j4w27aj.js → chunk-mw4pkrhb.js} +3 -3
- package/dist/{chunk-vzemy9p2.js → chunk-mz54mwcm.js} +28 -28
- package/dist/{chunk-h1q62w9b.js → chunk-n48pdt6g.js} +3 -3
- package/dist/{chunk-d7nnxg9e.js → chunk-n6enq39f.js} +37 -37
- package/dist/{chunk-sve527ec.js → chunk-n820cs8x.js} +2 -2
- package/dist/{chunk-z0npj10a.js → chunk-nej6tppj.js} +4 -6
- package/dist/{chunk-j9dwehfy.js → chunk-nh12n4bh.js} +2 -2
- package/dist/{chunk-09c7zbha.js → chunk-nr314e0d.js} +5 -5
- package/dist/{chunk-3bwpr51s.js → chunk-nr6yeqg9.js} +3 -3
- package/dist/{chunk-nv2g7kqb.js → chunk-nsth4egq.js} +32 -28
- package/dist/{chunk-bavt4d1a.js → chunk-nsx63tpq.js} +1 -1
- package/dist/{chunk-9cvrchzr.js → chunk-nw1pq2at.js} +1 -1
- package/dist/{chunk-823jkeqf.js → chunk-p0580tk6.js} +26 -26
- package/dist/{chunk-hyk17mxm.js → chunk-p0kfxg23.js} +27 -27
- package/dist/{chunk-v31etvwf.js → chunk-p940kef5.js} +25 -25
- package/dist/{chunk-t32dbdts.js → chunk-p9pbmsh1.js} +30 -30
- package/dist/{chunk-cg31rs9z.js → chunk-phebstzk.js} +26 -26
- package/dist/{chunk-wjdayz24.js → chunk-pptkgmn7.js} +1 -1
- package/dist/{chunk-m9h3teqm.js → chunk-pxz1x6kh.js} +3 -3
- package/dist/{chunk-0e923q9e.js → chunk-q0aaftyt.js} +2 -2
- package/dist/{chunk-0fgy0a2d.js → chunk-q5f19xja.js} +25 -25
- package/dist/{chunk-6fj6gfav.js → chunk-q5sy5h1w.js} +28 -28
- package/dist/{chunk-p2cv4ef0.js → chunk-q6caans4.js} +27 -27
- package/dist/{chunk-rzkybj9n.js → chunk-q739gaap.js} +31 -41
- package/dist/{chunk-q1tk35hj.js → chunk-q8n4x9kw.js} +4 -4
- package/dist/{chunk-0zccbj4r.js → chunk-q9jgf0an.js} +25 -25
- package/dist/{chunk-f478jc4c.js → chunk-qckzcfcp.js} +3 -3
- package/dist/{chunk-6zctverb.js → chunk-qd0ga24g.js} +3 -3
- package/dist/{chunk-vbc622dg.js → chunk-qfjfx6yb.js} +28 -34
- package/dist/{chunk-5s9zywdh.js → chunk-qj6admze.js} +4 -4
- package/dist/{chunk-ps6w3af1.js → chunk-qjv1t29g.js} +25 -25
- package/dist/{chunk-g05nms9h.js → chunk-qsqdaj65.js} +12 -6
- package/dist/{chunk-jqdfj5r0.js → chunk-qsrqzd71.js} +26 -26
- package/dist/{chunk-14ed0z0n.js → chunk-r34bn98d.js} +448 -333
- package/dist/{chunk-3n2zxf7j.js → chunk-r6rma3r3.js} +4 -4
- package/dist/{chunk-yjt3sgjs.js → chunk-ra7g8h1f.js} +28 -28
- package/dist/{chunk-zgrdt130.js → chunk-rg5hp66e.js} +7 -3
- package/dist/{chunk-f1ax7nvc.js → chunk-rmqha52m.js} +25 -25
- package/dist/{chunk-6wnv7pvf.js → chunk-rq6mrzb1.js} +85 -85
- package/dist/{chunk-ae0pyyzd.js → chunk-rs7bqp82.js} +25 -25
- package/dist/{chunk-fjc6m366.js → chunk-s45v4e5b.js} +25 -25
- package/dist/{chunk-rr02mk1q.js → chunk-s54nb94b.js} +1 -1
- package/dist/{chunk-y5gs640e.js → chunk-s8s5fbgx.js} +87 -89
- package/dist/{chunk-c4j1fctq.js → chunk-sa0ckby8.js} +2 -2
- package/dist/{chunk-kjqpx8kt.js → chunk-scs3m9tx.js} +43 -94
- package/dist/{chunk-fj2cq7s4.js → chunk-sjgmqp2w.js} +1 -1
- package/dist/{chunk-ssczwcf7.js → chunk-srmck8jr.js} +25 -25
- package/dist/{chunk-43pkxev1.js → chunk-sy8a49a7.js} +2 -2
- package/dist/{chunk-563qvm6y.js → chunk-sz157krv.js} +5 -5
- package/dist/{chunk-dgz3j4vs.js → chunk-t5em6b88.js} +5 -5
- package/dist/{chunk-je0n4kr7.js → chunk-t9m3ynjv.js} +32 -43
- package/dist/{chunk-f6bbf75e.js → chunk-tcpzqhch.js} +26 -26
- package/dist/{chunk-xq2yjg05.js → chunk-th02syc4.js} +2 -2
- package/dist/{chunk-0fhmr0w0.js → chunk-tj8vee5h.js} +25 -25
- package/dist/{chunk-e1pt9qq3.js → chunk-tt8q5jqt.js} +3 -3
- package/dist/{chunk-fk5rrpbs.js → chunk-twppwq9t.js} +6 -6
- package/dist/{chunk-k8hqc8kk.js → chunk-v45x0kzq.js} +3 -3
- package/dist/{chunk-ctv9nhb5.js → chunk-v8kvm848.js} +27 -31
- package/dist/{chunk-vrjk4ey8.js → chunk-vcn8ntbt.js} +1 -1
- package/dist/{chunk-5zvszqae.js → chunk-vgp7ftmh.js} +26 -26
- package/dist/{chunk-fzw6qvhh.js → chunk-vmw0f2vb.js} +1 -1
- package/dist/{chunk-sfkan82x.js → chunk-vn4g4kzp.js} +26 -30
- package/dist/{chunk-kfhkg7qp.js → chunk-vphcxpa0.js} +2 -2
- package/dist/{chunk-0bdvjksk.js → chunk-vxrvxpk6.js} +26 -26
- package/dist/{chunk-j02knw02.js → chunk-w38bdthg.js} +25 -25
- package/dist/{chunk-95m5b0fy.js → chunk-w55k75ab.js} +6 -6
- package/dist/{chunk-0hkfswxx.js → chunk-w5ne5kr5.js} +25 -25
- package/dist/{chunk-3vp3npqs.js → chunk-wf85md09.js} +26 -26
- package/dist/{chunk-6jr014y7.js → chunk-wjsqsgvr.js} +1 -1
- package/dist/{chunk-f6etzstn.js → chunk-wkfq88s2.js} +25 -25
- package/dist/{chunk-j39n8136.js → chunk-wmejnje8.js} +34 -11
- package/dist/{chunk-5t8rj3qk.js → chunk-wqkdzceb.js} +26 -26
- package/dist/{chunk-entm41av.js → chunk-wtxd6zqw.js} +5 -8
- package/dist/{chunk-7tzsnskf.js → chunk-wvc5h7ep.js} +8 -18
- package/dist/{chunk-f6mtzdnc.js → chunk-x38a88r9.js} +2 -2
- package/dist/{chunk-5k0bqs70.js → chunk-x5tx9xjq.js} +28 -28
- package/dist/{chunk-khwsewb1.js → chunk-x8jmvzma.js} +2 -2
- package/dist/{chunk-hbwv4pg2.js → chunk-xckfwab3.js} +7 -5
- package/dist/{chunk-c728egv6.js → chunk-xdzskw1y.js} +3 -3
- package/dist/{chunk-7h0rfam8.js → chunk-xn2dy3ff.js} +6 -3
- package/dist/{chunk-3aem7zks.js → chunk-xpf0ymhb.js} +3 -3
- package/dist/{chunk-7d4qj7x6.js → chunk-xq6p48ky.js} +25 -25
- package/dist/{chunk-q2v1ets7.js → chunk-xt2bqzxe.js} +2 -2
- package/dist/{chunk-nza6ynqp.js → chunk-y417hrr3.js} +35 -35
- package/dist/{chunk-dnhmt0sr.js → chunk-y4cb00jx.js} +26 -26
- package/dist/{chunk-1bq60sj9.js → chunk-y6czm2zy.js} +4 -4
- package/dist/{chunk-3nc53wc5.js → chunk-y7ag4tfw.js} +27 -27
- package/dist/{chunk-ep8gv0kh.js → chunk-yh5mx1xd.js} +1 -1
- package/dist/{chunk-b7ers7bt.js → chunk-ynnaxrvh.js} +28 -28
- package/dist/{chunk-n9a6nfb9.js → chunk-yzdsedpf.js} +25 -25
- package/dist/{chunk-cyjw15hx.js → chunk-yzne8ytc.js} +8 -8
- package/dist/{chunk-3p2a8cpm.js → chunk-z1xsp1ja.js} +133 -46
- package/dist/{chunk-9d2vdwte.js → chunk-z39yj8k7.js} +26 -26
- package/dist/{chunk-5qwpmkmq.js → chunk-z3fy2b85.js} +25 -25
- package/dist/{chunk-jtgqqwn4.js → chunk-z3h3135b.js} +27 -27
- package/dist/{chunk-zzyjmv18.js → chunk-zaz2gasg.js} +27 -29
- package/dist/{chunk-37vs8xyg.js → chunk-zbz2njft.js} +25 -25
- package/dist/{chunk-5m91jbvf.js → chunk-ze330qed.js} +1 -1
- package/dist/{chunk-nznt5ava.js → chunk-zg49xts1.js} +27 -30
- package/dist/{chunk-82n8rzw3.js → chunk-zhy65y6c.js} +2 -2
- package/dist/{chunk-d12hy4az.js → chunk-zj2k6w98.js} +27 -27
- package/dist/{chunk-km2hp5am.js → chunk-zm6f40ah.js} +26 -29
- package/dist/{chunk-1ga8essc.js → chunk-zv55yge8.js} +5 -5
- package/dist/{chunk-0wf4mnzq.js → chunk-zvdp16j4.js} +34 -37
- package/dist/{chunk-4q3p3v9n.js → chunk-zvr93wd4.js} +29 -34
- package/dist/{chunk-4r6e6awv.js → chunk-zxcwc1br.js} +2 -2
- package/dist/{chunk-yny74qhh.js → chunk-zxsteqwm.js} +1 -1
- package/dist/cli.js +27 -27
- package/package.json +1 -1
package/README.en.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# RedScope AI
|
|
2
|
+
|
|
3
|
+
English | [中文](README.md)
|
|
4
|
+
|
|
5
|
+
[](https://github.com/996icu/996.ICU/blob/master/LICENSE)
|
|
6
|
+
[](https://996.icu)
|
|
7
|
+
[](https://github.com/redscope-ai/redscope-ai/issues)
|
|
8
|
+
[](https://github.com/redscope-ai/redscope-ai/stargazers)
|
|
9
|
+
|
|
10
|
+
RedScope AI is a security-focused AI CLI for penetration testing, asset reconnaissance, threat tracing, and red-team orchestration. It is built with Bun, TypeScript, React/Ink, MCP tooling, multiple model providers, plugins, a self-hostable remote-control server, and a controlled security workflow suite.
|
|
11
|
+
|
|
12
|
+
> Use RedScope AI only on targets, assets, logs, and repositories you are authorized to test. The security-suite workflow is designed around scope files, approvals, rate limits, evidence handling, and auditable reporting.
|
|
13
|
+
|
|
14
|
+
## Contents
|
|
15
|
+
|
|
16
|
+
- [What It Does](#what-it-does)
|
|
17
|
+
- [Install](#install)
|
|
18
|
+
- [Model Configuration](#model-configuration)
|
|
19
|
+
- [Usage](#usage)
|
|
20
|
+
- [Security Workflow](#security-workflow)
|
|
21
|
+
- [Architecture Flow](#architecture-flow)
|
|
22
|
+
- [Tech Stack](#tech-stack)
|
|
23
|
+
- [Documentation](#documentation)
|
|
24
|
+
- [Sponsor](#sponsor)
|
|
25
|
+
|
|
26
|
+
## What It Does
|
|
27
|
+
|
|
28
|
+
- Interactive AI terminal assistant: `redscope`
|
|
29
|
+
- Headless and pipeline mode: `redscope -p "..." --output-format json`
|
|
30
|
+
- Multi-provider model runtime: Anthropic, OpenAI-compatible endpoints, Gemini, Grok, Bedrock, Vertex, Foundry
|
|
31
|
+
- MCP extension layer: stdio, SSE, HTTP, WebSocket, plugin-provided MCP, Chrome and Computer Use integrations
|
|
32
|
+
- Security workflow suite: controlled tool installation, scope validation, profile planning/execution, report normalization, observability memory, delivery packages
|
|
33
|
+
- Remote control: self-hosted Remote Control Server plus ACP/Bridge-related integrations
|
|
34
|
+
- Extensibility: plugin marketplace, custom agents, slash commands, hooks, layered settings
|
|
35
|
+
|
|
36
|
+
## Install
|
|
37
|
+
|
|
38
|
+
Requirements:
|
|
39
|
+
|
|
40
|
+
- Node.js/npm
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm i -g @redscope-ai/redscope
|
|
44
|
+
redscope --version
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
When developing or debugging this repository from source, install dependencies and build with Bun:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
bun install
|
|
51
|
+
bun run build
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Development mode:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
bun run dev
|
|
58
|
+
bun run dev:inspect
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Common checks:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
bun run typecheck
|
|
65
|
+
bun test
|
|
66
|
+
bun run test:all
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Model Configuration
|
|
70
|
+
|
|
71
|
+
RedScope recommends storing model endpoints, API keys, and default model IDs in the user-level `env.config` file:
|
|
72
|
+
|
|
73
|
+
- Windows: `%USERPROFILE%\.redscope\env.config`
|
|
74
|
+
- macOS/Linux: `~/.redscope/env.config`
|
|
75
|
+
|
|
76
|
+
This repository includes [env.config.example](env.config.example). Copy it to your user config directory and fill in only one provider preset. Shell environment variables override `env.config` for the current process.
|
|
77
|
+
|
|
78
|
+
OpenAI-compatible endpoint:
|
|
79
|
+
|
|
80
|
+
```dotenv
|
|
81
|
+
REDSCOPE_MODEL_PROVIDER=openai
|
|
82
|
+
REDSCOPE_BASE_URL=https://api.openai.com/v1
|
|
83
|
+
REDSCOPE_API_KEY=sk-your-key
|
|
84
|
+
REDSCOPE_MODEL=gpt-4.1
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
DeepSeek:
|
|
88
|
+
|
|
89
|
+
```dotenv
|
|
90
|
+
REDSCOPE_MODEL_PROVIDER=deepseek
|
|
91
|
+
DEEPSEEK_API_KEY=sk-your-key
|
|
92
|
+
DEEPSEEK_MODEL=deepseek-chat
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Gemini:
|
|
96
|
+
|
|
97
|
+
```dotenv
|
|
98
|
+
REDSCOPE_MODEL_PROVIDER=gemini
|
|
99
|
+
GEMINI_API_KEY=your-gemini-key
|
|
100
|
+
GEMINI_MODEL=gemini-2.5-pro
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
See the [usage guide](docs/usage.md#配置文件) for more configuration files and variables.
|
|
104
|
+
|
|
105
|
+
## Usage
|
|
106
|
+
|
|
107
|
+
Start an interactive session:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
redscope
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Pass a prompt directly:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
redscope "Review this repository for security risks"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Run in pipe mode:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
echo "Summarize package.json scripts" | redscope -p
|
|
123
|
+
redscope -p "Return a JSON summary" --output-format json
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Select a model and permission mode:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
redscope --model sonnet --permission-mode acceptEdits
|
|
130
|
+
redscope -p "Generate release notes" --allowedTools "Read,Grep,Glob"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
MCP examples:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
redscope mcp list
|
|
137
|
+
redscope mcp add my-server npx -- -y @my-org/mcp-server
|
|
138
|
+
redscope mcp remove my-server
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Authentication:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
redscope auth login
|
|
145
|
+
redscope auth status --text
|
|
146
|
+
redscope auth logout
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
For the full command reference, see [docs/usage.md](docs/usage.md).
|
|
150
|
+
|
|
151
|
+
## Security Workflow
|
|
152
|
+
|
|
153
|
+
The RedScope security suite follows an authorize, plan, execute, report, and deliver flow. It plans by default and does not run active scanners unless you explicitly pass `--execute --confirm-active` and provide a valid scope file.
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
bun run redscope:profile -- --list
|
|
157
|
+
bun run redscope:workflow -- --profile baseline-url-review --scope tools/authorized-scope.example.json --target https://www.example.com/
|
|
158
|
+
bun run redscope:report -- --latest --profile baseline-url-review
|
|
159
|
+
bun run redscope:observe -- --latest --profile baseline-url-review
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
```mermaid
|
|
163
|
+
flowchart LR
|
|
164
|
+
A["Scope / Rules of Engagement"] --> B["Profile Selection"]
|
|
165
|
+
B --> C["Plan Only by Default"]
|
|
166
|
+
C --> D{"--execute?"}
|
|
167
|
+
D -- "No" --> E["Run Artifacts"]
|
|
168
|
+
D -- "Yes + Confirmation" --> F["Controlled Tool Execution"]
|
|
169
|
+
F --> E
|
|
170
|
+
E --> G["Report Pipeline"]
|
|
171
|
+
G --> H["Observability Memory"]
|
|
172
|
+
G --> I["Delivery Package"]
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Architecture Flow
|
|
176
|
+
|
|
177
|
+
```mermaid
|
|
178
|
+
flowchart TD
|
|
179
|
+
U["User / CI / Pipe"] --> CLI["src/entrypoints/cli.tsx"]
|
|
180
|
+
CLI --> MAIN["src/main.tsx Commander CLI"]
|
|
181
|
+
MAIN --> REPL["React Ink REPL"]
|
|
182
|
+
MAIN --> HEADLESS["Print / JSON / Stream JSON"]
|
|
183
|
+
REPL --> ENGINE["QueryEngine"]
|
|
184
|
+
HEADLESS --> ENGINE
|
|
185
|
+
ENGINE --> API["Provider Adapter"]
|
|
186
|
+
API --> P1["Anthropic"]
|
|
187
|
+
API --> P2["OpenAI Compatible"]
|
|
188
|
+
API --> P3["Gemini / Grok / Cloud"]
|
|
189
|
+
ENGINE --> TOOLS["Builtin Tools + MCP Tools"]
|
|
190
|
+
TOOLS --> FILES["Workspace Files"]
|
|
191
|
+
TOOLS --> SHELL["Shell / PowerShell"]
|
|
192
|
+
TOOLS --> MCP["MCP Servers / Plugins"]
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Tech Stack
|
|
196
|
+
|
|
197
|
+
- Runtime: Bun
|
|
198
|
+
- Language: TypeScript, TSX, ESM
|
|
199
|
+
- CLI: Commander.js
|
|
200
|
+
- Terminal UI: React 19 + Ink fork
|
|
201
|
+
- Build: Bun.build, optional Vite pipeline
|
|
202
|
+
- Test: `bun:test`
|
|
203
|
+
- Lint/Format: Biome
|
|
204
|
+
- Providers: Anthropic SDK, OpenAI-compatible Chat Completions, Gemini, Grok, AWS Bedrock, Google Vertex, Azure Foundry
|
|
205
|
+
- Extensibility: MCP, plugins, custom agents, hooks, slash commands
|
|
206
|
+
- Remote UI: React + Vite + Radix UI in `packages/remote-control-server`
|
|
207
|
+
|
|
208
|
+
## Documentation
|
|
209
|
+
|
|
210
|
+
- [Usage Guide](docs/usage.md)
|
|
211
|
+
- [Tools Security Suite](tools/README.md)
|
|
212
|
+
- [Self-Hosted Remote Control](docs/features/remote-control-self-hosting.md)
|
|
213
|
+
- [MCP Configuration](docs/extensibility/mcp-configuration.mdx)
|
|
214
|
+
- [Permission Model](docs/safety/permission-model.mdx)
|
|
215
|
+
- [External Dependencies](docs/external-dependencies.md)
|
|
216
|
+
|
|
217
|
+
## Sponsor
|
|
218
|
+
|
|
219
|
+
If RedScope AI saves you time, you can support ongoing maintenance:
|
|
220
|
+
|
|
221
|
+
- GitHub Sponsors: [github.com/sponsors/redscope-ai](https://github.com/sponsors/redscope-ai)
|
|
222
|
+
- Issues / Stars: [open an issue](https://github.com/redscope-ai/redscope-ai/issues) or star the repository
|
|
223
|
+
- WeChat / Alipay tips: add QR images at `docs/images/sponsor-wechat.png` and `docs/images/sponsor-alipay.png`, then render them in this section
|
|
224
|
+
|
|
225
|
+
## License
|
|
226
|
+
|
|
227
|
+
This README displays the Anti 996 badge as a labor-value statement. Before publishing, confirm the repository's actual `LICENSE` file and package license metadata.
|