@omdp/dsh-key-fallback 3.1.5 → 3.1.7
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.md +12 -2
- package/README.zh-CN.md +12 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -4,13 +4,23 @@
|
|
|
4
4
|
|
|
5
5
|
**Multi-key API key pool with automatic rotation for [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness)** — sits between the LLM adapter and the credential store. Before each request the plugin picks a key from the per-provider pool and pre-writes it into the provider's credential reference; when a configured trigger error occurs it marks the failed key cooling (fixed `cooldownMs`, no exponential backoff) and advances to the next key. **Re-sending is left entirely to DSH's own `dsh-llm-retry`** — this plugin never re-sends on its own; it only switches the key and lets the retry policy decide.
|
|
6
6
|
|
|
7
|
-
Current version: **v3.1.
|
|
7
|
+
Current version: **v3.1.7** (`v6` UI generation).
|
|
8
8
|
|
|
9
9
|
## Requirements
|
|
10
10
|
|
|
11
11
|
- DeepSeek Harness with a `web`-profile GUI (`npx @deepseek-ai/dsh web`)
|
|
12
12
|
- Node.js `^22.19` or `>=24`
|
|
13
|
-
- Peer ranges strictly enumerate **only compatibility-tested versions** — `@deepseek-ai/dsh-credentials` `0.1.0-rc.6 || 0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1`, `@deepseek-ai/dsh-llm` / `@deepseek-ai/dsh-settings` `0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1`, `@deepseek-ai/cordis` `4.0.1 || 4.0.2`, `@deepseek-ai/schemastery` `3.18.1 || 3.18.2`. No open-ended ranges (`<0.2.0`, caret): untested versions are deliberately excluded until verified. The plugin only uses the credential-reference half (`resolve`/`describe`/`set`/`unset`/`credentialRef` — stable since `0.1.0-rc.6`) and the `agent/request` + `agent/request-error` waterfall (payload unchanged across the enumerated versions); `isCredentialRefName` (added `rc.8`) is implemented locally for compatibility. The `0.1.2-alpha.2 → alpha.5 → 0.1.2-rc.1` companion packages are byte-identical (2026-09-03 verified), so DSH `0.1.2-rc.1` (`next`) needs no plugin change.
|
|
13
|
+
- Peer ranges strictly enumerate **only compatibility-tested versions** — `@deepseek-ai/dsh-credentials` `0.1.0-rc.6 || 0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1`, `@deepseek-ai/dsh-llm` / `@deepseek-ai/dsh-settings` `0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1`, `@deepseek-ai/cordis` `4.0.1 || 4.0.2`, `@deepseek-ai/schemastery` `3.18.1 || 3.18.2`. No open-ended ranges (`<0.2.0`, caret): untested versions are deliberately excluded until verified. The plugin only uses the credential-reference half (`resolve`/`describe`/`set`/`unset`/`credentialRef` — stable since `0.1.0-rc.6`) and the `agent/request` + `agent/request-error` waterfall (payload unchanged across the enumerated versions); `isCredentialRefName` (added `rc.8`) is implemented locally for compatibility. The `0.1.2-alpha.2 → alpha.5 → 0.1.2-rc.1` companion packages are byte-identical (2026-09-03 verified), so DSH `0.1.2-rc.1` (`next`) needs no plugin change.
|
|
14
|
+
|
|
15
|
+
## What v3.1.7 offers
|
|
16
|
+
|
|
17
|
+
- **DSH `0.1.5-rc.2` support declared** (2026-09-15). Source check: `@deepseek-ai/dsh-credentials` / `dsh-llm` / `dsh-settings` `0.1.5-rc.1 → rc.2` differ in **`package.json` only** — every lib/docs file is SHA256-identical. Runtime check: strict peer install (no `--legacy-peer-deps`) against a real `dsh@0.1.5-rc.2` web profile + clean boot, zero browser-console errors, `/dsh-key-fallback/*` routes serve, Settings → API Key 回退 renders.
|
|
18
|
+
- **DSH `0.1.6-alpha.1` support declared** (2026-09-15, source-level file-hash diff **plus a runtime boot smoke test** on a real `0.1.6-alpha.1` install). No code change was needed: `@deepseek-ai/dsh-credentials` and `@deepseek-ai/dsh-settings` are **byte-identical in `lib/`** vs `0.1.5-rc.2` (version/docs bump only), and `@deepseek-ai/dsh-llm`'s removals (`priceImages`, the `projectImagesForTextModel`/request-image-offload family) are outside every API this plugin calls — `credentialRef`, `credentials.resolve/set/unset/describe`, `llm.listProviders/listConfigurableProviders`, `agent/request`, `agent/request-error`, `settings`, `webServer` all verified present (`dsh-host-webserver` — the `webServer.register` provider — is itself byte-identical). Runtime check: plugin activates, `/dsh-key-fallback/*` routes serve, Settings → API Key 回退 renders. Old versions stay supported — both `0.1.5-rc.2` and `0.1.6-alpha.1` are *appended*, nothing dropped.
|
|
19
|
+
|
|
20
|
+
## What v3.1.6 offers
|
|
21
|
+
|
|
22
|
+
- **DSH `0.1.5-rc.1` support declared** (source-level compatibility check, 2026-09-10). No code change was needed: `@deepseek-ai/dsh-credentials` and `@deepseek-ai/dsh-settings` differ from `0.1.2-rc.1` **only in `package.json`** (version bump), and `@deepseek-ai/dsh-llm`'s changes are additive (`FileBlock` / `fileHandleText` / `assembleAssistantStream` …) with every API this plugin calls preserved: `credentialRef`, `credentials.resolve/set/unset/describe`, `llm.listProviders/listConfigurableProviders`, `agent/request`, `agent/request-error`, `settings`, `webServer`. The `agent/pre-step` waterfall payload is **line-identical** between the two versions. Old versions stay supported — `0.1.5-rc.1` is *appended* to the enumeration, nothing is dropped.
|
|
23
|
+
- Note: DSH `0.1.5-rc.1` removes `ctx.agent` and changes the Inbox/Session APIs, but this plugin never used them.
|
|
14
24
|
|
|
15
25
|
## What v3.1.4 offers
|
|
16
26
|
|
package/README.zh-CN.md
CHANGED
|
@@ -4,13 +4,23 @@ English | [简体中文](README.md)
|
|
|
4
4
|
|
|
5
5
|
**为 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) 提供多 key 池 + 自动轮换**——插件位于 LLM 适配器与凭证存储之间:每次请求前从按 provider 分组的 key 池里选一把,预写入该 provider 的凭证引用;遇到配置的触发错误时,把失败 key 标记为冷却(固定 `cooldownMs`,无指数退避)并前进到下一把。**重发完全交给 DSH 自带的 `dsh-llm-retry`**——本插件从不自行重发,只负责换 key,重试策略由 retry policy 决定。
|
|
6
6
|
|
|
7
|
-
当前版本:**v3.1.
|
|
7
|
+
当前版本:**v3.1.7**(v6 UI 代)。
|
|
8
8
|
|
|
9
9
|
## 环境要求
|
|
10
10
|
|
|
11
11
|
- DeepSeek Harness 带 `web` profile GUI(`npx @deepseek-ai/dsh web`)
|
|
12
12
|
- Node.js `^22.19` 或 `>=24`
|
|
13
|
-
- peer 范围**只枚举已实际进行过兼容测试的版本**——`@deepseek-ai/dsh-credentials` `0.1.0-rc.6 || 0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1`、`@deepseek-ai/dsh-llm` / `@deepseek-ai/dsh-settings` `0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1`、`@deepseek-ai/cordis` `4.0.1 || 4.0.2`、`@deepseek-ai/schemastery` `3.18.1 || 3.18.2`。不使用 `<0.2.0`、caret 之类的开放范围:未测试版本在核查通过前刻意排除。插件只使用 credential-reference 半边(`resolve`/`describe`/`set`/`unset`/`credentialRef`,自 `0.1.0-rc.6` 起稳定)与 `agent/request` + `agent/request-error` waterfall(载荷跨上述枚举版本未变);`isCredentialRefName`(rc.8 新增)本地实现兜底。`0.1.2-alpha.2 → alpha.5 → 0.1.2-rc.1` 配套包逐字节一致(2026-09-03 复核),故 DSH `0.1.2-rc.1`(`next`)无需改动插件。
|
|
13
|
+
- peer 范围**只枚举已实际进行过兼容测试的版本**——`@deepseek-ai/dsh-credentials` `0.1.0-rc.6 || 0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1`、`@deepseek-ai/dsh-llm` / `@deepseek-ai/dsh-settings` `0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1`、`@deepseek-ai/cordis` `4.0.1 || 4.0.2`、`@deepseek-ai/schemastery` `3.18.1 || 3.18.2`。不使用 `<0.2.0`、caret 之类的开放范围:未测试版本在核查通过前刻意排除。插件只使用 credential-reference 半边(`resolve`/`describe`/`set`/`unset`/`credentialRef`,自 `0.1.0-rc.6` 起稳定)与 `agent/request` + `agent/request-error` waterfall(载荷跨上述枚举版本未变);`isCredentialRefName`(rc.8 新增)本地实现兜底。`0.1.2-alpha.2 → alpha.5 → 0.1.2-rc.1` 配套包逐字节一致(2026-09-03 复核),故 DSH `0.1.2-rc.1`(`next`)无需改动插件。
|
|
14
|
+
|
|
15
|
+
## v3.1.7 新增
|
|
16
|
+
|
|
17
|
+
- **声明支持 DSH `0.1.5-rc.2`**(2026-09-15)。源码核查:`@deepseek-ai/dsh-credentials` / `dsh-llm` / `dsh-settings` 从 `0.1.5-rc.1` 到 `rc.2` **只有 `package.json` 变化**——lib/文档逐文件 SHA256 全一致。运行时核查:对真实 `dsh@0.1.5-rc.2` web profile **严格模式**安装 peer(不加 `--legacy-peer-deps`)零告警通过,启动零浏览器控制台错误,`/dsh-key-fallback/*` 路由服务,设置页「API Key 回退」渲染。
|
|
18
|
+
- **声明支持 DSH `0.1.6-alpha.1`**(2026-09-15,源码级逐文件哈希比对 + **真实运行时冒烟**:在临时安装的 `0.1.6-alpha.1` 上以 web profile 实测加载)。未改动任何代码:`@deepseek-ai/dsh-credentials` 与 `@deepseek-ai/dsh-settings` 的 `lib/` 相对 `0.1.5-rc.2` **逐字节一致**(仅版本号/文档变化),`@deepseek-ai/dsh-llm` 的删除项(`priceImages`、`projectImagesForTextModel`/request-image-offload 系列)均在本插件调用面之外——本插件调用的 `credentialRef`、`credentials.resolve/set/unset/describe`、`llm.listProviders/listConfigurableProviders`、`agent/request`、`agent/request-error`、`settings`、`webServer` 全部实测保留(`webServer` 提供方 `dsh-host-webserver` 整包字节一致)。运行时验证:插件激活、`/dsh-key-fallback/*` 路由服务、设置页「API Key 回退」渲染。**旧版本继续兼容**——`0.1.5-rc.2` 与 `0.1.6-alpha.1` 均为**追加**进枚举,未删除任何版本。
|
|
19
|
+
|
|
20
|
+
## v3.1.6 新增
|
|
21
|
+
|
|
22
|
+
- **声明支持 DSH `0.1.5-rc.1`**(2026-09-10 源码级兼容性核查)。未改动任何代码:`@deepseek-ai/dsh-credentials` 与 `@deepseek-ai/dsh-settings` 相对 `0.1.2-rc.1` **只有 `package.json` 版本号变化**(代码逐文件哈希一致),`@deepseek-ai/dsh-llm` 的变化是**附加式**(新增 `FileBlock` / `fileHandleText` / assistant-stream 等),本插件调用的 API 全部保留:`credentialRef`、`credentials.resolve/set/unset/describe`、`llm.listProviders/listConfigurableProviders`、`agent/request`、`agent/request-error`、`settings`、`webServer`;`agent/pre-step` waterfall 载荷两版**逐行相同**。**旧版本继续兼容**——`0.1.5-rc.1` 是**追加**进枚举,未删除任何版本。
|
|
23
|
+
- 注:DSH `0.1.5-rc.1` 移除了 `ctx.agent` 并调整 Inbox/Session API,本插件从未使用这些接口。
|
|
14
24
|
|
|
15
25
|
## v3.1.4 新增
|
|
16
26
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omdp/dsh-key-fallback",
|
|
3
3
|
"description": "API Key 回退轮换插件:多 key 池 + 自动轮换(触发码可配置,含 LlmError 标准码全集)+ 环境密钥编辑 + 明文揭示 + 短 ref 迁移。Settings → API Key 回退 UI. v6.1.",
|
|
4
|
-
"version": "3.1.
|
|
4
|
+
"version": "3.1.7",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@deepseek-ai/cordis": "4.0.1 || 4.0.2",
|
|
42
|
-
"@deepseek-ai/dsh-credentials": "0.1.0-rc.6 || 0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1",
|
|
43
|
-
"@deepseek-ai/dsh-llm": "0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1",
|
|
44
|
-
"@deepseek-ai/dsh-settings": "0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1",
|
|
42
|
+
"@deepseek-ai/dsh-credentials": "0.1.0-rc.6 || 0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
43
|
+
"@deepseek-ai/dsh-llm": "0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
44
|
+
"@deepseek-ai/dsh-settings": "0.1.1-rc.2 || 0.1.2-alpha.1 || 0.1.2-alpha.2 || 0.1.2-alpha.3 || 0.1.2-alpha.4 || 0.1.2-alpha.5 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
45
45
|
"@deepseek-ai/schemastery": "3.18.1 || 3.18.2"
|
|
46
46
|
}
|
|
47
47
|
}
|