dsh-workbuddy-xdpool 1.1.0 → 1.3.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.
- package/CHANGELOG.md +83 -0
- package/README.en.md +112 -45
- package/README.md +104 -53
- package/assets/automation-panel.png +0 -0
- package/assets/settings-card.png +0 -0
- package/lib/bin.js +1700 -21
- package/lib/client.js +437 -86
- package/lib/index.d.ts +928 -17
- package/lib/index.js +1975 -44
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,15 +9,25 @@
|
|
|
9
9
|
|
|
10
10
|
[English](./README.en.md) | 中文
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
把 WorkBuddy 桌面 App 里登录过的**所有账号**,合成一个 DSH 模型池。你在 WorkBuddy 里登过几个号,池里就有几个号——不用手动填表,不用一个个录入。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
哪个号被限流了、积分用光了,请求自动换到下一个能用的号上去。你只管问,剩下的它自己处理。
|
|
15
|
+
|
|
16
|
+
**另外附送一整套「积分自动化」**:签到、领任务奖励、连登兑换、开猫猫旅行……这些每天都要手动点一遍的活儿,插件在后台替你干完了。
|
|
17
|
+
|
|
18
|
+
> **和单账号连接插件的区别**:`dsh-workbuddy-connect` 那类插件是「一次一个账号」。XD Pool 把**多账号当默认情况**——不挑号、不手动导入,本机 WorkBuddy 所有历史登录快照全部收进一个共享池,对外用一个 `workbuddy-xdpool` provider 分组,池内自动容错。
|
|
19
|
+
|
|
20
|
+
## 先看几张图
|
|
15
21
|
|
|
16
22
|
**插件配置卡片(设置 → 插件 → DSH WorkBuddy XD Pool)**
|
|
17
23
|
|
|
18
|
-

|
|
19
25
|
|
|
20
|
-
|
|
26
|
+
**积分自动化面板**
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
**模型选择器(国内版 / 国际版 两个独立分组)**
|
|
21
31
|
|
|
22
32
|

|
|
23
33
|
|
|
@@ -27,27 +37,55 @@
|
|
|
27
37
|
|
|
28
38
|
## 功能
|
|
29
39
|
|
|
30
|
-
|
|
40
|
+
### 一、多账号池
|
|
41
|
+
|
|
42
|
+
- **零配置**:装上、打开,就完事了。WorkBuddy 桌面 App 里每个登过的账号都会被自动发现并入池,不需要在插件里录任何东西。
|
|
31
43
|
|
|
32
|
-
-
|
|
44
|
+
- **自动容错换号**:池子记着每个账号的限流状态。某个号触发 429 就冷却它,后面的请求自动落到下一个健康的号上;冷却结束自动恢复。所有号都在冷却时,请求才排队等待。
|
|
33
45
|
|
|
34
|
-
-
|
|
46
|
+
- **池健康一眼看清**:卡片显示「几个账号 / 几个在冷却」「下一个会轮到谁」,以及每个账号的令牌有效期和冷却倒计时。
|
|
35
47
|
|
|
36
|
-
-
|
|
48
|
+
- **剩余积分实时可见**:按账号列出积分包(`套餐名 · 剩余 / 总量`)和大字合计,跟着上游实时刷新。
|
|
37
49
|
|
|
38
|
-
-
|
|
50
|
+
- **模型目录带标注**:列出池里能用的模型,附带积分倍率(如 `GLM-5.2 · x0.79`)、免费 / 限时免费 / 夜间折扣标签、能否收图和上下文窗口大小,全部跟随上游实时更新。
|
|
39
51
|
|
|
40
|
-
-
|
|
52
|
+
- **国内版 / 国际版自动适配**:按账号凭据里的登录域名自动选上游——国际版登录(`workbuddy.ai`)走 `www.workbuddy.ai`,国内版(默认)走 `copilot.tencent.com`。两种账号可以混在同一个池里。
|
|
41
53
|
|
|
42
|
-
-
|
|
54
|
+
- **想手动做点啥也行**:卡片和命令行都提供「重新检测账号」「清除所有冷却」「每日签到」三个操作。
|
|
55
|
+
|
|
56
|
+
### 二、积分自动化
|
|
57
|
+
|
|
58
|
+
卡片上一个开关,插件在后台把你成长中心的日常动作全做掉。**默认全自动,也可以随时点「立即运行」手动跑一轮。**
|
|
59
|
+
|
|
60
|
+
它管这五件事:
|
|
61
|
+
|
|
62
|
+
| 任务 | 默认时间 | 干什么 |
|
|
63
|
+
| --- | --- | --- |
|
|
64
|
+
| 每日签到 | 09:00 | 领取当天签到奖励 |
|
|
65
|
+
| 活跃上报 | 10:00 | 报个到,让成长中心知道你还在用 |
|
|
66
|
+
| 任务奖励 | 11:00 | 把任务中心的奖励该报名的报名、该领的领掉 |
|
|
67
|
+
| 连登奖励 | 12:00 | 连登档位兑换 + 抽奖 |
|
|
68
|
+
| 猫猫旅行 | 09:00 · 21:00 | 把猫派出去、回来领奖励 |
|
|
43
69
|
|
|
44
|
-
|
|
70
|
+
**「任务奖励」这一项覆盖了 13 个任务**,包括那些看起来非得本人坐在电脑前点鼠标才能完成的:
|
|
71
|
+
|
|
72
|
+
> 探索优秀灵感 · 使用 5 个模板 · 尝鲜热门技能 · 换「和平精英」主题 · 逛资料库 · 召唤 5 次专家 · 召唤 3 次专家团 · 体验腾讯轻量云专家 · 进入任一小助手应用 · 进入企鹅教师助手 · 设计创意模式建画布 · 创建定时任务 · 猫猫对话
|
|
73
|
+
|
|
74
|
+
实测一轮跑下来,四个账号合计领到 **3300 积分 + 135 能量**。
|
|
75
|
+
|
|
76
|
+
**卡片上会告诉你这一轮具体领到了什么**——不是只写「领了 8 个任务」,而是把任务名字列出来。连登还差几天解锁也会写清楚(比如「还差 4 天解锁 7 天档」),免得你以为是坏了。
|
|
77
|
+
|
|
78
|
+
**关于「今日收益」**:卡片按来源分四行显示——任务奖励、签到、连登、旅行。今天赚了多少一眼看到,跨天自动清零。
|
|
79
|
+
|
|
80
|
+
**关于保留积分**:可以给每个账号设一个积分下限,余额低于这个数的账号就不派活了,省着点用。
|
|
81
|
+
|
|
82
|
+
> **国际版不显示这个面板**——那边的网关压根没有积分系统。
|
|
45
83
|
|
|
46
84
|
## 安装
|
|
47
85
|
|
|
48
|
-
|
|
86
|
+
前置条件:装好 WorkBuddy 桌面 App 并登录(插件复用它存在本机的登录状态)。多账号 = 在桌面 App 里换着登几次,每次登录都会被自动吸进池里。已针对 DSH Desktop host `0.1.2` 适配。
|
|
49
87
|
|
|
50
|
-
>
|
|
88
|
+
> 兼容 host `0.1.1-rc.2` / `0.1.2` 系列:安装设置节时会按 host 能力自动选择 `settings.installSection`(0.1.2-rc.1+)或更早的自由函数写法。
|
|
51
89
|
|
|
52
90
|
**方式一:从 npm 安装(推荐)**
|
|
53
91
|
|
|
@@ -56,8 +94,8 @@
|
|
|
56
94
|
dsh plugin --profile desktop add dsh-workbuddy-xdpool
|
|
57
95
|
```
|
|
58
96
|
|
|
59
|
-
> 推荐 npm
|
|
60
|
-
> 从 GitHub
|
|
97
|
+
> 推荐 npm:需要拉取的依赖只有插件自己(**约 1 个包,几秒搞定**)。
|
|
98
|
+
> 从 GitHub 源码装会连带装开发依赖(构建器、测试框架等几百个包),慢得多。
|
|
61
99
|
|
|
62
100
|
**方式二:从 GitHub 源码安装**
|
|
63
101
|
|
|
@@ -68,74 +106,74 @@ dsh plugin --profile desktop add github:XDTrees/dsh-workbuddy-xdpool
|
|
|
68
106
|
**方式三:手动注册 bundle**
|
|
69
107
|
|
|
70
108
|
```sh
|
|
71
|
-
# 1)
|
|
109
|
+
# 1) 先装包(npm 或 GitHub 任选)
|
|
72
110
|
dsh plugin --profile desktop add dsh-workbuddy-xdpool
|
|
73
111
|
|
|
74
112
|
# 2) 注册 bundle:编辑 ~/.dsh/profiles/desktop/package.json,
|
|
75
|
-
# 在 "dsh" → "profile" → "bundles"
|
|
113
|
+
# 在 "dsh" → "profile" → "bundles" 数组末尾加上 "dsh-workbuddy-xdpool"
|
|
76
114
|
|
|
77
115
|
# 3) 重启 DSH Desktop
|
|
78
116
|
```
|
|
79
117
|
|
|
80
|
-
|
|
118
|
+
**本地构建(开发者)**
|
|
81
119
|
|
|
82
120
|
```sh
|
|
83
121
|
pnpm install
|
|
84
|
-
pnpm build
|
|
85
|
-
pnpm test
|
|
86
|
-
pnpm typecheck
|
|
87
|
-
pnpm typecheck:client #
|
|
122
|
+
pnpm build # 产出 lib/index.js + lib/index.d.ts + lib/bin.js + lib/client.js
|
|
123
|
+
pnpm test # 138 项测试
|
|
124
|
+
pnpm typecheck # 宿主侧类型检查
|
|
125
|
+
pnpm typecheck:client # 客户端类型检查
|
|
88
126
|
```
|
|
89
127
|
|
|
90
|
-
> **构建产物已随仓库提交**(`lib/`
|
|
128
|
+
> **构建产物已随仓库提交**(`lib/` 不在 gitignore 里),所以从 GitHub 装不需要任何安装期脚本,也不会弹 pnpm 那句「构建脚本被拦截,请放行」。**改了 `src/` 记得重新 `pnpm build` 并把 `lib/` 一起提交**,否则用户拿到的是旧产物。
|
|
91
129
|
|
|
92
|
-
> 注意:`pnpm install`
|
|
130
|
+
> 注意:`pnpm install` 要用 pnpm 11(`npx pnpm@11`),必要时加 `--config.confirmModulesPurge=false --config.minimumReleaseAge=0`——pnpm 11 默认的 `minimumReleaseAge` 供应链年龄策略会拦下刚发布的 rc 包。
|
|
93
131
|
|
|
94
|
-
|
|
132
|
+
装完以后:模型选择器里会出现 **WorkBuddy XD Pool** 分组;设置 → 插件 → **DSH WorkBuddy XD Pool** 能看池健康、各账号的令牌 / 积分 / 签到 / 冷却状态,还有「重新检测账号」「清除所有冷却」按钮和每个账号的签到按钮。
|
|
95
133
|
|
|
96
|
-
|
|
134
|
+
Web / TUI profile 也能用(`--profile web` / `--profile dsh-tui`)。
|
|
97
135
|
|
|
98
136
|
## 命令行
|
|
99
137
|
|
|
100
138
|
统一用 `dsh plugin --profile desktop exec dsh-workbuddy-xdpool <子命令>` 调用:
|
|
101
139
|
|
|
102
140
|
```sh
|
|
103
|
-
dsh plugin --profile desktop exec dsh-workbuddy-xdpool status #
|
|
104
|
-
dsh plugin --profile desktop exec dsh-workbuddy-xdpool accounts #
|
|
105
|
-
dsh plugin --profile desktop exec dsh-workbuddy-xdpool doctor #
|
|
106
|
-
dsh plugin --profile desktop exec dsh-workbuddy-xdpool reset #
|
|
107
|
-
dsh plugin --profile desktop exec dsh-workbuddy-xdpool checkin #
|
|
141
|
+
dsh plugin --profile desktop exec dsh-workbuddy-xdpool status # 池里几个号 / 几个冷却 + shim 状态(--credits 查积分、--json 机器可读、--rates 看倍率)
|
|
142
|
+
dsh plugin --profile desktop exec dsh-workbuddy-xdpool accounts # 已发现的账号(--json)
|
|
143
|
+
dsh plugin --profile desktop exec dsh-workbuddy-xdpool doctor # 诊断发现 / 冷却 / 上游连通性
|
|
144
|
+
dsh plugin --profile desktop exec dsh-workbuddy-xdpool reset # 立刻清掉所有 429 冷却
|
|
145
|
+
dsh plugin --profile desktop exec dsh-workbuddy-xdpool checkin # 查每个账号今天签到了没(--json 机器可读)
|
|
108
146
|
dsh plugin --profile desktop exec dsh-workbuddy-xdpool checkin all
|
|
109
|
-
#
|
|
110
|
-
dsh plugin --profile desktop exec dsh-workbuddy-xdpool login #
|
|
147
|
+
# 领掉所有账号今天的签到奖励;也可以只传一个账号标签领单个
|
|
148
|
+
dsh plugin --profile desktop exec dsh-workbuddy-xdpool login # 教你怎么在桌面再加一个号进池
|
|
111
149
|
```
|
|
112
150
|
|
|
113
151
|
## 池里怎么多账号?
|
|
114
152
|
|
|
115
|
-
|
|
153
|
+
池子走**自动发现**:WorkBuddy 桌面 App 每次登录都会在本机留一个带令牌的历史快照,XD Pool 扫描这些快照,把每个账号都收进池。所以多账号 = 在桌面 App 里换着登几次,之后点卡片上的「重新检测账号」或者重启 DSH,新号就自动进池了。
|
|
116
154
|
|
|
117
|
-
|
|
155
|
+
如果你想给桌面 App 之外的一次登录做个**显式快照**(比如临时固定某个号做验证),也可以手动导入:
|
|
118
156
|
|
|
119
157
|
```sh
|
|
120
158
|
# 在 WorkBuddy 桌面 App 登录账号后(key 自己起名):
|
|
121
159
|
dsh plugin --profile desktop exec dsh-workbuddy-xdpool import myKey
|
|
122
|
-
#
|
|
160
|
+
# 查看 / 删除已导入的快照:
|
|
123
161
|
dsh plugin --profile desktop exec dsh-workbuddy-xdpool accounts
|
|
124
162
|
dsh plugin --profile desktop exec dsh-workbuddy-xdpool remove myKey
|
|
125
163
|
```
|
|
126
164
|
|
|
127
|
-
|
|
165
|
+
导入的快照以 key 的 **MD5 前 8 位**命名,放在 `~/.dsh/.workbuddy-xdpool/`(key 本身记在文件里),中文、带 `/`、带空格的 key 都安全。长期使用靠 refresh token 自动续期;失效了就回桌面重新登录,再 `import <key> --force` 覆盖。
|
|
128
166
|
|
|
129
167
|
## 配置
|
|
130
168
|
|
|
131
|
-
|
|
169
|
+
池的配置走插件设置节(`settings.workbuddy-xdpool`),模型设置页里能改,改完立即生效:
|
|
132
170
|
|
|
133
171
|
| 字段 | 说明 | 默认 |
|
|
134
172
|
| --- | --- | --- |
|
|
135
|
-
| `authFile` | 覆盖 WorkBuddy 桌面 auth
|
|
173
|
+
| `authFile` | 覆盖 WorkBuddy 桌面 auth 文件路径(跨平台自动探测出问题时用,等同于 `WORKBUDDY_AUTH_FILE`) | 自动探测 |
|
|
136
174
|
| `cooldownMs` | 单账号 429 冷却时长(毫秒) | `60000` |
|
|
137
175
|
|
|
138
|
-
|
|
176
|
+
也可以直接写进 `~/.dsh/settings.yaml`:
|
|
139
177
|
|
|
140
178
|
```yaml
|
|
141
179
|
workbuddy-xdpool:
|
|
@@ -144,20 +182,33 @@ workbuddy-xdpool:
|
|
|
144
182
|
|
|
145
183
|
## 架构
|
|
146
184
|
|
|
147
|
-
- **宿主侧**(`src
|
|
148
|
-
- `index.ts` —— 注册 `workbuddy-xdpool` provider、`workbuddy-xdpool`
|
|
149
|
-
- `accounts.ts` —— `WorkBuddyAccountPool`:读本机 WorkBuddy 桌面 auth 快照、429
|
|
150
|
-
- `
|
|
151
|
-
- `
|
|
152
|
-
- `
|
|
153
|
-
-
|
|
154
|
-
-
|
|
185
|
+
- **宿主侧**(`src/`,跑在 DSH 主进程里)
|
|
186
|
+
- `index.ts` —— 注册 `workbuddy-xdpool` provider、`workbuddy-xdpool` 设置节、各条同源路由(状态 / 重新检测 / 清除冷却 / 签到 / 自动化运行 / 保留积分),以及账号发现与模型目录播种。
|
|
187
|
+
- `accounts.ts` —— `WorkBuddyAccountPool`:读本机 WorkBuddy 桌面 auth 快照、429 冷却、轮换与 token 刷新;账号停用与积分保留也在这里。
|
|
188
|
+
- `scheduler.ts` —— 积分自动化的调度器:按本地时点跑五个任务(签到 / 上报 / 任务 / 连登 / 旅行),每日收益账本落盘,手动「立即运行」走的是同一套逻辑。
|
|
189
|
+
- `task-events.ts` —— 13 条任务事件链的构造。每条链都是纯数据,外加它该走哪个指纹通道(桌面 / 网页);需要真实会话的任务(技能、专家)在这里先开一次真对话,拿到服务端 id。
|
|
190
|
+
- `catalog.ts` / `upstream.ts` —— 上游模型目录(含每模型积分倍率、免费 / 图片能力标签)、积分查询、签到、自动化各接口的上游客户端(按凭据域名自动切国内外)。
|
|
191
|
+
- `web-status.ts` / `status-paths.ts` —— 卡片读的同源状态文档与路由。写操作按「POST + 回环来源 + 显式 accountId」把关。
|
|
192
|
+
- `bin.ts` —— 上面那套 CLI。
|
|
193
|
+
- **客户端**(`src/client/`,浏览器卡片,经 `dsh.client` 由宿主加载)
|
|
194
|
+
折叠卡片外壳沿用宿主内置卡的 `dsm-plugin-card*` 样式语言(`--dsw-alias-*` 主题变量),内容类名统一 `dsm-workbuddy-xdpool-*` 前缀,不污染宿主其它卡片;文案命名空间 `settings.workbuddy-xdpool`。
|
|
195
|
+
- **构建**
|
|
196
|
+
`tsdown` 产出 `lib/index.js`(宿主入口)+ `lib/index.d.ts`(类型)+ `lib/bin.js`(CLI)+ `lib/client.js`(CJS,用 `window.__ModuleLoader__.load` 包起来的浏览器 bundle)。四个产物都随仓库提交,所以安装时不需要任何构建脚本。
|
|
155
197
|
|
|
156
198
|
## 已知限制
|
|
157
199
|
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
-
|
|
200
|
+
- **只能用本机桌面 App 里的账号**:池不会、也没法替你发起 WorkBuddy 的登录或扫码(token 由 WorkBuddy 桌面 App 自己的腾讯 SSO 铸造并和设备绑定)。加号 = 在桌面 App 里登录 / 切换,XD Pool 自动吸收。
|
|
201
|
+
|
|
202
|
+
- **自动化里有几个任务刻意没做**
|
|
203
|
+
- `Expert_Philanthropy`(公益专家):需要真捐钱,绕不过去。
|
|
204
|
+
- `black_cat`(夜猫子):只在 23:00–08:00 计分,而且**没有积分奖励**——熬夜白熬。
|
|
205
|
+
- `Model_chat_GLM5.2`(指定模型对话)与 `wb_wechat_oa_subscribe_task`(关注公众号):路径已经摸清,留到下个版本。
|
|
206
|
+
|
|
207
|
+
- **`Expert_team_use_3` 偶发卡在 2/3**:有个号当天用掉两次专家团后,第三次怎么发都不涨(换个没用过的专家团也不涨)。怀疑该任务对单账号有当日额度、跨天恢复,但没验证。**新号不受影响**(实测 0/3 → 3/3)。
|
|
208
|
+
|
|
209
|
+
- **依赖 WorkBuddy 客户端接口**(不是官方开放 API),WorkBuddy 更新后插件可能得跟着调。某个账号的 refresh token 失效时,回桌面重新登录即可。
|
|
210
|
+
|
|
211
|
+
- 如果 Windows 和 Linux 用户名不同、且 Windows 环境变量没传进 WSL,请用 `WORKBUDDY_AUTH_FILE` 或配置里的 `authFile` 指定实际位置。
|
|
161
212
|
|
|
162
213
|
## 免责声明
|
|
163
214
|
|
|
@@ -172,7 +223,7 @@ workbuddy-xdpool:
|
|
|
172
223
|
|
|
173
224
|
- [corrinehu/dsh-workbuddy-connect](https://github.com/corrinehu/dsh-workbuddy-connect)(MIT)—— 设置节注册(`settings.installSection`)与 DSH 插件结构、客户端卡片加载机制、桌面端凭据刷新与 loopback shim 加固的核心参照;本项目沿用其「宿主通过 installSection 挂卡片」的打通路径。
|
|
174
225
|
- [dingminhua/dsh-connect-workbuddy](https://github.com/dingminhua/dsh-connect-workbuddy)(MIT,Copyright (c) 2026 LaoDing)—— `dsm-plugin-card*` 卡片样式语言与 `--dsw-alias-*` 主题变量的参照实现;**每日签到**(`/v2/billing/meter/checkin-activity-status` 与 `/v2/billing/meter/daily-checkin`)、积分包聚合口径(月度周期套餐 / 一次性礼包区分)与国内 / 国际版按 `domain` 选择上游域名的做法,参考了该项目已验证的接口形态。
|
|
175
|
-
- [Sliverkiss/workbuddy2api](https://github.com/Sliverkiss/workbuddy2api)(MIT)—— WorkBuddy 上游协议(`copilot.tencent.com` 的 wire behavior
|
|
226
|
+
- [Sliverkiss/workbuddy2api](https://github.com/Sliverkiss/workbuddy2api)(MIT)—— WorkBuddy 上游协议(`copilot.tencent.com` 的 wire behavior)与积分接口的参照实现;**积分自动化**(成长中心签到 / 活跃上报 / 连登兑换 / 猫猫旅行状态机 / 13 条任务事件链 / 专家召唤链)整体照该项目的 Go 版逆向实现移植,每条事件链的判据与实测结论都来自它。
|
|
176
227
|
|
|
177
228
|
以上项目的版权归各自作者所有。本项目采用**参考设计思路 + 独立实现**的方式,未整体复制任何参考项目的源码。若标注有遗漏或不当之处,欢迎提交 issue 指正。
|
|
178
229
|
|
|
Binary file
|
package/assets/settings-card.png
CHANGED
|
Binary file
|