@redscope-ai/redscope 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.en.md +227 -0
  2. package/README.md +227 -0
  3. package/dist/{chunk-0a9hafd6.js → chunk-036f834b.js} +4 -4
  4. package/dist/{chunk-pdbh6mb4.js → chunk-03z007bm.js} +1 -1
  5. package/dist/{chunk-sz7cmg0p.js → chunk-06sz1p1p.js} +23 -23
  6. package/dist/{chunk-vd658a8r.js → chunk-0bd2xpz1.js} +23 -23
  7. package/dist/{chunk-dq5386vr.js → chunk-0bvxx7kk.js} +23 -23
  8. package/dist/{chunk-sz90jhs0.js → chunk-0c67wh3t.js} +23 -23
  9. package/dist/{chunk-v97f7p27.js → chunk-0cpg8qh8.js} +2 -2
  10. package/dist/{chunk-73r0e4zy.js → chunk-0g3eh8kg.js} +26 -26
  11. package/dist/{chunk-6wk3dh1t.js → chunk-0kcbdg3e.js} +25 -25
  12. package/dist/{chunk-qa3df8mx.js → chunk-0mg1t6hr.js} +5 -5
  13. package/dist/{chunk-88c18e2r.js → chunk-0p0wsrb9.js} +24 -24
  14. package/dist/{chunk-ftfv1rr7.js → chunk-0wz570a3.js} +1 -1
  15. package/dist/{chunk-z57v05t0.js → chunk-0z13a78r.js} +2 -2
  16. package/dist/{chunk-gdqtrr9b.js → chunk-120tmt7h.js} +1 -1
  17. package/dist/{chunk-fby80mw1.js → chunk-14sd3grv.js} +3 -3
  18. package/dist/{chunk-b6h5t2bw.js → chunk-15fcqyjv.js} +1 -1
  19. package/dist/{chunk-xqd8sek7.js → chunk-16hc2hjf.js} +24 -24
  20. package/dist/{chunk-5jx3xmwb.js → chunk-16ykwptb.js} +50 -50
  21. package/dist/{chunk-ynddg4k0.js → chunk-1aj2t41p.js} +2 -2
  22. package/dist/{chunk-5cns5ckc.js → chunk-1fc8nbhj.js} +4 -4
  23. package/dist/{chunk-0p12gjh7.js → chunk-1w614kpt.js} +23 -23
  24. package/dist/{chunk-54k3qdfj.js → chunk-1wen8dar.js} +4 -4
  25. package/dist/{chunk-j2vfstyq.js → chunk-221xwc4k.js} +24 -24
  26. package/dist/{chunk-td8tmtxd.js → chunk-23q0bepd.js} +3 -3
  27. package/dist/{chunk-j93yrk0t.js → chunk-24x0sp1j.js} +1 -1
  28. package/dist/{chunk-t41bh398.js → chunk-27qbmcv9.js} +2 -2
  29. package/dist/{chunk-9gbth640.js → chunk-27zgcapj.js} +1 -1
  30. package/dist/{chunk-xxp5mnve.js → chunk-295gf6hp.js} +26 -26
  31. package/dist/{chunk-5t8r33c6.js → chunk-2aeb7pw2.js} +1 -1
  32. package/dist/{chunk-104tfq0e.js → chunk-2f5c8hst.js} +23 -23
  33. package/dist/{chunk-xbjgrc5y.js → chunk-2j01njj0.js} +3 -3
  34. package/dist/{chunk-jqzzyxty.js → chunk-2kz19wy3.js} +23 -23
  35. package/dist/{chunk-etqm5r9t.js → chunk-2xh8v79x.js} +6 -6
  36. package/dist/{chunk-m8v167g7.js → chunk-332wpr5t.js} +23 -23
  37. package/dist/{chunk-nxdtym0r.js → chunk-355ecbty.js} +2 -2
  38. package/dist/{chunk-6fqk1nyd.js → chunk-39mtg69k.js} +1 -1
  39. package/dist/{chunk-b6wthqrh.js → chunk-3apkj8j9.js} +3 -3
  40. package/dist/{chunk-yb2wyq7d.js → chunk-3g7bvgp2.js} +2 -2
  41. package/dist/{chunk-jgncmxwx.js → chunk-3gam18xn.js} +1 -1
  42. package/dist/{chunk-t4r4ymmg.js → chunk-3pdk50ye.js} +2 -2
  43. package/dist/{chunk-dvfpfq1y.js → chunk-3r1f4nb9.js} +31 -31
  44. package/dist/{chunk-49363km2.js → chunk-3v6g9qgv.js} +24 -24
  45. package/dist/{chunk-z8r7rpw1.js → chunk-3yn73eva.js} +3 -3
  46. package/dist/{chunk-d63hynf1.js → chunk-421yegj3.js} +175 -150
  47. package/dist/{chunk-523ks1kz.js → chunk-446rrwzv.js} +23 -23
  48. package/dist/{chunk-ebb4qye7.js → chunk-467w66fx.js} +1 -1
  49. package/dist/{chunk-10vc755g.js → chunk-4b6edzew.js} +2 -2
  50. package/dist/{chunk-z6kb2b1a.js → chunk-4e3x31c9.js} +4 -4
  51. package/dist/{chunk-q5ttyf7q.js → chunk-4gdqn56a.js} +26 -26
  52. package/dist/{chunk-2tfbxs7k.js → chunk-4mmk59bd.js} +2 -2
  53. package/dist/{chunk-cg2j2h4d.js → chunk-4x26rce5.js} +24 -24
  54. package/dist/{chunk-qfxecggv.js → chunk-54gqntpa.js} +1 -1
  55. package/dist/{chunk-rpsjnw2q.js → chunk-54snd7aw.js} +32 -32
  56. package/dist/{chunk-695xzmze.js → chunk-55s1hn26.js} +3 -3
  57. package/dist/{chunk-jppvhrpk.js → chunk-55z891s7.js} +1 -1
  58. package/dist/{chunk-3tvh9ask.js → chunk-56h80trb.js} +5 -5
  59. package/dist/{chunk-tr6mesnp.js → chunk-58wt4m48.js} +23 -23
  60. package/dist/{chunk-t9p2hnze.js → chunk-5d4fyc3y.js} +23 -23
  61. package/dist/{chunk-w60hk3xv.js → chunk-5dtwrtax.js} +8 -8
  62. package/dist/{chunk-m04dm8n6.js → chunk-5eycrht8.js} +24 -24
  63. package/dist/{chunk-g13zbzsa.js → chunk-5pqyshc6.js} +10 -10
  64. package/dist/{chunk-xx6vx8f6.js → chunk-5s2dvnnf.js} +23 -23
  65. package/dist/{chunk-h0r8z7vv.js → chunk-5tkam0h1.js} +2 -2
  66. package/dist/{chunk-w8ry7wbm.js → chunk-5tttr583.js} +23 -23
  67. package/dist/{chunk-eb5m0cje.js → chunk-5xeyth9a.js} +23 -23
  68. package/dist/{chunk-6yedswyz.js → chunk-5yva30am.js} +2 -2
  69. package/dist/{chunk-d0qs0bhj.js → chunk-65b4z2hc.js} +2 -2
  70. package/dist/{chunk-1jcs8jje.js → chunk-666p77sf.js} +23 -23
  71. package/dist/{chunk-yv66t3eg.js → chunk-67006cbc.js} +1 -1
  72. package/dist/{chunk-s6jzsz3n.js → chunk-671txhtq.js} +2 -2
  73. package/dist/{chunk-q15f7rmc.js → chunk-69k6kygz.js} +2 -2
  74. package/dist/{chunk-st31614a.js → chunk-6ezrjes8.js} +5 -5
  75. package/dist/{chunk-013cjfbn.js → chunk-6grhvh8m.js} +25 -25
  76. package/dist/{chunk-f3wwcmqs.js → chunk-6gt42kvj.js} +4 -4
  77. package/dist/{chunk-6vgzgtcq.js → chunk-6hzx0kqr.js} +4 -4
  78. package/dist/{chunk-1816zmwy.js → chunk-6k5ez67k.js} +4 -4
  79. package/dist/{chunk-7br25het.js → chunk-6wthn547.js} +3 -3
  80. package/dist/{chunk-xkbma4az.js → chunk-70cyabpa.js} +1 -1
  81. package/dist/{chunk-pmkmv5xq.js → chunk-75r9z3mk.js} +4 -4
  82. package/dist/{chunk-6eqvbjz1.js → chunk-7fcmqvbz.js} +1 -1
  83. package/dist/{chunk-9jfn86w6.js → chunk-7mys73mz.js} +1 -1
  84. package/dist/{chunk-g9g3r48x.js → chunk-7n9mtd6h.js} +1 -1
  85. package/dist/{chunk-2g80p16a.js → chunk-7nn82y4a.js} +23 -23
  86. package/dist/{chunk-379pafmf.js → chunk-7qew7jy8.js} +1 -1
  87. package/dist/{chunk-5pb1qej3.js → chunk-7v74emt6.js} +23 -23
  88. package/dist/{chunk-e74t64c6.js → chunk-7xsjn6ed.js} +24 -24
  89. package/dist/{chunk-yjq9vesv.js → chunk-847e87x0.js} +5 -5
  90. package/dist/{chunk-8rw4exf2.js → chunk-88dstx77.js} +23 -23
  91. package/dist/{chunk-3vk0gx3f.js → chunk-89yrrbm4.js} +24 -24
  92. package/dist/{chunk-0bnm50r8.js → chunk-8hrc1wfb.js} +23 -23
  93. package/dist/{chunk-yyfhhaj4.js → chunk-8mabxggz.js} +31 -31
  94. package/dist/{chunk-z0bnpkxm.js → chunk-8n99qxye.js} +2 -2
  95. package/dist/{chunk-kg68bm3c.js → chunk-8rtsqyj0.js} +23 -23
  96. package/dist/{chunk-er9d2atp.js → chunk-8w72b8n7.js} +2 -2
  97. package/dist/{chunk-td8k1cy2.js → chunk-94na1xet.js} +2 -2
  98. package/dist/{chunk-x9v59cjd.js → chunk-963mv8y7.js} +29 -29
  99. package/dist/{chunk-62a7ege2.js → chunk-9gmw2hgg.js} +24 -24
  100. package/dist/{chunk-rdxfef3c.js → chunk-9gsd7hq9.js} +24 -24
  101. package/dist/{chunk-hn792grf.js → chunk-9kqnffts.js} +3 -3
  102. package/dist/{chunk-mwj25g37.js → chunk-9phn5khx.js} +1 -1
  103. package/dist/{chunk-g5xsy020.js → chunk-a3chzgp6.js} +26 -26
  104. package/dist/{chunk-6590xf8k.js → chunk-a3px9ec1.js} +25 -25
  105. package/dist/{chunk-x250gdqa.js → chunk-a4jpbt1m.js} +2 -2
  106. package/dist/{chunk-c8sve1h8.js → chunk-a9jm4ykb.js} +24 -24
  107. package/dist/{chunk-tdqsvjmx.js → chunk-aaxz8a5g.js} +1 -1
  108. package/dist/{chunk-9kgpjrjh.js → chunk-ab2nzf9g.js} +2 -2
  109. package/dist/{chunk-x7v777z2.js → chunk-ad48dj0p.js} +24 -24
  110. package/dist/{chunk-1ksgb74k.js → chunk-ad74n91c.js} +24 -24
  111. package/dist/{chunk-fw8hbrnb.js → chunk-akjq2bmp.js} +23 -23
  112. package/dist/{chunk-h922jnmt.js → chunk-am63r8q5.js} +24 -24
  113. package/dist/{chunk-16cag1dr.js → chunk-b0rn9j35.js} +2 -2
  114. package/dist/{chunk-f6egyq4v.js → chunk-b16r8m57.js} +3 -3
  115. package/dist/{chunk-1s89ja0b.js → chunk-b3tykhww.js} +1 -1
  116. package/dist/{chunk-7ffcax4t.js → chunk-b80kvnj3.js} +3 -3
  117. package/dist/{chunk-zdhkmsnc.js → chunk-bazy7696.js} +3 -3
  118. package/dist/{chunk-z3v5rn8e.js → chunk-bbjz65q8.js} +2 -2
  119. package/dist/{chunk-f3qn06sk.js → chunk-bs22gd95.js} +23 -23
  120. package/dist/{chunk-bn9sp37v.js → chunk-bt4jz8p8.js} +3 -3
  121. package/dist/{chunk-9hhw2kfs.js → chunk-bz3k16s2.js} +35 -35
  122. package/dist/{chunk-ncv3dvsr.js → chunk-c20m02k2.js} +27 -27
  123. package/dist/{chunk-qqrpfc4y.js → chunk-c21jsmjg.js} +1 -1
  124. package/dist/{chunk-m514btx2.js → chunk-c4jp71dr.js} +31 -31
  125. package/dist/{chunk-ymf6p35v.js → chunk-c73gzm86.js} +3 -3
  126. package/dist/{chunk-hxnxdefa.js → chunk-cax85b5y.js} +2 -2
  127. package/dist/{chunk-hczknv33.js → chunk-ccw8pse0.js} +1 -1
  128. package/dist/{chunk-frbmkvw3.js → chunk-cfmkc8ha.js} +4 -4
  129. package/dist/{chunk-w6jnm2b8.js → chunk-cpmczx39.js} +4 -4
  130. package/dist/{chunk-2gvh1kgj.js → chunk-cqmsy2s2.js} +343 -414
  131. package/dist/{chunk-1dyyhewf.js → chunk-cszaksy2.js} +24 -24
  132. package/dist/{chunk-jezzx4v0.js → chunk-d15br3ec.js} +3 -3
  133. package/dist/{chunk-ngewr3bg.js → chunk-d5e78pzx.js} +23 -23
  134. package/dist/{chunk-bt9tefv9.js → chunk-d6txmayg.js} +2 -2
  135. package/dist/{chunk-cy4399rn.js → chunk-d9mteq06.js} +24 -24
  136. package/dist/{chunk-5p105eb7.js → chunk-dd89z0aa.js} +9 -9
  137. package/dist/{chunk-486wpvqa.js → chunk-dd9vcswc.js} +3 -3
  138. package/dist/{chunk-cjmw31kd.js → chunk-dfhk2ntg.js} +1 -1
  139. package/dist/{chunk-pnx2erg8.js → chunk-dgbysayg.js} +23 -23
  140. package/dist/{chunk-4n5mx43k.js → chunk-dv8rh387.js} +2 -2
  141. package/dist/{chunk-n956z176.js → chunk-dxa3y9vh.js} +1 -1
  142. package/dist/{chunk-rbe9bvxy.js → chunk-dxh8xx86.js} +24 -24
  143. package/dist/{chunk-2hp9qgpg.js → chunk-dyg4f57z.js} +26 -26
  144. package/dist/{chunk-6bq66tgf.js → chunk-e0vtkfks.js} +25 -25
  145. package/dist/{chunk-0y1717mg.js → chunk-e0wybg90.js} +23 -23
  146. package/dist/{chunk-qp6egmcc.js → chunk-e2vtstkd.js} +1 -1
  147. package/dist/{chunk-x3v28hmm.js → chunk-e30nrxjp.js} +23 -23
  148. package/dist/{chunk-kad1n4nb.js → chunk-e37bqr6g.js} +2 -2
  149. package/dist/{chunk-74rae9nm.js → chunk-ebesh5hz.js} +26 -26
  150. package/dist/{chunk-5eqmp077.js → chunk-eh3zc37z.js} +23 -23
  151. package/dist/{chunk-trmd4gg2.js → chunk-ekty2fdy.js} +4 -4
  152. package/dist/{chunk-1zenc969.js → chunk-es4npmq2.js} +2 -2
  153. package/dist/{chunk-xr1pw3qm.js → chunk-ew39k4e4.js} +1 -1
  154. package/dist/{chunk-6vcejse2.js → chunk-ey68q190.js} +23 -23
  155. package/dist/{chunk-pja8rs75.js → chunk-ezf40808.js} +2 -2
  156. package/dist/{chunk-hmmedbwt.js → chunk-f7tma8gp.js} +1 -1
  157. package/dist/{chunk-yvwv816m.js → chunk-fantdbyf.js} +25 -25
  158. package/dist/{chunk-gfs1qtrf.js → chunk-fcfs8b3t.js} +1 -1
  159. package/dist/{chunk-jep2dbtq.js → chunk-fhcn2wz6.js} +33 -33
  160. package/dist/{chunk-mscdcbx5.js → chunk-fjtzfz1t.js} +1 -1
  161. package/dist/{chunk-5j85cqk8.js → chunk-fxjcm9bp.js} +3 -3
  162. package/dist/{chunk-n59xzept.js → chunk-fyhhtbv5.js} +2 -2
  163. package/dist/{chunk-2g8zs5zr.js → chunk-g0w5w90e.js} +23 -23
  164. package/dist/{chunk-qzb9et4j.js → chunk-g8est5nk.js} +1 -1
  165. package/dist/{chunk-hq6p7kxs.js → chunk-g8nymh97.js} +78 -78
  166. package/dist/{chunk-bm79at54.js → chunk-g8qmawt7.js} +23 -23
  167. package/dist/{chunk-sxthhgtq.js → chunk-gacbt1vp.js} +24 -24
  168. package/dist/{chunk-z9kr1d33.js → chunk-ggdcf448.js} +1 -1
  169. package/dist/{chunk-nnhce0qj.js → chunk-gjvhjywj.js} +1 -1
  170. package/dist/{chunk-hrptc8p9.js → chunk-gk8vxa1h.js} +29 -29
  171. package/dist/{chunk-vsy50d3n.js → chunk-gmrghcqg.js} +2 -2
  172. package/dist/{chunk-gradtbbz.js → chunk-gp6decq8.js} +7 -7
  173. package/dist/{chunk-w96mfvge.js → chunk-grcc3hvf.js} +11 -11
  174. package/dist/{chunk-gbarv3k7.js → chunk-gsgrgg88.js} +1 -1
  175. package/dist/{chunk-33yvkyw0.js → chunk-gw65f5kr.js} +25 -25
  176. package/dist/{chunk-0y8t2zrz.js → chunk-gz2d42y4.js} +24 -24
  177. package/dist/{chunk-naq10fec.js → chunk-h097j67z.js} +3 -3
  178. package/dist/{chunk-xxcmr18s.js → chunk-h4ztym11.js} +4 -4
  179. package/dist/{chunk-qq38zdw8.js → chunk-h5kknb4r.js} +1 -1
  180. package/dist/{chunk-ajwpwxnj.js → chunk-h5zz0vxy.js} +1 -1
  181. package/dist/{chunk-ky13bf33.js → chunk-hem4f4gz.js} +2 -2
  182. package/dist/{chunk-81stzb58.js → chunk-herypewe.js} +15 -15
  183. package/dist/{chunk-hkza0cd7.js → chunk-hmbwmc7q.js} +25 -25
  184. package/dist/{chunk-skqrvfbx.js → chunk-htqfqm8z.js} +23 -23
  185. package/dist/{chunk-ftgcptnt.js → chunk-j1ezfpjx.js} +2 -2
  186. package/dist/{chunk-w5ysbvwj.js → chunk-j1wktfe2.js} +1 -1
  187. package/dist/{chunk-smv9xrkp.js → chunk-j3ta8svw.js} +23 -23
  188. package/dist/{chunk-w8amat34.js → chunk-j8hd6zfs.js} +23 -23
  189. package/dist/{chunk-6gr9yry6.js → chunk-jejvhnkp.js} +23 -23
  190. package/dist/{chunk-2wf4kzn6.js → chunk-jfqzy06p.js} +26 -26
  191. package/dist/{chunk-prr1hp3m.js → chunk-jjjkjjrb.js} +23 -23
  192. package/dist/{chunk-nnj6h7tr.js → chunk-jnb9wjgx.js} +1 -1
  193. package/dist/{chunk-2xfpts3s.js → chunk-js2bptss.js} +1 -1
  194. package/dist/{chunk-g7vjrdnq.js → chunk-js3dkj4e.js} +3 -3
  195. package/dist/{chunk-xyc3rc83.js → chunk-jtnmdy5f.js} +8 -8
  196. package/dist/{chunk-zm1d1g39.js → chunk-jttf1npj.js} +24 -24
  197. package/dist/{chunk-w7vbwv1c.js → chunk-k1gjymwy.js} +24 -24
  198. package/dist/{chunk-a7v94ne1.js → chunk-k4496w4a.js} +23 -23
  199. package/dist/{chunk-5m0wan4r.js → chunk-k6n5g7hc.js} +1 -1
  200. package/dist/{chunk-dpt14kwg.js → chunk-k7xszak2.js} +1 -1
  201. package/dist/{chunk-q2j8w9hh.js → chunk-k8nwt8yq.js} +1 -1
  202. package/dist/{chunk-gphaxbzp.js → chunk-kbv0z6jr.js} +23 -23
  203. package/dist/{chunk-gbaeczfk.js → chunk-krbqgwft.js} +2 -2
  204. package/dist/{chunk-vm8hnwv3.js → chunk-ksrd3ynt.js} +24 -24
  205. package/dist/{chunk-b5q6wcbn.js → chunk-kyvjw1ev.js} +25 -25
  206. package/dist/{chunk-yq9d4f70.js → chunk-m04nccn6.js} +2 -2
  207. package/dist/{chunk-48bjdmpv.js → chunk-m0y0cpwp.js} +1 -1
  208. package/dist/{chunk-y7sc7xhe.js → chunk-m1ssv3qh.js} +23 -23
  209. package/dist/{chunk-vgmhvg0q.js → chunk-m2pwgqsd.js} +3 -3
  210. package/dist/{chunk-81v403z7.js → chunk-m42pxgcb.js} +1 -1
  211. package/dist/{chunk-k5ht0vm5.js → chunk-m8v52bfe.js} +2 -2
  212. package/dist/{chunk-fnfcg4f0.js → chunk-mc2ax0ff.js} +1 -1
  213. package/dist/{chunk-k29gsr13.js → chunk-mfpm6ybz.js} +26 -26
  214. package/dist/{chunk-prg0d45z.js → chunk-mkttdqb0.js} +1 -1
  215. package/dist/{chunk-4d4cxp74.js → chunk-mv6mynna.js} +26 -26
  216. package/dist/{chunk-9253esg2.js → chunk-mva6b6vr.js} +2 -2
  217. package/dist/{chunk-ph3mzdfn.js → chunk-mymg1988.js} +2 -2
  218. package/dist/{chunk-t5qpgf0m.js → chunk-n92fhgcs.js} +24 -24
  219. package/dist/{chunk-30cdkfa4.js → chunk-ncdnfpf9.js} +3 -3
  220. package/dist/{chunk-b7zc3zvs.js → chunk-ned5qknr.js} +1 -1
  221. package/dist/{chunk-v3z07d2h.js → chunk-ned5whgb.js} +3 -3
  222. package/dist/{chunk-vakt3r32.js → chunk-nrbk54ec.js} +23 -23
  223. package/dist/{chunk-vhpx4pxv.js → chunk-nt8g78cp.js} +33 -33
  224. package/dist/{chunk-9rk3smhd.js → chunk-nxgrp26k.js} +1 -1
  225. package/dist/{chunk-zdscb3n0.js → chunk-p07wrh8v.js} +2 -2
  226. package/dist/{chunk-22eyb58s.js → chunk-p3rceszn.js} +2 -2
  227. package/dist/{chunk-qs2nm8jg.js → chunk-p47gqnyf.js} +23 -23
  228. package/dist/{chunk-gw6e7zra.js → chunk-p5c18v29.js} +2 -2
  229. package/dist/{chunk-4fdve91c.js → chunk-p7e3rc2s.js} +2 -2
  230. package/dist/{chunk-wcjjbz3r.js → chunk-p8jpw7d9.js} +79 -79
  231. package/dist/{chunk-asjrf25n.js → chunk-pb9v47qr.js} +1 -1
  232. package/dist/{chunk-7fbjry42.js → chunk-pkq1xaac.js} +25 -25
  233. package/dist/{chunk-gf6znhgw.js → chunk-pmtz5b93.js} +28 -28
  234. package/dist/{chunk-3az1exz0.js → chunk-pn23dh3d.js} +1 -1
  235. package/dist/{chunk-4dhc8vjw.js → chunk-pna15m0n.js} +23 -23
  236. package/dist/{chunk-5crza5wp.js → chunk-pnzmwkqs.js} +29 -29
  237. package/dist/{chunk-a29v6bza.js → chunk-pvrbk0yt.js} +5 -5
  238. package/dist/{chunk-8rqw4xtz.js → chunk-pz64f1f4.js} +23 -23
  239. package/dist/{chunk-p6g3s1r6.js → chunk-q2ypsn4z.js} +2 -2
  240. package/dist/{chunk-faejxgvr.js → chunk-qbgf1yhh.js} +23 -23
  241. package/dist/{chunk-cs7m7zkb.js → chunk-qdg8cqsf.js} +4 -4
  242. package/dist/{chunk-h4q5e1gt.js → chunk-qh6k86c5.js} +23 -23
  243. package/dist/{chunk-aw8japnt.js → chunk-qmgjr273.js} +24 -24
  244. package/dist/{chunk-jjhkr00g.js → chunk-qn0daty2.js} +1 -1
  245. package/dist/{chunk-9aqxhw4p.js → chunk-qny4m4tt.js} +24 -24
  246. package/dist/{chunk-w3vh8trc.js → chunk-qpa41hme.js} +25 -25
  247. package/dist/{chunk-n7wf123a.js → chunk-qq94d59n.js} +2 -2
  248. package/dist/{chunk-mnmwq199.js → chunk-qs2armyz.js} +16 -16
  249. package/dist/{chunk-egwr06fz.js → chunk-qx7t79zw.js} +5 -5
  250. package/dist/{chunk-5nnd31af.js → chunk-r5pyjf4c.js} +134 -134
  251. package/dist/{chunk-hyzk3zw4.js → chunk-r6b6a4wn.js} +23 -23
  252. package/dist/{chunk-c7akrakx.js → chunk-rft32jb4.js} +23 -23
  253. package/dist/{chunk-6fwec1xp.js → chunk-rpdh02rm.js} +1 -1
  254. package/dist/{chunk-4ntj80qy.js → chunk-rq6v7t1w.js} +26 -26
  255. package/dist/{chunk-2ra8mt9x.js → chunk-rrsa4j80.js} +23 -23
  256. package/dist/{chunk-rjn4rnet.js → chunk-rspn97eg.js} +24 -24
  257. package/dist/{chunk-py5b1aep.js → chunk-rtcm253f.js} +2 -2
  258. package/dist/{chunk-bahmwnsn.js → chunk-rxjjktqv.js} +29 -29
  259. package/dist/{chunk-2ws1k5sw.js → chunk-s2t5anwv.js} +174 -107
  260. package/dist/{chunk-n2e6p5ch.js → chunk-s4vr04qe.js} +7 -7
  261. package/dist/{chunk-r9hkv3jc.js → chunk-s5ftgn0c.js} +2 -2
  262. package/dist/{chunk-rz0swd7z.js → chunk-setxbyxk.js} +1 -1
  263. package/dist/{chunk-vb54rdb3.js → chunk-sev48qbb.js} +1 -1
  264. package/dist/{chunk-34md8b93.js → chunk-shehhtmm.js} +24 -24
  265. package/dist/{chunk-zezatygx.js → chunk-sr6gzsr9.js} +27 -27
  266. package/dist/{chunk-d8wb2591.js → chunk-sv49wzz9.js} +26 -26
  267. package/dist/{chunk-85b154cx.js → chunk-szcnh73g.js} +23 -23
  268. package/dist/{chunk-b98mfy3w.js → chunk-t19akzt2.js} +3 -3
  269. package/dist/{chunk-7bkmxa2j.js → chunk-t2fj3szq.js} +36 -36
  270. package/dist/{chunk-kjbzeeq3.js → chunk-t58vyxsc.js} +24 -24
  271. package/dist/{chunk-5p2f741z.js → chunk-t80rws22.js} +4 -4
  272. package/dist/{chunk-xb8ts07v.js → chunk-tcmeaj2t.js} +2 -2
  273. package/dist/{chunk-7z0vyp8n.js → chunk-tprq35e6.js} +5 -5
  274. package/dist/{chunk-chp3mwbs.js → chunk-trgn06h5.js} +23 -23
  275. package/dist/{chunk-h8czbwvw.js → chunk-ttkzr2wm.js} +27 -27
  276. package/dist/{chunk-jysdz43m.js → chunk-twcmxmab.js} +23 -23
  277. package/dist/{chunk-pygcvnyw.js → chunk-tzcrwnrf.js} +2 -2
  278. package/dist/{chunk-q776bz31.js → chunk-v1rct9rt.js} +2 -2
  279. package/dist/{chunk-7hd8avq8.js → chunk-v29vt02a.js} +24 -24
  280. package/dist/{chunk-zvm7r1p5.js → chunk-v3cvnkwf.js} +23 -23
  281. package/dist/{chunk-amcj797c.js → chunk-v5aem470.js} +2 -2
  282. package/dist/{chunk-gr57520m.js → chunk-v9h2j8jz.js} +3 -3
  283. package/dist/{chunk-yqbv4s1f.js → chunk-vex1cb1c.js} +3 -3
  284. package/dist/{chunk-qh6y02pq.js → chunk-vjxys8eq.js} +23 -23
  285. package/dist/{chunk-edfq419a.js → chunk-vk9xcryd.js} +1 -1
  286. package/dist/{chunk-kchqccs2.js → chunk-vt2ft9ke.js} +24 -24
  287. package/dist/{chunk-j2e5mpns.js → chunk-vyadhr4q.js} +29 -29
  288. package/dist/{chunk-rvyxw49b.js → chunk-vz5808gs.js} +23 -23
  289. package/dist/{chunk-a8g3k03j.js → chunk-w56bkvrw.js} +25 -25
  290. package/dist/{chunk-xpzvyj1j.js → chunk-wcdja0c6.js} +1 -1
  291. package/dist/{chunk-yptr92na.js → chunk-wfnrfy93.js} +1 -1
  292. package/dist/{chunk-h2mw6jwy.js → chunk-wnabyty7.js} +17 -17
  293. package/dist/{chunk-rbvm6bfv.js → chunk-wsnxtggw.js} +1 -1
  294. package/dist/{chunk-fyqewn2p.js → chunk-wv68xgt9.js} +26 -26
  295. package/dist/{chunk-y17pjekh.js → chunk-xdv7gpxj.js} +24 -24
  296. package/dist/{chunk-1b1fbrk4.js → chunk-xfgc43at.js} +3 -3
  297. package/dist/{chunk-aednpbab.js → chunk-xfxd82q0.js} +23 -23
  298. package/dist/{chunk-5nx8vatc.js → chunk-xgmvp9gc.js} +23 -23
  299. package/dist/{chunk-csy6z510.js → chunk-xhe9b46n.js} +23 -23
  300. package/dist/{chunk-tcyqt0wz.js → chunk-xs3099pt.js} +31 -31
  301. package/dist/{chunk-x8pae4tf.js → chunk-xw7pszec.js} +32 -32
  302. package/dist/{chunk-q3v5prf1.js → chunk-y0f5vezg.js} +7 -7
  303. package/dist/{chunk-636ev6h8.js → chunk-yddn2bf8.js} +23 -23
  304. package/dist/{chunk-92c8gmhd.js → chunk-yfrh33eq.js} +30 -30
  305. package/dist/{chunk-z38ekz85.js → chunk-ymqv4hyz.js} +5 -5
  306. package/dist/{chunk-48yb88gq.js → chunk-yz2aj1m9.js} +23 -23
  307. package/dist/{chunk-xy8n48n8.js → chunk-z2fr0c07.js} +23 -23
  308. package/dist/{chunk-w49sckwe.js → chunk-z2kd8w3f.js} +25 -25
  309. package/dist/{chunk-qrc16f5d.js → chunk-z4psnrvd.js} +1 -1
  310. package/dist/{chunk-h8q08rtr.js → chunk-z8trftt3.js} +36 -36
  311. package/dist/{chunk-9asmys7j.js → chunk-zaqfb3tz.js} +1 -1
  312. package/dist/{chunk-yptna5wd.js → chunk-zckw0dvy.js} +23 -23
  313. package/dist/{chunk-b0zfnbt3.js → chunk-zeebdzqf.js} +3 -3
  314. package/dist/{chunk-xycdyfp6.js → chunk-zmqdf4tj.js} +29 -29
  315. package/dist/{chunk-33vjfmdb.js → chunk-zpqfyz07.js} +1 -1
  316. package/dist/{chunk-pnwv8156.js → chunk-zq4q74e3.js} +2 -2
  317. package/dist/{chunk-0czbmrsj.js → chunk-zy4bshw5.js} +3 -3
  318. package/dist/cli.js +27 -27
  319. package/package.json +3 -2
  320. package/tools/authorized-egress.referee-provided.json +895 -0
package/README.en.md ADDED
@@ -0,0 +1,227 @@
1
+ # RedScope AI
2
+
3
+ English | [中文](README.md)
4
+
5
+ [![license: Anti 996](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
6
+ [![link: 996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)
7
+ [![issues](https://img.shields.io/github/issues/redscope-ai/redscope-ai?label=issues)](https://github.com/redscope-ai/redscope-ai/issues)
8
+ [![stars](https://img.shields.io/github/stars/redscope-ai/redscope-ai?label=stars)](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.
package/README.md ADDED
@@ -0,0 +1,227 @@
1
+ # RedScope AI
2
+
3
+ [English](README.en.md) | 中文
4
+
5
+ [![license: Anti 996](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
6
+ [![link: 996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)
7
+ [![issues](https://img.shields.io/github/issues/redscope-ai/redscope-ai?label=issues)](https://github.com/redscope-ai/redscope-ai/issues)
8
+ [![stars](https://img.shields.io/github/stars/redscope-ai/redscope-ai?label=stars)](https://github.com/redscope-ai/redscope-ai/stargazers)
9
+
10
+ RedScope AI 是一个面向安全团队、渗透测试、资产侦察、威胁追踪和红队编排的 AI CLI。它基于 Bun、TypeScript、React/Ink 和 MCP 工具生态构建,提供交互式终端助手、非交互式管道模式、多模型 Provider、插件系统、远程控制服务和一套受控的安全工作流脚本。
11
+
12
+ > 仅在你拥有授权的目标、资产、日志或代码仓库上使用 RedScope AI。项目内置的安全套件强调 scope、审批、速率限制、证据留存和可审计流程,不鼓励也不支持未授权扫描。
13
+
14
+ ## 目录
15
+
16
+ - [项目能力](#项目能力)
17
+ - [快速安装](#快速安装)
18
+ - [配置模型](#配置模型)
19
+ - [基本使用](#基本使用)
20
+ - [安全工作流](#安全工作流)
21
+ - [项目流程](#项目流程)
22
+ - [技术栈](#技术栈)
23
+ - [文档](#文档)
24
+ - [赞助打赏](#赞助打赏)
25
+
26
+ ## 项目能力
27
+
28
+ - 交互式 AI 编程与安全分析终端:`redscope`
29
+ - 管道/自动化输出:`redscope -p "..." --output-format json`
30
+ - 多 Provider:Anthropic、OpenAI 兼容端点、Gemini、Grok、Bedrock、Vertex、Foundry
31
+ - MCP 扩展:stdio、SSE、HTTP、WebSocket、插件内置 MCP、Chrome/Computer Use 集成
32
+ - 安全工作流:工具安装、scope 校验、profile 计划/执行、报告归一化、观测记忆、交付包
33
+ - 远程控制:自托管 Remote Control Server 和 ACP/Bridge 相关能力
34
+ - 插件与 Agent:插件 marketplace、自定义 agent、slash command、hooks、settings 分层配置
35
+
36
+ ## 快速安装
37
+
38
+ 要求:
39
+
40
+ - Node.js/npm
41
+
42
+ ```bash
43
+ npm i -g @redscope-ai/redscope
44
+ redscope --version
45
+ ```
46
+
47
+ 从源码开发或调试本仓库时,再使用 Bun 安装依赖和构建:
48
+
49
+ ```bash
50
+ bun install
51
+ bun run build
52
+ ```
53
+
54
+ 开发模式:
55
+
56
+ ```bash
57
+ bun run dev
58
+ bun run dev:inspect
59
+ ```
60
+
61
+ 常用检查:
62
+
63
+ ```bash
64
+ bun run typecheck
65
+ bun test
66
+ bun run test:all
67
+ ```
68
+
69
+ ## 配置模型
70
+
71
+ RedScope 推荐把模型端点、API Key 和默认模型写入用户配置目录的 `env.config`,默认路径是:
72
+
73
+ - Windows: `%USERPROFILE%\.redscope\env.config`
74
+ - macOS/Linux: `~/.redscope/env.config`
75
+
76
+ 仓库提供了 [env.config.example](env.config.example),可复制后按需填写。`env.config` 会在启动时加载,shell 中临时设置的环境变量优先级更高。
77
+
78
+ OpenAI 兼容端点示例:
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
+ 更多配置项见 [项目使用文档](docs/usage.md#配置文件)。
104
+
105
+ ## 基本使用
106
+
107
+ 启动交互式会话:
108
+
109
+ ```bash
110
+ redscope
111
+ ```
112
+
113
+ 直接传入提示词:
114
+
115
+ ```bash
116
+ redscope "帮我审查这个仓库的安全风险"
117
+ ```
118
+
119
+ 管道模式:
120
+
121
+ ```bash
122
+ echo "总结 package.json 的脚本" | redscope -p
123
+ redscope -p "输出 JSON 摘要" --output-format json
124
+ ```
125
+
126
+ 指定模型和权限模式:
127
+
128
+ ```bash
129
+ redscope --model sonnet --permission-mode acceptEdits
130
+ redscope -p "生成一份发布说明" --allowedTools "Read,Grep,Glob"
131
+ ```
132
+
133
+ MCP 示例:
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
+ 认证与状态:
142
+
143
+ ```bash
144
+ redscope auth login
145
+ redscope auth status --text
146
+ redscope auth logout
147
+ ```
148
+
149
+ 完整命令参考见 [docs/usage.md](docs/usage.md)。
150
+
151
+ ## 安全工作流
152
+
153
+ RedScope 的安全套件采用先授权、再计划、再执行、最后归档的流程。默认只生成计划,不会运行主动扫描;主动或受限 profile 必须显式传入 `--execute --confirm-active` 并通过 scope 文件校验。
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
+ ## 项目流程
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
+ ## 技术栈
196
+
197
+ - Runtime: Bun
198
+ - Language: TypeScript, TSX, ESM
199
+ - CLI: Commander.js
200
+ - Terminal UI: React 19 + Ink fork
201
+ - Build: Bun.build, Vite alternative 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
+ ## 文档
209
+
210
+ - [项目使用文档](docs/usage.md)
211
+ - [Tools 安全套件说明](tools/README.md)
212
+ - [远程控制自托管](docs/features/remote-control-self-hosting.md)
213
+ - [MCP 配置](docs/extensibility/mcp-configuration.mdx)
214
+ - [权限模型](docs/safety/permission-model.mdx)
215
+ - [外部依赖](docs/external-dependencies.md)
216
+
217
+ ## 赞助打赏
218
+
219
+ 如果 RedScope AI 帮你节省了时间,欢迎支持项目继续维护:
220
+
221
+ - GitHub Sponsors: [github.com/sponsors/redscope-ai](https://github.com/sponsors/redscope-ai)
222
+ - Issues / Stars: [提交建议](https://github.com/redscope-ai/redscope-ai/issues) 或给项目点 Star
223
+ - 微信/支付宝打赏:将二维码图片放到 `docs/images/sponsor-wechat.png` 和 `docs/images/sponsor-alipay.png` 后,可在本节补充展示
224
+
225
+ ## License
226
+
227
+ 本项目 README 使用 Anti 996 badge 展示劳动价值立场。正式发布前请根据项目实际授权策略补充或确认仓库根目录的 `LICENSE` 文件。
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  fetchUtilization,
4
4
  init_usage
5
- } from "./chunk-1s89ja0b.js";
5
+ } from "./chunk-b3tykhww.js";
6
6
  import {
7
7
  init_overageCreditGrant,
8
8
  invalidateOverageCreditGrantCache
9
- } from "./chunk-h0r8z7vv.js";
9
+ } from "./chunk-5tkam0h1.js";
10
10
  import {
11
11
  getOAuthHeaders,
12
12
  init_api,
13
13
  prepareApiRequest
14
- } from "./chunk-mscdcbx5.js";
14
+ } from "./chunk-fjtzfz1t.js";
15
15
  import {
16
16
  init_browser,
17
17
  openBrowser
@@ -24,7 +24,7 @@ import {
24
24
  init_billing,
25
25
  init_config1 as init_config,
26
26
  saveGlobalConfig
27
- } from "./chunk-2ws1k5sw.js";
27
+ } from "./chunk-s2t5anwv.js";
28
28
  import {
29
29
  getOauthConfig,
30
30
  init_oauth
@@ -70,7 +70,7 @@ function _getDeps() {
70
70
  _depImportCache = Promise.all([
71
71
  import("./chunk-4vnaeng5.js"),
72
72
  import("./chunk-q8xk3kdj.js"),
73
- import("./chunk-q5ttyf7q.js")
73
+ import("./chunk-4gdqn56a.js")
74
74
  ]).then(([pc, fc, ro]) => ({
75
75
  resolveProjectContext: pc.resolveProjectContext,
76
76
  isSkillLearningEnabled: fc.isSkillLearningEnabled,
@@ -5,58 +5,58 @@ import {
5
5
  getPrompt1 as getPrompt,
6
6
  init_prompt10 as init_prompt,
7
7
  isDeferredTool
8
- } from "./chunk-d63hynf1.js";
9
- import"./chunk-tdqsvjmx.js";
8
+ } from "./chunk-421yegj3.js";
9
+ import"./chunk-aaxz8a5g.js";
10
10
  import"./chunk-2kcgxnvp.js";
11
11
  import"./chunk-14p6wvsq.js";
12
12
  import"./chunk-6s0q1s5r.js";
13
- import"./chunk-v97f7p27.js";
14
- import"./chunk-mwj25g37.js";
15
- import"./chunk-edfq419a.js";
13
+ import"./chunk-0cpg8qh8.js";
14
+ import"./chunk-9phn5khx.js";
15
+ import"./chunk-vk9xcryd.js";
16
16
  import"./chunk-9a9g5hbj.js";
17
17
  import"./chunk-ptxteaeh.js";
18
- import"./chunk-6eqvbjz1.js";
18
+ import"./chunk-7fcmqvbz.js";
19
19
  import"./chunk-rgyzsbs3.js";
20
20
  import"./chunk-q3b4n194.js";
21
- import"./chunk-9asmys7j.js";
22
- import"./chunk-6vgzgtcq.js";
21
+ import"./chunk-zaqfb3tz.js";
22
+ import"./chunk-6hzx0kqr.js";
23
23
  import"./chunk-71sdcaq6.js";
24
24
  import"./chunk-9hn8e6h1.js";
25
- import"./chunk-n956z176.js";
26
- import"./chunk-nnhce0qj.js";
25
+ import"./chunk-dxa3y9vh.js";
26
+ import"./chunk-gjvhjywj.js";
27
27
  import"./chunk-1w20m7gw.js";
28
- import"./chunk-jgncmxwx.js";
28
+ import"./chunk-3gam18xn.js";
29
29
  import"./chunk-rpmntgyh.js";
30
30
  import"./chunk-24kv69g3.js";
31
- import"./chunk-pygcvnyw.js";
32
- import"./chunk-dpt14kwg.js";
31
+ import"./chunk-tzcrwnrf.js";
32
+ import"./chunk-k7xszak2.js";
33
33
  import"./chunk-ztmb7geg.js";
34
34
  import"./chunk-tbdkekz3.js";
35
35
  import"./chunk-65zbgg1n.js";
36
36
  import"./chunk-4spgkgr3.js";
37
37
  import"./chunk-60fkafk2.js";
38
- import"./chunk-ajwpwxnj.js";
38
+ import"./chunk-h5zz0vxy.js";
39
39
  import"./chunk-6hygvrhn.js";
40
40
  import"./chunk-7tfdhkpy.js";
41
41
  import"./chunk-8gv2pjby.js";
42
- import"./chunk-3az1exz0.js";
43
- import"./chunk-6fwec1xp.js";
44
- import"./chunk-w5ysbvwj.js";
45
- import"./chunk-mscdcbx5.js";
42
+ import"./chunk-pn23dh3d.js";
43
+ import"./chunk-rpdh02rm.js";
44
+ import"./chunk-j1wktfe2.js";
45
+ import"./chunk-fjtzfz1t.js";
46
46
  import"./chunk-6hr7742d.js";
47
47
  import"./chunk-xyg1sk2w.js";
48
48
  import"./chunk-935nrvdb.js";
49
49
  import"./chunk-8zz4z1q3.js";
50
- import"./chunk-ky13bf33.js";
50
+ import"./chunk-hem4f4gz.js";
51
51
  import"./chunk-hqxp6b72.js";
52
- import"./chunk-hczknv33.js";
53
- import"./chunk-rbvm6bfv.js";
54
- import"./chunk-q2j8w9hh.js";
52
+ import"./chunk-ccw8pse0.js";
53
+ import"./chunk-wsnxtggw.js";
54
+ import"./chunk-k8nwt8yq.js";
55
55
  import"./chunk-vxbjzggp.js";
56
56
  import"./chunk-d6h68rz1.js";
57
57
  import"./chunk-8yvsnrkr.js";
58
58
  import"./chunk-5mmhfbxb.js";
59
- import"./chunk-2ws1k5sw.js";
59
+ import"./chunk-s2t5anwv.js";
60
60
  import"./chunk-ga1jkyqy.js";
61
61
  import"./chunk-9hbhydvp.js";
62
62
  import"./chunk-ck9r8hpf.js";
@@ -5,31 +5,31 @@ import {
5
5
  init_sideQuery,
6
6
  init_yoloClassifier,
7
7
  sideQuery
8
- } from "./chunk-d63hynf1.js";
9
- import"./chunk-tdqsvjmx.js";
8
+ } from "./chunk-421yegj3.js";
9
+ import"./chunk-aaxz8a5g.js";
10
10
  import"./chunk-2kcgxnvp.js";
11
11
  import"./chunk-14p6wvsq.js";
12
12
  import"./chunk-6s0q1s5r.js";
13
- import"./chunk-v97f7p27.js";
14
- import"./chunk-mwj25g37.js";
15
- import"./chunk-edfq419a.js";
13
+ import"./chunk-0cpg8qh8.js";
14
+ import"./chunk-9phn5khx.js";
15
+ import"./chunk-vk9xcryd.js";
16
16
  import"./chunk-9a9g5hbj.js";
17
17
  import"./chunk-ptxteaeh.js";
18
- import"./chunk-6eqvbjz1.js";
18
+ import"./chunk-7fcmqvbz.js";
19
19
  import"./chunk-rgyzsbs3.js";
20
20
  import"./chunk-q3b4n194.js";
21
- import"./chunk-9asmys7j.js";
22
- import"./chunk-6vgzgtcq.js";
21
+ import"./chunk-zaqfb3tz.js";
22
+ import"./chunk-6hzx0kqr.js";
23
23
  import"./chunk-71sdcaq6.js";
24
24
  import"./chunk-9hn8e6h1.js";
25
- import"./chunk-n956z176.js";
26
- import"./chunk-nnhce0qj.js";
25
+ import"./chunk-dxa3y9vh.js";
26
+ import"./chunk-gjvhjywj.js";
27
27
  import"./chunk-1w20m7gw.js";
28
- import"./chunk-jgncmxwx.js";
28
+ import"./chunk-3gam18xn.js";
29
29
  import"./chunk-rpmntgyh.js";
30
30
  import"./chunk-24kv69g3.js";
31
- import"./chunk-pygcvnyw.js";
32
- import"./chunk-dpt14kwg.js";
31
+ import"./chunk-tzcrwnrf.js";
32
+ import"./chunk-k7xszak2.js";
33
33
  import"./chunk-ztmb7geg.js";
34
34
  import"./chunk-tbdkekz3.js";
35
35
  import"./chunk-65zbgg1n.js";
@@ -38,23 +38,23 @@ import"./chunk-60fkafk2.js";
38
38
  import {
39
39
  init_poorMode,
40
40
  isPoorModeActive
41
- } from "./chunk-ajwpwxnj.js";
41
+ } from "./chunk-h5zz0vxy.js";
42
42
  import"./chunk-6hygvrhn.js";
43
43
  import"./chunk-7tfdhkpy.js";
44
44
  import"./chunk-8gv2pjby.js";
45
- import"./chunk-3az1exz0.js";
46
- import"./chunk-6fwec1xp.js";
47
- import"./chunk-w5ysbvwj.js";
48
- import"./chunk-mscdcbx5.js";
45
+ import"./chunk-pn23dh3d.js";
46
+ import"./chunk-rpdh02rm.js";
47
+ import"./chunk-j1wktfe2.js";
48
+ import"./chunk-fjtzfz1t.js";
49
49
  import"./chunk-6hr7742d.js";
50
50
  import"./chunk-xyg1sk2w.js";
51
51
  import"./chunk-935nrvdb.js";
52
52
  import"./chunk-8zz4z1q3.js";
53
- import"./chunk-ky13bf33.js";
53
+ import"./chunk-hem4f4gz.js";
54
54
  import"./chunk-hqxp6b72.js";
55
- import"./chunk-hczknv33.js";
56
- import"./chunk-rbvm6bfv.js";
57
- import"./chunk-q2j8w9hh.js";
55
+ import"./chunk-ccw8pse0.js";
56
+ import"./chunk-wsnxtggw.js";
57
+ import"./chunk-k8nwt8yq.js";
58
58
  import"./chunk-vxbjzggp.js";
59
59
  import"./chunk-d6h68rz1.js";
60
60
  import"./chunk-8yvsnrkr.js";
@@ -66,7 +66,7 @@ import {
66
66
  init_model,
67
67
  init_settings1 as init_settings,
68
68
  parseUserSpecifiedModel
69
- } from "./chunk-2ws1k5sw.js";
69
+ } from "./chunk-s2t5anwv.js";
70
70
  import"./chunk-ga1jkyqy.js";
71
71
  import"./chunk-9hbhydvp.js";
72
72
  import"./chunk-ck9r8hpf.js";