@qwen-code/qwen-code 0.10.2 → 0.10.4-preview.0
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 +193 -4
- package/cli.js +291 -152
- package/locales/de.js +20 -2
- package/locales/en.js +20 -2
- package/locales/ja.js +21 -2
- package/locales/pt.js +20 -2
- package/locales/ru.js +21 -2
- package/locales/zh.js +20 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|
|
21
|
+
> 🎉 **News (2026-02-16)**: Qwen3.5-Plus is now live! Sign in via Qwen OAuth to use it directly, or get an API key from [Alibaba Cloud ModelStudio](https://modelstudio.console.alibabacloud.com?tab=doc#/doc/?type=model&url=2840914_2&modelId=group-qwen3.5-plus) to access it through the OpenAI-compatible API.
|
|
22
|
+
|
|
21
23
|
Qwen Code is an open-source AI agent for the terminal, optimized for [Qwen3-Coder](https://github.com/QwenLM/Qwen3-Coder). It helps you understand large codebases, automate tedious work, and ship faster.
|
|
22
24
|
|
|
23
25
|

|
|
@@ -123,7 +125,183 @@ Use this if you want more flexibility over which provider and model to use. Supp
|
|
|
123
125
|
- **Anthropic**: Claude models
|
|
124
126
|
- **Google GenAI**: Gemini models
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
The **recommended** way to configure models and providers is by editing `~/.qwen/settings.json` (create it if it doesn't exist). This file lets you define all available models, API keys, and default settings in one place.
|
|
129
|
+
|
|
130
|
+
##### Quick Setup in 3 Steps
|
|
131
|
+
|
|
132
|
+
**Step 1:** Create or edit `~/.qwen/settings.json`
|
|
133
|
+
|
|
134
|
+
Here is a complete example:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"modelProviders": {
|
|
139
|
+
"openai": [
|
|
140
|
+
{
|
|
141
|
+
"id": "qwen3-coder-plus",
|
|
142
|
+
"name": "qwen3-coder-plus",
|
|
143
|
+
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
144
|
+
"description": "Qwen3-Coder via Dashscope",
|
|
145
|
+
"envKey": "DASHSCOPE_API_KEY"
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
"env": {
|
|
150
|
+
"DASHSCOPE_API_KEY": "sk-xxxxxxxxxxxxx"
|
|
151
|
+
},
|
|
152
|
+
"security": {
|
|
153
|
+
"auth": {
|
|
154
|
+
"selectedType": "openai"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"model": {
|
|
158
|
+
"name": "qwen3-coder-plus"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Step 2:** Understand each field
|
|
164
|
+
|
|
165
|
+
| Field | What it does |
|
|
166
|
+
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
167
|
+
| `modelProviders` | Declares which models are available and how to connect to them. Keys like `openai`, `anthropic`, `gemini` represent the API protocol. |
|
|
168
|
+
| `modelProviders[].id` | The model ID sent to the API (e.g. `qwen3-coder-plus`, `gpt-4o`). |
|
|
169
|
+
| `modelProviders[].envKey` | The name of the environment variable that holds your API key. |
|
|
170
|
+
| `modelProviders[].baseUrl` | The API endpoint URL (required for non-default endpoints). |
|
|
171
|
+
| `env` | A fallback place to store API keys (lowest priority; prefer `.env` files or `export` for sensitive keys). |
|
|
172
|
+
| `security.auth.selectedType` | The protocol to use on startup (`openai`, `anthropic`, `gemini`, `vertex-ai`). |
|
|
173
|
+
| `model.name` | The default model to use when Qwen Code starts. |
|
|
174
|
+
|
|
175
|
+
**Step 3:** Start Qwen Code — your configuration takes effect automatically:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
qwen
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Use the `/model` command at any time to switch between all configured models.
|
|
182
|
+
|
|
183
|
+
##### More Examples
|
|
184
|
+
|
|
185
|
+
<details>
|
|
186
|
+
<summary>Coding Plan (Alibaba Cloud Bailian) — fixed monthly fee, higher quotas</summary>
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"modelProviders": {
|
|
191
|
+
"openai": [
|
|
192
|
+
{
|
|
193
|
+
"id": "qwen3-coder-plus",
|
|
194
|
+
"name": "qwen3-coder-plus (Coding Plan)",
|
|
195
|
+
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1",
|
|
196
|
+
"description": "qwen3-coder-plus from Bailian Coding Plan",
|
|
197
|
+
"envKey": "BAILIAN_CODING_PLAN_API_KEY"
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
"env": {
|
|
202
|
+
"BAILIAN_CODING_PLAN_API_KEY": "sk-xxxxxxxxxxxxx"
|
|
203
|
+
},
|
|
204
|
+
"security": {
|
|
205
|
+
"auth": {
|
|
206
|
+
"selectedType": "openai"
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"model": {
|
|
210
|
+
"name": "qwen3-coder-plus"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
> Subscribe to the Coding Plan at [Alibaba Cloud Bailian](https://bailian.console.aliyun.com/cn-beijing/?tab=globalset#/efm/coding_plan).
|
|
216
|
+
|
|
217
|
+
</details>
|
|
218
|
+
|
|
219
|
+
<details>
|
|
220
|
+
<summary>Multiple providers (OpenAI + Anthropic + Gemini)</summary>
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"modelProviders": {
|
|
225
|
+
"openai": [
|
|
226
|
+
{
|
|
227
|
+
"id": "gpt-4o",
|
|
228
|
+
"name": "GPT-4o",
|
|
229
|
+
"envKey": "OPENAI_API_KEY",
|
|
230
|
+
"baseUrl": "https://api.openai.com/v1"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"anthropic": [
|
|
234
|
+
{
|
|
235
|
+
"id": "claude-sonnet-4-20250514",
|
|
236
|
+
"name": "Claude Sonnet 4",
|
|
237
|
+
"envKey": "ANTHROPIC_API_KEY"
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
"gemini": [
|
|
241
|
+
{
|
|
242
|
+
"id": "gemini-2.5-pro",
|
|
243
|
+
"name": "Gemini 2.5 Pro",
|
|
244
|
+
"envKey": "GEMINI_API_KEY"
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
},
|
|
248
|
+
"env": {
|
|
249
|
+
"OPENAI_API_KEY": "sk-xxxxxxxxxxxxx",
|
|
250
|
+
"ANTHROPIC_API_KEY": "sk-ant-xxxxxxxxxxxxx",
|
|
251
|
+
"GEMINI_API_KEY": "AIzaxxxxxxxxxxxxx"
|
|
252
|
+
},
|
|
253
|
+
"security": {
|
|
254
|
+
"auth": {
|
|
255
|
+
"selectedType": "openai"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"model": {
|
|
259
|
+
"name": "gpt-4o"
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
</details>
|
|
265
|
+
|
|
266
|
+
<details>
|
|
267
|
+
<summary>Enable thinking mode (for supported models like qwen3.5-plus)</summary>
|
|
268
|
+
|
|
269
|
+
```json
|
|
270
|
+
{
|
|
271
|
+
"modelProviders": {
|
|
272
|
+
"openai": [
|
|
273
|
+
{
|
|
274
|
+
"id": "qwen3.5-plus",
|
|
275
|
+
"name": "qwen3.5-plus (thinking)",
|
|
276
|
+
"envKey": "DASHSCOPE_API_KEY",
|
|
277
|
+
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
278
|
+
"generationConfig": {
|
|
279
|
+
"extra_body": {
|
|
280
|
+
"enable_thinking": true
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
"env": {
|
|
287
|
+
"DASHSCOPE_API_KEY": "sk-xxxxxxxxxxxxx"
|
|
288
|
+
},
|
|
289
|
+
"security": {
|
|
290
|
+
"auth": {
|
|
291
|
+
"selectedType": "openai"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"model": {
|
|
295
|
+
"name": "qwen3.5-plus"
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
</details>
|
|
301
|
+
|
|
302
|
+
> **Tip:** You can also set API keys via `export` in your shell or `.env` files, which take higher priority than `settings.json` → `env`. See the [authentication guide](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/auth/) for full details.
|
|
303
|
+
|
|
304
|
+
> **Security note:** Never commit API keys to version control. The `~/.qwen/settings.json` file is in your home directory and should stay private.
|
|
127
305
|
|
|
128
306
|
## Usage
|
|
129
307
|
|
|
@@ -191,10 +369,21 @@ Build on top of Qwen Code with the TypeScript SDK:
|
|
|
191
369
|
|
|
192
370
|
Qwen Code can be configured via `settings.json`, environment variables, and CLI flags.
|
|
193
371
|
|
|
194
|
-
|
|
195
|
-
|
|
372
|
+
| File | Scope | Description |
|
|
373
|
+
| ----------------------- | ------------- | --------------------------------------------------------------------------------------- |
|
|
374
|
+
| `~/.qwen/settings.json` | User (global) | Applies to all your Qwen Code sessions. **Recommended for `modelProviders` and `env`.** |
|
|
375
|
+
| `.qwen/settings.json` | Project | Applies only when running Qwen Code in this project. Overrides user settings. |
|
|
376
|
+
|
|
377
|
+
The most commonly used top-level fields in `settings.json`:
|
|
378
|
+
|
|
379
|
+
| Field | Description |
|
|
380
|
+
| ---------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
381
|
+
| `modelProviders` | Define available models per protocol (`openai`, `anthropic`, `gemini`, `vertex-ai`). |
|
|
382
|
+
| `env` | Fallback environment variables (e.g. API keys). Lower priority than shell `export` and `.env` files. |
|
|
383
|
+
| `security.auth.selectedType` | The protocol to use on startup (e.g. `openai`). |
|
|
384
|
+
| `model.name` | The default model to use when Qwen Code starts. |
|
|
196
385
|
|
|
197
|
-
See [settings](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/settings/) for available options
|
|
386
|
+
> See the [Authentication](#api-key-flexible) section above for complete `settings.json` examples, and the [settings reference](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/settings/) for all available options.
|
|
198
387
|
|
|
199
388
|
## Benchmark Results
|
|
200
389
|
|
package/cli.js
CHANGED
|
@@ -133516,7 +133516,10 @@ var init_tokenLimits = __esm({
|
|
|
133516
133516
|
// Commercial Qwen3-Coder-Flash: 1M token context
|
|
133517
133517
|
[/^qwen3-coder-flash(-.*)?$/, LIMITS["1m"]],
|
|
133518
133518
|
// catches "qwen3-coder-flash" and date variants
|
|
133519
|
-
//
|
|
133519
|
+
// Commercial Qwen3.5-Plus: 1M token context
|
|
133520
|
+
[/^qwen3\.5-plus(-.*)?$/, LIMITS["1m"]],
|
|
133521
|
+
// catches "qwen3.5-plus" and date variants
|
|
133522
|
+
// Generic coder-model: same as qwen3.5-plus (1M token context)
|
|
133520
133523
|
[/^coder-model$/, LIMITS["1m"]],
|
|
133521
133524
|
// Commercial Qwen3-Max-Preview: 256K token context
|
|
133522
133525
|
[/^qwen3-max(-preview)?(-.*)?$/, LIMITS["256k"]],
|
|
@@ -133584,7 +133587,9 @@ var init_tokenLimits = __esm({
|
|
|
133584
133587
|
// -------------------
|
|
133585
133588
|
// Qwen3-Coder-Plus: 65,536 max output tokens
|
|
133586
133589
|
[/^qwen3-coder-plus(-.*)?$/, LIMITS["64k"]],
|
|
133587
|
-
//
|
|
133590
|
+
// Qwen3.5-Plus: 65,536 max output tokens
|
|
133591
|
+
[/^qwen3\.5-plus(-.*)?$/, LIMITS["64k"]],
|
|
133592
|
+
// Generic coder-model: same as qwen3.5-plus (64K max output tokens)
|
|
133588
133593
|
[/^coder-model$/, LIMITS["64k"]],
|
|
133589
133594
|
// Qwen3-Max: 65,536 max output tokens
|
|
133590
133595
|
[/^qwen3-max(-preview)?(-.*)?$/, LIMITS["64k"]],
|
|
@@ -133691,7 +133696,7 @@ var init_constants3 = __esm({
|
|
|
133691
133696
|
{
|
|
133692
133697
|
id: "coder-model",
|
|
133693
133698
|
name: "coder-model",
|
|
133694
|
-
description: "
|
|
133699
|
+
description: "Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance",
|
|
133695
133700
|
capabilities: { vision: false }
|
|
133696
133701
|
},
|
|
133697
133702
|
{
|
|
@@ -157317,7 +157322,7 @@ __export(geminiContentGenerator_exports, {
|
|
|
157317
157322
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
157318
157323
|
});
|
|
157319
157324
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
157320
|
-
const version2 = "0.10.
|
|
157325
|
+
const version2 = "0.10.4-preview.0";
|
|
157321
157326
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
157322
157327
|
const baseHeaders = {
|
|
157323
157328
|
"User-Agent": userAgent2
|
|
@@ -298070,7 +298075,7 @@ var init_de = __esm({
|
|
|
298070
298075
|
"(set)": "(gesetzt)",
|
|
298071
298076
|
"(not set)": "(nicht gesetzt)",
|
|
298072
298077
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}": "Modell konnte nicht auf '{{modelId}}' umgestellt werden.\n\n{{error}}",
|
|
298073
|
-
"
|
|
298078
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Qwen 3.5 Plus \u2014 effizientes Hybridmodell mit f\xFChrender Programmierleistung",
|
|
298074
298079
|
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "Das neueste Qwen Vision Modell von Alibaba Cloud ModelStudio (Version: qwen3-vl-plus-2025-09-23)",
|
|
298075
298080
|
// ============================================================================
|
|
298076
298081
|
// Dialogs - Permissions
|
|
@@ -298391,13 +298396,24 @@ var init_de = __esm({
|
|
|
298391
298396
|
// Auth Dialog - View Titles and Labels
|
|
298392
298397
|
// ============================================================================
|
|
298393
298398
|
"Coding Plan": "Coding Plan",
|
|
298399
|
+
"Coding Plan (Bailian, China)": "Coding Plan (Bailian, China)",
|
|
298400
|
+
"Coding Plan (Bailian, Global/Intl)": "Coding Plan (Bailian, Global/Intl)",
|
|
298394
298401
|
"Paste your api key of Bailian Coding Plan and you're all set!": "F\xFCgen Sie Ihren Bailian Coding Plan API-Schl\xFCssel ein und Sie sind bereit!",
|
|
298402
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!": "F\xFCgen Sie Ihren Coding Plan (Bailian, Global/Intl) API-Schl\xFCssel ein und Sie sind bereit!",
|
|
298395
298403
|
Custom: "Benutzerdefiniert",
|
|
298396
298404
|
"More instructions about configuring `modelProviders` manually.": "Weitere Anweisungen zur manuellen Konfiguration von `modelProviders`.",
|
|
298397
298405
|
"Select API-KEY configuration mode:": "API-KEY-Konfigurationsmodus ausw\xE4hlen:",
|
|
298398
298406
|
"(Press Escape to go back)": "(Escape dr\xFCcken zum Zur\xFCckgehen)",
|
|
298399
298407
|
"(Press Enter to submit, Escape to cancel)": "(Enter zum Absenden, Escape zum Abbrechen)",
|
|
298400
|
-
"More instructions please check:": "Weitere Anweisungen finden Sie unter:"
|
|
298408
|
+
"More instructions please check:": "Weitere Anweisungen finden Sie unter:",
|
|
298409
|
+
// ============================================================================
|
|
298410
|
+
// Coding Plan International Updates
|
|
298411
|
+
// ============================================================================
|
|
298412
|
+
"New model configurations are available for {{region}}. Update now?": "Neue Modellkonfigurationen sind f\xFCr {{region}} verf\xFCgbar. Jetzt aktualisieren?",
|
|
298413
|
+
"New model configurations are available for Bailian Coding Plan (China). Update now?": "Neue Modellkonfigurationen sind f\xFCr Bailian Coding Plan (China) verf\xFCgbar. Jetzt aktualisieren?",
|
|
298414
|
+
"New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?": "Neue Modellkonfigurationen sind f\xFCr Coding Plan (Bailian, Global/Intl) verf\xFCgbar. Jetzt aktualisieren?",
|
|
298415
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".': '{{region}}-Konfiguration erfolgreich aktualisiert. Modell auf "{{model}}" umgeschaltet.',
|
|
298416
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.": "Erfolgreich mit {{region}} authentifiziert. API-Schl\xFCssel ist in settings.env gespeichert."
|
|
298401
298417
|
};
|
|
298402
298418
|
}
|
|
298403
298419
|
});
|
|
@@ -299140,7 +299156,7 @@ var init_en3 = __esm({
|
|
|
299140
299156
|
"(set)": "(set)",
|
|
299141
299157
|
"(not set)": "(not set)",
|
|
299142
299158
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}": "Failed to switch model to '{{modelId}}'.\n\n{{error}}",
|
|
299143
|
-
"
|
|
299159
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance",
|
|
299144
299160
|
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)",
|
|
299145
299161
|
// ============================================================================
|
|
299146
299162
|
// Dialogs - Permissions
|
|
@@ -299471,12 +299487,23 @@ var init_en3 = __esm({
|
|
|
299471
299487
|
// Auth Dialog - View Titles and Labels
|
|
299472
299488
|
// ============================================================================
|
|
299473
299489
|
"Coding Plan": "Coding Plan",
|
|
299490
|
+
"Coding Plan (Bailian, China)": "Coding Plan (Bailian, China)",
|
|
299491
|
+
"Coding Plan (Bailian, Global/Intl)": "Coding Plan (Bailian, Global/Intl)",
|
|
299474
299492
|
"Paste your api key of Bailian Coding Plan and you're all set!": "Paste your api key of Bailian Coding Plan and you're all set!",
|
|
299493
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!": "Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!",
|
|
299475
299494
|
Custom: "Custom",
|
|
299476
299495
|
"More instructions about configuring `modelProviders` manually.": "More instructions about configuring `modelProviders` manually.",
|
|
299477
299496
|
"Select API-KEY configuration mode:": "Select API-KEY configuration mode:",
|
|
299478
299497
|
"(Press Escape to go back)": "(Press Escape to go back)",
|
|
299479
|
-
"(Press Enter to submit, Escape to cancel)": "(Press Enter to submit, Escape to cancel)"
|
|
299498
|
+
"(Press Enter to submit, Escape to cancel)": "(Press Enter to submit, Escape to cancel)",
|
|
299499
|
+
// ============================================================================
|
|
299500
|
+
// Coding Plan International Updates
|
|
299501
|
+
// ============================================================================
|
|
299502
|
+
"New model configurations are available for {{region}}. Update now?": "New model configurations are available for {{region}}. Update now?",
|
|
299503
|
+
"New model configurations are available for Bailian Coding Plan (China). Update now?": "New model configurations are available for Bailian Coding Plan (China). Update now?",
|
|
299504
|
+
"New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?": "New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?",
|
|
299505
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".': '{{region}} configuration updated successfully. Model switched to "{{model}}".',
|
|
299506
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.": "Authenticated successfully with {{region}}. API key is stored in settings.env."
|
|
299480
299507
|
};
|
|
299481
299508
|
}
|
|
299482
299509
|
});
|
|
@@ -300021,7 +300048,7 @@ var init_ja = __esm({
|
|
|
300021
300048
|
// Dialogs - Model
|
|
300022
300049
|
"Select Model": "\u30E2\u30C7\u30EB\u3092\u9078\u629E",
|
|
300023
300050
|
"(Press Esc to close)": "(Esc \u3067\u9589\u3058\u308B)",
|
|
300024
|
-
"
|
|
300051
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Qwen 3.5 Plus \u2014 \u52B9\u7387\u7684\u306A\u30CF\u30A4\u30D6\u30EA\u30C3\u30C9\u30E2\u30C7\u30EB\u3001\u696D\u754C\u30C8\u30C3\u30D7\u30AF\u30E9\u30B9\u306E\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u6027\u80FD",
|
|
300025
300052
|
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "Alibaba Cloud ModelStudio\u306E\u6700\u65B0Qwen Vision\u30E2\u30C7\u30EB(\u30D0\u30FC\u30B8\u30E7\u30F3: qwen3-vl-plus-2025-09-23)",
|
|
300026
300053
|
// Dialogs - Permissions
|
|
300027
300054
|
"Manage folder trust settings": "\u30D5\u30A9\u30EB\u30C0\u4FE1\u983C\u8A2D\u5B9A\u3092\u7BA1\u7406",
|
|
@@ -300187,13 +300214,24 @@ var init_ja = __esm({
|
|
|
300187
300214
|
// Auth Dialog - View Titles and Labels
|
|
300188
300215
|
// ============================================================================
|
|
300189
300216
|
"Coding Plan": "Coding Plan",
|
|
300217
|
+
"Coding Plan (Bailian, China)": "Coding Plan (Bailian, \u4E2D\u56FD)",
|
|
300218
|
+
"Coding Plan (Bailian, Global/Intl)": "Coding Plan (Bailian, \u30B0\u30ED\u30FC\u30D0\u30EB/\u56FD\u969B)",
|
|
300190
300219
|
"Paste your api key of Bailian Coding Plan and you're all set!": "Bailian Coding Plan\u306EAPI\u30AD\u30FC\u3092\u8CBC\u308A\u4ED8\u3051\u308B\u3060\u3051\u3067\u6E96\u5099\u5B8C\u4E86\u3067\u3059\uFF01",
|
|
300220
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!": "Coding Plan (Bailian, \u30B0\u30ED\u30FC\u30D0\u30EB/\u56FD\u969B) \u306EAPI\u30AD\u30FC\u3092\u8CBC\u308A\u4ED8\u3051\u308B\u3060\u3051\u3067\u6E96\u5099\u5B8C\u4E86\u3067\u3059\uFF01",
|
|
300191
300221
|
Custom: "\u30AB\u30B9\u30BF\u30E0",
|
|
300192
300222
|
"More instructions about configuring `modelProviders` manually.": "`modelProviders`\u3092\u624B\u52D5\u3067\u8A2D\u5B9A\u3059\u308B\u65B9\u6CD5\u306E\u8A73\u7D30\u306F\u3053\u3061\u3089\u3002",
|
|
300193
300223
|
"Select API-KEY configuration mode:": "API-KEY\u8A2D\u5B9A\u30E2\u30FC\u30C9\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A",
|
|
300194
300224
|
"(Press Escape to go back)": "(Escape\u30AD\u30FC\u3067\u623B\u308B)",
|
|
300195
300225
|
"(Press Enter to submit, Escape to cancel)": "(Enter\u3067\u9001\u4FE1\u3001Escape\u3067\u30AD\u30E3\u30F3\u30BB\u30EB)",
|
|
300196
|
-
"More instructions please check:": "\u8A73\u7D30\u306A\u624B\u9806\u306F\u3053\u3061\u3089\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\uFF1A"
|
|
300226
|
+
"More instructions please check:": "\u8A73\u7D30\u306A\u624B\u9806\u306F\u3053\u3061\u3089\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\uFF1A",
|
|
300227
|
+
// ============================================================================
|
|
300228
|
+
// Coding Plan International Updates
|
|
300229
|
+
// ============================================================================
|
|
300230
|
+
"New model configurations are available for {{region}}. Update now?": "{{region}} \u306E\u65B0\u3057\u3044\u30E2\u30C7\u30EB\u8A2D\u5B9A\u304C\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u4ECA\u3059\u3050\u66F4\u65B0\u3057\u307E\u3059\u304B\uFF1F",
|
|
300231
|
+
"New model configurations are available for Bailian Coding Plan (China). Update now?": "Bailian Coding Plan (\u4E2D\u56FD) \u306E\u65B0\u3057\u3044\u30E2\u30C7\u30EB\u8A2D\u5B9A\u304C\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u4ECA\u3059\u3050\u66F4\u65B0\u3057\u307E\u3059\u304B\uFF1F",
|
|
300232
|
+
"New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?": "Coding Plan (Bailian, \u30B0\u30ED\u30FC\u30D0\u30EB/\u56FD\u969B) \u306E\u65B0\u3057\u3044\u30E2\u30C7\u30EB\u8A2D\u5B9A\u304C\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u4ECA\u3059\u3050\u66F4\u65B0\u3057\u307E\u3059\u304B\uFF1F",
|
|
300233
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".': '{{region}} \u306E\u8A2D\u5B9A\u304C\u6B63\u5E38\u306B\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F\u3002\u30E2\u30C7\u30EB\u304C "{{model}}" \u306B\u5207\u308A\u66FF\u308F\u308A\u307E\u3057\u305F\u3002',
|
|
300234
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.": "{{region}} \u3067\u306E\u8A8D\u8A3C\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002API\u30AD\u30FC\u306F settings.env \u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u307E\u3059\u3002"
|
|
300197
300235
|
};
|
|
300198
300236
|
}
|
|
300199
300237
|
});
|
|
@@ -300930,7 +300968,7 @@ var init_pt = __esm({
|
|
|
300930
300968
|
"(set)": "(definido)",
|
|
300931
300969
|
"(not set)": "(n\xE3o definido)",
|
|
300932
300970
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}": "Falha ao trocar o modelo para '{{modelId}}'.\n\n{{error}}",
|
|
300933
|
-
"
|
|
300971
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Qwen 3.5 Plus \u2014 modelo h\xEDbrido eficiente com desempenho l\xEDder em programa\xE7\xE3o",
|
|
300934
300972
|
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "O modelo Qwen Vision mais recente do Alibaba Cloud ModelStudio (vers\xE3o: qwen3-vl-plus-2025-09-23)",
|
|
300935
300973
|
// ============================================================================
|
|
300936
300974
|
// Dialogs - Permissions
|
|
@@ -301250,13 +301288,24 @@ var init_pt = __esm({
|
|
|
301250
301288
|
// Auth Dialog - View Titles and Labels
|
|
301251
301289
|
// ============================================================================
|
|
301252
301290
|
"Coding Plan": "Coding Plan",
|
|
301291
|
+
"Coding Plan (Bailian, China)": "Coding Plan (Bailian, China)",
|
|
301292
|
+
"Coding Plan (Bailian, Global/Intl)": "Coding Plan (Bailian, Global/Intl)",
|
|
301253
301293
|
"Paste your api key of Bailian Coding Plan and you're all set!": "Cole sua chave de API do Bailian Coding Plan e pronto!",
|
|
301294
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!": "Cole sua chave de API do Coding Plan (Bailian, Global/Intl) e pronto!",
|
|
301254
301295
|
Custom: "Personalizado",
|
|
301255
301296
|
"More instructions about configuring `modelProviders` manually.": "Mais instru\xE7\xF5es sobre como configurar `modelProviders` manualmente.",
|
|
301256
301297
|
"Select API-KEY configuration mode:": "Selecione o modo de configura\xE7\xE3o da API-KEY:",
|
|
301257
301298
|
"(Press Escape to go back)": "(Pressione Escape para voltar)",
|
|
301258
301299
|
"(Press Enter to submit, Escape to cancel)": "(Pressione Enter para enviar, Escape para cancelar)",
|
|
301259
|
-
"More instructions please check:": "Mais instru\xE7\xF5es, consulte:"
|
|
301300
|
+
"More instructions please check:": "Mais instru\xE7\xF5es, consulte:",
|
|
301301
|
+
// ============================================================================
|
|
301302
|
+
// Coding Plan International Updates
|
|
301303
|
+
// ============================================================================
|
|
301304
|
+
"New model configurations are available for {{region}}. Update now?": "Novas configura\xE7\xF5es de modelo est\xE3o dispon\xEDveis para o {{region}}. Atualizar agora?",
|
|
301305
|
+
"New model configurations are available for Bailian Coding Plan (China). Update now?": "Novas configura\xE7\xF5es de modelo est\xE3o dispon\xEDveis para o Bailian Coding Plan (China). Atualizar agora?",
|
|
301306
|
+
"New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?": "Novas configura\xE7\xF5es de modelo est\xE3o dispon\xEDveis para o Coding Plan (Bailian, Global/Intl). Atualizar agora?",
|
|
301307
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".': 'Configura\xE7\xE3o do {{region}} atualizada com sucesso. Modelo alterado para "{{model}}".',
|
|
301308
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.": "Autenticado com sucesso com {{region}}. A chave de API est\xE1 armazenada em settings.env."
|
|
301260
301309
|
};
|
|
301261
301310
|
}
|
|
301262
301311
|
});
|
|
@@ -301999,7 +302048,7 @@ var init_ru = __esm({
|
|
|
301999
302048
|
"(set)": "(\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E)",
|
|
302000
302049
|
"(not set)": "(\u043D\u0435 \u0437\u0430\u0434\u0430\u043D\u043E)",
|
|
302001
302050
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u043C\u043E\u0434\u0435\u043B\u044C '{{modelId}}'.\n\n{{error}}",
|
|
302002
|
-
"
|
|
302051
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Qwen 3.5 Plus \u2014 \u044D\u0444\u0444\u0435\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u0433\u0438\u0431\u0440\u0438\u0434\u043D\u0430\u044F \u043C\u043E\u0434\u0435\u043B\u044C \u0441 \u043B\u0438\u0434\u0438\u0440\u0443\u044E\u0449\u0435\u0439 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C\u044E \u0432 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438",
|
|
302003
302052
|
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u043C\u043E\u0434\u0435\u043B\u044C Qwen Vision \u043E\u0442 Alibaba Cloud ModelStudio (\u0432\u0435\u0440\u0441\u0438\u044F: qwen3-vl-plus-2025-09-23)",
|
|
302004
302053
|
// ============================================================================
|
|
302005
302054
|
// Диалоги - Разрешения
|
|
@@ -302321,13 +302370,24 @@ var init_ru = __esm({
|
|
|
302321
302370
|
// Auth Dialog - View Titles and Labels
|
|
302322
302371
|
// ============================================================================
|
|
302323
302372
|
"Coding Plan": "Coding Plan",
|
|
302373
|
+
"Coding Plan (Bailian, China)": "Coding Plan (Bailian, \u041A\u0438\u0442\u0430\u0439)",
|
|
302374
|
+
"Coding Plan (Bailian, Global/Intl)": "Coding Plan (Bailian, \u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439/\u041C\u0435\u0436\u0434\u0443\u043D\u0430\u0440\u043E\u0434\u043D\u044B\u0439)",
|
|
302324
302375
|
"Paste your api key of Bailian Coding Plan and you're all set!": "\u0412\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0432\u0430\u0448 API-\u043A\u043B\u044E\u0447 Bailian Coding Plan \u0438 \u0432\u0441\u0451 \u0433\u043E\u0442\u043E\u0432\u043E!",
|
|
302376
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!": "\u0412\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0432\u0430\u0448 API-\u043A\u043B\u044E\u0447 Coding Plan (Bailian, \u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439/\u041C\u0435\u0436\u0434\u0443\u043D\u0430\u0440\u043E\u0434\u043D\u044B\u0439) \u0438 \u0432\u0441\u0451 \u0433\u043E\u0442\u043E\u0432\u043E!",
|
|
302325
302377
|
Custom: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439",
|
|
302326
302378
|
"More instructions about configuring `modelProviders` manually.": "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438 \u043F\u043E \u0440\u0443\u0447\u043D\u043E\u0439 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0435 `modelProviders`.",
|
|
302327
302379
|
"Select API-KEY configuration mode:": "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 API-KEY:",
|
|
302328
302380
|
"(Press Escape to go back)": "(\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Escape \u0434\u043B\u044F \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430)",
|
|
302329
302381
|
"(Press Enter to submit, Escape to cancel)": "(\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Enter \u0434\u043B\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438, Escape \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B)",
|
|
302330
|
-
"More instructions please check:": "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438 \u0441\u043C.:"
|
|
302382
|
+
"More instructions please check:": "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438 \u0441\u043C.:",
|
|
302383
|
+
// ============================================================================
|
|
302384
|
+
// Coding Plan International Updates
|
|
302385
|
+
// ============================================================================
|
|
302386
|
+
"New model configurations are available for {{region}}. Update now?": "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u043D\u043E\u0432\u044B\u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043C\u043E\u0434\u0435\u043B\u0435\u0439 \u0434\u043B\u044F {{region}}. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441?",
|
|
302387
|
+
"New model configurations are available for Bailian Coding Plan (China). Update now?": "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u043D\u043E\u0432\u044B\u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043C\u043E\u0434\u0435\u043B\u0435\u0439 \u0434\u043B\u044F Bailian Coding Plan (\u041A\u0438\u0442\u0430\u0439). \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441?",
|
|
302388
|
+
"New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?": "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u043D\u043E\u0432\u044B\u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043C\u043E\u0434\u0435\u043B\u0435\u0439 \u0434\u043B\u044F Coding Plan (Bailian, \u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439/\u041C\u0435\u0436\u0434\u0443\u043D\u0430\u0440\u043E\u0434\u043D\u044B\u0439). \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441?",
|
|
302389
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".': '\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F {{region}} \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430. \u041C\u043E\u0434\u0435\u043B\u044C \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0430 \u043D\u0430 "{{model}}".',
|
|
302390
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.": "\u0423\u0441\u043F\u0435\u0448\u043D\u0430\u044F \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0441 {{region}}. API-\u043A\u043B\u044E\u0447 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D \u0432 settings.env."
|
|
302331
302391
|
};
|
|
302332
302392
|
}
|
|
302333
302393
|
});
|
|
@@ -303069,7 +303129,7 @@ var init_zh = __esm({
|
|
|
303069
303129
|
"(set)": "(\u5DF2\u8BBE\u7F6E)",
|
|
303070
303130
|
"(not set)": "(\u672A\u8BBE\u7F6E)",
|
|
303071
303131
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}": "\u65E0\u6CD5\u5207\u6362\u5230\u6A21\u578B '{{modelId}}'.\n\n{{error}}",
|
|
303072
|
-
"
|
|
303132
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Qwen 3.5 Plus \u2014 \u9AD8\u6548\u6DF7\u5408\u67B6\u6784\uFF0C\u7F16\u7A0B\u6027\u80FD\u4E1A\u754C\u9886\u5148",
|
|
303073
303133
|
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "\u6765\u81EA\u963F\u91CC\u4E91 ModelStudio \u7684\u6700\u65B0 Qwen Vision \u6A21\u578B\uFF08\u7248\u672C\uFF1Aqwen3-vl-plus-2025-09-23\uFF09",
|
|
303074
303134
|
// ============================================================================
|
|
303075
303135
|
// Dialogs - Permissions
|
|
@@ -303300,12 +303360,23 @@ var init_zh = __esm({
|
|
|
303300
303360
|
// ============================================================================
|
|
303301
303361
|
"API-KEY": "API-KEY",
|
|
303302
303362
|
"Coding Plan": "Coding Plan",
|
|
303363
|
+
"Coding Plan (Bailian, China)": "Coding Plan (\u767E\u70BC, \u4E2D\u56FD)",
|
|
303364
|
+
"Coding Plan (Bailian, Global/Intl)": "Coding Plan (\u767E\u70BC, \u5168\u7403/\u56FD\u9645)",
|
|
303303
303365
|
"Paste your api key of Bailian Coding Plan and you're all set!": "\u7C98\u8D34\u60A8\u7684\u767E\u70BC Coding Plan API Key\uFF0C\u5373\u53EF\u5B8C\u6210\u8BBE\u7F6E\uFF01",
|
|
303366
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!": "\u7C98\u8D34\u60A8\u7684 Coding Plan (\u767E\u70BC, \u5168\u7403/\u56FD\u9645) API Key\uFF0C\u5373\u53EF\u5B8C\u6210\u8BBE\u7F6E\uFF01",
|
|
303304
303367
|
Custom: "\u81EA\u5B9A\u4E49",
|
|
303305
303368
|
"More instructions about configuring `modelProviders` manually.": "\u5173\u4E8E\u624B\u52A8\u914D\u7F6E `modelProviders` \u7684\u66F4\u591A\u8BF4\u660E\u3002",
|
|
303306
303369
|
"Select API-KEY configuration mode:": "\u9009\u62E9 API-KEY \u914D\u7F6E\u6A21\u5F0F\uFF1A",
|
|
303307
303370
|
"(Press Escape to go back)": "(\u6309 Escape \u952E\u8FD4\u56DE)",
|
|
303308
|
-
"(Press Enter to submit, Escape to cancel)": "(\u6309 Enter \u63D0\u4EA4\uFF0CEscape \u53D6\u6D88)"
|
|
303371
|
+
"(Press Enter to submit, Escape to cancel)": "(\u6309 Enter \u63D0\u4EA4\uFF0CEscape \u53D6\u6D88)",
|
|
303372
|
+
// ============================================================================
|
|
303373
|
+
// Coding Plan International Updates
|
|
303374
|
+
// ============================================================================
|
|
303375
|
+
"New model configurations are available for {{region}}. Update now?": "{{region}} \u6709\u65B0\u7684\u6A21\u578B\u914D\u7F6E\u53EF\u7528\u3002\u662F\u5426\u7ACB\u5373\u66F4\u65B0\uFF1F",
|
|
303376
|
+
"New model configurations are available for Bailian Coding Plan (China). Update now?": "\u767E\u70BC Coding Plan (\u4E2D\u56FD) \u6709\u65B0\u7684\u6A21\u578B\u914D\u7F6E\u53EF\u7528\u3002\u662F\u5426\u7ACB\u5373\u66F4\u65B0\uFF1F",
|
|
303377
|
+
"New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?": "Coding Plan (\u767E\u70BC, \u5168\u7403/\u56FD\u9645) \u6709\u65B0\u7684\u6A21\u578B\u914D\u7F6E\u53EF\u7528\u3002\u662F\u5426\u7ACB\u5373\u66F4\u65B0\uFF1F",
|
|
303378
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".': '{{region}} \u914D\u7F6E\u66F4\u65B0\u6210\u529F\u3002\u6A21\u578B\u5DF2\u5207\u6362\u81F3 "{{model}}"\u3002',
|
|
303379
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.": "\u6210\u529F\u901A\u8FC7 {{region}} \u8BA4\u8BC1\u3002API Key \u5DF2\u5B58\u50A8\u5728 settings.env \u4E2D\u3002"
|
|
303309
303380
|
};
|
|
303310
303381
|
}
|
|
303311
303382
|
});
|
|
@@ -374373,7 +374444,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
374373
374444
|
// packages/cli/src/utils/version.ts
|
|
374374
374445
|
async function getCliVersion() {
|
|
374375
374446
|
const pkgJson = await getPackageJson();
|
|
374376
|
-
return "0.10.
|
|
374447
|
+
return "0.10.4-preview.0";
|
|
374377
374448
|
}
|
|
374378
374449
|
__name(getCliVersion, "getCliVersion");
|
|
374379
374450
|
|
|
@@ -381922,7 +381993,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
381922
381993
|
|
|
381923
381994
|
// packages/cli/src/generated/git-commit.ts
|
|
381924
381995
|
init_esbuild_shims();
|
|
381925
|
-
var GIT_COMMIT_INFO = "
|
|
381996
|
+
var GIT_COMMIT_INFO = "1bd975f5";
|
|
381926
381997
|
|
|
381927
381998
|
// packages/cli/src/utils/systemInfo.ts
|
|
381928
381999
|
async function getNpmVersion() {
|
|
@@ -392526,128 +392597,176 @@ __name(getPersistScopeForModelSelection, "getPersistScopeForModelSelection");
|
|
|
392526
392597
|
init_esbuild_shims();
|
|
392527
392598
|
import { createHash as createHash7 } from "node:crypto";
|
|
392528
392599
|
var CODING_PLAN_ENV_KEY = "BAILIAN_CODING_PLAN_API_KEY";
|
|
392529
|
-
|
|
392530
|
-
|
|
392531
|
-
|
|
392532
|
-
|
|
392533
|
-
|
|
392534
|
-
|
|
392535
|
-
|
|
392536
|
-
|
|
392537
|
-
|
|
392538
|
-
|
|
392539
|
-
|
|
392540
|
-
|
|
392541
|
-
|
|
392542
|
-
|
|
392543
|
-
|
|
392544
|
-
|
|
392545
|
-
|
|
392600
|
+
function computeCodingPlanVersion(template) {
|
|
392601
|
+
const templateString2 = JSON.stringify(template);
|
|
392602
|
+
return createHash7("sha256").update(templateString2).digest("hex");
|
|
392603
|
+
}
|
|
392604
|
+
__name(computeCodingPlanVersion, "computeCodingPlanVersion");
|
|
392605
|
+
function generateCodingPlanTemplate(region) {
|
|
392606
|
+
if (region === "china" /* CHINA */) {
|
|
392607
|
+
return [
|
|
392608
|
+
{
|
|
392609
|
+
id: "qwen3-coder-plus",
|
|
392610
|
+
name: "qwen3-coder-plus",
|
|
392611
|
+
baseUrl: "https://coding.dashscope.aliyuncs.com/v1",
|
|
392612
|
+
description: "qwen3-coder-plus model from Bailian Coding Plan",
|
|
392613
|
+
envKey: CODING_PLAN_ENV_KEY
|
|
392614
|
+
},
|
|
392615
|
+
{
|
|
392616
|
+
id: "qwen3-max-2026-01-23",
|
|
392617
|
+
name: "qwen3-max-2026-01-23",
|
|
392618
|
+
description: "qwen3-max model with thinking enabled from Bailian Coding Plan",
|
|
392619
|
+
baseUrl: "https://coding.dashscope.aliyuncs.com/v1",
|
|
392620
|
+
envKey: CODING_PLAN_ENV_KEY,
|
|
392621
|
+
generationConfig: {
|
|
392622
|
+
extra_body: {
|
|
392623
|
+
enable_thinking: true
|
|
392624
|
+
}
|
|
392625
|
+
}
|
|
392626
|
+
}
|
|
392627
|
+
];
|
|
392628
|
+
}
|
|
392629
|
+
return [
|
|
392630
|
+
{
|
|
392631
|
+
id: "qwen3-coder-plus",
|
|
392632
|
+
name: "qwen3-coder-plus",
|
|
392633
|
+
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
|
|
392634
|
+
description: "qwen3-coder-plus model from Coding Plan (Global/Intl)",
|
|
392635
|
+
envKey: CODING_PLAN_ENV_KEY
|
|
392636
|
+
},
|
|
392637
|
+
{
|
|
392638
|
+
id: "qwen3-max-2026-01-23",
|
|
392639
|
+
name: "qwen3-max-2026-01-23",
|
|
392640
|
+
description: "qwen3-max model with thinking enabled from Coding Plan (Global/Intl)",
|
|
392641
|
+
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
|
|
392642
|
+
envKey: CODING_PLAN_ENV_KEY,
|
|
392643
|
+
generationConfig: {
|
|
392644
|
+
extra_body: {
|
|
392645
|
+
enable_thinking: true
|
|
392646
|
+
}
|
|
392546
392647
|
}
|
|
392547
392648
|
}
|
|
392649
|
+
];
|
|
392650
|
+
}
|
|
392651
|
+
__name(generateCodingPlanTemplate, "generateCodingPlanTemplate");
|
|
392652
|
+
function getCodingPlanConfig(region) {
|
|
392653
|
+
const template = generateCodingPlanTemplate(region);
|
|
392654
|
+
const baseUrl = region === "china" /* CHINA */ ? "https://coding.dashscope.aliyuncs.com/v1" : "https://coding-intl.dashscope.aliyuncs.com/v1";
|
|
392655
|
+
const regionName = region === "china" /* CHINA */ ? "Coding Plan (Bailian, China)" : "Coding Plan (Bailian, Global/Intl)";
|
|
392656
|
+
return {
|
|
392657
|
+
template,
|
|
392658
|
+
baseUrl,
|
|
392659
|
+
regionName,
|
|
392660
|
+
version: computeCodingPlanVersion(template)
|
|
392661
|
+
};
|
|
392662
|
+
}
|
|
392663
|
+
__name(getCodingPlanConfig, "getCodingPlanConfig");
|
|
392664
|
+
function isCodingPlanConfig(baseUrl, envKey) {
|
|
392665
|
+
if (!baseUrl || !envKey) {
|
|
392666
|
+
return false;
|
|
392548
392667
|
}
|
|
392549
|
-
|
|
392550
|
-
|
|
392551
|
-
|
|
392552
|
-
|
|
392668
|
+
if (envKey !== CODING_PLAN_ENV_KEY) {
|
|
392669
|
+
return false;
|
|
392670
|
+
}
|
|
392671
|
+
if (baseUrl === "https://coding.dashscope.aliyuncs.com/v1") {
|
|
392672
|
+
return "china" /* CHINA */;
|
|
392673
|
+
}
|
|
392674
|
+
if (baseUrl === "https://coding-intl.dashscope.aliyuncs.com/v1") {
|
|
392675
|
+
return "global" /* GLOBAL */;
|
|
392676
|
+
}
|
|
392677
|
+
return false;
|
|
392553
392678
|
}
|
|
392554
|
-
__name(
|
|
392555
|
-
var CODING_PLAN_VERSION = computeCodingPlanVersion();
|
|
392679
|
+
__name(isCodingPlanConfig, "isCodingPlanConfig");
|
|
392556
392680
|
|
|
392557
392681
|
// packages/cli/src/ui/hooks/useCodingPlanUpdates.ts
|
|
392558
|
-
function isCodingPlanConfig(config2) {
|
|
392559
|
-
return config2.envKey === CODING_PLAN_ENV_KEY && CODING_PLAN_MODELS.some((template) => template.baseUrl === config2.baseUrl);
|
|
392560
|
-
}
|
|
392561
|
-
__name(isCodingPlanConfig, "isCodingPlanConfig");
|
|
392562
392682
|
function useCodingPlanUpdates(settings, config2, addItem) {
|
|
392563
392683
|
const [updateRequest, setUpdateRequest] = (0, import_react31.useState)();
|
|
392564
|
-
const executeUpdate = (0, import_react31.useCallback)(
|
|
392565
|
-
|
|
392566
|
-
|
|
392567
|
-
|
|
392568
|
-
|
|
392569
|
-
|
|
392570
|
-
|
|
392571
|
-
|
|
392572
|
-
|
|
392573
|
-
);
|
|
392574
|
-
const apiKey = process.env[CODING_PLAN_ENV_KEY];
|
|
392575
|
-
if (!apiKey) {
|
|
392576
|
-
throw new Error(
|
|
392577
|
-
t4(
|
|
392578
|
-
"Coding Plan API key not found. Please re-authenticate with Coding Plan."
|
|
392684
|
+
const executeUpdate = (0, import_react31.useCallback)(
|
|
392685
|
+
async (region = "china" /* CHINA */) => {
|
|
392686
|
+
try {
|
|
392687
|
+
const persistScope = getPersistScopeForModelSelection(settings);
|
|
392688
|
+
const currentConfigs = settings.merged.modelProviders?.[AuthType2.USE_OPENAI] || [];
|
|
392689
|
+
const nonCodingPlanConfigs = currentConfigs.filter(
|
|
392690
|
+
(cfg) => !isCodingPlanConfig(
|
|
392691
|
+
cfg["baseUrl"],
|
|
392692
|
+
cfg["envKey"]
|
|
392579
392693
|
)
|
|
392580
392694
|
);
|
|
392695
|
+
const { template, version: version2, regionName } = getCodingPlanConfig(region);
|
|
392696
|
+
const newConfigs = template.map((templateConfig) => ({
|
|
392697
|
+
...templateConfig,
|
|
392698
|
+
envKey: CODING_PLAN_ENV_KEY
|
|
392699
|
+
}));
|
|
392700
|
+
const updatedConfigs = [
|
|
392701
|
+
...newConfigs,
|
|
392702
|
+
...nonCodingPlanConfigs
|
|
392703
|
+
];
|
|
392704
|
+
const updatedModelProviders = {
|
|
392705
|
+
...settings.merged.modelProviders,
|
|
392706
|
+
[AuthType2.USE_OPENAI]: updatedConfigs
|
|
392707
|
+
};
|
|
392708
|
+
config2.reloadModelProvidersConfig(
|
|
392709
|
+
updatedModelProviders
|
|
392710
|
+
);
|
|
392711
|
+
await config2.refreshAuth(AuthType2.USE_OPENAI);
|
|
392712
|
+
settings.setValue(
|
|
392713
|
+
persistScope,
|
|
392714
|
+
`modelProviders.${AuthType2.USE_OPENAI}`,
|
|
392715
|
+
updatedConfigs
|
|
392716
|
+
);
|
|
392717
|
+
settings.setValue(persistScope, "codingPlan.version", version2);
|
|
392718
|
+
settings.setValue(persistScope, "codingPlan.region", region);
|
|
392719
|
+
const activeModel = config2.getModel();
|
|
392720
|
+
addItem(
|
|
392721
|
+
{
|
|
392722
|
+
type: "info",
|
|
392723
|
+
text: t4(
|
|
392724
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".',
|
|
392725
|
+
{ region: regionName, model: activeModel }
|
|
392726
|
+
)
|
|
392727
|
+
},
|
|
392728
|
+
Date.now()
|
|
392729
|
+
);
|
|
392730
|
+
return true;
|
|
392731
|
+
} catch (error2) {
|
|
392732
|
+
const errorMessage = error2 instanceof Error ? error2.message : String(error2);
|
|
392733
|
+
addItem(
|
|
392734
|
+
{
|
|
392735
|
+
type: "error",
|
|
392736
|
+
text: t4("Failed to update Coding Plan configuration: {{message}}", {
|
|
392737
|
+
message: errorMessage
|
|
392738
|
+
})
|
|
392739
|
+
},
|
|
392740
|
+
Date.now()
|
|
392741
|
+
);
|
|
392742
|
+
return false;
|
|
392581
392743
|
}
|
|
392582
|
-
|
|
392583
|
-
|
|
392584
|
-
|
|
392585
|
-
}));
|
|
392586
|
-
const updatedConfigs = [
|
|
392587
|
-
...newConfigs,
|
|
392588
|
-
...nonCodingPlanConfigs
|
|
392589
|
-
];
|
|
392590
|
-
settings.setValue(
|
|
392591
|
-
persistScope,
|
|
392592
|
-
`modelProviders.${AuthType2.USE_OPENAI}`,
|
|
392593
|
-
updatedConfigs
|
|
392594
|
-
);
|
|
392595
|
-
settings.setValue(
|
|
392596
|
-
persistScope,
|
|
392597
|
-
"codingPlan.version",
|
|
392598
|
-
CODING_PLAN_VERSION
|
|
392599
|
-
);
|
|
392600
|
-
const updatedModelProviders = {
|
|
392601
|
-
...settings.merged.modelProviders,
|
|
392602
|
-
[AuthType2.USE_OPENAI]: updatedConfigs
|
|
392603
|
-
};
|
|
392604
|
-
config2.reloadModelProvidersConfig(
|
|
392605
|
-
updatedModelProviders
|
|
392606
|
-
);
|
|
392607
|
-
await config2.refreshAuth(AuthType2.USE_OPENAI);
|
|
392608
|
-
addItem(
|
|
392609
|
-
{
|
|
392610
|
-
type: "info",
|
|
392611
|
-
text: t4(
|
|
392612
|
-
"Coding Plan configuration updated successfully. New models are now available."
|
|
392613
|
-
)
|
|
392614
|
-
},
|
|
392615
|
-
Date.now()
|
|
392616
|
-
);
|
|
392617
|
-
return true;
|
|
392618
|
-
} catch (error2) {
|
|
392619
|
-
const errorMessage = error2 instanceof Error ? error2.message : String(error2);
|
|
392620
|
-
addItem(
|
|
392621
|
-
{
|
|
392622
|
-
type: "error",
|
|
392623
|
-
text: t4("Failed to update Coding Plan configuration: {{message}}", {
|
|
392624
|
-
message: errorMessage
|
|
392625
|
-
})
|
|
392626
|
-
},
|
|
392627
|
-
Date.now()
|
|
392628
|
-
);
|
|
392629
|
-
return false;
|
|
392630
|
-
}
|
|
392631
|
-
}, [settings, config2, addItem]);
|
|
392744
|
+
},
|
|
392745
|
+
[settings, config2, addItem]
|
|
392746
|
+
);
|
|
392632
392747
|
const checkForUpdates2 = (0, import_react31.useCallback)(() => {
|
|
392633
|
-
const
|
|
392748
|
+
const mergedSettings = settings.merged;
|
|
392749
|
+
const region = mergedSettings.codingPlan?.region ?? "china" /* CHINA */;
|
|
392750
|
+
const savedVersion = mergedSettings.codingPlan?.version;
|
|
392634
392751
|
if (!savedVersion) {
|
|
392635
392752
|
return;
|
|
392636
392753
|
}
|
|
392637
|
-
|
|
392638
|
-
|
|
392754
|
+
const currentVersion = getCodingPlanConfig(region).version;
|
|
392755
|
+
if (savedVersion !== currentVersion) {
|
|
392756
|
+
const { regionName } = getCodingPlanConfig(region);
|
|
392757
|
+
setUpdateRequest({
|
|
392758
|
+
prompt: t4(
|
|
392759
|
+
"New model configurations are available for {{region}}. Update now?",
|
|
392760
|
+
{ region: regionName }
|
|
392761
|
+
),
|
|
392762
|
+
onConfirm: /* @__PURE__ */ __name(async (confirmed) => {
|
|
392763
|
+
setUpdateRequest(void 0);
|
|
392764
|
+
if (confirmed) {
|
|
392765
|
+
await executeUpdate(region);
|
|
392766
|
+
}
|
|
392767
|
+
}, "onConfirm")
|
|
392768
|
+
});
|
|
392639
392769
|
}
|
|
392640
|
-
setUpdateRequest({
|
|
392641
|
-
prompt: t4(
|
|
392642
|
-
"New model configurations are available for Bailian Coding Plan. Update now?"
|
|
392643
|
-
),
|
|
392644
|
-
onConfirm: /* @__PURE__ */ __name(async (confirmed) => {
|
|
392645
|
-
setUpdateRequest(void 0);
|
|
392646
|
-
if (confirmed) {
|
|
392647
|
-
await executeUpdate();
|
|
392648
|
-
}
|
|
392649
|
-
}, "onConfirm")
|
|
392650
|
-
});
|
|
392651
392770
|
}, [settings, executeUpdate]);
|
|
392652
392771
|
(0, import_react31.useEffect)(() => {
|
|
392653
392772
|
checkForUpdates2();
|
|
@@ -418956,12 +419075,15 @@ init_esbuild_shims();
|
|
|
418956
419075
|
var import_react80 = __toESM(require_react(), 1);
|
|
418957
419076
|
var import_jsx_runtime80 = __toESM(require_jsx_runtime(), 1);
|
|
418958
419077
|
var CODING_PLAN_API_KEY_URL = "https://bailian.console.aliyun.com/?tab=model#/efm/coding_plan";
|
|
419078
|
+
var CODING_PLAN_INTL_API_KEY_URL = "https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=globalset#/efm/api_key";
|
|
418959
419079
|
function ApiKeyInput({
|
|
418960
419080
|
onSubmit,
|
|
418961
|
-
onCancel
|
|
419081
|
+
onCancel,
|
|
419082
|
+
region = "china" /* CHINA */
|
|
418962
419083
|
}) {
|
|
418963
419084
|
const [apiKey, setApiKey] = (0, import_react80.useState)("");
|
|
418964
419085
|
const [error2, setError] = (0, import_react80.useState)(null);
|
|
419086
|
+
const apiKeyUrl = region === "global" /* GLOBAL */ ? CODING_PLAN_INTL_API_KEY_URL : CODING_PLAN_API_KEY_URL;
|
|
418965
419087
|
useKeypress(
|
|
418966
419088
|
(key) => {
|
|
418967
419089
|
if (key.name === "escape") {
|
|
@@ -418982,7 +419104,7 @@ function ApiKeyInput({
|
|
|
418982
419104
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TextInput, { value: apiKey, onChange: setApiKey, placeholder: "sk-sp-..." }),
|
|
418983
419105
|
error2 && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Text3, { color: theme.status.error, children: error2 }) }),
|
|
418984
419106
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Text3, { children: t4("You can get your exclusive Coding Plan API-KEY here:") }) }),
|
|
418985
|
-
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Box_default, { marginTop: 0, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(dist_default6, { url:
|
|
419107
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Box_default, { marginTop: 0, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(dist_default6, { url: apiKeyUrl, fallback: false, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Text3, { color: theme.status.success, underline: true, children: apiKeyUrl }) }) }),
|
|
418986
419108
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Text3, { color: theme.text.secondary, children: t4("(Press Enter to submit, Escape to cancel)") }) })
|
|
418987
419109
|
] });
|
|
418988
419110
|
}
|
|
@@ -419088,6 +419210,9 @@ function AuthDialog() {
|
|
|
419088
419210
|
const [selectedIndex, setSelectedIndex] = (0, import_react82.useState)(null);
|
|
419089
419211
|
const [viewLevel, setViewLevel] = (0, import_react82.useState)("main");
|
|
419090
419212
|
const [apiKeySubModeIndex, setApiKeySubModeIndex] = (0, import_react82.useState)(0);
|
|
419213
|
+
const [region, setRegion] = (0, import_react82.useState)(
|
|
419214
|
+
"china" /* CHINA */
|
|
419215
|
+
);
|
|
419091
419216
|
const mainItems = [
|
|
419092
419217
|
{
|
|
419093
419218
|
key: AuthType2.QWEN_OAUTH,
|
|
@@ -419103,9 +419228,14 @@ function AuthDialog() {
|
|
|
419103
419228
|
const apiKeySubItems = [
|
|
419104
419229
|
{
|
|
419105
419230
|
key: "coding-plan",
|
|
419106
|
-
label: t4("Coding Plan (Bailian)"),
|
|
419231
|
+
label: t4("Coding Plan (Bailian, China)"),
|
|
419107
419232
|
value: "coding-plan"
|
|
419108
419233
|
},
|
|
419234
|
+
{
|
|
419235
|
+
key: "coding-plan-intl",
|
|
419236
|
+
label: t4("Coding Plan (Bailian, Global/Intl)"),
|
|
419237
|
+
value: "coding-plan-intl"
|
|
419238
|
+
},
|
|
419109
419239
|
{
|
|
419110
419240
|
key: "custom",
|
|
419111
419241
|
label: t4("Custom"),
|
|
@@ -419146,6 +419276,10 @@ function AuthDialog() {
|
|
|
419146
419276
|
setErrorMessage(null);
|
|
419147
419277
|
onAuthError(null);
|
|
419148
419278
|
if (subMode === "coding-plan") {
|
|
419279
|
+
setRegion("china" /* CHINA */);
|
|
419280
|
+
setViewLevel("api-key-input");
|
|
419281
|
+
} else if (subMode === "coding-plan-intl") {
|
|
419282
|
+
setRegion("global" /* GLOBAL */);
|
|
419149
419283
|
setViewLevel("api-key-input");
|
|
419150
419284
|
} else {
|
|
419151
419285
|
setViewLevel("custom-info");
|
|
@@ -419157,7 +419291,7 @@ function AuthDialog() {
|
|
|
419157
419291
|
setErrorMessage(t4("API key cannot be empty."));
|
|
419158
419292
|
return;
|
|
419159
419293
|
}
|
|
419160
|
-
await handleCodingPlanSubmit(apiKey);
|
|
419294
|
+
await handleCodingPlanSubmit(apiKey, region);
|
|
419161
419295
|
}, "handleApiKeyInputSubmit");
|
|
419162
419296
|
const handleGoBack = /* @__PURE__ */ __name(() => {
|
|
419163
419297
|
setErrorMessage(null);
|
|
@@ -419228,12 +419362,21 @@ function AuthDialog() {
|
|
|
419228
419362
|
}
|
|
419229
419363
|
}
|
|
419230
419364
|
) }),
|
|
419231
|
-
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Text3, { color: theme.text.secondary, children: apiKeySubItems[apiKeySubModeIndex]?.value === "
|
|
419365
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Text3, { color: theme.text.secondary, children: apiKeySubItems[apiKeySubModeIndex]?.value === "custom" ? t4(
|
|
419232
419366
|
"More instructions about configuring `modelProviders` manually."
|
|
419367
|
+
) : t4(
|
|
419368
|
+
"Paste your api key of Bailian Coding Plan and you're all set!"
|
|
419233
419369
|
) }) }),
|
|
419234
419370
|
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Text3, { color: theme?.text?.secondary, children: t4("(Press Escape to go back)") }) })
|
|
419235
419371
|
] }), "renderApiKeySubView");
|
|
419236
|
-
const renderApiKeyInputView = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
419372
|
+
const renderApiKeyInputView = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
419373
|
+
ApiKeyInput,
|
|
419374
|
+
{
|
|
419375
|
+
onSubmit: handleApiKeyInputSubmit,
|
|
419376
|
+
onCancel: handleGoBack,
|
|
419377
|
+
region
|
|
419378
|
+
}
|
|
419379
|
+
) }), "renderApiKeyInputView");
|
|
419237
419380
|
const renderCustomInfoView = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
|
|
419238
419381
|
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Text3, { bold: true, children: t4("Custom API-KEY Configuration") }) }),
|
|
419239
419382
|
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Text3, { children: t4("For advanced users who want to configure models manually.") }) }),
|
|
@@ -419716,7 +419859,7 @@ var AVAILABLE_MODELS_QWEN = [
|
|
|
419716
419859
|
label: MAINLINE_CODER,
|
|
419717
419860
|
get description() {
|
|
419718
419861
|
return t4(
|
|
419719
|
-
"
|
|
419862
|
+
"Qwen 3.5 Plus \u2014 efficient hybrid model with leading coding performance"
|
|
419720
419863
|
);
|
|
419721
419864
|
}
|
|
419722
419865
|
},
|
|
@@ -424453,26 +424596,23 @@ var useAuthCommand = /* @__PURE__ */ __name((settings, config2, addItem, onAuthC
|
|
|
424453
424596
|
setAuthError(null);
|
|
424454
424597
|
}, [isAuthenticating, pendingAuthType, cancelQwenAuth, config2]);
|
|
424455
424598
|
const handleCodingPlanSubmit = (0, import_react104.useCallback)(
|
|
424456
|
-
async (apiKey) => {
|
|
424599
|
+
async (apiKey, region = "china" /* CHINA */) => {
|
|
424457
424600
|
try {
|
|
424458
424601
|
setIsAuthenticating(true);
|
|
424459
424602
|
setAuthError(null);
|
|
424460
|
-
const
|
|
424603
|
+
const { template, version: version2, regionName } = getCodingPlanConfig(region);
|
|
424461
424604
|
const persistScope = getPersistScopeForModelSelection(settings);
|
|
424462
|
-
settings.setValue(persistScope, `env.${
|
|
424463
|
-
process.env[
|
|
424464
|
-
const newConfigs =
|
|
424605
|
+
settings.setValue(persistScope, `env.${CODING_PLAN_ENV_KEY}`, apiKey);
|
|
424606
|
+
process.env[CODING_PLAN_ENV_KEY] = apiKey;
|
|
424607
|
+
const newConfigs = template.map(
|
|
424465
424608
|
(templateConfig) => ({
|
|
424466
424609
|
...templateConfig,
|
|
424467
|
-
envKey:
|
|
424610
|
+
envKey: CODING_PLAN_ENV_KEY
|
|
424468
424611
|
})
|
|
424469
424612
|
);
|
|
424470
424613
|
const existingConfigs = settings.merged.modelProviders?.[AuthType2.USE_OPENAI] || [];
|
|
424471
|
-
const isCodingPlanConfig2 = /* @__PURE__ */ __name((config3) => config3.envKey === envKeyName && CODING_PLAN_MODELS.some(
|
|
424472
|
-
(template) => template.baseUrl === config3.baseUrl
|
|
424473
|
-
), "isCodingPlanConfig");
|
|
424474
424614
|
const nonCodingPlanConfigs = existingConfigs.filter(
|
|
424475
|
-
(existing) => !
|
|
424615
|
+
(existing) => !isCodingPlanConfig(existing.baseUrl, existing.envKey)
|
|
424476
424616
|
);
|
|
424477
424617
|
const updatedConfigs = [...newConfigs, ...nonCodingPlanConfigs];
|
|
424478
424618
|
settings.setValue(
|
|
@@ -424485,11 +424625,8 @@ var useAuthCommand = /* @__PURE__ */ __name((settings, config2, addItem, onAuthC
|
|
|
424485
424625
|
"security.auth.selectedType",
|
|
424486
424626
|
AuthType2.USE_OPENAI
|
|
424487
424627
|
);
|
|
424488
|
-
settings.setValue(
|
|
424489
|
-
|
|
424490
|
-
"codingPlan.version",
|
|
424491
|
-
CODING_PLAN_VERSION
|
|
424492
|
-
);
|
|
424628
|
+
settings.setValue(persistScope, "codingPlan.region", region);
|
|
424629
|
+
settings.setValue(persistScope, "codingPlan.version", version2);
|
|
424493
424630
|
if (updatedConfigs.length > 0 && updatedConfigs[0]?.id) {
|
|
424494
424631
|
settings.setValue(persistScope, "model.name", updatedConfigs[0].id);
|
|
424495
424632
|
}
|
|
@@ -424508,7 +424645,8 @@ var useAuthCommand = /* @__PURE__ */ __name((settings, config2, addItem, onAuthC
|
|
|
424508
424645
|
{
|
|
424509
424646
|
type: "info" /* INFO */,
|
|
424510
424647
|
text: t4(
|
|
424511
|
-
"Authenticated successfully with
|
|
424648
|
+
"Authenticated successfully with {{region}}. API key is stored in settings.env.",
|
|
424649
|
+
{ region: regionName }
|
|
424512
424650
|
)
|
|
424513
424651
|
},
|
|
424514
424652
|
Date.now()
|
|
@@ -433968,7 +434106,7 @@ async function start_sandbox(config2, nodeArgs = [], cliConfig, cliArgs = []) {
|
|
|
433968
434106
|
}
|
|
433969
434107
|
}
|
|
433970
434108
|
if (!await ensureSandboxImageIsPresent(config2.command, image2)) {
|
|
433971
|
-
const remedy = image2 === LOCAL_DEV_SANDBOX_IMAGE_NAME ? "Try running `npm run build:all` or `npm run build:sandbox` under the
|
|
434109
|
+
const remedy = image2 === LOCAL_DEV_SANDBOX_IMAGE_NAME ? "Try running `npm run build:all` or `npm run build:sandbox` under the qwen-code repo to build it locally, or check the image name and your network connection." : "Please check the image name, your network connection, or notify qwen-code-dev@service.alibaba.com if the issue persists.";
|
|
433972
434110
|
throw new FatalSandboxError(
|
|
433973
434111
|
`Sandbox image '${image2}' is missing or could not be pulled. ${remedy}`
|
|
433974
434112
|
);
|
|
@@ -434075,7 +434213,7 @@ async function start_sandbox(config2, nodeArgs = [], cliConfig, cliArgs = []) {
|
|
|
434075
434213
|
const isIntegrationTest = process.env["GEMINI_CLI_INTEGRATION_TEST"] === "true";
|
|
434076
434214
|
let containerName;
|
|
434077
434215
|
if (isIntegrationTest) {
|
|
434078
|
-
containerName = `
|
|
434216
|
+
containerName = `qwen-code-integration-test-${randomBytes5(4).toString(
|
|
434079
434217
|
"hex"
|
|
434080
434218
|
)}`;
|
|
434081
434219
|
writeStderrLine(`ContainerName: ${containerName}`);
|
|
@@ -434204,10 +434342,11 @@ async function start_sandbox(config2, nodeArgs = [], cliConfig, cliArgs = []) {
|
|
|
434204
434342
|
}
|
|
434205
434343
|
let userFlag = "";
|
|
434206
434344
|
const finalEntrypoint = entrypoint(workdir, cliArgs);
|
|
434207
|
-
|
|
434345
|
+
const useCurrentUser = await shouldUseCurrentUserInSandbox();
|
|
434346
|
+
if (!useCurrentUser) {
|
|
434208
434347
|
args.push("--user", "root");
|
|
434209
434348
|
userFlag = "--user root";
|
|
434210
|
-
} else
|
|
434349
|
+
} else {
|
|
434211
434350
|
args.push("--user", "root");
|
|
434212
434351
|
const uid = execSync8("id -u").toString().trim();
|
|
434213
434352
|
const gid = execSync8("id -g").toString().trim();
|
|
@@ -436573,7 +436712,7 @@ var GeminiAgent = class {
|
|
|
436573
436712
|
name: APPROVAL_MODE_INFO[mode].name,
|
|
436574
436713
|
description: APPROVAL_MODE_INFO[mode].description
|
|
436575
436714
|
}));
|
|
436576
|
-
const version2 = "0.10.
|
|
436715
|
+
const version2 = "0.10.4-preview.0";
|
|
436577
436716
|
return {
|
|
436578
436717
|
protocolVersion: PROTOCOL_VERSION,
|
|
436579
436718
|
agentInfo: {
|
package/locales/de.js
CHANGED
|
@@ -1030,8 +1030,8 @@ export default {
|
|
|
1030
1030
|
'(not set)': '(nicht gesetzt)',
|
|
1031
1031
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}":
|
|
1032
1032
|
"Modell konnte nicht auf '{{modelId}}' umgestellt werden.\n\n{{error}}",
|
|
1033
|
-
'
|
|
1034
|
-
'
|
|
1033
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance':
|
|
1034
|
+
'Qwen 3.5 Plus — effizientes Hybridmodell mit führender Programmierleistung',
|
|
1035
1035
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)':
|
|
1036
1036
|
'Das neueste Qwen Vision Modell von Alibaba Cloud ModelStudio (Version: qwen3-vl-plus-2025-09-23)',
|
|
1037
1037
|
|
|
@@ -1417,8 +1417,12 @@ export default {
|
|
|
1417
1417
|
// Auth Dialog - View Titles and Labels
|
|
1418
1418
|
// ============================================================================
|
|
1419
1419
|
'Coding Plan': 'Coding Plan',
|
|
1420
|
+
'Coding Plan (Bailian, China)': 'Coding Plan (Bailian, China)',
|
|
1421
|
+
'Coding Plan (Bailian, Global/Intl)': 'Coding Plan (Bailian, Global/Intl)',
|
|
1420
1422
|
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1421
1423
|
'Fügen Sie Ihren Bailian Coding Plan API-Schlüssel ein und Sie sind bereit!',
|
|
1424
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!":
|
|
1425
|
+
'Fügen Sie Ihren Coding Plan (Bailian, Global/Intl) API-Schlüssel ein und Sie sind bereit!',
|
|
1422
1426
|
Custom: 'Benutzerdefiniert',
|
|
1423
1427
|
'More instructions about configuring `modelProviders` manually.':
|
|
1424
1428
|
'Weitere Anweisungen zur manuellen Konfiguration von `modelProviders`.',
|
|
@@ -1428,4 +1432,18 @@ export default {
|
|
|
1428
1432
|
'(Press Enter to submit, Escape to cancel)':
|
|
1429
1433
|
'(Enter zum Absenden, Escape zum Abbrechen)',
|
|
1430
1434
|
'More instructions please check:': 'Weitere Anweisungen finden Sie unter:',
|
|
1435
|
+
|
|
1436
|
+
// ============================================================================
|
|
1437
|
+
// Coding Plan International Updates
|
|
1438
|
+
// ============================================================================
|
|
1439
|
+
'New model configurations are available for {{region}}. Update now?':
|
|
1440
|
+
'Neue Modellkonfigurationen sind für {{region}} verfügbar. Jetzt aktualisieren?',
|
|
1441
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?':
|
|
1442
|
+
'Neue Modellkonfigurationen sind für Bailian Coding Plan (China) verfügbar. Jetzt aktualisieren?',
|
|
1443
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?':
|
|
1444
|
+
'Neue Modellkonfigurationen sind für Coding Plan (Bailian, Global/Intl) verfügbar. Jetzt aktualisieren?',
|
|
1445
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".':
|
|
1446
|
+
'{{region}}-Konfiguration erfolgreich aktualisiert. Modell auf "{{model}}" umgeschaltet.',
|
|
1447
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.':
|
|
1448
|
+
'Erfolgreich mit {{region}} authentifiziert. API-Schlüssel ist in settings.env gespeichert.',
|
|
1431
1449
|
};
|
package/locales/en.js
CHANGED
|
@@ -1017,8 +1017,8 @@ export default {
|
|
|
1017
1017
|
'(not set)': '(not set)',
|
|
1018
1018
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}":
|
|
1019
1019
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}",
|
|
1020
|
-
'
|
|
1021
|
-
'
|
|
1020
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance':
|
|
1021
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance',
|
|
1022
1022
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)':
|
|
1023
1023
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)',
|
|
1024
1024
|
|
|
@@ -1418,8 +1418,12 @@ export default {
|
|
|
1418
1418
|
// Auth Dialog - View Titles and Labels
|
|
1419
1419
|
// ============================================================================
|
|
1420
1420
|
'Coding Plan': 'Coding Plan',
|
|
1421
|
+
'Coding Plan (Bailian, China)': 'Coding Plan (Bailian, China)',
|
|
1422
|
+
'Coding Plan (Bailian, Global/Intl)': 'Coding Plan (Bailian, Global/Intl)',
|
|
1421
1423
|
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1422
1424
|
"Paste your api key of Bailian Coding Plan and you're all set!",
|
|
1425
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!":
|
|
1426
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!",
|
|
1423
1427
|
Custom: 'Custom',
|
|
1424
1428
|
'More instructions about configuring `modelProviders` manually.':
|
|
1425
1429
|
'More instructions about configuring `modelProviders` manually.',
|
|
@@ -1427,4 +1431,18 @@ export default {
|
|
|
1427
1431
|
'(Press Escape to go back)': '(Press Escape to go back)',
|
|
1428
1432
|
'(Press Enter to submit, Escape to cancel)':
|
|
1429
1433
|
'(Press Enter to submit, Escape to cancel)',
|
|
1434
|
+
|
|
1435
|
+
// ============================================================================
|
|
1436
|
+
// Coding Plan International Updates
|
|
1437
|
+
// ============================================================================
|
|
1438
|
+
'New model configurations are available for {{region}}. Update now?':
|
|
1439
|
+
'New model configurations are available for {{region}}. Update now?',
|
|
1440
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?':
|
|
1441
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?',
|
|
1442
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?':
|
|
1443
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?',
|
|
1444
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".':
|
|
1445
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".',
|
|
1446
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.':
|
|
1447
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.',
|
|
1430
1448
|
};
|
package/locales/ja.js
CHANGED
|
@@ -731,8 +731,8 @@ export default {
|
|
|
731
731
|
// Dialogs - Model
|
|
732
732
|
'Select Model': 'モデルを選択',
|
|
733
733
|
'(Press Esc to close)': '(Esc で閉じる)',
|
|
734
|
-
'
|
|
735
|
-
'
|
|
734
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance':
|
|
735
|
+
'Qwen 3.5 Plus — 効率的なハイブリッドモデル、業界トップクラスのコーディング性能',
|
|
736
736
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)':
|
|
737
737
|
'Alibaba Cloud ModelStudioの最新Qwen Visionモデル(バージョン: qwen3-vl-plus-2025-09-23)',
|
|
738
738
|
// Dialogs - Permissions
|
|
@@ -928,8 +928,13 @@ export default {
|
|
|
928
928
|
// Auth Dialog - View Titles and Labels
|
|
929
929
|
// ============================================================================
|
|
930
930
|
'Coding Plan': 'Coding Plan',
|
|
931
|
+
'Coding Plan (Bailian, China)': 'Coding Plan (Bailian, 中国)',
|
|
932
|
+
'Coding Plan (Bailian, Global/Intl)':
|
|
933
|
+
'Coding Plan (Bailian, グローバル/国際)',
|
|
931
934
|
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
932
935
|
'Bailian Coding PlanのAPIキーを貼り付けるだけで準備完了です!',
|
|
936
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!":
|
|
937
|
+
'Coding Plan (Bailian, グローバル/国際) のAPIキーを貼り付けるだけで準備完了です!',
|
|
933
938
|
Custom: 'カスタム',
|
|
934
939
|
'More instructions about configuring `modelProviders` manually.':
|
|
935
940
|
'`modelProviders`を手動で設定する方法の詳細はこちら。',
|
|
@@ -938,4 +943,18 @@ export default {
|
|
|
938
943
|
'(Press Enter to submit, Escape to cancel)':
|
|
939
944
|
'(Enterで送信、Escapeでキャンセル)',
|
|
940
945
|
'More instructions please check:': '詳細な手順はこちらをご確認ください:',
|
|
946
|
+
|
|
947
|
+
// ============================================================================
|
|
948
|
+
// Coding Plan International Updates
|
|
949
|
+
// ============================================================================
|
|
950
|
+
'New model configurations are available for {{region}}. Update now?':
|
|
951
|
+
'{{region}} の新しいモデル設定が利用可能です。今すぐ更新しますか?',
|
|
952
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?':
|
|
953
|
+
'Bailian Coding Plan (中国) の新しいモデル設定が利用可能です。今すぐ更新しますか?',
|
|
954
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?':
|
|
955
|
+
'Coding Plan (Bailian, グローバル/国際) の新しいモデル設定が利用可能です。今すぐ更新しますか?',
|
|
956
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".':
|
|
957
|
+
'{{region}} の設定が正常に更新されました。モデルが "{{model}}" に切り替わりました。',
|
|
958
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.':
|
|
959
|
+
'{{region}} での認証に成功しました。APIキーは settings.env に保存されています。',
|
|
941
960
|
};
|
package/locales/pt.js
CHANGED
|
@@ -1039,8 +1039,8 @@ export default {
|
|
|
1039
1039
|
'(not set)': '(não definido)',
|
|
1040
1040
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}":
|
|
1041
1041
|
"Falha ao trocar o modelo para '{{modelId}}'.\n\n{{error}}",
|
|
1042
|
-
'
|
|
1043
|
-
'
|
|
1042
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance':
|
|
1043
|
+
'Qwen 3.5 Plus — modelo híbrido eficiente com desempenho líder em programação',
|
|
1044
1044
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)':
|
|
1045
1045
|
'O modelo Qwen Vision mais recente do Alibaba Cloud ModelStudio (versão: qwen3-vl-plus-2025-09-23)',
|
|
1046
1046
|
|
|
@@ -1431,8 +1431,12 @@ export default {
|
|
|
1431
1431
|
// Auth Dialog - View Titles and Labels
|
|
1432
1432
|
// ============================================================================
|
|
1433
1433
|
'Coding Plan': 'Coding Plan',
|
|
1434
|
+
'Coding Plan (Bailian, China)': 'Coding Plan (Bailian, China)',
|
|
1435
|
+
'Coding Plan (Bailian, Global/Intl)': 'Coding Plan (Bailian, Global/Intl)',
|
|
1434
1436
|
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1435
1437
|
'Cole sua chave de API do Bailian Coding Plan e pronto!',
|
|
1438
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!":
|
|
1439
|
+
'Cole sua chave de API do Coding Plan (Bailian, Global/Intl) e pronto!',
|
|
1436
1440
|
Custom: 'Personalizado',
|
|
1437
1441
|
'More instructions about configuring `modelProviders` manually.':
|
|
1438
1442
|
'Mais instruções sobre como configurar `modelProviders` manualmente.',
|
|
@@ -1442,4 +1446,18 @@ export default {
|
|
|
1442
1446
|
'(Press Enter to submit, Escape to cancel)':
|
|
1443
1447
|
'(Pressione Enter para enviar, Escape para cancelar)',
|
|
1444
1448
|
'More instructions please check:': 'Mais instruções, consulte:',
|
|
1449
|
+
|
|
1450
|
+
// ============================================================================
|
|
1451
|
+
// Coding Plan International Updates
|
|
1452
|
+
// ============================================================================
|
|
1453
|
+
'New model configurations are available for {{region}}. Update now?':
|
|
1454
|
+
'Novas configurações de modelo estão disponíveis para o {{region}}. Atualizar agora?',
|
|
1455
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?':
|
|
1456
|
+
'Novas configurações de modelo estão disponíveis para o Bailian Coding Plan (China). Atualizar agora?',
|
|
1457
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?':
|
|
1458
|
+
'Novas configurações de modelo estão disponíveis para o Coding Plan (Bailian, Global/Intl). Atualizar agora?',
|
|
1459
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".':
|
|
1460
|
+
'Configuração do {{region}} atualizada com sucesso. Modelo alterado para "{{model}}".',
|
|
1461
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.':
|
|
1462
|
+
'Autenticado com sucesso com {{region}}. A chave de API está armazenada em settings.env.',
|
|
1445
1463
|
};
|
package/locales/ru.js
CHANGED
|
@@ -1032,8 +1032,8 @@ export default {
|
|
|
1032
1032
|
'(not set)': '(не задано)',
|
|
1033
1033
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}":
|
|
1034
1034
|
"Не удалось переключиться на модель '{{modelId}}'.\n\n{{error}}",
|
|
1035
|
-
'
|
|
1036
|
-
'
|
|
1035
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance':
|
|
1036
|
+
'Qwen 3.5 Plus — эффективная гибридная модель с лидирующей производительностью в программировании',
|
|
1037
1037
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)':
|
|
1038
1038
|
'Последняя модель Qwen Vision от Alibaba Cloud ModelStudio (версия: qwen3-vl-plus-2025-09-23)',
|
|
1039
1039
|
|
|
@@ -1421,8 +1421,13 @@ export default {
|
|
|
1421
1421
|
// Auth Dialog - View Titles and Labels
|
|
1422
1422
|
// ============================================================================
|
|
1423
1423
|
'Coding Plan': 'Coding Plan',
|
|
1424
|
+
'Coding Plan (Bailian, China)': 'Coding Plan (Bailian, Китай)',
|
|
1425
|
+
'Coding Plan (Bailian, Global/Intl)':
|
|
1426
|
+
'Coding Plan (Bailian, Глобальный/Международный)',
|
|
1424
1427
|
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1425
1428
|
'Вставьте ваш API-ключ Bailian Coding Plan и всё готово!',
|
|
1429
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!":
|
|
1430
|
+
'Вставьте ваш API-ключ Coding Plan (Bailian, Глобальный/Международный) и всё готово!',
|
|
1426
1431
|
Custom: 'Пользовательский',
|
|
1427
1432
|
'More instructions about configuring `modelProviders` manually.':
|
|
1428
1433
|
'Дополнительные инструкции по ручной настройке `modelProviders`.',
|
|
@@ -1431,4 +1436,18 @@ export default {
|
|
|
1431
1436
|
'(Press Enter to submit, Escape to cancel)':
|
|
1432
1437
|
'(Нажмите Enter для отправки, Escape для отмены)',
|
|
1433
1438
|
'More instructions please check:': 'Дополнительные инструкции см.:',
|
|
1439
|
+
|
|
1440
|
+
// ============================================================================
|
|
1441
|
+
// Coding Plan International Updates
|
|
1442
|
+
// ============================================================================
|
|
1443
|
+
'New model configurations are available for {{region}}. Update now?':
|
|
1444
|
+
'Доступны новые конфигурации моделей для {{region}}. Обновить сейчас?',
|
|
1445
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?':
|
|
1446
|
+
'Доступны новые конфигурации моделей для Bailian Coding Plan (Китай). Обновить сейчас?',
|
|
1447
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?':
|
|
1448
|
+
'Доступны новые конфигурации моделей для Coding Plan (Bailian, Глобальный/Международный). Обновить сейчас?',
|
|
1449
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".':
|
|
1450
|
+
'Конфигурация {{region}} успешно обновлена. Модель переключена на "{{model}}".',
|
|
1451
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.':
|
|
1452
|
+
'Успешная аутентификация с {{region}}. API-ключ сохранён в settings.env.',
|
|
1434
1453
|
};
|
package/locales/zh.js
CHANGED
|
@@ -958,8 +958,8 @@ export default {
|
|
|
958
958
|
'(not set)': '(未设置)',
|
|
959
959
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}":
|
|
960
960
|
"无法切换到模型 '{{modelId}}'.\n\n{{error}}",
|
|
961
|
-
'
|
|
962
|
-
'
|
|
961
|
+
'Qwen 3.5 Plus — efficient hybrid model with leading coding performance':
|
|
962
|
+
'Qwen 3.5 Plus — 高效混合架构,编程性能业界领先',
|
|
963
963
|
'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)':
|
|
964
964
|
'来自阿里云 ModelStudio 的最新 Qwen Vision 模型(版本:qwen3-vl-plus-2025-09-23)',
|
|
965
965
|
|
|
@@ -1253,12 +1253,30 @@ export default {
|
|
|
1253
1253
|
// ============================================================================
|
|
1254
1254
|
'API-KEY': 'API-KEY',
|
|
1255
1255
|
'Coding Plan': 'Coding Plan',
|
|
1256
|
+
'Coding Plan (Bailian, China)': 'Coding Plan (百炼, 中国)',
|
|
1257
|
+
'Coding Plan (Bailian, Global/Intl)': 'Coding Plan (百炼, 全球/国际)',
|
|
1256
1258
|
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1257
1259
|
'粘贴您的百炼 Coding Plan API Key,即可完成设置!',
|
|
1260
|
+
"Paste your api key of Coding Plan (Bailian, Global/Intl) and you're all set!":
|
|
1261
|
+
'粘贴您的 Coding Plan (百炼, 全球/国际) API Key,即可完成设置!',
|
|
1258
1262
|
Custom: '自定义',
|
|
1259
1263
|
'More instructions about configuring `modelProviders` manually.':
|
|
1260
1264
|
'关于手动配置 `modelProviders` 的更多说明。',
|
|
1261
1265
|
'Select API-KEY configuration mode:': '选择 API-KEY 配置模式:',
|
|
1262
1266
|
'(Press Escape to go back)': '(按 Escape 键返回)',
|
|
1263
1267
|
'(Press Enter to submit, Escape to cancel)': '(按 Enter 提交,Escape 取消)',
|
|
1268
|
+
|
|
1269
|
+
// ============================================================================
|
|
1270
|
+
// Coding Plan International Updates
|
|
1271
|
+
// ============================================================================
|
|
1272
|
+
'New model configurations are available for {{region}}. Update now?':
|
|
1273
|
+
'{{region}} 有新的模型配置可用。是否立即更新?',
|
|
1274
|
+
'New model configurations are available for Bailian Coding Plan (China). Update now?':
|
|
1275
|
+
'百炼 Coding Plan (中国) 有新的模型配置可用。是否立即更新?',
|
|
1276
|
+
'New model configurations are available for Coding Plan (Bailian, Global/Intl). Update now?':
|
|
1277
|
+
'Coding Plan (百炼, 全球/国际) 有新的模型配置可用。是否立即更新?',
|
|
1278
|
+
'{{region}} configuration updated successfully. Model switched to "{{model}}".':
|
|
1279
|
+
'{{region}} 配置更新成功。模型已切换至 "{{model}}"。',
|
|
1280
|
+
'Authenticated successfully with {{region}}. API key is stored in settings.env.':
|
|
1281
|
+
'成功通过 {{region}} 认证。API Key 已存储在 settings.env 中。',
|
|
1264
1282
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qwen-code/qwen-code",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.4-preview.0",
|
|
4
4
|
"description": "Qwen Code - AI-powered coding assistant",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"locales"
|
|
21
21
|
],
|
|
22
22
|
"config": {
|
|
23
|
-
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.10.
|
|
23
|
+
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.10.4-preview.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {},
|
|
26
26
|
"optionalDependencies": {
|