Commit Graph

158 Commits

Author SHA1 Message Date
cccf14f72d fix(compute): verify official model data and document sources (#112)
* fix(compute): verify official data and document model sources

* test(docs): guard provider metadata source freshness
2026-10-02 23:51:28 -07:00
79ffd1f8c3 feat(compute): refresh provider model catalog and compatibility profiles (#111) 2026-10-02 07:38:18 -07:00
614801a566 feat(runtimes): 推荐运行时升级到 Python 3.14.8 与 Node.js 24.21.0,minClientVersion 提到 10.0.178 (#110)
- Python:3.13 已于 2026-10-01 转入仅安全修复,改用 3.14 线最新版 3.14.8
  (python-build-standalone 20261001);内置 Hatch 1.16.5 认识发行版名 3.14
- Node.js:Krypton(24.x)最新 LTS 24.21.0;Node 26 要到 2026-10-28 才转 LTS
- 六个平台的 SHA-256 取自上游 SHA256SUMS / SHASUMS256.txt
- minClientVersion 10.0.82 → 10.0.178:首启离线导入按此清单在安装包里找归档,
  已发布客户端(≤10.0.177)只打包了 3.13.9 / 24.18.0,必须继续用各自的内置种子
2026-10-02 16:47:41 +08:00
dc7d48957e feat(compute): add GPT-6.1 Sol and Claude Sonnet 5.5 (#109) 2026-10-01 21:41:50 +08:00
74f92ac15a fix(compute): Codex 订阅接入面去掉 gpt-6-sol / gpt-6-luna 的 none 档 (#107)
OpenAI 下发给 Codex 的模型元数据(supported_reasoning_levels)里,ChatGPT
订阅接入面没有任何模型支持 none。#106 给 gpt-6-sol、gpt-6-luna 声明了 none,
客户端据此在 AI 审批等关闭思考的调用上发送 reasoning.effort=none,上游 400,
审批拿不到建议即自动拒绝,Agent 的每个中风险操作都被拒(2026-09-26 达摩院
176 在 win-test 上复现)。

去掉 none 后客户端对这两个模型不发关闭参数,改用上游默认档位;已在 win-test
真机验证 gpt-6-sol 的 AI 审批恢复为 200、Write 正常执行。model-specs 中的
off 是模型本身的事实,保持不变,本次只收紧 Codex 接入面。

presetDataVersion 121 → 122。
2026-09-26 15:53:12 +08:00
b64ee77342 feat(compute): update current model catalog (#106)
* feat(compute): update current model catalog

* feat(compute): add MiMo V2.6 model profiles
2026-09-25 23:33:23 +08:00
b4ff98c38c feat(compute): add Xiaomi MiMo-X preview models (#105) 2026-09-15 00:03:04 -04:00
ea59c02709 chore(compute): 删除无消费者的 extra.thinkingOnByDefault (#100)
客户端从未读取该字段:DesireCore 主仓的代码与 Schema 都没有引用它。「省略 thinking 时
上游是否默认思考」由主仓 thinking-profiles.ts 的 Anthropic 代际表判定(desirecore#2944)。
数据本身也不一致:Fable 5.1 / Opus 5 有该字段,同样默认 adaptive 的 Sonnet 5 却缺失,
保留下去容易被误当成可以调整行为的开关。

删除 model-specs/anthropic.json 1 处,providers/anthropic.json 与 anthropic-claude.json
各 2 处。extra 是开放对象,本仓与客户端 Schema 都未声明该字段,删除不影响任何校验;
客户端合并预设不回传字段删除,存量 compute.json 里残留的该字段依旧无人读取,无害。

presetDataVersion 118 → 119。
2026-09-14 08:56:59 -04:00
f3bf4e092c feat(compute): add DeepSeek V4.1 Flash alias (#104) 2026-09-14 01:23:52 -04:00
5171219a13 feat(compute): 声明 Anthropic 模型拒绝的采样参数与强制工具选择 (#103)
Claude Opus 4.7+ / Opus 5 / Fable 携带 temperature / top_p / top_k 会被官方 400
(Sonnet 5 非默认值 400),Claude Fable 5.1 对 tool_choice any / tool 回 400。客户端
改为纯按声明在出站删除采样参数、把强制工具选择降级为 auto(desirecore 主仓配套 PR)。

- providers/anthropic.json:claude-fable-5-1 增加 forcedToolChoiceUnsupported
- model-specs/anthropic.json:fable-5-1 / opus-5 / opus-4-8 / opus-4-7 / sonnet-5 声明
  samplingParametersDeprecated,fable-5-1 声明 forcedToolChoiceUnsupported,供精确命中
  补全的动态 Provider 使用;opus-4-7 的 defaultTemperature 由 1 改为 null(不支持温度调节)
- schemas:provider model extra 与 ModelSpec spec.extra 声明两个布尔字段(含 description)
- 测试:已知拒绝代际必须声明(单向)、布尔类型校验
- presetDataVersion 116 → 117
2026-09-13 22:56:51 -04:00
0be8207e32 fix(compute): 为 Anthropic adaptive 代际模型规格补齐 adaptiveThinking 声明 (#102)
Opus 5 / Sonnet 5 / Opus 4.8 / Opus 4.7 规格补 spec.extra.adaptiveThinking;各版本规格 family 收窄为自身版本,新增同名 claude-opus / claude-sonnet 家族规格承接兜底,防止声明泄漏给 Opus 4.5 等旧型号;schema 声明 adaptiveThinking 并写明匹配键约束;测试约束代际声明与 id/exact/pattern/family 不变式;presetDataVersion 115 → 116。
2026-09-13 22:39:20 -04:00
143b567a84 feat(compute): add DeepSeek V4.1 Flash profile (#101) 2026-09-13 22:05:51 -04:00
d28297242c feat(compute): 官方 Anthropic 模型声明接受不含 thinking 的工具轮 (#99)
新增 extra.thinkingToolTurnValidation(requires-thinking / accepts-thinkless),与
thinkingRoundTrip 并列(后者 additionalProperties:false,不能往里加字段)。

anthropic.json 与 anthropic-claude.json 的 Fable 5.1 / Opus 5 / Sonnet 5 声明
accepts-thinkless:官方 adaptive thinking 不要求工具轮以 thinking 开头,模型跳过思考的
工具轮原样回放即合法(mini 真机六轮验证全部 200)。客户端据此不再对这类响应重试、
不再降级为关闭思考。旧客户端忽略该字段,行为不变。

model-spec schema 的 spec.extra 同步禁止 thinkingRoundTrip 与 thinkingToolTurnValidation,
与客户端 Schema 一致,避免写错后新客户端整份拒收规格。

presetDataVersion 113 → 114。
2026-09-13 05:48:36 -04:00
008a082b2a fix(compute): 补齐 API Key 版 Fable 5.1 的 thinking 回放声明 (#97)
#87 为当时全部 Anthropic 模型(含 claude-fable-5)声明了 thinkingRoundTrip,
#94 新增 claude-fable-5-1 时漏掉,#95 删除 Fable 5 后 API Key 版只剩 Opus 5 /
Sonnet 5 声明。#96 已为订阅版 claude-fable-5-1 声明同款能力,说明意图一致。

Fable 5.1 为 thinkingOnly + thinkingOnByDefault,工具轮携带 thinking 是常态。
缺少声明时客户端 resolver 不下发 thinkingRoundTrip,出站重建会剥离当前工具轮
已签名的 thinking,续接请求会被 Anthropic 拒绝;同时入站守卫也不生效。

presetDataVersion 112 → 113。
2026-09-13 05:15:03 -04:00
014d532708 feat(compute): API Key 版 Fable 5.1 补齐 thinking 回放声明 (#98)
#94 新增 claude-fable-5-1 时漏掉了 Fable 5 自 #87 起就有的 thinkingRoundTrip
(active-tool-turn)。该模型 thinkingOnly,开启 thinking 的工具续接必须回放
本工具轮的已签名 thinking;订阅版 anthropic-claude.json 已在 #96 声明。
presetDataVersion 112 → 113。
2026-09-13 02:50:48 -04:00
9e6dc2bce0 feat(compute): Claude 订阅模型声明 thinking 回放能力 (#96)
与 anthropic.json(API Key 版)同款 thinkingRoundTrip(active-tool-turn)。
DesireCore ADR-161 把 Claude 订阅改为无状态传输后,开启 thinking 的工具续接
只能由请求携带本工具轮的已签名 thinking;在客户端删除按身份排除的逻辑之前,
此声明不改变任何行为。presetDataVersion 111 → 112。
2026-09-12 15:25:56 -04:00
064c561202 chore(compute): remove Fable 5 and Haiku 4.5 presets (#95) 2026-09-10 11:53:08 -04:00
571b98e682 feat(compute): add GPT-Reserve, Fable 5.1 and GPT-6 Astra (#94) 2026-09-06 04:20:15 -04:00
Johnson-LYS
8157091702 fix: prioritize Doubao web search (#93) 2026-09-01 16:37:39 +08:00
Johnson-LYS
3b26ea627d feat: add Doubao Global web search provider (#92) 2026-09-01 16:27:58 +08:00
Johnson-LYS
e7848667b6 feat: refresh model sync and MiMo speech metadata (#91) 2026-08-31 14:35:53 +08:00
9f331d3f78 feat(compute): 新增 GitHub Copilot 订阅 Provider 预设 (#90)
- compute/providers/github-copilot.json:coding-plan + credentialSource
  github-copilot,models 留空(可用集合随订阅档位与组织策略变化,由客户端
  登录后经 /models 动态发现)
- schemas/provider.schema.json:credentialSource 枚举登记 github-copilot 及其语义
- _index.json 顺序追加;manifest presetDataVersion 105 → 106
- 测试计价归属表登记 github-copilot(USD)

Co-authored-by: yi-ge <jackyoncode@gmail.com>
2026-08-31 14:16:30 +08:00
59743a99b4 feat(compute): 默认话题/摘要模型改为裸 mimo-v2.5(lightweight 档) (#89)
defaultServiceMap.summary.modelName: mimo-v2.5-pro → mimo-v2.5。

mimo-v2.5-pro 是 flagship 档(model-specs/xiaomi.json 里 tier=flagship),
裸 mimo-v2.5 才是 lightweight 档、支持 vision 的全模态版本,更符合摘要
用轻量模型的本意。

已知:该模型目前尚未出现在 desirecore-cloud 账号实时同步的模型列表里
(compute/providers/xiaomi.json 静态目录同样只有 -pro/-asr/-tts 三个变体),
应用侧的 applySummaryModelPin 精确匹配当前会跳过钉选、原样透传(不报错,
但也不生效),账号后续同步到该模型后自动生效,无需再改代码或数据。
2026-08-29 00:58:52 +08:00
ec57989864 feat(compute): 默认话题/摘要模型改为 mimo-v2.5-pro (#88)
defaultServiceMap.summary.modelName: deepseek-v4-flash-0731 → mimo-v2.5-pro
(desirecore-cloud 下唯一的 mimo-v2.5 系通用对话/推理变体,另有 -asr/-tts
两个语音专用变体不适用;账号已同步确认可用)。
2026-08-29 00:29:01 +08:00
37ad16f612 feat(compute): 声明 Anthropic thinking 回放能力 (#87)
Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-08-28 18:55:12 +08:00
3dbb9f2d83 fix(compute): 修正 summary 映射的模型名,账号实际同步的是带日期后缀版本 (#86)
真机验证发现 desirecore-cloud 账号 /api/v1/me/models 同步下来的模型目录里
只有 deepseek-v4-flash-0731(isDefault=true),没有裸的 deepseek-v4-flash——
PR #85 用的裸模型名精确匹配不上,导致摘要模型钉选静默失效(原样透传,无报错)。

改为 deepseek-v4-flash-0731(当前账号实际的 flash 档默认模型,contextWindow
与 pro 档一致但 inputRatio/outputRatio 明显更低)。这类日期后缀模型名可能
随云端版本迭代变化,后续如再次不匹配,只需改这个文件重新同步,无需改代码。
2026-08-28 18:07:10 +08:00
fadc3375c2 feat(compute): 新增 summary 服务映射,摘要专用轻量模型可配置化 (#85)
desirecore 主仓库把话题摘要/会话摘要/只读深度摘要三处的 provider/model 钉选逻辑
统一收口,原先硬编码在代码里的 desirecore-cloud + deepseek-v4-flash 组合改为读取
这里的 defaultServiceMap.summary,命中该 providerId 时钉选为该轻量模型,避免摘要
任务沿用主会话的重型模型参数。
2026-08-28 16:33:31 +08:00
a998e18e6c chore(compute): 下架零一万物 API 配置 (#84) 2026-08-28 14:52:05 +08:00
Johnson-LYS
de98a1ad1e feat(compute): add GLM-5.3 Flash to Coding Plan (#83)
- add GLM-5.3 Flash to the Z.AI Coding Plan preset
- declare multimodal and always-on reasoning capabilities
- add regression coverage and bump preset data version
2026-08-28 14:30:03 +08:00
Johnson-LYS
d0e9bf5085 feat(compute): add DeepSeek V4 variants and Qwen3.8 Flash (#82)
- add DeepSeek V4 Flash Vision Exp provider and model specifications
- add DeepSeek V4 Flash 0731 and Qwen3.8 Flash model specifications
- add regression coverage and bump preset data version
2026-08-27 17:43:36 +08:00
c46cf07d2f feat(compute): 补 GLM-5.3 系列规格并标注 Ox Alpha 真身 (#81)
* feat(compute): 补 GLM-5.3 系列规格并标注 Ox Alpha 真身

Ox Alpha 是智谱 GLM-5.3-Flash 的匿名发布别名(canonical_slug
z-ai/glm-5.3-flash-20260826,2026-08-26 揭晓后已从 OpenRouter 列表下架)。

改动:
- model-specs/zhipu.json 新增 glm-5.3 与 glm-5.3-flash 正式规格。两者均
  强制思考(z.ai 文档:thinking.type 仅接受 enabled;OpenRouter models API:
  reasoning.mandatory=true,supported_efforts=[max,high,low]),故
  routing.reasoning.supportedModes 不含 off。按 #79 的教训只用 exact 匹配,
  避免 glm-5.3* 误吞 glm-5.3-flash。
- model-specs/stealth.json 的 ox-alpha 用 spec.extra.modelOrigin 标注真身。
  条目保留:云端算力可能仍以旧别名下发该模型。
- schemas/model-spec.schema.json 为 extra.thinkingOnly / thinkingDefault
  补正式定义与 description。此前这两个键无任何说明,客户端因此从未消费,
  用户选「关闭思考」即触发上游 400(见 desirecore#2307)。
- scripts/validate.mjs 新增静默失效键名巡检:extra 是开放对象,写错键名
  既不报错也无告警。当前巡出 17 处扁平 extra.reasoningEffort。刻意只告警
  不失败——存量取值需逐个核实各自接入面实际接受哪些 effort。

* docs(schema): 写明 extra.reasoning 与 thinkingOnly 的职责边界

provider schema 的 extra.reasoning 此前只有子字段 description、对象本身没有,
维护者看不出它与 model-spec 的 thinkingOnly 分别回答什么问题——issue
desirecore#2307 的误解正源于此。补上对象级说明:本键答「接入面接受哪些 effort
值」且只能写在 provider model;thinkingOnly 答「off 能不能用」、不声明深度档位。
2026-08-27 15:21:25 +08:00
fa2f10dd0d feat: 添加万相 3.0 视频模型配置 (#80) 2026-08-25 08:35:44 -04:00
Johnson-LYS
61b5046117 fix(compute): split suffixed model specs (#79) 2026-08-25 11:17:02 +08:00
Johnson-LYS
b8f8f0ae58 fix(compute): add explicit Ox Alpha alias (#78) 2026-08-21 17:01:38 +08:00
Johnson-LYS
e627aef16a feat(compute): add Ox Alpha model (#77) 2026-08-21 16:44:37 +08:00
e3b20e4790 fix: validate smart routing tier completeness (#76) 2026-08-10 19:32:41 +08:00
ad8c515938 refactor: consolidate smart routing into model specs (#75) 2026-08-10 19:13:08 +08:00
Johnson-LYS
ed0aeccf29 feat: add qwen3.8 max preview (#67) 2026-08-10 17:10:47 +08:00
d6f939af52 feat: 下发智能路由模型目录 (#74) 2026-08-10 17:03:06 +08:00
78ed93f127 feat(compute): Claude 系列 defaultEffort 统一为 xhigh,presetDataVersion → 87 (#73)
Anthropic 对 Fable 5 / Opus 5 / Sonnet 5 的建议是编程与智能体场景用 xhigh
(Claude Code 自身默认即 xhigh),而此前沿用的是 API 默认值 high。DesireCore
是智能体操作系统,主力场景就是编程与长程智能体任务,故对齐到 xhigh。

两个 Anthropic provider 的 fable-5 / opus-5 / sonnet-5 同步调整,
extra.reasoning.defaultEffort 与顶层文档性 extra.defaultEffort 保持一致。
Haiku 4.5 不支持 effort 参数,无 reasoning 声明,不受影响。

注意:这会抬高默认 token 消耗;用户仍可在模型选择器按会话下调档位。
OpenAI Codex 的 per-model defaultEffort(low/medium/medium)是按模型分别调过的,
不属于本次对齐范围。
2026-08-08 18:52:31 +08:00
7832ae26a9 feat(compute): 下线 Opus 4.8 / Opus 4.7 / Sonnet 4.6,presetDataVersion → 86 (#72)
Anthropic provider 保留 Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5;Claude 订阅
provider 保留 Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5。

三个模型同时写入 provider.tombstones —— 仅从 models 数组删除只会触发 deprecated
软降级(保留本地数据),写入 tombstones 才是真删除,且客户端 resolver 的
resolveMappingModel() 只对 tombstone 模型执行「回退到同 serviceType 的其他可用
模型」,未 tombstone 的缺失模型会原样透传。因此写 tombstones 才能让存量会话平滑
迁移到 Opus 5,而不是继续指向一个已消失的模型名。

model-specs/anthropic.json 中三者的规格条目保留:规格库按 model_name 匹配任意
上游(含 OpenRouter 风格 vendor 前缀),与 provider 清单解耦——该文件本来就有
claude-sonnet-4-5 这类无 provider 条目的规格。删除会让经其他网关访问这些模型的
用户丢失上下文窗口/能力元数据。

用户侧 user-added / synced / ollama-discovery 来源的同名模型不受 tombstones 影响。
2026-08-08 18:44:57 +08:00
a752fddd0b feat(compute): 新增 Claude Opus 5 + 补齐 Claude 系列 effort 档位,presetDataVersion → 85 (#71)
Opus 5 是 Anthropic Opus 系列当前旗舰(1M 上下文 / 128K 输出 / $5·$25 per MTok,
与 Opus 4.8 同价),此前 config-center 完全缺失,用户在模型选择器里看不到它。

变更:
- compute/providers/anthropic.json:新增 claude-opus-5(排在 fable-5 之后、
  opus-4-8 之前);serverSideWebSearch.fallbackPriority 顺延重排
- compute/providers/anthropic-claude.json:Claude 订阅 provider 同步新增 claude-opus-5
- compute/model-specs/anthropic.json:补 claude-opus-5 与 claude-sonnet-5 规格
  (sonnet-5 此前只有 provider 条目、没有规格)
- 补 extra.reasoning.supportedEfforts:客户端 parseReasoningEffortConfig 只读
  extra.reasoning,原有的顶层 extra.defaultEffort 不被消费,导致 Claude 模型的
  effort 档位在 UI 上始终不可选。按各模型实际支持声明档位(sonnet-4-6 无 xhigh)
- __tests__/validate.test.mjs:WebSearch 允许名单登记 claude-opus-5
- manifest.json:presetDataVersion 84 → 85
2026-08-08 17:59:09 +08:00
6befa8ebb6 feat(compute): 重新发布 Claude 订阅 provider(anthropic-claude),presetDataVersion → 84 (#70)
#47/#48/#49 曾因 credentialSource 硬 enum 毒丸老客户端而被 #50 回滚。毒丸根因已由
客户端 desirecore#1021 系统性修复(credentialSource 改开放 string + 合并 salvage +
能力门控降级),claude-oauth 检测器与 SDK 网关由 desirecore#1008 提供,
requiredClientVersion 运行时门槛由 desirecore#1038 提供,三者同在 v10.0.83 发布。

本次重新发布相较 #47 的变化:
- 声明 requiredClientVersion = 10.0.83,低版本客户端优雅门控为「需更新客户端」
- displayName 去掉冗余 (订阅) 后缀,对齐 #58 的 Codex 命名约定
- 文件名 anthropic-claude.json 与 _index.json basename 一致(#48 的修正一并纳入)
2026-08-08 17:12:10 +08:00
89b292dc12 fix: correct MiMo V2.5 Pro multimodal capability (#69) 2026-07-28 09:47:26 +08:00
130b8f9ef9 feat(compute): 添加 qwen3.8-max-preview 模型 (#66)
- 新增 Qwen3.8-Max Preview 到 dashscope provider 和 model-specs
- 100万上下文,支持视觉理解(serviceType 含 vision)、Agent、推理
- supportsReasoning: true
- 定价:输入 ¥12/M token,输出 ¥36/M token
- presetDataVersion 81 → 82
2026-07-25 15:31:40 +08:00
2ddf3045d6 fix: account for native search request pricing (#65) 2026-07-24 12:28:07 +08:00
96842d2080 feat: configure tiered web search providers (#64) 2026-07-24 00:30:47 +08:00
Johnson-LYS
e59adbb166 feat: add Kimi K3 model spec (#62)
Co-authored-by: DesireCore CI <ci@desirecore.test>
2026-07-20 20:00:19 +08:00
Johnson-LYS
29ef625f32 fix(compute): match MiMo V2.5 ASR exactly (#61)
Co-authored-by: DesireCore CI <ci@desirecore.test>
2026-07-20 17:29:05 +08:00
523e667b40 fix(compute): enforce reasoning effort boundaries (#60) 2026-07-19 21:47:10 +08:00