dsh-router-core 0.4.8 → 0.4.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/README.md CHANGED
@@ -165,7 +165,8 @@ team 测试就是多个会话交错发请求。dsh-router 原生适配这个场
165
165
  - **可用模型** — 模型列表,逐个启用/禁用 + 自定义模型(通用能力,持久化到
166
166
  `data/supplier-config.json`,`/v1/models` 与 chat 只接受启用的模型);单个模型可
167
167
  「测试」,走真实对话路径并按账号池依次回退,所以能分清是这个账号额度没了还是
168
- 该模型真的不支持;
168
+ 该模型真的不支持。行上显示**上游的可读名**(如 `Qwen3.8-Max`),上游 key
169
+ (`qmodel_38max`)跟在小号淡字里 —— 请求与组合用的始终是 key;
169
170
  - **组合** — fallback 链(免费优先),可自定义。**组合即模型**:建好的组合会**自动带出**
170
171
  为 DSH 模型目录里的 `router` provider 选项(设置 → 模型直接选组合名即可用),请求
171
172
  按组合策略命中其中一个供应商模型;
@@ -469,6 +470,9 @@ Anthropic 的工具调用(非流式 `tool_use` 与流式 `content_block_start` +
469
470
  2. **用户目录**:`~/.dsh/profiles/<profile>/suppliers/*.js`,**压过**同名内置行。
470
471
  - **模型统一策略**:插件不内置、不缓存模型;`listModels` 每次从上游拉取,
471
472
  缓存由核心按 60s TTL 统一管(`/suppliers/:id/models`),`/v1/models` 保持实时。
473
+ 条目是 `{ id, name?, context_length? }`:**`id` 是上游 key**(组合、路由、请求都用它),
474
+ **`name` 是上游的可读名**(只用于显示)。有的上游 key 是内部标识(Qoder 的
475
+ `qmodel_38max`),不把名字带上来,面板上就只有一串看不懂的字母。
472
476
  - **凭证存储**:SQLite 单库 `{authDir}/credentials.sqlite`(表 `credentials(supplier, uid, data)`,
473
477
  凭证为供应商不透明 JSON blob)。
474
478
  - **/v1/\* 鉴权**:由 `KeysStore.requireApiKey` 控制。关闭 → 不鉴权;
package/docs/suppliers.md CHANGED
@@ -42,7 +42,7 @@ export const priority = 10 // 数字越小越优先(免费优先)
42
42
  | 方法 | 说明 |
43
43
  |---|---|
44
44
  | `status()` | 报账号**现在状态**:`{ id, name, accounts: [{ uid, nickname, credits, state }] }` |
45
- | `listModels(force?)` | `[{ id, context_length? }]`;`force=true` 时强制刷新来源(「获取模型」按钮调用) |
45
+ | `listModels(force?)` | `[{ id, name?, context_length? }]`;`force=true` 时强制刷新来源(「获取模型」按钮调用)。`id` = 上游 key(组合/路由/请求都用它),`name` = 上游的可读名,**只用于显示**——上游 key 是内部标识时(Qoder 的 `qmodel_38max`)不报 name,面板上就只有一串看不懂的字母 |
46
46
  | `getAlias()` | 默认前缀 = 供应商 id(模型全名 = alias/id,别名留空即用 id) |
47
47
  | `chatOnce(uid, req)` | **对单个账号调一次上游**,见下 |
48
48
  | `dispose()` | 停止时清理 |