@thincoder/core 0.9.3 → 0.9.4
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 +13 -0
- package/config-presets.mjs +2 -2
- package/model-specs.mjs +22 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
All notable changes to the core package are documented here.
|
|
4
4
|
Format: Keep a Changelog · 中文 · 号在发布时定(CalVer——见 `docs/RELEASE.md` §4)。
|
|
5
5
|
|
|
6
|
+
## [0.9.4] — 2026-09-22
|
|
7
|
+
|
|
8
|
+
> 0.9.3 → 0.9.4(月内序号——发布时定号)
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **MiMo V2.6 三款规格行**(`mimo-v2.6-pro` / `mimo-v2.6-flash` / `mimo-v2.6-pro-ultraspeed`——同日上架):此前缺行落兜底(128K / 32K / 无视觉),现按真机实测登记——1M 上下文 · 131_072 输出 · 思考默认开(`thinking.type`)· 全模态 · 自动缓存。
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **MiMo v2.5 两行存量对齐**(同日实测):`maxOutput` 128_000 → 131_072 + 补自动缓存登记;族头注与 `assistantToolCallMessage` 文书句按 2026-09-22 复测改写(原「缺字段 → 400」句已不可复现——回显策略保持保守不变)。
|
|
17
|
+
- **MiMo 预设改指**:`mimo` / `mimoplan` 默认模型 → `mimo-v2.6-pro`(v2.5 官网标注即将下线;Token Plan 端点同平台推断)。
|
|
18
|
+
|
|
6
19
|
## [0.9.3] — 2026-09-22
|
|
7
20
|
|
|
8
21
|
> 0.9.2 → 0.9.3(月内序号——发布时定号)
|
package/config-presets.mjs
CHANGED
|
@@ -21,8 +21,8 @@ export const PROVIDER_PRESETS = {
|
|
|
21
21
|
"glm-code": { baseURL: "https://open.bigmodel.cn/api/coding/paas/v4", model: "glm-5.2", thinking: { type: "enabled" }, reasoningEffort: "max", maxTokens: 128000, desc: "Zhipu GLM Coding Plan (coding endpoint — same key as GLM; server-forced thinking)" },
|
|
22
22
|
qwen: { baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1", model: "qwen3.7-max", reasoningEffort: "high", maxTokens: 131072, desc: "Qwen / Alibaba" },
|
|
23
23
|
qwenplan: { baseURL: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", model: "qwen3.7-max", reasoningEffort: "high", maxTokens: 131072, desc: "Qwen Token Plan (百炼套餐)" },
|
|
24
|
-
mimo: { baseURL: "https://api.xiaomimimo.com/v1", model: "mimo-v2.
|
|
25
|
-
mimoplan: { baseURL: "https://token-plan-cn.xiaomimimo.com/v1", model: "mimo-v2.
|
|
24
|
+
mimo: { baseURL: "https://api.xiaomimimo.com/v1", model: "mimo-v2.6-pro", thinking: { type: "enabled" }, maxTokens: 131072, desc: "MiMo (Xiaomi)" },
|
|
25
|
+
mimoplan: { baseURL: "https://token-plan-cn.xiaomimimo.com/v1", model: "mimo-v2.6-pro", thinking: { type: "enabled" }, maxTokens: 131072, desc: "MiMo Token Plan (小米套餐 — tp- keys; 与按量付费 sk- 密钥不通用)" },
|
|
26
26
|
minimax: { baseURL: "https://api.minimaxi.com/v1", model: "MiniMax-M3", thinking: { type: "adaptive" }, maxTokens: 128000, chatPath: "/text/chatcompletion_v2", desc: "MiniMax" },
|
|
27
27
|
openai: { baseURL: "https://api.openai.com/v1", model: "gpt-4o", desc: "OpenAI" },
|
|
28
28
|
claude: { baseURL: "https://api.anthropic.com/v1", model: "claude-sonnet-4", format: "anthropic", maxTokens: 8192, desc: "Claude (Anthropic)" },
|
package/model-specs.mjs
CHANGED
|
@@ -113,11 +113,26 @@ const MODEL_SPECS = [
|
|
|
113
113
|
["qwen3.6-35b-a3b", { context: 1_000_000, maxOutput: 65_536, thinking: true, partialMode: true, multimodal: true, cacheMode: "none", thinkApi: "effort", reasoningEffortEnum: ["none", "minimal", "low", "medium", "high", "xhigh"], tempRange: [0, 2] }],
|
|
114
114
|
// MiniMax series
|
|
115
115
|
["MiniMax-M3", { context: 1_000_000, maxOutput: 128_000, thinking: true, multimodal: true, cacheMode: "auto", thinkApi: "type", thinkEnabledValue: "adaptive", tempRange: [0, 2], noUsageStream: true }],
|
|
116
|
-
// MiMo series (Xiaomi — OpenAI-compatible https://api.xiaomimimo.com/v1;
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
// MiMo series (Xiaomi — OpenAI-compatible https://api.xiaomimimo.com/v1; deep thinking via
|
|
117
|
+
// thinking.type, default ON). Family echo policy stays conservative ("required" — tool rounds
|
|
118
|
+
// always echo); 2026-09-22 re-probe: value / missing field / empty string all 200 — the
|
|
119
|
+
// 2026-09-20 "must be passed back" 400 was NOT reproduced. v2.5 rows aligned 2026-09-22:
|
|
120
|
+
// maxOutput 131_072 = **校验级**; cacheMode "auto" = **实测** (2nd same-prefix round cached 18,816).
|
|
121
|
+
["mimo-v2.5-pro", { context: 1_000_000, maxOutput: 131_072, thinking: true, cacheMode: "auto", thinkApi: "type", reasoningEcho: "required", tempRange: [0, 1.5] }],
|
|
122
|
+
["mimo-v2.5", { context: 1_000_000, maxOutput: 131_072, thinking: true, multimodal: true, cacheMode: "auto", thinkApi: "type", reasoningEcho: "required", tempRange: [0, 1.5] }],
|
|
123
|
+
// MiMo V2.6 series (2026-09-22 launch — three independent rows, each probed individually).
|
|
124
|
+
// maxOutput 131_072 / tempRange [0, 1.5] = **校验级** (400 "at most 131072 completion tokens" /
|
|
125
|
+
// "temperature must be within [0, 1.5]", per model); thinking = **实测** (bare request carries
|
|
126
|
+
// reasoning_content; thinking.type disabled → rc gone ⇒ thinkApi "type" = measured face) and
|
|
127
|
+
// multimodal = **实测** (8×8 pure-red PNG, pro / flash answered "Red"); cacheMode "auto" = **实测**
|
|
128
|
+
// (cached_tokens 18,688). context 1_000_000 = **官方口径** (docs); reasoningEcho = **族沿用**.
|
|
129
|
+
["mimo-v2.6-pro", { context: 1_000_000, maxOutput: 131_072, thinking: true, multimodal: true, cacheMode: "auto", thinkApi: "type", reasoningEcho: "required", tempRange: [0, 1.5] }],
|
|
130
|
+
// mimo-v2.6-flash: same row shape as pro — maxOutput 131_072 / tempRange [0, 1.5] = **校验级**,
|
|
131
|
+
// thinking / multimodal / cacheMode = **实测**, context = **官方口径**, reasoningEcho = **族沿用**.
|
|
132
|
+
["mimo-v2.6-flash", { context: 1_000_000, maxOutput: 131_072, thinking: true, multimodal: true, cacheMode: "auto", thinkApi: "type", reasoningEcho: "required", tempRange: [0, 1.5] }],
|
|
133
|
+
// mimo-v2.6-pro-ultraspeed: same row shape — same grades as flash (**校验级** / **实测** /
|
|
134
|
+
// **官方口径** / **族沿用**); image answer at a 64-token budget was truncated — "Red" at 512.
|
|
135
|
+
["mimo-v2.6-pro-ultraspeed", { context: 1_000_000, maxOutput: 131_072, thinking: true, multimodal: true, cacheMode: "auto", thinkApi: "type", reasoningEcho: "required", tempRange: [0, 1.5] }],
|
|
121
136
|
["minimax-m3", { context: 1_000_000, maxOutput: 128_000, thinking: true, multimodal: true, cacheMode: "auto", thinkApi: "type", thinkEnabledValue: "adaptive", tempRange: [0, 2], noUsageStream: true }],
|
|
122
137
|
["minimax-m1", { context: 256_000, maxOutput: 128_000, thinking: false, cacheMode: "auto", noUsageStream: true }],
|
|
123
138
|
// Grok series (xAI — OpenAI-compatible)
|
|
@@ -254,8 +269,8 @@ export function providerSpec(provider) {
|
|
|
254
269
|
*
|
|
255
270
|
* `reasoningEcho:"required"` families (deepseek / kimi / mimo) MUST carry the reasoning echo on
|
|
256
271
|
* every tool-call assistant message: the field is NEVER omitted — an absent/non-string
|
|
257
|
-
* `response.reasoning` is echoed as `""` (
|
|
258
|
-
* "must be passed back"
|
|
272
|
+
* `response.reasoning` is echoed as `""` (2026-09-22 re-probe: value / missing field / empty
|
|
273
|
+
* string all 200 — the 2026-09-20 "must be passed back" 400 was NOT reproduced). `optional` /
|
|
259
274
|
* undeclared families (incl. DEFAULT_SPEC) never get the field (behavior byte-identical).
|
|
260
275
|
*
|
|
261
276
|
* Callers: thincoder-core/agent.mjs (main loop) · thincoder-core/advisor/loop.mjs (review
|