vcorp-chrome 1.3.1 → 1.5.0

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.
Binary file
Binary file
@@ -1,11 +1,12 @@
1
- # 云端发布:让 maker.vcorp.ai 在你的浏览器里替你发视频
1
+ # 云端发布:让 maker.vcorp.ai 在你的浏览器里替你发视频、办事
2
2
 
3
- 这个分支(`my-dev`)的 vcorp-chrome 多了一条「云端通道」:配对之后,[maker.vcorp.ai](https://maker.vcorp.ai)(或你自建的 Opus Video Maker)可以在**你自己的 Chrome** 里,把做好的视频发到抖音、小红书、B站、视频号、快手、微博、知乎。
3
+ 这个分支(`my-dev`)的 vcorp-chrome 多了一条「云端通道」:配对之后,[maker.vcorp.ai](https://maker.vcorp.ai)(或你自建的 Opus Video Maker)的 AI 可以在**你自己的 Chrome** 里操作网页:把做好的视频发到你说的平台、查资料、填表。
4
4
 
5
- - 用的是你平时登录着的账号、你自己的电脑和网络,平台看到的就是你本人在操作。
6
- - 平台的 cookie 和密码**不离开你的电脑**,服务器和它的 AI 都拿不到。
7
- - 它只能在你勾选的平台上、在它自己开的标签页里点点填填;你的其它页面它一个都看不到。
8
- - 每个发布任务都要你点「允许」;随时可以暂停、收回、断开。
5
+ - 没有预设的平台清单,也没有写死的发布脚本。要去哪个网站,AI 按任务自己申请,你点头才放行;页面上怎么点、怎么填,由 AI 看着页面现场操作。
6
+ - 用的是你平时登录着的账号、你自己的电脑和网络,网站看到的就是你本人在操作。
7
+ - 网站的 cookie 和密码**不离开你的电脑**,服务器和它的 AI 都拿不到。
8
+ - 它只能在你允许过的网站上、在它自己开的标签页里点点填填;你的其它页面它一个都看不到。
9
+ - 每个新任务都要你点「允许」,除非你打开了「自动允许新任务」。随时可以暂停、收回、断开。
9
10
 
10
11
  不需要装 Node.js,不需要终端。
11
12
 
@@ -30,37 +31,50 @@
30
31
 
31
32
  ## 二、和网站配对(约 1 分钟)
32
33
 
33
- 1. 登录 maker.vcorp.ai,右上角菜单 → **平台账号** → **获取配对码**,得到一个 `ABCD-EFGH` 样子的码(10 分钟内有效,只能用一次)。
34
+ 1. 登录 maker.vcorp.ai,右上角菜单 → **浏览器扩展** → **获取配对码**,得到一个 `ABCD-EFGH` 样子的码(10 分钟内有效,只能用一次)。
34
35
  2. 在扩展侧栏的 **云端发布** 里填这个码,点 **下一步**。
35
36
  3. 侧栏会显示「要把这个浏览器交给 maker.vcorp.ai 上的账号『xxx』吗?」。**核对账号是不是你自己的**,再点 **确认连接**。
36
- 配对码如果是别人发给你的,点取消——填别人的码,等于把你的平台账号交给别人发帖。
37
+ 配对码如果是别人发给你的,点取消——填别人的码,等于把你浏览器里的登录交给别人去用。
37
38
  4. 网页上「已连接的浏览器」里会出现这台电脑,显示 **在线**。
38
39
 
39
- ## 三、勾选允许发布的平台
40
+ ## 三、允许的网站
40
41
 
41
- 在侧栏「允许它使用的平台」里,只勾你确实要让它发的平台。没勾的平台,它连页面都打不开。
42
+ 侧栏「允许它使用的网站」一开始是空的,扩展里没有预设平台。任务要去哪个网站,会先用 `sites` 申请,你点 **允许** 之后,这个网站(含子域)就记进这份名单;以后的任务再用到它,不用再批网站,只批任务本身。名单里每一行都能点 **移除**,进行中的任务也立刻失去它。
42
43
 
43
- 然后在这个浏览器里**正常登录这些平台的创作者后台**(抖音创作者中心、小红书创作服务平台、B站创作中心……),就像你平时手动发视频那样。登录状态就是你浏览器里的登录状态,不需要导出 cookie。
44
+ 要发布的平台,在这个浏览器里**正常登录它的创作者后台**就行,就像你平时手动发视频那样。登录状态就是你浏览器里的登录状态,不需要导出 cookie。
44
45
 
45
46
  如果发布时发现没登录,扩展会把那个标签页切到前台、弹一个通知,请你扫码登录,登录完点浮条上的「我完成了」。
46
47
 
47
48
  ## 四、发布时会发生什么
48
49
 
49
- 1. 在网页上新建「发布到平台」任务,确认策划后开始发布。
50
- 2. 浏览器弹出通知「maker.vcorp.ai 请求在你的浏览器里发布 → 抖音、小红书」,点 **允许**(也可以在侧栏里点)。5 分钟没点算拒绝。
50
+ 1. 在网页上新建发布任务,写清发到哪里、怎么写,确认策划后开始发布。
51
+ 2. AI 先申请要去的网站。没开「自动允许新任务」时,浏览器弹出通知「maker.vcorp.ai 请求在你的浏览器里操作这些网站 → creator.douyin.com、creator.xiaohongshu.com」,点 **允许**(也可以在侧栏里点)。5 分钟没点算拒绝。开了这个开关,这一下不再问。
51
52
  3. 浏览器在**后台标签页**里操作,不会抢你正在看的页面。这些标签页带彩色边框,归在一个以「Cloud · maker.vcorp.ai」命名的标签组里,点开就能看它在做什么。
52
53
  4. 发完,任务结束,它开的标签页自动关掉(你正在看的那一页除外)。
53
54
 
54
- ### 任务还可以申请额外网站
55
+ ### 任务进行中再申请网站
55
56
 
56
- 发布任务默认只能停在你勾选的平台上。做的过程中如果还要去别的网站(比如查资料、下素材),它会再发一条申请,浏览器弹出通知「maker.vcorp.ai 的发布任务还想访问新的网站」,侧栏里同一张任务卡片上也有「允许这些网站 / 不允许」。
57
+ 做的过程中如果还要去别的网站(比如查资料、下素材),它会再发一条申请,浏览器弹出通知「maker.vcorp.ai 的任务还想访问新的网站」,侧栏里同一张任务卡片上也有「允许这些网站 / 不允许」。
57
58
 
58
- - 每次只问这次新出现的网站,点头之后它的标签页才能停在这些站和它们的子域上。
59
- - 「自动允许新任务」管不到这里,每个额外网站都要你点头。同一个任务里你拒绝过的,不再问第二次。
60
- - 已经在勾选平台里的不用再批。勾了抖音,再申请 `creator.douyin.com` 不会弹窗。
61
- - 一个任务最多加 20 个额外网站。任务结束或被收回后,这些许可一起作废。
59
+ - 每次只问这次新出现的网站,点头之后它的标签页才能停在这些站和它们的子域上,这些站也进允许名单。
60
+ - 「自动允许新任务」管不到这里,每个新网站都要你点头。同一个任务里你拒绝过的,不再问第二次。
61
+ - 已经在允许名单里的不用再批。允许过 `douyin.com`,再申请 `creator.douyin.com` 不会弹窗。
62
+ - 一个任务最多新批 20 个网站。
62
63
 
63
- 没有对应平台、只是「到某几个网站上办事」的任务也一样:先给你看站点清单和一句用途,你点头之后才能打开;之后每多一个网站再问一次。
64
+ 开了「自动允许」时,任务一开始带着的网站和任务一起放行,但只给这一个任务用,不进允许名单,任务结束就作废。之后每多一个网站再问一次。
65
+
66
+ ### 读取你电脑上的文件夹
67
+
68
+ 网页上「已连接的浏览器」里有「挂载本地文件夹」。点下去之后,扩展弹出一个小窗口(侧栏里的「添加文件夹」也是这个窗口),你自己选一个文件夹,并给它一个显示名。选文件夹这一下发生在扩展里,网页碰不到你的磁盘。
69
+
70
+ 之后某个任务要读这个文件夹时,浏览器再弹一次通知「想读取你的本地文件夹 → 知识库」,侧栏的任务卡片上同样有允许 / 不允许。「自动允许」管不到这里。
71
+
72
+ - 只读。扩展不会改、不会删你的文件。
73
+ - 只读这些类型:Markdown、文本、PDF、Word(.docx)、CSV、JSON、HTML。隐藏文件、`node_modules`、私钥这类没有这些扩展名的文件不会被列出,也不会被传走。
74
+ - 单个文件最大 32MB,一个任务累计最多 256MB。
75
+ - 服务器只知道显示名,不知道 `D:\...` 这样的路径。
76
+ - 浏览器重启之后,读取权限可能会失效。侧栏或弹出的窗口里点「恢复访问」,再点一次允许即可,不用重新选文件夹。
77
+ - 移除挂载只是忘掉句柄,文件夹还在你的磁盘上。
64
78
 
65
79
  全程 Chrome 要开着、电脑不能睡眠。
66
80
 
@@ -68,7 +82,7 @@
68
82
 
69
83
  | | |
70
84
  |---|---|
71
- | 自动允许新任务 | 不再逐个弹窗确认。只在你信任这个账号、且只勾了要发的平台时打开。额外网站仍要逐个点头 |
85
+ | 自动允许新任务 | 不再逐个弹窗确认。只在你信任这个账号时打开:新任务,以及它一开始就要去的网站,会直接放行。任务开始之后再加的网站,还有本地文件夹,仍然要你逐个点头 |
72
86
  | 暂停 | 立刻断开,云端的命令一条都不接,直到你再关掉 |
73
87
  | 收回 | 结束某个进行中的任务,关掉它的标签页 |
74
88
  | 操作记录 | 最近 200 条:批准、拒绝、每条命令和结果 |
@@ -95,15 +109,16 @@
95
109
  - `test/cloud-policy.test.js`:每条规矩对应的攻击
96
110
  - `extension/cloud.js`:连接、配对、任务批准、标签页归属、上传
97
111
 
98
- 服务器端实现见 Opus Video Maker 的 `extlink.js`(不在本仓库)。发布任务的信封不用改:agent 在任务进行中直接发 `sites` 命令,参数是 `add`(域名列表)和一行 `reason`。扩展先按原样等你批准这个发布任务,再单独问这些网站。
112
+ 服务器端实现见 Opus Video Maker 的 `extlink.js`(不在本仓库)。每个任务的信封只有任务号、标题和 `sites`(这个任务申请过的域名)。agent 发 `sites` 命令申请网站,参数是 `add`(域名列表)和一行 `reason`。没开「自动允许」时,第一次申请连同任务一起问你;任务开始之后再申请的网站单独问。开了的话,新任务和信封上一开始带着的网站直接放行,之后再申请的仍然单独问。
99
113
 
100
114
  ### 服务器被攻破时,它**能**做什么
101
115
 
102
- 在你**已经批准**的任务里、**你勾选的平台**上,以你的身份在网页上操作:发帖、改资料、删帖。发布任务还可以再申请额外网站,但每个都要你另外点头,点头之前页面打不开。这是这个功能本身的能力,没法去掉,只能收窄:
116
+ 在你**已经批准**的任务里、**允许名单**里的网站上,以及这个任务获准的网站上,以你的身份在网页上操作:发帖、改资料、删帖。开了「自动允许」时,新任务和它一开始的网站清单也算批准。任务开始之后再申请的网站,每个都要你另外点头,点头之前页面打不开。这是这个功能本身的能力,没法去掉,只能收窄:
103
117
 
104
- - 只勾你要发的平台;不用时暂停或断开。
105
- - 不开「自动允许」,每个任务都看一眼它要发哪些平台。额外网站不受「自动允许」影响。
106
- - 一个任务的额外网站最多 20 个;IP、localhost、内网名,以及 `com.cn`、`github.io` 这类共享后缀一律申请不了。
118
+ - 允许名单里只留你要用的网站,用不着的点移除;不用时暂停或断开。
119
+ - 不开「自动允许」,每个新任务都要你点头,先看一眼它要去的网站和用途。
120
+ - 开了「自动允许」,这些新任务不再问。任务开始之后再申请的网站,以及本地文件夹,仍然逐个点头。开关开着时,服务器可以在新任务的第一份网站清单里写最多 20 个域名,扩展不再问就放行(只给这个任务,不进允许名单)。不信任这个账号时不要开。
121
+ - 一个任务最多新批 20 个网站;IP、localhost、内网名,以及 `com.cn`、`github.io` 这类共享后缀一律申请不了。
107
122
  - 每个任务最多 1500 条命令、每分钟最多 120 条;闲置 3 小时后批准作废。
108
123
  - 提交/发布/删除/支付一类的按钮不能夹在批处理(`act`)里,必须单独点,每一下都进操作记录;支付按钮仍会弹原有的付款确认。
109
124
 
@@ -112,14 +127,15 @@
112
127
  | 攻击 | 拦在哪 |
113
128
  |---|---|
114
129
  | 执行任意 JS、读接口、带着 cookie 发请求、看网络记录、下载文件到你的磁盘 | `eval` `fetch` `network` `download` `reload` 不在云端命令白名单里,扩展直接拒绝 |
115
- | 打开网银、邮箱、`chrome://`、`file://` 或任何没勾选的网站 | 开页、导航、`act` 里的每个导航步骤都按「勾选平台的根域 + 本任务里你点头的额外网站」核对;视频号只放 `channels.weixin.qq.com`,不是整个 `weixin.qq.com`(公众号后台、微信支付都在那下面)。申请 `weixin.qq.com` 不会被视频号盖住,仍要你单独点头 |
116
- | 点个外链或重定向跳出平台,再读页面内容 | 每条命令前、结果发回之前,都核对本任务所有标签页(含正在加载的地址);跳出去了结果整份屏蔽,标签页退回或清空 |
130
+ | 打开网银、邮箱、`chrome://`、`file://` 或任何没允许的网站 | 开页、导航、`act` 里的每个导航步骤都按「允许名单 + 本任务里放行的网站」核对,各含子域。允许过 `channels.weixin.qq.com` 不等于允许整个 `weixin.qq.com`,申请上一级域名仍要你单独点头 |
131
+ | 点个外链或重定向跳出允许的网站,再读页面内容 | 每条命令前、结果发回之前,都核对本任务所有标签页(含正在加载的地址);跳出去了结果整份屏蔽,标签页退回或清空 |
117
132
  | 看或操作你自己开着的标签页 | 云端只能碰它在本任务里开的页(以及从这些页里点开的新页);参数里的 `tabId` 一律剥掉,以任务表为准 |
118
133
  | 让本机 agent 误接管云端的页 | 云端开页不改动本机的「最近受控标签页」 |
119
134
  | 把你电脑上的文件(如 `~/.ssh/id_rsa`)当素材传到平台上 | `upload` 只收配对服务器 `/api/ext/media/` 下的 URL,不收本机路径、不收字节 |
135
+ | 偷偷读你没交给它的文件夹,或读隐藏文件、私钥 | 本地文件夹要你自己选,并且每个任务再点一次头。路径不能含 `..`,只收文档类扩展名,点开头的文件和 `node_modules` 会跳过。文件字节只能上传到配对服务器的 `/api/ext/pull/`,不能指到别的网址 |
120
136
  | 截到你正在看的页面 | 截图用调试器截指定的标签页;云端不能要求切前台,关了「高保真模式」时只有那一页本来就在前台才截得了 |
121
137
  | 用钓鱼文案骗你 | `ask` 浮条的标题强制带上服务器域名;服务器给的所有文字在侧栏里都以纯文本显示 |
122
- | 网页里的脚本冒充侧栏去批准任务、改配置 | 配对、批准、勾平台、解除这些操作只接受扩展自己的页面发来的消息(`sender.tab` 为空且 URL 是扩展页) |
138
+ | 网页里的脚本冒充侧栏去批准任务、改配置 | 配对、批准、移除网站、解除这些操作只接受扩展自己的页面发来的消息(`sender.tab` 为空且 URL 是扩展页) |
123
139
  | 让别人的浏览器替自己发帖(把自己的配对码骗你填) | 配对分两步,第二步之前侧栏会写明「交给账号『xxx』」,由你确认 |
124
140
 
125
141
  ### 身份与连接
@@ -127,11 +143,11 @@
127
143
  - 配对确认时,扩展用 WebCrypto 生成 ECDSA P-256 密钥对,**私钥 `extractable:false`** 存在扩展的 IndexedDB,连扩展自己的代码也导不出来;服务器只收到公钥。
128
144
  - 每次连接:服务器发随机数 → 扩展签 `vcorp-cloud-v1\n<服务器 origin>\n<设备号>\n<随机数>`。服务器上没有能冒充你浏览器的口令;签名带着 origin,拿到别的站点重放没用。
129
145
  - 只连 `https://`(本机调试允许 `http://localhost`),走 WSS。
130
- - 服务器侧:配对码 8 位、10 分钟、一次性,按 IP 限试错;每个发布任务一个临时 token,只在发布阶段有效,结束即作废并通知扩展关页;一个用户的命令只会送到这个用户自己配对的浏览器。
146
+ - 服务器侧:配对码 8 位、10 分钟、一次性,按 IP 限试错;每次运行一个临时 token,只在这次运行里有效,结束即作废并通知扩展关页;一个用户的命令只会送到这个用户自己配对的浏览器。
131
147
 
132
- ### 素材怎么进到平台页面
148
+ ### 素材怎么进到网页
133
149
 
134
- 服务器把文件放在一个随机的能力 URL 后面(最长 2 小时)。扩展核对它确实指向配对服务器的素材接口后,在平台页面的内容脚本里直接取这个 URL、在内存里造 `File` 投进上传框,几百 MB 的视频也不落你的磁盘、不弹保存框。页面里取不到时,48MB 以内的文件改由扩展取了再转交。
150
+ 服务器把文件放在一个随机的能力 URL 后面(最长 2 小时)。扩展核对它确实指向配对服务器的素材接口后,在目标页面的内容脚本里直接取这个 URL、在内存里造 `File` 投进上传框,几百 MB 的视频也不落你的磁盘、不弹保存框。页面里取不到时,48MB 以内的文件改由扩展取了再转交。
135
151
 
136
152
  ### 本机那条路不受影响
137
153