Skip to content

Commit 6bf9249

Browse files
committed
chore: release v0.3.1 — auth.order fix, model presets, Xiaomi seed
- Use full profile IDs in wizard auth.order; normalize auth order add/remove - Align provider model presets with OpenClaw 2026.3.23-2; fix Xiaomi baseUrl/api - Bump shell to 0.3.1; update README and CHANGELOG Made-with: Cursor
1 parent 95d8338 commit 6bf9249

8 files changed

Lines changed: 119 additions & 33 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
All notable changes to OpenClaw Desktop will be documented in this file.
44

5+
## [0.3.1] - 2026-03-26
6+
7+
### Fixed
8+
9+
- **Upstream model auth (401):** Wizard-generated `auth.order` now uses **full profile IDs** (e.g. `minimax:global`) to match OpenClaw’s configuration reference and the LLM API “save profile” path. `addProfileToAuthOrder` / `removeProfileFromAuthOrder` normalize shorthand entries (`global` vs `minimax:global`) so the gateway resolves the same credential as `auth-profiles.json`.
10+
- **Xiaomi MiMo seed config:** Provider seed uses `https://api.xiaomimimo.com/v1` with `openai-completions`, aligned with upstream provider docs (was incorrectly pointed at an Anthropic-style path).
11+
12+
### Changed
13+
14+
- **Wizard model presets:** Provider/model dropdowns updated to match bundled OpenClaw **2026.3.23-2** (MiniMax M2.7 lineup, xAI Grok catalog, Synthetic `hf:*` IDs, Kilo `kilo/auto`, Volcengine naming, Vercel ordering, etc.). See `src/renderer/constants/provider-presets.ts`.
15+
516
## [0.3.0] - 2026-03-25
617

718
### Fixed

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,19 @@ If you've been searching for *how to install OpenClaw on Windows*, *how to run O
4848
## Quick Start
4949

5050
1. Download the latest installer from [Releases](https://github.com/agentkernel/openclaw-desktop/releases/latest)
51-
2. Run `OpenClaw-Setup-0.3.0.exe`
51+
2. Run `OpenClaw-Setup-0.3.1.exe`
5252
3. Finish the setup wizard (provider → channel → gateway)
5353
4. Launch from Start Menu or Desktop shortcut
5454

5555
**System:** Windows 10/11 x64 · ~350 MB free space · Internet for API calls
5656

57-
## What's New in v0.3.0
57+
## What's New in v0.3.1
5858

59-
- **Embedded Control UI:** The shell mounts the gateway dashboard iframe as soon as the gateway is running and the local control URL (including `#token=` when configured) is ready—reliable entry to the console without a main-process WebSocket pre-check that could fail on some gateway builds.
59+
- **Model auth:** Wizard `auth.order` uses full profile IDs (e.g. `minimax:global`) and normalized auth-order edits, matching OpenClaw’s expected format—avoids **HTTP 401 invalid api key** when credentials are correct but order pointed at the wrong profile.
60+
- **Xiaomi:** Seed config uses the documented OpenAI-compatible endpoint for MiMo.
61+
- **Model presets:** Dropdown lists aligned with bundled OpenClaw **2026.3.23-2** (MiniMax M2.7 default, expanded catalogs).
62+
63+
Earlier highlights (v0.3.0): Embedded Control UI mounts as soon as the gateway is running—see [CHANGELOG.md](CHANGELOG.md).
6064

6165
Earlier highlights (v0.2.22): Lit + Electron Control UI build patches — see [CHANGELOG.md](CHANGELOG.md).
6266

@@ -118,8 +122,8 @@ OpenClaw Desktop is a **community-maintained Windows distribution** for the Open
118122

119123
| | |
120124
|---|---|
121-
| **Release** | `v0.3.0` |
122-
| **Installer** | `OpenClaw-Setup-0.3.0.exe` |
125+
| **Release** | `v0.3.1` |
126+
| **Installer** | `OpenClaw-Setup-0.3.1.exe` |
123127
| **Platform** | Windows 10/11 x64 |
124128
| **Includes** | Electron shell, portable Node.js, bundled OpenClaw |
125129
| **Extras** | SHA-256 checksum, `latest.yml` for in-app updates |
@@ -200,7 +204,7 @@ pnpm run prepare-bundle
200204
pnpm run package:win # Output: dist/OpenClaw-Setup-<version>.exe
201205
```
202206

203-
**Bundled OpenClaw:** Pinned in `package.json` (`openclawBundleVersion`). After `prepare-bundle`, see `bundledOpenClawVersion` in [`resources/bundle-manifest.json`](resources/bundle-manifest.json) (currently **2026.3.23-2** for desktop **v0.3.0**). Local checks: `pnpm run check-openclaw-versions` (omit `OPENCLAW_SKIP_NPM_LATEST_CHECK` to also compare against npm `latest`).
207+
**Bundled OpenClaw:** Pinned in `package.json` (`openclawBundleVersion`). After `prepare-bundle`, see `bundledOpenClawVersion` in [`resources/bundle-manifest.json`](resources/bundle-manifest.json) (currently **2026.3.23-2** for desktop **v0.3.1**). Local checks: `pnpm run check-openclaw-versions` (omit `OPENCLAW_SKIP_NPM_LATEST_CHECK` to also compare against npm `latest`).
204208

205209
**Related docs:** [CHANGELOG.md](CHANGELOG.md) · [CONTRIBUTING.md](CONTRIBUTING.md)
206210

README.zh-CN.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,19 @@
4848
## 快速开始
4949

5050
1.[Releases](https://github.com/agentkernel/openclaw-desktop/releases/latest) 下载最新安装包
51-
2. 运行 `OpenClaw-Setup-0.3.0.exe`
51+
2. 运行 `OpenClaw-Setup-0.3.1.exe`
5252
3. 完成设置向导(模型提供商 → 频道 → 网关)
5353
4. 从开始菜单或桌面快捷方式启动
5454

5555
**系统要求:** Windows 10/11 x64 · 约 350 MB 可用空间 · 网络连接(用于 API 调用)
5656

57-
## v0.3.0 更新亮点
57+
## v0.3.1 更新亮点
5858

59-
- **内嵌 Control UI:** 网关进入 running 且本地控制台 URL(含已配置的 `#token=`)就绪后即挂载 iframe;不再依赖主进程 WebSocket 预检,避免部分网关版本上预检失败导致一直停在「启动中」。
59+
- **模型鉴权:** 向导生成的 `auth.order` 使用**完整 profile ID**(如 `minimax:global`),并与保存凭据时的顺序逻辑统一,避免密钥正确仍出现 **HTTP 401 invalid api key**
60+
- **小米 MiMo:** 种子配置改为文档中的 OpenAI 兼容端点。
61+
- **模型预设:** 与捆绑 OpenClaw **2026.3.23-2** 对齐(MiniMax 默认 M2.7、扩展各厂商目录等)。
62+
63+
更早版本(v0.3.0)要点:内嵌 Control UI 就绪即挂载 — 详见 [CHANGELOG.md](CHANGELOG.md)
6064

6165
更早版本(v0.2.22)要点:Lit + Electron 下 Control UI 构建补丁 — 详见 [CHANGELOG.md](CHANGELOG.md)
6266

@@ -118,8 +122,8 @@ OpenClaw Desktop 是 OpenClaw 生态的**社区维护 Windows 分发版**,属
118122

119123
| | |
120124
|---|---|
121-
| **当前版本** | `v0.3.0` |
122-
| **安装包** | `OpenClaw-Setup-0.3.0.exe` |
125+
| **当前版本** | `v0.3.1` |
126+
| **安装包** | `OpenClaw-Setup-0.3.1.exe` |
123127
| **适用系统** | Windows 10/11 x64 |
124128
| **包含内容** | Electron 外壳、便携 Node.js、捆绑 OpenClaw |
125129
| **附加产物** | SHA-256 校验文件、`latest.yml`(应用内更新用) |
@@ -148,7 +152,7 @@ OpenClaw Desktop 是 OpenClaw 生态的**社区维护 Windows 分发版**,属
148152
<details>
149153
<summary><strong>如何在 Windows 上安装 OpenClaw?</strong></summary>
150154

151-
[最新发布页](https://github.com/agentkernel/openclaw-desktop/releases/latest)下载 `OpenClaw-Setup-0.3.0.exe` 并运行即可。无需 `npm`、无需系统级 Node.js、无需输入任何终端命令。
155+
[最新发布页](https://github.com/agentkernel/openclaw-desktop/releases/latest)下载 `OpenClaw-Setup-0.3.1.exe` 并运行即可。无需 `npm`、无需系统级 Node.js、无需输入任何终端命令。
152156
</details>
153157

154158
<details>
@@ -200,7 +204,7 @@ pnpm run prepare-bundle
200204
pnpm run package:win # 输出: dist/OpenClaw-Setup-<version>.exe
201205
```
202206

203-
**捆绑 OpenClaw:**`package.json` 中通过 `openclawBundleVersion` 固定;执行 `prepare-bundle` 后查看 [`resources/bundle-manifest.json`](resources/bundle-manifest.json) 中的 `bundledOpenClawVersion`(桌面 **v0.3.0** 当前为 **2026.3.23-2**)。本地校验:`pnpm run check-openclaw-versions`(不设 `OPENCLAW_SKIP_NPM_LATEST_CHECK` 时还会与 npm `latest` 对比)。
207+
**捆绑 OpenClaw:**`package.json` 中通过 `openclawBundleVersion` 固定;执行 `prepare-bundle` 后查看 [`resources/bundle-manifest.json`](resources/bundle-manifest.json) 中的 `bundledOpenClawVersion`(桌面 **v0.3.1** 当前为 **2026.3.23-2**)。本地校验:`pnpm run check-openclaw-versions`(不设 `OPENCLAW_SKIP_NPM_LATEST_CHECK` 时还会与 npm `latest` 对比)。
204208

205209
**相关文档:** [CHANGELOG.md](CHANGELOG.md) · [CONTRIBUTING.md](CONTRIBUTING.md)
206210

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "openclaw-desktop",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"openclawBundleVersion": "2026.3.23-2",
55
"description": "Community-maintained Windows desktop app and installer for OpenClaw.",
66
"type": "module",

resources/bundle-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"shellVersion": "0.3.0",
2+
"shellVersion": "0.3.1",
33
"bundledOpenClawVersion": "2026.3.23-2"
44
}

src/main/providers/provider-config.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,17 @@ export function setModelAliases(
139139
return next
140140
}
141141

142+
/**
143+
* Canonical auth.order entry for a provider. OpenClaw expects full profile ids
144+
* (e.g. `anthropic:work`); older configs may use shorthand (`work` → `anthropic:work`).
145+
*/
146+
export function normalizeAuthOrderEntry(providerId: string, entry: string): string {
147+
const t = entry.trim()
148+
if (!t) return t
149+
if (t.includes(':')) return t
150+
return `${providerId}:${t}`
151+
}
152+
142153
/**
143154
* Reorder profiles in auth.order[provider]
144155
*/
@@ -164,8 +175,10 @@ export function addProfileToAuthOrder(
164175
): OpenClawConfig {
165176
const order = (currentConfig?.auth?.order ?? {}) as Record<string, string[]>
166177
const existing = order[providerId] ?? []
167-
if (existing.includes(profileId)) return currentConfig
168-
return updateAuthOrder(currentConfig, providerId, [profileId, ...existing])
178+
const newEntry = normalizeAuthOrderEntry(providerId, profileId)
179+
const normalized = [...new Set(existing.map((e) => normalizeAuthOrderEntry(providerId, e)))]
180+
if (normalized.includes(newEntry)) return currentConfig
181+
return updateAuthOrder(currentConfig, providerId, [newEntry, ...normalized])
169182
}
170183

171184
/**
@@ -178,7 +191,10 @@ export function removeProfileFromAuthOrder(
178191
): OpenClawConfig {
179192
const order = (currentConfig?.auth?.order ?? {}) as Record<string, string[]>
180193
const existing = order[providerId] ?? []
181-
const filtered = existing.filter((id) => id !== profileId)
194+
const target = normalizeAuthOrderEntry(providerId, profileId)
195+
const filtered = existing.filter(
196+
(id) => normalizeAuthOrderEntry(providerId, id) !== target,
197+
)
182198
if (filtered.length === existing.length) return currentConfig
183199
return updateAuthOrder(currentConfig, providerId, filtered)
184200
}

src/main/wizard/setup-handler.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ const PROVIDER_SEEDS: Partial<Record<ModelProvider, ProviderSeed>> = {
147147
},
148148
xiaomi: {
149149
providerId: 'xiaomi',
150-
baseUrl: 'https://api.xiaomimimo.com/anthropic',
151-
api: 'anthropic-messages',
150+
baseUrl: 'https://api.xiaomimimo.com/v1',
151+
api: 'openai-completions',
152152
},
153153
qianfan: {
154154
providerId: 'qianfan',
@@ -516,7 +516,8 @@ function buildOpenClawConfig(state: WizardState): OpenClawConfig {
516516
},
517517
order: {
518518
...(config.auth?.order ?? {}),
519-
[authProviderId]: [profileName],
519+
// Full profile id (matches OpenClaw auth.order + providersSaveProfile)
520+
[authProviderId]: [profileId],
520521
},
521522
}
522523
}

src/renderer/constants/provider-presets.ts

Lines changed: 62 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* Wizard + LLM API 设置:供应商列表与模型预设。
3-
* 与上游 OpenClaw 捆绑版本对齐(参见仓库内 build/openclaw/CHANGELOG.md、docs.openclaw.ai)。
3+
* 与上游 OpenClaw 捆绑版本对齐(package.json `openclawBundleVersion`、build/openclaw/docs/providers、dist 内建 catalog)。
44
* 额外配置字段由 ModelStep 处理:moonshot 区域、Cloudflare Gateway、自定义 baseUrl/兼容模式等。
55
*/
66

@@ -85,6 +85,8 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
8585
{ id: 'gpt-5.4', label: 'GPT-5.4 (Codex)' },
8686
{ id: 'gpt-5.3-codex', label: 'GPT-5.3 Codex' },
8787
{ id: 'gpt-5.3-codex-spark', label: 'GPT-5.3 Codex Spark' },
88+
{ id: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
89+
{ id: 'gpt-5.1-codex', label: 'GPT-5.1 Codex' },
8890
],
8991
google: [
9092
{ id: 'gemini-3.1-pro-preview', label: 'Gemini 3.1 Pro (Preview)' },
@@ -93,25 +95,62 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
9395
],
9496
xai: [
9597
{ id: 'grok-4', label: 'Grok 4' },
96-
{ id: 'grok-3', label: 'Grok 3' },
98+
{ id: 'grok-4-0709', label: 'Grok 4 (0709)' },
99+
{ id: 'grok-4-fast-reasoning', label: 'Grok 4 Fast (reasoning)' },
100+
{ id: 'grok-4-fast-non-reasoning', label: 'Grok 4 Fast (non-reasoning)' },
101+
{ id: 'grok-4-1-fast-reasoning', label: 'Grok 4.1 Fast (reasoning)' },
102+
{ id: 'grok-4-1-fast-non-reasoning', label: 'Grok 4.1 Fast (non-reasoning)' },
103+
{ id: 'grok-4.20-reasoning', label: 'Grok 4.20 (reasoning)' },
104+
{ id: 'grok-4.20-non-reasoning', label: 'Grok 4.20 (non-reasoning)' },
105+
{ id: 'grok-code-fast-1', label: 'Grok Code Fast 1' },
97106
],
98107
opencode: [
99108
{ id: 'claude-opus-4-6', label: 'Claude Opus 4.6' },
100109
{ id: 'gpt-5.2', label: 'GPT-5.2' },
101110
{ id: 'gemini-3-pro', label: 'Gemini 3 Pro' },
102111
],
103112
'vercel-ai-gateway': [
104-
{ id: 'openai/gpt-5.4', label: 'OpenAI GPT-5.4' },
105113
{ id: 'anthropic/claude-opus-4.6', label: 'Anthropic Claude Opus 4.6' },
114+
{ id: 'openai/gpt-5.4', label: 'OpenAI GPT-5.4' },
115+
{ id: 'anthropic/claude-sonnet-4.6', label: 'Anthropic Claude Sonnet 4.6' },
106116
{ id: 'anthropic/claude-sonnet-4.5', label: 'Anthropic Claude Sonnet 4.5' },
107117
{ id: 'google/gemini-3-flash-preview', label: 'Google Gemini 3 Flash' },
108118
],
109119
'cloudflare-ai-gateway': [
110120
{ id: 'claude-sonnet-4-5', label: 'Claude Sonnet 4.5' },
111121
{ id: 'claude-opus-4-6', label: 'Claude Opus 4.6' },
112122
],
113-
minimax: [{ id: 'MiniMax-M2.5', label: 'MiniMax M2.5' }],
114-
synthetic: [{ id: 'claude-opus-4-6', label: 'Claude Opus 4.6' }],
123+
minimax: [
124+
{ id: 'MiniMax-M2.7', label: 'MiniMax M2.7' },
125+
{ id: 'MiniMax-M2.7-highspeed', label: 'MiniMax M2.7 Highspeed' },
126+
{ id: 'MiniMax-M2', label: 'MiniMax M2' },
127+
{ id: 'MiniMax-M2.1', label: 'MiniMax M2.1' },
128+
{ id: 'MiniMax-M2.1-highspeed', label: 'MiniMax M2.1 Highspeed' },
129+
{ id: 'MiniMax-M2.5', label: 'MiniMax M2.5' },
130+
{ id: 'MiniMax-M2.5-highspeed', label: 'MiniMax M2.5 Highspeed' },
131+
{ id: 'MiniMax-VL-01', label: 'MiniMax VL 01 (vision)' },
132+
],
133+
synthetic: [
134+
{ id: 'hf:MiniMaxAI/MiniMax-M2.5', label: 'MiniMax M2.5 (HF)' },
135+
{ id: 'hf:moonshotai/Kimi-K2-Thinking', label: 'Kimi K2 Thinking (HF)' },
136+
{ id: 'hf:zai-org/GLM-4.7', label: 'GLM 4.7 (HF)' },
137+
{ id: 'hf:deepseek-ai/DeepSeek-R1-0528', label: 'DeepSeek R1 0528 (HF)' },
138+
{ id: 'hf:deepseek-ai/DeepSeek-V3-0324', label: 'DeepSeek V3 0324 (HF)' },
139+
{ id: 'hf:deepseek-ai/DeepSeek-V3.1', label: 'DeepSeek V3.1 (HF)' },
140+
{ id: 'hf:deepseek-ai/DeepSeek-V3.1-Terminus', label: 'DeepSeek V3.1 Terminus (HF)' },
141+
{ id: 'hf:deepseek-ai/DeepSeek-V3.2', label: 'DeepSeek V3.2 (HF)' },
142+
{ id: 'hf:meta-llama/Llama-3.3-70B-Instruct', label: 'Llama 3.3 70B Instruct (HF)' },
143+
{ id: 'hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8', label: 'Llama 4 Maverick (HF)' },
144+
{ id: 'hf:moonshotai/Kimi-K2-Instruct-0905', label: 'Kimi K2 Instruct 0905 (HF)' },
145+
{ id: 'hf:openai/gpt-oss-120b', label: 'GPT-OSS 120B (HF)' },
146+
{ id: 'hf:Qwen/Qwen3-235B-A22B-Instruct-2507', label: 'Qwen3 235B Instruct (HF)' },
147+
{ id: 'hf:Qwen/Qwen3-Coder-480B-A35B-Instruct', label: 'Qwen3 Coder 480B (HF)' },
148+
{ id: 'hf:Qwen/Qwen3-VL-235B-A22B-Instruct', label: 'Qwen3 VL 235B (HF)' },
149+
{ id: 'hf:zai-org/GLM-4.5', label: 'GLM 4.5 (HF)' },
150+
{ id: 'hf:zai-org/GLM-4.6', label: 'GLM 4.6 (HF)' },
151+
{ id: 'hf:deepseek-ai/DeepSeek-V3', label: 'DeepSeek V3 (HF)' },
152+
{ id: 'hf:Qwen/Qwen3-235B-A22B-Thinking-2507', label: 'Qwen3 235B Thinking (HF)' },
153+
],
115154
moonshot: [
116155
{ id: 'kimi-k2.5', label: 'Kimi K2.5' },
117156
{ id: 'kimi-k2-0905-preview', label: 'Kimi K2 0905 Preview' },
@@ -132,7 +171,11 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
132171
{ id: 'mistral-large-latest', label: 'Mistral Large Latest' },
133172
{ id: 'codestral-latest', label: 'Codestral Latest' },
134173
],
135-
zai: [{ id: 'glm-5', label: 'GLM-5' }],
174+
zai: [
175+
{ id: 'glm-5', label: 'GLM-5' },
176+
{ id: 'glm-4.7', label: 'GLM-4.7' },
177+
{ id: 'glm-4.6', label: 'GLM-4.6' },
178+
],
136179
huggingface: [
137180
{ id: 'deepseek-ai/DeepSeek-R1', label: 'DeepSeek R1' },
138181
{ id: 'meta-llama/Llama-3.3-70B-Instruct', label: 'Llama 3.3 70B Instruct' },
@@ -156,6 +199,7 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
156199
{ id: 'grok-code-fast-1', label: 'Grok Code Fast 1' },
157200
],
158201
'github-copilot': [
202+
{ id: 'gpt-5.4', label: 'GPT-5.4' },
159203
{ id: 'gpt-5.2', label: 'GPT-5.2' },
160204
{ id: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
161205
{ id: 'claude-sonnet-4.6', label: 'Claude Sonnet 4.6' },
@@ -169,6 +213,7 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
169213
{ id: 'zai-glm-4.6', label: 'GLM 4.6 (Cerebras)' },
170214
],
171215
kilocode: [
216+
{ id: 'kilo/auto', label: 'Kilo Auto' },
172217
{ id: 'anthropic/claude-opus-4.6', label: 'Claude Opus 4.6 (Kilo)' },
173218
{ id: 'openai/gpt-5.4', label: 'GPT-5.4 (Kilo)' },
174219
],
@@ -179,15 +224,16 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
179224
{ id: 'gemini-3-flash-preview', label: 'Gemini 3 Flash (Preview)' },
180225
],
181226
volcengine: [
182-
{ id: 'doubao-seed-1-8-251228', label: 'Doubao Seed 1.8' },
183-
{ id: 'doubao-seed-code-preview-251028', label: 'Doubao Seed Code Preview' },
184-
{ id: 'kimi-k2-5-260127', label: 'Kimi K2.5' },
185-
{ id: 'glm-4-7-251222', label: 'GLM 4.7' },
186-
{ id: 'deepseek-v3-2-251201', label: 'DeepSeek V3.2 128K' },
227+
{ id: 'doubao-seed-1-8', label: 'Doubao Seed 1.8' },
228+
{ id: 'doubao-seed-code-preview', label: 'Doubao Seed Code Preview' },
229+
{ id: 'kimi-k2.5', label: 'Kimi K2.5' },
230+
{ id: 'glm-4.7', label: 'GLM 4.7' },
231+
{ id: 'deepseek-v3.2', label: 'DeepSeek V3.2' },
187232
],
188233
'volcengine-plan': [
189234
{ id: 'ark-code-latest', label: 'ARK Code Latest' },
190235
{ id: 'doubao-seed-code', label: 'Doubao Seed Code' },
236+
{ id: 'doubao-seed-code-preview', label: 'Doubao Seed Code Preview' },
191237
{ id: 'kimi-k2.5', label: 'Kimi K2.5' },
192238
{ id: 'kimi-k2-thinking', label: 'Kimi K2 Thinking' },
193239
{ id: 'glm-4.7', label: 'GLM 4.7' },
@@ -222,7 +268,11 @@ export const MODELS_BY_PROVIDER: Partial<Record<ModelProvider, readonly ModelPre
222268
],
223269
vllm: [{ id: 'your-model-id', label: 'Your model ID' }],
224270
lmstudio: [{ id: 'your-model-id', label: 'Your model ID' }],
225-
xiaomi: [{ id: 'mimo-7b', label: 'MiMo 7B' }],
271+
xiaomi: [
272+
{ id: 'mimo-v2-flash', label: 'MiMo V2 Flash' },
273+
{ id: 'mimo-v2-pro', label: 'MiMo V2 Pro' },
274+
{ id: 'mimo-v2-omni', label: 'MiMo V2 Omni' },
275+
],
226276
kuae: [{ id: 'GLM-4.7', label: 'GLM-4.7' }],
227277
chutes: [{ id: 'chutes-default', label: 'Chutes (pick in dashboard)' }],
228278
}

0 commit comments

Comments
 (0)