feat: add Claude Fable 5 model mapping across Claude Code and Desktop

- Wire claude-fable-5 as a fourth tier on both proxy paths, with a
  fable -> opus -> default fallback mirroring the official downgrade.
- Whitelist the fable- prefix for the Desktop 1.12603.1+ validator.
- Clarify fallbackModelHint (zh/en/ja/zh-TW): a blank tier on
  third-party endpoints forwards the literal model name and 404s.

Refs #3980, #4026, #4049.
This commit is contained in:
Jason
2026-06-13 19:11:59 +08:00
parent 6e519a7496
commit 4f8a79c273
13 changed files with 343 additions and 41 deletions
+6 -3
View File
@@ -25,13 +25,16 @@ export interface ClaudeDesktopRoutePreset {
}
/**
* Claude Desktop 3P fail-all 校验接受 `claude-(sonnet|opus|haiku)-*` 形式的
* routeId1.6259.1+,实测 2026-05-13)。所有预设工厂、表单角色下拉、
* 后端 `next_catalog_safe_route_id` 都从此映射派生 routeId,避免散落硬编码。
* Claude Desktop 3P fail-all 校验接受的角色名。Desktop 1.12603.1+ 起白名单
* 纳入 fableapp.asar 内 ["sonnet","opus","haiku","fable","mythos"],实测
* 2026-06-13);此前 1.6259.1 仅接受 sonnet/opus/haiku。mythos 官方未公开
* 发布,暂不暴露给用户。所有预设工厂、表单角色下拉、后端
* `next_catalog_safe_route_id` 都从此映射派生 routeId,避免散落硬编码。
*/
export const CLAUDE_DESKTOP_ROLE_ROUTE_IDS = {
sonnet: "claude-sonnet-4-6",
opus: "claude-opus-4-8",
fable: "claude-fable-5",
haiku: "claude-haiku-4-5",
} as const;