dsh-multi-router 0.5.7 → 0.5.9

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 CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。版本号从 `0.1` 起以功能迭代为主,接口在 `1.0` 前可能变化。
4
4
 
5
+ ## 0.5.9
6
+
7
+ - 本机账号导入按供应商区域与账号身份去重,同一 Trae 登录同时出现在 CN / SOLO 缓存时只保留较新的凭证;首次安装先比较已有账号与缓存,保留名称、权重、停用及移除选择,兼容旧版移除记录。
8
+ - 统一模型、路由、免费模型、Token 明细、插件更新与配置迁移的紧凑表格布局;重命名、免费模型档位和导入导出收进二级弹窗,完整保留推理等级与操作入口。界面适配 DSH 明暗主题和窄窗口。
9
+ - 面板自动刷新从 15 秒改为 1 分钟,隐藏页面暂停轮询;平台余额后台查询改为 5 分钟缓存,失败同样退避,手动刷新立即查询,积分轮换与临期优先仍按需复核。
10
+ - 重载入口按 YAML 结构校验,兼容 Windows CRLF 换行;额外监听插件目录替换。安装操作脱离继承的 HMR 激活标记后进入官方队列,避免嵌套事务。
11
+ - 新包等待策略单独诊断,不再混同网络、缓存或构建脚本错误;不自动更改安装安全策略。外部安装持有官方配置锁、或配置已回滚而文件仍是新版本时,暂停自动重载,避免加载安装中的文件。
12
+ - 新安装也核验 npm 实际版本;镜像或缓存返回旧版时不再报告更新成功。错误区分文件占用 / 权限、网络下载、加载和兼容问题,并提供不含原始日志、用户名路径与凭证的诊断复制入口。
13
+ - 增加 Windows / Linux CI,使用官方 DSH 加载器验证界面注册与连续更新;不把通用 operation-error 直接认定为已修复,用户机器仍需结合具体安装日志诊断。
14
+
15
+ ## 0.5.8
16
+
17
+ - 修复全局更新提醒的浮层注册参数错误,避免该组件失败时整个配置面板无法显示。增加使用 DSH 实际界面注册器的回归检查,覆盖配置面板与提醒组件的共同注册、卸载。
18
+ - 修复热加载后定时器继承 DSH 事务标记,导致下一次自动重载被误判为嵌套事务;重载仍通过 DSH 官方串行队列执行,并增加真实 HMR 队列回归检查。
19
+ - 保留 v0.5.7 的后台扫描、快速展示和空闲时自动重载机制;实机连续升级验证面板与后台同步切换,无需退出重启。首次从 v0.5.7 及更早版升级可关闭再启用一次,完成迁移后自动生效。
20
+
5
21
  ## 0.5.7
6
22
 
7
23
  - 修复更新后仍使用旧模块:每次发布生成独立的宿主入口和组件 ID,使用 DSH 官方配置重载流程同时替换后台与前端模块,避免复用旧代码缓存。
package/README.md CHANGED
@@ -6,13 +6,13 @@
6
6
 
7
7
  一个插件内置 WorkBuddy、Trae、Qoder 的认证、模型发现和聊天传输,提供三家的多账号池及集中路由。运行不依赖原来三个 DSH 插件;三家代码随安装包一起打包。基于 MIT 上游,固定版本见 `upstream-lock.json`,许可见 `THIRD_PARTY_NOTICES.md`。
8
8
 
9
- 版本:0.5.7。适配 DSH Desktop / Web 0.2.0-rc.2,Node.js ^22.19.0 或 >=24。
9
+ 版本:0.5.9。适配 DSH Desktop / Web 0.2.0-rc.2,Node.js ^22.19.0 或 >=24。
10
10
 
11
11
  ## 在 DSH 里管理
12
12
 
13
13
  打开 **插件 → dsh-multi-router 的配置页**。默认进入总览,八个页签:
14
14
 
15
- - **总览与用量**:今日/累计请求与 Token、近 7 日趋势、最近请求、三家平台余额与刷新时间。平台每分钟查询,面板每 15 秒刷新,可暂停面板自动刷新。
15
+ - **总览与用量**:今日/累计请求与 Token、近 7 日趋势、最近请求、三家平台余额与刷新时间。平台余额后台每 5 分钟查询,面板每分钟读取本机缓存,隐藏页面暂停轮询,可关闭自动刷新;手动刷新平台用量会立即查询。
16
16
  - **Token 明细**:每次上游调用的时间、渠道、账号、路由、实际模型、输入/输出/总 Token 和结果;支持今日、近 3 日、近 7 日、近 30 日及自定义日期范围(北京时间自然日),并按账号、路由、结果筛选,每页 50 条。缓存输入和推理输出在平台返回时展示,不重复计入总量。默认滚动保留最近 30 × 24 小时,可设置 1–365 天,并随配置迁移。同时展示模型用时、工具调用用时、首 Token 平均(TTFT)和输出速度(TPS),可展开单次性能。DSH 步骤采用会话统计相同口径;TPS 按有效输出 Token / 解码秒数加权计算。性能汇总只包含成功调用,随当前筛选变化;旧记录缺少的分项显示「—」。
17
17
  - **账号与登录**:默认「全部供应商」集中展示所有账号,可按供应商 / 区域筛选、搜索、全选 / 全不选。启动时自动读取本机 WorkBuddy / Trae 已登录账号,每分钟重新检测;Trae 自动识别 CN / Global / SOLO,面板展示检测状态,并提供「重新检测本机登录」。添加账号弹窗也可一键获取;账号 ID 自动生成、显示名自动识别,重复账号会提示。Qoder 使用 PAT,可粘贴或获取本机旧连接器已保存的 PAT。新账号自动获取模型与平台用量。详情弹窗查看身份、认证类型、有效期、刷新能力、套餐与积分包;账号可命名、启停、排序和移出。
18
18
  - **积分签到**:按账号设置每日启动签到或定时签到(北京时间),保留每日执行记录、领取意图与设备限制,避免重复请求。
@@ -32,7 +32,7 @@
32
32
 
33
33
  ### 界面预览
34
34
 
35
- 以下为 **v0.5.5–v0.5.7 实际面板 + 合成演示数据**。账号名称已替换,不包含真实手机号、邮箱、身份 ID、设备标识、登录凭证或会话内容;余额、用量和性能均为演示数值。
35
+ 以下主要页面已更新为 **v0.5.9 实际面板 + 合成演示数据**。账号名称已替换,不包含真实手机号、邮箱、身份 ID、设备标识、登录凭证或会话内容;余额、用量和性能均为演示数值。
36
36
 
37
37
  | 总览与用量 | Token 明细与调用性能 |
38
38
  | --- | --- |
@@ -49,6 +49,12 @@
49
49
  | 启动 / 定时计划、按账号开启与状态去重 | GitHub / npm 用户插件、手动更新、同版本提醒去重 |
50
50
  | ![每日积分签到](https://raw.githubusercontent.com/AndroidSix/dsh-multi-router/main/docs/screenshots/checkins.jpg) | ![全局插件更新提醒](https://raw.githubusercontent.com/AndroidSix/dsh-multi-router/main/docs/screenshots/update-reminder.jpg) |
51
51
 
52
+ | 模型管理 | 安装失败诊断 |
53
+ | --- | --- |
54
+ | ![模型管理](https://raw.githubusercontent.com/AndroidSix/dsh-multi-router/main/docs/screenshots/models-management.jpg) | ![脱敏安装诊断](https://raw.githubusercontent.com/AndroidSix/dsh-multi-router/main/docs/screenshots/update-diagnostic.jpg) |
55
+
56
+
57
+
52
58
  ## 内置渠道与默认路由
53
59
 
54
60
  内置 provider:`workbuddy`、`workbuddy-ai`、`trae`、`trae-global`、`qoder`、`qoder-global`。每个渠道直接使用本插件的账号池及传输,4xx 自动切下一账号。原有三个连接器需要关闭,避免同名 provider 冲突;仅关闭,不要求卸载,也不会修改其凭证。
@@ -100,7 +106,7 @@ Qoder 的 `dfmodel` 在真实目录里显示为 DeepSeek-Flash,未声明具体
100
106
 
101
107
  ## 首次使用与账号自动获取
102
108
 
103
- 第一次启用插件时会执行 WorkBuddy / WorkBuddy AI 与 Trae CN / Global / SOLO 的本机登录检测,将找到的有效登录保存为独立账号副本。首页会展示「本机账号自动获取」结果,区分已保存、未登录和无法读取,并提供「一键获取并保存」及手动添加入口;无需先逐个点击添加账号。之后每分钟检测新增登录,重复检测不重复添加,已停用和已删除的账号保持用户选择。Qoder 仍需添加 PAT。
109
+ 第一次启用插件时会执行 WorkBuddy / WorkBuddy AI 与 Trae CN / Global / SOLO 的本机登录检测,将找到的有效登录保存为独立账号副本。首页会展示「本机账号自动获取」结果,区分已保存、未登录和无法读取,并提供「一键获取并保存」及手动添加入口;无需先逐个点击添加账号。首次导入先比较已有账号、凭证缓存和移除记录;同一 Trae 账号的 CN / SOLO 客户端缓存合并去重,不按客户端版本重复建号。之后每分钟检测新增登录,重复检测不重复添加,已停用和已删除的账号保持用户选择。Qoder 仍需添加 PAT。
104
110
 
105
111
  ## 面板布局
106
112
 
@@ -163,7 +169,7 @@ dsh plugin --profile desktop add dsh-multi-router
163
169
  dsh plugin --profile web add dsh-multi-router
164
170
  ```
165
171
 
166
- 包地址:[dsh-multi-router · npm](https://www.npmjs.com/package/dsh-multi-router)。正式版本由 GitHub Release 自动测试、打包并发布到 npm `latest`,包中已包含编译产物,用户无需自行构建。需要固定版本时可安装 `dsh-multi-router@0.5.7`。
172
+ 包地址:[dsh-multi-router · npm](https://www.npmjs.com/package/dsh-multi-router)。正式版本由 GitHub Release 自动测试、打包并发布到 npm `latest`,包中已包含编译产物,用户无需自行构建。需要固定版本时可安装 `dsh-multi-router@0.5.9`。
167
173
 
168
174
  已使用 npm 来源的用户更新:
169
175
 
@@ -179,9 +185,19 @@ dsh plugin --profile desktop add dsh-multi-router
179
185
 
180
186
  这是同名插件的来源切换;账号、路由和用量保存在包目录之外,会保留。
181
187
 
182
- **从 v0.5.7 起,本插件支持运行中更新。** 更新完成后会等待当前模型调用、签到、账号操作与安装任务结束,调用 DSH 官方接口重新加载本插件,前端面板也同步切换。面板顶部显示实际运行版本;安装版本尚未生效时单独提示,不把磁盘版本冒充运行版本。通过插件页、插件内更新器或外部 CLI 更新均可检测;外部更新可能最多延迟一分钟。
188
+ **从 v0.5.8 起,本插件支持运行中更新。** 更新完成后会等待当前模型调用、签到、账号操作与安装任务结束,调用 DSH 官方接口重新加载本插件,前端面板也同步切换。面板顶部显示实际运行版本;安装版本尚未生效时单独提示,不把磁盘版本冒充运行版本。通过插件页、插件内更新器或外部 CLI 更新均可检测;外部更新可能最多延迟一分钟。
189
+
190
+ **首次从 v0.5.7 或更早版本升级:** 旧后台缺少完整自动重载逻辑,在 DSH 插件页关闭再重新启用一次 `dsh-multi-router` 即可加载新入口,无需退出应用。之后升级自动生效。若遇到连接或版本同步异常,面板提供「重新加载插件」与「重新连接」;只有不提供热加载接口的 DSH 才需要升级 DSH 或重启服务。其他插件是否能即时更新仍以 DSH 返回的结果为准。
191
+
192
+ ### 安装后仍显示旧版本 / 新包等待期 / Windows 安装失败
193
+
194
+ 在 DSH 原生插件安装框明确输入 `dsh-multi-router@0.5.9`;使用命令行时可指定官方源:
195
+
196
+ ```bash
197
+ dsh plugin --profile desktop add dsh-multi-router@0.5.9 --registry=https://registry.npmjs.org/
198
+ ```
183
199
 
184
- **首次从 v0.5.6 或更早版本升级:** 旧后台没有自动重载逻辑,在 DSH 插件页关闭再重新启用一次 `dsh-multi-router` 即可加载新入口,无需退出应用。之后升级自动生效。若遇到连接或版本同步异常,面板提供「重新加载插件」与「重新连接」;只有不提供热加载接口的 DSH 才需要升级 DSH 或重启服务。其他插件是否能即时更新仍以 DSH 返回的结果为准。
200
+ 先确认安装成功,再核对插件页的安装版本及面板顶部的运行版本。DSH 内置 pnpm 的新包等待策略可能选择至少 24 小时前的版本;指定刚发布的版本也可能触发 `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`。此时换镜像、卸载重装或重启不会解除策略,应等待到期,或由用户明确为所需版本配置例外;插件不会自动关闭等待策略。输入包名却得到旧版,可能涉及安装器缓存、镜像、旧锁文件或安装失败回滚,不能只凭 `operation-error` 判断。插件内更新器会验证实际版本、展示安装声明与检查频道;失败时可查看脱敏诊断。文件占用、网络失败与插件加载错误分别处理,不把失败安装归因于面板缓存。v0.5.6 旧后台首次迁移后可关闭再启用本插件一次;无需先卸载或删除账号配置。
185
201
 
186
202
  ### 方式二:GitHub 链接安装
187
203
 
@@ -202,7 +218,7 @@ dsh plugin --profile desktop add github:AndroidSix/dsh-multi-router
202
218
  dsh plugin --profile web add github:AndroidSix/dsh-multi-router
203
219
  ```
204
220
 
205
- 默认获取 main 分支;仓库已包含编译好的 `lib/`,安装端无需 clone、构建或运行初始化命令,也没有安装时构建脚本。首次启用自动在当前设备的 DSH 数据目录创建配置及预制路由,并读取本机已登录的 WorkBuddy / Trae 账号,无需先手动添加。Qoder 使用 PAT,或读取旧连接器保存的 PAT。凭证只保存独立副本;再次检测不会重复添加,也不会启用已停用账号。移出的本机账号不会被定时扫描重新加入,可点击「重新检测本机登录」主动恢复。已有配置不会被覆盖;损坏的配置也不会自动重置。安装 / 更新 / 卸载后需**完全退出并重启**对应的 DSH 进程生效。
221
+ 默认获取 main 分支;仓库已包含编译好的 `lib/`,安装端无需 clone、构建或运行初始化命令,也没有安装时构建脚本。首次启用自动在当前设备的 DSH 数据目录创建配置及预制路由,并读取本机已登录的 WorkBuddy / Trae 账号,无需先手动添加。Qoder 使用 PAT,或读取旧连接器保存的 PAT。凭证只保存独立副本;再次检测不会重复添加,也不会启用已停用账号。移出的本机账号不会被定时扫描重新加入,可点击「重新检测本机登录」主动恢复。已有配置不会被覆盖;损坏的配置也不会自动重置。首次安装由 DSH 启用组件;本插件更新支持运行中重载,首次从旧版本迁移按上方说明关闭再启用一次。
206
222
 
207
223
  已安装用户更新(也适用于旧版从本地 `.tgz` 安装的用户):
208
224
 
@@ -210,7 +226,7 @@ dsh plugin --profile web add github:AndroidSix/dsh-multi-router
210
226
  dsh plugin --profile desktop add github:AndroidSix/dsh-multi-router
211
227
  ```
212
228
 
213
- 这会将同名插件的安装源切换为 GitHub 并获取当前版本,账号、路由和统计保存在包目录之外,不会随包替换。旧的 `file:...tgz` 依赖绑定一个固定本地文件,普通更新不会自动改为 GitHub 来源。已经使用 GitHub 来源时,也可以执行 `dsh plugin --profile desktop update dsh-multi-router`。安装后的运行进程仍需完全退出并重启;「刷新面板」只刷新账号和用量,不会更新插件代码。GitHub 提交、GitHub Releases 和 npm 版本是不同发布来源,第三方商店是否提示更新取决于其检测方式。
229
+ 这会将同名插件的安装源切换为 GitHub 并获取当前版本,账号、路由和统计保存在包目录之外,不会随包替换。旧的 `file:...tgz` 依赖绑定一个固定本地文件,普通更新不会自动改为 GitHub 来源。已经使用 GitHub 来源时,也可以执行 `dsh plugin --profile desktop update dsh-multi-router`。本插件更新后等待空闲自动重载;「刷新面板」只读取账号和用量,连接异常时使用「重新加载插件」。GitHub 提交、GitHub Releases 和 npm 版本是不同发布来源,第三方商店是否提示更新取决于其检测方式。
214
230
 
215
231
  Desktop 若提示 CLI 仅安装依赖、未自动启用 bundle:完全退出 Desktop 后,在 desktop profile 的 `package.json` 的 `dsh.profile.bundles` 数组里追加 `"dsh-multi-router"`(保留其他 bundle),再启动并打开配置页。
216
232
 
@@ -224,7 +240,7 @@ cd dsh-multi-router
224
240
  npm ci
225
241
  npm run check
226
242
  npm run pack:release
227
- dsh plugin --profile desktop add ./dsh-multi-router-0.5.5.tgz
243
+ dsh plugin --profile desktop add ./dsh-multi-router-0.5.9.tgz
228
244
  ```
229
245
 
230
246
  ### 配置账号
package/cordis.patch.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  - insert:
2
- - id: llm-multi-router-v2-0.5.7
3
- name: ./lib/host-v0.5.7.js
2
+ - id: llm-multi-router-v2-0.5.9
3
+ name: ./lib/host-v0.5.9.js
package/lib/accounts.js CHANGED
@@ -2,8 +2,9 @@ import {
2
2
  discoverLocalAccounts,
3
3
  importAccount,
4
4
  localAccountKey,
5
+ normalizeLocalAccountKey,
5
6
  readPortableCredential
6
- } from "./chunk-OFFVP6YN.js";
7
+ } from "./chunk-S6ZQ45SS.js";
7
8
  import "./chunk-FTM7RHQV.js";
8
9
  import "./chunk-S5KMFAQM.js";
9
10
  import "./chunk-MCHV2R25.js";
@@ -12,6 +13,7 @@ export {
12
13
  discoverLocalAccounts,
13
14
  importAccount,
14
15
  localAccountKey,
16
+ normalizeLocalAccountKey,
15
17
  readPortableCredential
16
18
  };
17
19
  //# sourceMappingURL=accounts.js.map