@qwen-code/qwen-code 0.10.0-preview.4 → 0.10.0-preview.6
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/cli.js +264 -50
- package/locales/de.js +21 -0
- package/locales/en.js +10 -1
- package/locales/ja.js +20 -0
- package/locales/pt.js +21 -0
- package/locales/ru.js +20 -0
- package/locales/zh.js +9 -0
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -71639,6 +71639,17 @@ var init_tools = __esm({
|
|
|
71639
71639
|
});
|
|
71640
71640
|
|
|
71641
71641
|
// packages/core/dist/src/tools/mcp-tool.js
|
|
71642
|
+
function wrapMcpCallToolResultAsParts(toolName, result) {
|
|
71643
|
+
const response = result.isError ? { error: result, content: result.content } : result;
|
|
71644
|
+
return [
|
|
71645
|
+
{
|
|
71646
|
+
functionResponse: {
|
|
71647
|
+
name: toolName,
|
|
71648
|
+
response
|
|
71649
|
+
}
|
|
71650
|
+
}
|
|
71651
|
+
];
|
|
71652
|
+
}
|
|
71642
71653
|
function transformTextBlock(block2) {
|
|
71643
71654
|
return { text: block2.text };
|
|
71644
71655
|
}
|
|
@@ -71756,8 +71767,10 @@ var init_mcp_tool = __esm({
|
|
|
71756
71767
|
displayName;
|
|
71757
71768
|
trust;
|
|
71758
71769
|
cliConfig;
|
|
71770
|
+
mcpClient;
|
|
71771
|
+
mcpTimeout;
|
|
71759
71772
|
static allowlist = /* @__PURE__ */ new Set();
|
|
71760
|
-
constructor(mcpTool, serverName, serverToolName, displayName, trust, params = {}, cliConfig) {
|
|
71773
|
+
constructor(mcpTool, serverName, serverToolName, displayName, trust, params = {}, cliConfig, mcpClient, mcpTimeout) {
|
|
71761
71774
|
super(params);
|
|
71762
71775
|
this.mcpTool = mcpTool;
|
|
71763
71776
|
this.serverName = serverName;
|
|
@@ -71765,6 +71778,8 @@ var init_mcp_tool = __esm({
|
|
|
71765
71778
|
this.displayName = displayName;
|
|
71766
71779
|
this.trust = trust;
|
|
71767
71780
|
this.cliConfig = cliConfig;
|
|
71781
|
+
this.mcpClient = mcpClient;
|
|
71782
|
+
this.mcpTimeout = mcpTimeout;
|
|
71768
71783
|
}
|
|
71769
71784
|
async shouldConfirmExecute(_abortSignal) {
|
|
71770
71785
|
const serverAllowListKey = this.serverName;
|
|
@@ -71808,7 +71823,63 @@ var init_mcp_tool = __esm({
|
|
|
71808
71823
|
}
|
|
71809
71824
|
return false;
|
|
71810
71825
|
}
|
|
71811
|
-
async execute(signal) {
|
|
71826
|
+
async execute(signal, updateOutput2) {
|
|
71827
|
+
if (this.mcpClient) {
|
|
71828
|
+
return this.executeWithDirectClient(signal, updateOutput2);
|
|
71829
|
+
}
|
|
71830
|
+
return this.executeWithCallableTool(signal);
|
|
71831
|
+
}
|
|
71832
|
+
/**
|
|
71833
|
+
* Execute using the raw MCP SDK Client, which supports progress
|
|
71834
|
+
* notifications via the onprogress callback. This enables real-time
|
|
71835
|
+
* streaming of progress updates to the user during long-running
|
|
71836
|
+
* MCP tool calls (e.g., browser automation).
|
|
71837
|
+
*/
|
|
71838
|
+
async executeWithDirectClient(signal, updateOutput2) {
|
|
71839
|
+
const callToolResult = await this.mcpClient.callTool({
|
|
71840
|
+
name: this.serverToolName,
|
|
71841
|
+
arguments: this.params
|
|
71842
|
+
}, void 0, {
|
|
71843
|
+
onprogress: /* @__PURE__ */ __name((progress) => {
|
|
71844
|
+
if (updateOutput2) {
|
|
71845
|
+
const progressData = {
|
|
71846
|
+
type: "mcp_tool_progress",
|
|
71847
|
+
progress: progress.progress,
|
|
71848
|
+
...progress.total != null && { total: progress.total },
|
|
71849
|
+
...progress.message != null && { message: progress.message }
|
|
71850
|
+
};
|
|
71851
|
+
updateOutput2(progressData);
|
|
71852
|
+
}
|
|
71853
|
+
}, "onprogress"),
|
|
71854
|
+
timeout: this.mcpTimeout,
|
|
71855
|
+
signal
|
|
71856
|
+
});
|
|
71857
|
+
const rawResponseParts = wrapMcpCallToolResultAsParts(this.serverToolName, callToolResult);
|
|
71858
|
+
if (this.isMCPToolError(rawResponseParts)) {
|
|
71859
|
+
const errorMessage = `MCP tool '${this.serverToolName}' reported tool error for function call: ${safeJsonStringify({
|
|
71860
|
+
name: this.serverToolName,
|
|
71861
|
+
args: this.params
|
|
71862
|
+
})} with response: ${safeJsonStringify(rawResponseParts)}`;
|
|
71863
|
+
return {
|
|
71864
|
+
llmContent: errorMessage,
|
|
71865
|
+
returnDisplay: `Error: MCP tool '${this.serverToolName}' reported an error.`,
|
|
71866
|
+
error: {
|
|
71867
|
+
message: errorMessage,
|
|
71868
|
+
type: ToolErrorType.MCP_TOOL_ERROR
|
|
71869
|
+
}
|
|
71870
|
+
};
|
|
71871
|
+
}
|
|
71872
|
+
const transformedParts = transformMcpContentToParts(rawResponseParts);
|
|
71873
|
+
return {
|
|
71874
|
+
llmContent: transformedParts,
|
|
71875
|
+
returnDisplay: getStringifiedResultForDisplay(rawResponseParts)
|
|
71876
|
+
};
|
|
71877
|
+
}
|
|
71878
|
+
/**
|
|
71879
|
+
* Fallback: execute using the @google/genai CallableTool wrapper.
|
|
71880
|
+
* This path does NOT support progress notifications.
|
|
71881
|
+
*/
|
|
71882
|
+
async executeWithCallableTool(signal) {
|
|
71812
71883
|
const functionCalls = [
|
|
71813
71884
|
{
|
|
71814
71885
|
name: this.serverToolName,
|
|
@@ -71871,7 +71942,9 @@ var init_mcp_tool = __esm({
|
|
|
71871
71942
|
parameterSchema;
|
|
71872
71943
|
trust;
|
|
71873
71944
|
cliConfig;
|
|
71874
|
-
|
|
71945
|
+
mcpClient;
|
|
71946
|
+
mcpTimeout;
|
|
71947
|
+
constructor(mcpTool, serverName, serverToolName, description, parameterSchema, trust, nameOverride, cliConfig, mcpClient, mcpTimeout) {
|
|
71875
71948
|
super(
|
|
71876
71949
|
nameOverride ?? generateValidName(`mcp__${serverName}__${serverToolName}`),
|
|
71877
71950
|
`${serverToolName} (${serverName} MCP Server)`,
|
|
@@ -71880,7 +71953,7 @@ var init_mcp_tool = __esm({
|
|
|
71880
71953
|
parameterSchema,
|
|
71881
71954
|
true,
|
|
71882
71955
|
// isOutputMarkdown
|
|
71883
|
-
|
|
71956
|
+
true
|
|
71884
71957
|
);
|
|
71885
71958
|
this.mcpTool = mcpTool;
|
|
71886
71959
|
this.serverName = serverName;
|
|
@@ -71888,14 +71961,17 @@ var init_mcp_tool = __esm({
|
|
|
71888
71961
|
this.parameterSchema = parameterSchema;
|
|
71889
71962
|
this.trust = trust;
|
|
71890
71963
|
this.cliConfig = cliConfig;
|
|
71964
|
+
this.mcpClient = mcpClient;
|
|
71965
|
+
this.mcpTimeout = mcpTimeout;
|
|
71891
71966
|
}
|
|
71892
71967
|
asFullyQualifiedTool() {
|
|
71893
|
-
return new _DiscoveredMCPTool(this.mcpTool, this.serverName, this.serverToolName, this.description, this.parameterSchema, this.trust, generateValidName(`mcp__${this.serverName}__${this.serverToolName}`), this.cliConfig);
|
|
71968
|
+
return new _DiscoveredMCPTool(this.mcpTool, this.serverName, this.serverToolName, this.description, this.parameterSchema, this.trust, generateValidName(`mcp__${this.serverName}__${this.serverToolName}`), this.cliConfig, this.mcpClient, this.mcpTimeout);
|
|
71894
71969
|
}
|
|
71895
71970
|
createInvocation(params) {
|
|
71896
|
-
return new DiscoveredMCPToolInvocation(this.mcpTool, this.serverName, this.serverToolName, this.displayName, this.trust, params, this.cliConfig);
|
|
71971
|
+
return new DiscoveredMCPToolInvocation(this.mcpTool, this.serverName, this.serverToolName, this.displayName, this.trust, params, this.cliConfig, this.mcpClient, this.mcpTimeout);
|
|
71897
71972
|
}
|
|
71898
71973
|
};
|
|
71974
|
+
__name(wrapMcpCallToolResultAsParts, "wrapMcpCallToolResultAsParts");
|
|
71899
71975
|
__name(transformTextBlock, "transformTextBlock");
|
|
71900
71976
|
__name(transformImageAudioBlock, "transformImageAudioBlock");
|
|
71901
71977
|
__name(transformResourceBlock, "transformResourceBlock");
|
|
@@ -156351,7 +156427,7 @@ __export(geminiContentGenerator_exports, {
|
|
|
156351
156427
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
156352
156428
|
});
|
|
156353
156429
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
156354
|
-
const version2 = "0.10.0-preview.
|
|
156430
|
+
const version2 = "0.10.0-preview.6";
|
|
156355
156431
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
156356
156432
|
const baseHeaders = {
|
|
156357
156433
|
"User-Agent": userAgent2
|
|
@@ -210558,13 +210634,26 @@ async function discoverTools(mcpServerName, mcpServerConfig, mcpClient, cliConfi
|
|
|
210558
210634
|
if (!Array.isArray(tool.functionDeclarations)) {
|
|
210559
210635
|
return [];
|
|
210560
210636
|
}
|
|
210637
|
+
const mcpTimeout = mcpServerConfig.timeout ?? MCP_DEFAULT_TIMEOUT_MSEC;
|
|
210561
210638
|
const discoveredTools = [];
|
|
210562
210639
|
for (const funcDecl of tool.functionDeclarations) {
|
|
210563
210640
|
try {
|
|
210564
210641
|
if (!isEnabled(funcDecl, mcpServerName, mcpServerConfig)) {
|
|
210565
210642
|
continue;
|
|
210566
210643
|
}
|
|
210567
|
-
discoveredTools.push(new DiscoveredMCPTool(
|
|
210644
|
+
discoveredTools.push(new DiscoveredMCPTool(
|
|
210645
|
+
mcpCallableTool,
|
|
210646
|
+
mcpServerName,
|
|
210647
|
+
funcDecl.name,
|
|
210648
|
+
funcDecl.description ?? "",
|
|
210649
|
+
funcDecl.parametersJsonSchema ?? { type: "object", properties: {} },
|
|
210650
|
+
mcpServerConfig.trust,
|
|
210651
|
+
void 0,
|
|
210652
|
+
cliConfig,
|
|
210653
|
+
mcpClient,
|
|
210654
|
+
// raw MCP Client for direct callTool with progress
|
|
210655
|
+
mcpTimeout
|
|
210656
|
+
));
|
|
210568
210657
|
} catch (error2) {
|
|
210569
210658
|
debugLogger49.error(`Error discovering tool: '${funcDecl.name}' from MCP server '${mcpServerName}': ${error2.message}`);
|
|
210570
210659
|
}
|
|
@@ -238711,11 +238800,11 @@ var init_extensionManager = __esm({
|
|
|
238711
238800
|
installMetadata.source = path62.resolve(currentDir, installMetadata.source);
|
|
238712
238801
|
}
|
|
238713
238802
|
let tempDir;
|
|
238714
|
-
if (installMetadata.
|
|
238803
|
+
if (installMetadata.originSource === "Claude" && installMetadata.marketplaceConfig && !installMetadata.pluginName) {
|
|
238715
238804
|
const pluginName = await this.requestChoicePlugin(installMetadata.marketplaceConfig);
|
|
238716
238805
|
installMetadata.pluginName = pluginName;
|
|
238717
238806
|
}
|
|
238718
|
-
if (installMetadata.type === "
|
|
238807
|
+
if (installMetadata.type === "git" || installMetadata.type === "github-release") {
|
|
238719
238808
|
tempDir = await ExtensionStorage.createTmpDir();
|
|
238720
238809
|
try {
|
|
238721
238810
|
const result = await downloadFromGitHubRelease(installMetadata, tempDir);
|
|
@@ -238725,7 +238814,7 @@ var init_extensionManager = __esm({
|
|
|
238725
238814
|
}
|
|
238726
238815
|
} catch (_error) {
|
|
238727
238816
|
await cloneFromGit(installMetadata, tempDir);
|
|
238728
|
-
if (installMetadata.type === "
|
|
238817
|
+
if (installMetadata.type === "github-release") {
|
|
238729
238818
|
installMetadata.type = "git";
|
|
238730
238819
|
}
|
|
238731
238820
|
}
|
|
@@ -247785,7 +247874,20 @@ async function parseInstallSource(source2) {
|
|
|
247785
247874
|
let installMetadata;
|
|
247786
247875
|
let repoSource = repo;
|
|
247787
247876
|
let marketplaceConfig = null;
|
|
247788
|
-
|
|
247877
|
+
let isLocalPath = false;
|
|
247878
|
+
try {
|
|
247879
|
+
await stat7(repo);
|
|
247880
|
+
isLocalPath = true;
|
|
247881
|
+
} catch {
|
|
247882
|
+
}
|
|
247883
|
+
if (isLocalPath) {
|
|
247884
|
+
installMetadata = {
|
|
247885
|
+
source: repo,
|
|
247886
|
+
type: "local",
|
|
247887
|
+
pluginName
|
|
247888
|
+
};
|
|
247889
|
+
marketplaceConfig = await readLocalMarketplaceConfig(repo);
|
|
247890
|
+
} else if (isGitUrl(repo)) {
|
|
247789
247891
|
installMetadata = {
|
|
247790
247892
|
source: repoSource,
|
|
247791
247893
|
type: "git",
|
|
@@ -247809,20 +247911,9 @@ async function parseInstallSource(source2) {
|
|
|
247809
247911
|
} catch {
|
|
247810
247912
|
}
|
|
247811
247913
|
} else {
|
|
247812
|
-
|
|
247813
|
-
await stat7(repo);
|
|
247814
|
-
installMetadata = {
|
|
247815
|
-
source: repo,
|
|
247816
|
-
type: "local",
|
|
247817
|
-
pluginName
|
|
247818
|
-
};
|
|
247819
|
-
marketplaceConfig = await readLocalMarketplaceConfig(repo);
|
|
247820
|
-
} catch {
|
|
247821
|
-
throw new Error(`Install source not found: ${repo}`);
|
|
247822
|
-
}
|
|
247914
|
+
throw new Error(`Install source not found: ${repo}`);
|
|
247823
247915
|
}
|
|
247824
247916
|
if (marketplaceConfig) {
|
|
247825
|
-
installMetadata.type = "marketplace";
|
|
247826
247917
|
installMetadata.marketplaceConfig = marketplaceConfig;
|
|
247827
247918
|
installMetadata.originSource = "Claude";
|
|
247828
247919
|
}
|
|
@@ -296959,6 +297050,9 @@ var init_de = __esm({
|
|
|
296959
297050
|
"(Use Enter to Set Auth)": "(Enter zum Festlegen der Authentifizierung)",
|
|
296960
297051
|
"Terms of Services and Privacy Notice for Qwen Code": "Nutzungsbedingungen und Datenschutzhinweis f\xFCr Qwen Code",
|
|
296961
297052
|
"Qwen OAuth": "Qwen OAuth",
|
|
297053
|
+
"Login with QwenChat account to use daily free quota.": "Melden Sie sich mit Ihrem QwenChat-Konto an, um das t\xE4gliche kostenlose Kontingent zu nutzen.",
|
|
297054
|
+
"API-KEY": "API-KEY",
|
|
297055
|
+
"Use coding plan credentials or your own api-keys/providers.": "Verwenden Sie Coding Plan-Anmeldedaten oder Ihre eigenen API-Schl\xFCssel/Anbieter.",
|
|
296962
297056
|
OpenAI: "OpenAI",
|
|
296963
297057
|
"Failed to login. Message: {{message}}": "Anmeldung fehlgeschlagen. Meldung: {{message}}",
|
|
296964
297058
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "Authentifizierung ist auf {{enforcedType}} festgelegt, aber Sie verwenden derzeit {{currentType}}.",
|
|
@@ -297313,7 +297407,18 @@ var init_de = __esm({
|
|
|
297313
297407
|
"Add model configuration to modelProviders['openai'] (or other auth types)": "Modellkonfiguration zu modelProviders['openai'] (oder anderen Authentifizierungstypen) hinzuf\xFCgen",
|
|
297314
297408
|
"Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig": "Jeder Anbieter ben\xF6tigt: id, envKey (erforderlich), plus optionale baseUrl, generationConfig",
|
|
297315
297409
|
"Use /model command to select your preferred model from the configured list": "Verwenden Sie den /model-Befehl, um Ihr bevorzugtes Modell aus der konfigurierten Liste auszuw\xE4hlen",
|
|
297316
|
-
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "Unterst\xFCtzte Authentifizierungstypen: openai, anthropic, gemini, vertex-ai, usw."
|
|
297410
|
+
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "Unterst\xFCtzte Authentifizierungstypen: openai, anthropic, gemini, vertex-ai, usw.",
|
|
297411
|
+
// ============================================================================
|
|
297412
|
+
// Auth Dialog - View Titles and Labels
|
|
297413
|
+
// ============================================================================
|
|
297414
|
+
"Coding Plan": "Coding Plan",
|
|
297415
|
+
"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!",
|
|
297416
|
+
Custom: "Benutzerdefiniert",
|
|
297417
|
+
"More instructions about configuring `modelProviders` manually.": "Weitere Anweisungen zur manuellen Konfiguration von `modelProviders`.",
|
|
297418
|
+
"Select API-KEY configuration mode:": "API-KEY-Konfigurationsmodus ausw\xE4hlen:",
|
|
297419
|
+
"(Press Escape to go back)": "(Escape dr\xFCcken zum Zur\xFCckgehen)",
|
|
297420
|
+
"(Press Enter to submit, Escape to cancel)": "(Enter zum Absenden, Escape zum Abbrechen)",
|
|
297421
|
+
"More instructions please check:": "Weitere Anweisungen finden Sie unter:"
|
|
297317
297422
|
};
|
|
297318
297423
|
}
|
|
297319
297424
|
});
|
|
@@ -298004,6 +298109,9 @@ var init_en3 = __esm({
|
|
|
298004
298109
|
"(Use Enter to Set Auth)": "(Use Enter to Set Auth)",
|
|
298005
298110
|
"Terms of Services and Privacy Notice for Qwen Code": "Terms of Services and Privacy Notice for Qwen Code",
|
|
298006
298111
|
"Qwen OAuth": "Qwen OAuth",
|
|
298112
|
+
"Login with QwenChat account to use daily free quota.": "Login with QwenChat account to use daily free quota.",
|
|
298113
|
+
"API-KEY": "API-KEY",
|
|
298114
|
+
"Use coding plan credentials or your own api-keys/providers.": "Use coding plan credentials or your own api-keys/providers.",
|
|
298007
298115
|
OpenAI: "OpenAI",
|
|
298008
298116
|
"Failed to login. Message: {{message}}": "Failed to login. Message: {{message}}",
|
|
298009
298117
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.",
|
|
@@ -298368,12 +298476,14 @@ var init_en3 = __esm({
|
|
|
298368
298476
|
"Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig": "Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig",
|
|
298369
298477
|
"Use /model command to select your preferred model from the configured list": "Use /model command to select your preferred model from the configured list",
|
|
298370
298478
|
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "Supported auth types: openai, anthropic, gemini, vertex-ai, etc.",
|
|
298479
|
+
"More instructions please check:": "More instructions please check:",
|
|
298371
298480
|
// ============================================================================
|
|
298372
298481
|
// Auth Dialog - View Titles and Labels
|
|
298373
298482
|
// ============================================================================
|
|
298374
|
-
"API-KEY": "API-KEY",
|
|
298375
298483
|
"Coding Plan": "Coding Plan",
|
|
298484
|
+
"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!",
|
|
298376
298485
|
Custom: "Custom",
|
|
298486
|
+
"More instructions about configuring `modelProviders` manually.": "More instructions about configuring `modelProviders` manually.",
|
|
298377
298487
|
"Select API-KEY configuration mode:": "Select API-KEY configuration mode:",
|
|
298378
298488
|
"(Press Escape to go back)": "(Press Escape to go back)",
|
|
298379
298489
|
"(Press Enter to submit, Escape to cancel)": "(Press Enter to submit, Escape to cancel)"
|
|
@@ -298887,6 +298997,9 @@ var init_ja = __esm({
|
|
|
298887
298997
|
"(Use Enter to Set Auth)": "(Enter \u3067\u8A8D\u8A3C\u3092\u8A2D\u5B9A)",
|
|
298888
298998
|
"Terms of Services and Privacy Notice for Qwen Code": "Qwen Code \u306E\u5229\u7528\u898F\u7D04\u3068\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u901A\u77E5",
|
|
298889
298999
|
"Qwen OAuth": "Qwen OAuth",
|
|
299000
|
+
"Login with QwenChat account to use daily free quota.": "QwenChat\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3001\u6BCE\u65E5\u306E\u7121\u6599\u30AF\u30A9\u30FC\u30BF\u3092\u3054\u5229\u7528\u304F\u3060\u3055\u3044\u3002",
|
|
299001
|
+
"API-KEY": "API-KEY",
|
|
299002
|
+
"Use coding plan credentials or your own api-keys/providers.": "Coding Plan\u306E\u8A8D\u8A3C\u60C5\u5831\u307E\u305F\u306F\u3054\u81EA\u8EAB\u306EAPI\u30AD\u30FC/\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u3054\u5229\u7528\u304F\u3060\u3055\u3044\u3002",
|
|
298890
299003
|
OpenAI: "OpenAI",
|
|
298891
299004
|
"Failed to login. Message: {{message}}": "\u30ED\u30B0\u30A4\u30F3\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30E1\u30C3\u30BB\u30FC\u30B8: {{message}}",
|
|
298892
299005
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "\u8A8D\u8A3C\u306F {{enforcedType}} \u306B\u5F37\u5236\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001\u73FE\u5728 {{currentType}} \u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059",
|
|
@@ -299068,7 +299181,18 @@ var init_ja = __esm({
|
|
|
299068
299181
|
"Add model configuration to modelProviders['openai'] (or other auth types)": "modelProviders['openai']\uFF08\u307E\u305F\u306F\u4ED6\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7\uFF09\u306B\u30E2\u30C7\u30EB\u8A2D\u5B9A\u3092\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
299069
299182
|
"Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig": "\u5404\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u306B\u306F\uFF1Aid\u3001envKey\uFF08\u5FC5\u9808\uFF09\u3001\u304A\u3088\u3073\u30AA\u30D7\u30B7\u30E7\u30F3\u306E baseUrl\u3001generationConfig \u304C\u5FC5\u8981\u3067\u3059",
|
|
299070
299183
|
"Use /model command to select your preferred model from the configured list": "/model \u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u3066\u3001\u8A2D\u5B9A\u6E08\u307F\u30EA\u30B9\u30C8\u304B\u3089\u304A\u597D\u307F\u306E\u30E2\u30C7\u30EB\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
299071
|
-
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u8A8D\u8A3C\u30BF\u30A4\u30D7\uFF1Aopenai\u3001anthropic\u3001gemini\u3001vertex-ai \u306A\u3069"
|
|
299184
|
+
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u8A8D\u8A3C\u30BF\u30A4\u30D7\uFF1Aopenai\u3001anthropic\u3001gemini\u3001vertex-ai \u306A\u3069",
|
|
299185
|
+
// ============================================================================
|
|
299186
|
+
// Auth Dialog - View Titles and Labels
|
|
299187
|
+
// ============================================================================
|
|
299188
|
+
"Coding Plan": "Coding Plan",
|
|
299189
|
+
"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",
|
|
299190
|
+
Custom: "\u30AB\u30B9\u30BF\u30E0",
|
|
299191
|
+
"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",
|
|
299192
|
+
"Select API-KEY configuration mode:": "API-KEY\u8A2D\u5B9A\u30E2\u30FC\u30C9\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A",
|
|
299193
|
+
"(Press Escape to go back)": "(Escape\u30AD\u30FC\u3067\u623B\u308B)",
|
|
299194
|
+
"(Press Enter to submit, Escape to cancel)": "(Enter\u3067\u9001\u4FE1\u3001Escape\u3067\u30AD\u30E3\u30F3\u30BB\u30EB)",
|
|
299195
|
+
"More instructions please check:": "\u8A73\u7D30\u306A\u624B\u9806\u306F\u3053\u3061\u3089\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\uFF1A"
|
|
299072
299196
|
};
|
|
299073
299197
|
}
|
|
299074
299198
|
});
|
|
@@ -299753,6 +299877,9 @@ var init_pt = __esm({
|
|
|
299753
299877
|
"(Use Enter to Set Auth)": "(Use Enter para Definir Autentica\xE7\xE3o)",
|
|
299754
299878
|
"Terms of Services and Privacy Notice for Qwen Code": "Termos de Servi\xE7o e Aviso de Privacidade do Qwen Code",
|
|
299755
299879
|
"Qwen OAuth": "Qwen OAuth",
|
|
299880
|
+
"Login with QwenChat account to use daily free quota.": "Fa\xE7a login com sua conta QwenChat para usar a cota gratuita di\xE1ria.",
|
|
299881
|
+
"API-KEY": "API-KEY",
|
|
299882
|
+
"Use coding plan credentials or your own api-keys/providers.": "Use credenciais do Coding Plan ou suas pr\xF3prias chaves API/provedores.",
|
|
299756
299883
|
OpenAI: "OpenAI",
|
|
299757
299884
|
"Failed to login. Message: {{message}}": "Falha ao fazer login. Mensagem: {{message}}",
|
|
299758
299885
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "A autentica\xE7\xE3o \xE9 for\xE7ada para {{enforcedType}}, mas voc\xEA est\xE1 usando {{currentType}} no momento.",
|
|
@@ -300106,7 +300233,18 @@ var init_pt = __esm({
|
|
|
300106
300233
|
"Add model configuration to modelProviders['openai'] (or other auth types)": "Adicione a configura\xE7\xE3o do modelo a modelProviders['openai'] (ou outros tipos de autentica\xE7\xE3o)",
|
|
300107
300234
|
"Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig": "Cada provedor precisa de: id, envKey (obrigat\xF3rio), al\xE9m de baseUrl e generationConfig opcionais",
|
|
300108
300235
|
"Use /model command to select your preferred model from the configured list": "Use o comando /model para selecionar seu modelo preferido da lista configurada",
|
|
300109
|
-
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "Tipos de autentica\xE7\xE3o suportados: openai, anthropic, gemini, vertex-ai, etc."
|
|
300236
|
+
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "Tipos de autentica\xE7\xE3o suportados: openai, anthropic, gemini, vertex-ai, etc.",
|
|
300237
|
+
// ============================================================================
|
|
300238
|
+
// Auth Dialog - View Titles and Labels
|
|
300239
|
+
// ============================================================================
|
|
300240
|
+
"Coding Plan": "Coding Plan",
|
|
300241
|
+
"Paste your api key of Bailian Coding Plan and you're all set!": "Cole sua chave de API do Bailian Coding Plan e pronto!",
|
|
300242
|
+
Custom: "Personalizado",
|
|
300243
|
+
"More instructions about configuring `modelProviders` manually.": "Mais instru\xE7\xF5es sobre como configurar `modelProviders` manualmente.",
|
|
300244
|
+
"Select API-KEY configuration mode:": "Selecione o modo de configura\xE7\xE3o da API-KEY:",
|
|
300245
|
+
"(Press Escape to go back)": "(Pressione Escape para voltar)",
|
|
300246
|
+
"(Press Enter to submit, Escape to cancel)": "(Pressione Enter para enviar, Escape para cancelar)",
|
|
300247
|
+
"More instructions please check:": "Mais instru\xE7\xF5es, consulte:"
|
|
300110
300248
|
};
|
|
300111
300249
|
}
|
|
300112
300250
|
});
|
|
@@ -300797,6 +300935,9 @@ var init_ru = __esm({
|
|
|
300797
300935
|
"(Use Enter to Set Auth)": "(Enter \u0434\u043B\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u0438)",
|
|
300798
300936
|
"Terms of Services and Privacy Notice for Qwen Code": "\u0423\u0441\u043B\u043E\u0432\u0438\u044F \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043E \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0434\u043B\u044F Qwen Code",
|
|
300799
300937
|
"Qwen OAuth": "Qwen OAuth",
|
|
300938
|
+
"Login with QwenChat account to use daily free quota.": "\u0412\u043E\u0439\u0434\u0438\u0442\u0435 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430 QwenChat, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u0443\u044E \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u0443\u044E \u043A\u0432\u043E\u0442\u0443.",
|
|
300939
|
+
"API-KEY": "API-KEY",
|
|
300940
|
+
"Use coding plan credentials or your own api-keys/providers.": "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0443\u0447\u0435\u0442\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 Coding Plan \u0438\u043B\u0438 \u0441\u0432\u043E\u0438 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 API-\u043A\u043B\u044E\u0447\u0438/\u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u044B.",
|
|
300800
300941
|
OpenAI: "OpenAI",
|
|
300801
300942
|
"Failed to login. Message: {{message}}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u043E\u0439\u0442\u0438. \u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435: {{message}}",
|
|
300802
300943
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "\u0410\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u0434\u043E\u043B\u0436\u043D\u0430 \u0431\u044B\u0442\u044C {{enforcedType}}, \u043D\u043E \u0432\u044B \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 {{currentType}}.",
|
|
@@ -301152,7 +301293,18 @@ var init_ru = __esm({
|
|
|
301152
301293
|
"Add model configuration to modelProviders['openai'] (or other auth types)": "\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u043C\u043E\u0434\u0435\u043B\u0438 \u0432 modelProviders['openai'] (\u0438\u043B\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043F\u044B \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438)",
|
|
301153
301294
|
"Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig": "\u041A\u0430\u0436\u0434\u043E\u043C\u0443 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0443 \u043D\u0443\u0436\u043D\u044B: id, envKey (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E), \u0430 \u0442\u0430\u043A\u0436\u0435 \u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 baseUrl, generationConfig",
|
|
301154
301295
|
"Use /model command to select your preferred model from the configured list": "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 /model, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u0435\u043C\u0443\u044E \u043C\u043E\u0434\u0435\u043B\u044C \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430",
|
|
301155
|
-
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 \u0442\u0438\u043F\u044B \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438: openai, anthropic, gemini, vertex-ai \u0438 \u0434\u0440."
|
|
301296
|
+
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 \u0442\u0438\u043F\u044B \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438: openai, anthropic, gemini, vertex-ai \u0438 \u0434\u0440.",
|
|
301297
|
+
// ============================================================================
|
|
301298
|
+
// Auth Dialog - View Titles and Labels
|
|
301299
|
+
// ============================================================================
|
|
301300
|
+
"Coding Plan": "Coding Plan",
|
|
301301
|
+
"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!",
|
|
301302
|
+
Custom: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439",
|
|
301303
|
+
"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`.",
|
|
301304
|
+
"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:",
|
|
301305
|
+
"(Press Escape to go back)": "(\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Escape \u0434\u043B\u044F \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430)",
|
|
301306
|
+
"(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)",
|
|
301307
|
+
"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.:"
|
|
301156
301308
|
};
|
|
301157
301309
|
}
|
|
301158
301310
|
});
|
|
@@ -301843,6 +301995,8 @@ var init_zh = __esm({
|
|
|
301843
301995
|
"(Use Enter to Set Auth)": "\uFF08\u4F7F\u7528 Enter \u8BBE\u7F6E\u8BA4\u8BC1\uFF09",
|
|
301844
301996
|
"Terms of Services and Privacy Notice for Qwen Code": "Qwen Code \u7684\u670D\u52A1\u6761\u6B3E\u548C\u9690\u79C1\u58F0\u660E",
|
|
301845
301997
|
"Qwen OAuth": "Qwen OAuth (\u514D\u8D39)",
|
|
301998
|
+
"Login with QwenChat account to use daily free quota.": "\u4F7F\u7528 QwenChat \u8D26\u53F7\u767B\u5F55\uFF0C\u4EAB\u53D7\u6BCF\u65E5\u514D\u8D39\u989D\u5EA6\u3002",
|
|
301999
|
+
"Use coding plan credentials or your own api-keys/providers.": "\u4F7F\u7528 Coding Plan \u51ED\u8BC1\u6216\u60A8\u81EA\u5DF1\u7684 API \u5BC6\u94A5/\u63D0\u4F9B\u5546\u3002",
|
|
301846
302000
|
OpenAI: "OpenAI",
|
|
301847
302001
|
"Failed to login. Message: {{message}}": "\u767B\u5F55\u5931\u8D25\u3002\u6D88\u606F\uFF1A{{message}}",
|
|
301848
302002
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "\u8BA4\u8BC1\u65B9\u5F0F\u88AB\u5F3A\u5236\u8BBE\u7F6E\u4E3A {{enforcedType}}\uFF0C\u4F46\u60A8\u5F53\u524D\u4F7F\u7528\u7684\u662F {{currentType}}",
|
|
@@ -302106,12 +302260,15 @@ var init_zh = __esm({
|
|
|
302106
302260
|
"Each provider needs: id, envKey (required), plus optional baseUrl, generationConfig": "\u6BCF\u4E2A\u63D0\u4F9B\u5546\u9700\u8981\uFF1Aid\u3001envKey\uFF08\u5FC5\u9700\uFF09\uFF0C\u4EE5\u53CA\u53EF\u9009\u7684 baseUrl\u3001generationConfig",
|
|
302107
302261
|
"Use /model command to select your preferred model from the configured list": "\u4F7F\u7528 /model \u547D\u4EE4\u4ECE\u914D\u7F6E\u5217\u8868\u4E2D\u9009\u62E9\u60A8\u504F\u597D\u7684\u6A21\u578B",
|
|
302108
302262
|
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc.": "\u652F\u6301\u7684\u8BA4\u8BC1\u7C7B\u578B\uFF1Aopenai\u3001anthropic\u3001gemini\u3001vertex-ai \u7B49",
|
|
302263
|
+
"More instructions please check:": "\u66F4\u591A\u8BF4\u660E\u8BF7\u67E5\u770B\uFF1A",
|
|
302109
302264
|
// ============================================================================
|
|
302110
302265
|
// Auth Dialog - View Titles and Labels
|
|
302111
302266
|
// ============================================================================
|
|
302112
302267
|
"API-KEY": "API-KEY",
|
|
302113
302268
|
"Coding Plan": "Coding Plan",
|
|
302269
|
+
"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",
|
|
302114
302270
|
Custom: "\u81EA\u5B9A\u4E49",
|
|
302271
|
+
"More instructions about configuring `modelProviders` manually.": "\u5173\u4E8E\u624B\u52A8\u914D\u7F6E `modelProviders` \u7684\u66F4\u591A\u8BF4\u660E\u3002",
|
|
302115
302272
|
"Select API-KEY configuration mode:": "\u9009\u62E9 API-KEY \u914D\u7F6E\u6A21\u5F0F\uFF1A",
|
|
302116
302273
|
"(Press Escape to go back)": "(\u6309 Escape \u952E\u8FD4\u56DE)",
|
|
302117
302274
|
"(Press Enter to submit, Escape to cancel)": "(\u6309 Enter \u63D0\u4EA4\uFF0CEscape \u53D6\u6D88)"
|
|
@@ -373161,7 +373318,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
373161
373318
|
// packages/cli/src/utils/version.ts
|
|
373162
373319
|
async function getCliVersion() {
|
|
373163
373320
|
const pkgJson = await getPackageJson();
|
|
373164
|
-
return "0.10.0-preview.
|
|
373321
|
+
return "0.10.0-preview.6";
|
|
373165
373322
|
}
|
|
373166
373323
|
__name(getCliVersion, "getCliVersion");
|
|
373167
373324
|
|
|
@@ -380684,7 +380841,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
380684
380841
|
|
|
380685
380842
|
// packages/cli/src/generated/git-commit.ts
|
|
380686
380843
|
init_esbuild_shims();
|
|
380687
|
-
var GIT_COMMIT_INFO = "
|
|
380844
|
+
var GIT_COMMIT_INFO = "71f320b6";
|
|
380688
380845
|
|
|
380689
380846
|
// packages/cli/src/utils/systemInfo.ts
|
|
380690
380847
|
async function getNpmVersion() {
|
|
@@ -387401,6 +387558,19 @@ async function buildSystemMessage(config2, sessionId, permissionMode, allowedBui
|
|
|
387401
387558
|
return systemMessage;
|
|
387402
387559
|
}
|
|
387403
387560
|
__name(buildSystemMessage, "buildSystemMessage");
|
|
387561
|
+
function isMcpToolProgressData(output) {
|
|
387562
|
+
return typeof output === "object" && output !== null && "type" in output && output.type === "mcp_tool_progress";
|
|
387563
|
+
}
|
|
387564
|
+
__name(isMcpToolProgressData, "isMcpToolProgressData");
|
|
387565
|
+
function createToolProgressHandler(request4, adapter) {
|
|
387566
|
+
const handler = /* @__PURE__ */ __name((_callId, output) => {
|
|
387567
|
+
if (isMcpToolProgressData(output)) {
|
|
387568
|
+
adapter.emitToolProgress(request4, output);
|
|
387569
|
+
}
|
|
387570
|
+
}, "handler");
|
|
387571
|
+
return { handler };
|
|
387572
|
+
}
|
|
387573
|
+
__name(createToolProgressHandler, "createToolProgressHandler");
|
|
387404
387574
|
function createTaskToolProgressHandler(config2, taskToolCallId, adapter) {
|
|
387405
387575
|
const previousTaskStates = /* @__PURE__ */ new Map();
|
|
387406
387576
|
const emittedToolUseIds = /* @__PURE__ */ new Set();
|
|
@@ -388233,6 +388403,16 @@ ${event.value}`, null);
|
|
|
388233
388403
|
};
|
|
388234
388404
|
this.emitMessageImpl(systemMessage);
|
|
388235
388405
|
}
|
|
388406
|
+
/**
|
|
388407
|
+
* Emits a tool progress stream event.
|
|
388408
|
+
* Default implementation is a no-op. StreamJsonOutputAdapter overrides this
|
|
388409
|
+
* to emit stream events when includePartialMessages is enabled.
|
|
388410
|
+
*
|
|
388411
|
+
* @param _request - Tool call request info
|
|
388412
|
+
* @param _progress - Structured MCP progress data
|
|
388413
|
+
*/
|
|
388414
|
+
emitToolProgress(_request, _progress) {
|
|
388415
|
+
}
|
|
388236
388416
|
/**
|
|
388237
388417
|
* Builds a result message from options.
|
|
388238
388418
|
* Helper method used by both emitResult implementations.
|
|
@@ -388612,6 +388792,27 @@ var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
388612
388792
|
);
|
|
388613
388793
|
}
|
|
388614
388794
|
}
|
|
388795
|
+
/**
|
|
388796
|
+
* Emits a tool progress stream event when partial messages are enabled.
|
|
388797
|
+
* This overrides the no-op in BaseJsonOutputAdapter.
|
|
388798
|
+
*/
|
|
388799
|
+
emitToolProgress(request4, progress) {
|
|
388800
|
+
if (!this.includePartialMessages) {
|
|
388801
|
+
return;
|
|
388802
|
+
}
|
|
388803
|
+
const partial2 = {
|
|
388804
|
+
type: "stream_event",
|
|
388805
|
+
uuid: randomUUID8(),
|
|
388806
|
+
session_id: this.getSessionId(),
|
|
388807
|
+
parent_tool_use_id: null,
|
|
388808
|
+
event: {
|
|
388809
|
+
type: "tool_progress",
|
|
388810
|
+
tool_use_id: request4.callId,
|
|
388811
|
+
content: progress
|
|
388812
|
+
}
|
|
388813
|
+
};
|
|
388814
|
+
this.emitMessageImpl(partial2);
|
|
388815
|
+
}
|
|
388615
388816
|
/**
|
|
388616
388817
|
* Emits stream events when partial messages are enabled.
|
|
388617
388818
|
* This is a private method specific to StreamJsonOutputAdapter.
|
|
@@ -389101,24 +389302,21 @@ async function runNonInteractive(config2, settings, input, prompt_id, options2 =
|
|
|
389101
389302
|
const inputFormat = typeof config2.getInputFormat === "function" ? config2.getInputFormat() : InputFormat.TEXT;
|
|
389102
389303
|
const toolCallUpdateCallback = inputFormat === InputFormat.STREAM_JSON && options2.controlService ? options2.controlService.permission.getToolCallUpdateCallback() : void 0;
|
|
389103
389304
|
const isTaskTool = finalRequestInfo.name === "task";
|
|
389104
|
-
const
|
|
389305
|
+
const { handler: outputUpdateHandler } = isTaskTool ? createTaskToolProgressHandler(
|
|
389105
389306
|
config2,
|
|
389106
389307
|
finalRequestInfo.callId,
|
|
389107
389308
|
adapter
|
|
389108
|
-
) :
|
|
389109
|
-
const taskToolProgressHandler = taskToolProgress?.handler;
|
|
389309
|
+
) : createToolProgressHandler(finalRequestInfo, adapter);
|
|
389110
389310
|
const toolResponse = await executeToolCall(
|
|
389111
389311
|
config2,
|
|
389112
389312
|
finalRequestInfo,
|
|
389113
389313
|
abortController.signal,
|
|
389114
|
-
|
|
389115
|
-
|
|
389116
|
-
outputUpdateHandler: taskToolProgressHandler
|
|
389117
|
-
},
|
|
389314
|
+
{
|
|
389315
|
+
outputUpdateHandler,
|
|
389118
389316
|
...toolCallUpdateCallback && {
|
|
389119
389317
|
onToolCallsUpdate: toolCallUpdateCallback
|
|
389120
389318
|
}
|
|
389121
|
-
}
|
|
389319
|
+
}
|
|
389122
389320
|
);
|
|
389123
389321
|
if (toolResponse.error) {
|
|
389124
389322
|
handleToolError(
|
|
@@ -412938,6 +413136,15 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
|
|
|
412938
413136
|
data: resultDisplay
|
|
412939
413137
|
};
|
|
412940
413138
|
}
|
|
413139
|
+
if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "mcp_tool_progress") {
|
|
413140
|
+
const progress = resultDisplay;
|
|
413141
|
+
const msg = progress.message ?? `Progress: ${progress.progress}`;
|
|
413142
|
+
const totalStr = progress.total != null ? `/${progress.total}` : "";
|
|
413143
|
+
return {
|
|
413144
|
+
type: "string",
|
|
413145
|
+
data: `\u23F3 [${progress.progress}${totalStr}] ${msg}`
|
|
413146
|
+
};
|
|
413147
|
+
}
|
|
412941
413148
|
if (typeof resultDisplay === "object" && resultDisplay !== null && "ansiOutput" in resultDisplay) {
|
|
412942
413149
|
return { type: "ansi", data: resultDisplay.ansiOutput };
|
|
412943
413150
|
}
|
|
@@ -417496,7 +417703,7 @@ function ApiKeyInput({
|
|
|
417496
417703
|
);
|
|
417497
417704
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
417498
417705
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Text3, { children: t4("Please enter your API key:") }) }),
|
|
417499
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TextInput, { value: apiKey, onChange: setApiKey, placeholder: "sk-..." }),
|
|
417706
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TextInput, { value: apiKey, onChange: setApiKey, placeholder: "sk-sp-..." }),
|
|
417500
417707
|
error2 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Text3, { color: Colors.AccentRed, children: error2 }) }),
|
|
417501
417708
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Text3, { color: Colors.Gray, children: t4("(Press Enter to submit, Escape to cancel)") }) })
|
|
417502
417709
|
] });
|
|
@@ -417583,6 +417790,7 @@ var useUIActions = /* @__PURE__ */ __name(() => {
|
|
|
417583
417790
|
|
|
417584
417791
|
// packages/cli/src/ui/auth/AuthDialog.tsx
|
|
417585
417792
|
var import_jsx_runtime81 = __toESM(require_jsx_runtime(), 1);
|
|
417793
|
+
var MODEL_PROVIDERS_DOCUMENTATION_URL = "https://qwenlm.github.io/qwen-code-docs/en/users/configuration/settings/#modelproviders";
|
|
417586
417794
|
function parseDefaultAuthType(defaultAuthType) {
|
|
417587
417795
|
if (defaultAuthType && Object.values(AuthType2).includes(defaultAuthType)) {
|
|
417588
417796
|
return defaultAuthType;
|
|
@@ -417715,7 +417923,8 @@ function AuthDialog() {
|
|
|
417715
417923
|
setSelectedIndex(index);
|
|
417716
417924
|
}
|
|
417717
417925
|
}
|
|
417718
|
-
) })
|
|
417926
|
+
) }),
|
|
417927
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: Colors.Gray, children: currentSelectedAuthType === AuthType2.QWEN_OAUTH ? t4("Login with QwenChat account to use daily free quota.") : t4("Use coding plan credentials or your own api-keys/providers.") }) })
|
|
417719
417928
|
] }), "renderMainView");
|
|
417720
417929
|
const renderApiKeySubView = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_jsx_runtime81.Fragment, { children: [
|
|
417721
417930
|
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { children: t4("Select API-KEY configuration mode:") }) }),
|
|
@@ -417733,7 +417942,10 @@ function AuthDialog() {
|
|
|
417733
417942
|
}
|
|
417734
417943
|
}
|
|
417735
417944
|
) }),
|
|
417736
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: Colors.Gray, children: t4("
|
|
417945
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: Colors.Gray, children: apiKeySubItems[apiKeySubModeIndex]?.value === "coding-plan" ? t4("Paste your api key of Bailian Coding Plan and you're all set!") : t4(
|
|
417946
|
+
"More instructions about configuring `modelProviders` manually."
|
|
417947
|
+
) }) }),
|
|
417948
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: theme?.text?.secondary, children: t4("(Press Escape to go back)") }) })
|
|
417737
417949
|
] }), "renderApiKeySubView");
|
|
417738
417950
|
const renderApiKeyInputView = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(ApiKeyInput, { onSubmit: handleApiKeyInputSubmit, onCancel: handleGoBack }) }), "renderApiKeyInputView");
|
|
417739
417951
|
const renderCustomInfoView = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_jsx_runtime81.Fragment, { children: [
|
|
@@ -417765,10 +417977,12 @@ function AuthDialog() {
|
|
|
417765
417977
|
"Use /model command to select your preferred model from the configured list"
|
|
417766
417978
|
)
|
|
417767
417979
|
] }) }),
|
|
417768
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color:
|
|
417980
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: theme?.text?.secondary, children: t4(
|
|
417769
417981
|
"Supported auth types: openai, anthropic, gemini, vertex-ai, etc."
|
|
417770
417982
|
) }) }),
|
|
417771
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color:
|
|
417983
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: theme?.text?.secondary, underline: true, children: t4("More instructions please check:") }) }),
|
|
417984
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 0, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(dist_default6, { url: MODEL_PROVIDERS_DOCUMENTATION_URL, fallback: false, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: Colors.AccentGreen, underline: true, children: MODEL_PROVIDERS_DOCUMENTATION_URL }) }) }),
|
|
417985
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: theme?.text?.secondary, children: t4("(Press Escape to go back)") }) })
|
|
417772
417986
|
] }), "renderCustomInfoView");
|
|
417773
417987
|
const getViewTitle = /* @__PURE__ */ __name(() => {
|
|
417774
417988
|
switch (viewLevel) {
|
|
@@ -417788,7 +418002,7 @@ function AuthDialog() {
|
|
|
417788
418002
|
Box_default,
|
|
417789
418003
|
{
|
|
417790
418004
|
borderStyle: "round",
|
|
417791
|
-
borderColor:
|
|
418005
|
+
borderColor: theme?.border?.default,
|
|
417792
418006
|
flexDirection: "column",
|
|
417793
418007
|
padding: 1,
|
|
417794
418008
|
width: "100%",
|
|
@@ -417801,7 +418015,7 @@ function AuthDialog() {
|
|
|
417801
418015
|
(authError || errorMessage) && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: Colors.AccentRed, children: authError || errorMessage }) }),
|
|
417802
418016
|
viewLevel === "main" && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_jsx_runtime81.Fragment, { children: [
|
|
417803
418017
|
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: Colors.AccentPurple, children: t4("(Use Enter to Set Auth)") }) }),
|
|
417804
|
-
hasApiKey && currentSelectedAuthType === AuthType2.QWEN_OAUTH && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color:
|
|
418018
|
+
hasApiKey && currentSelectedAuthType === AuthType2.QWEN_OAUTH && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { color: theme?.text?.secondary, children: t4(
|
|
417805
418019
|
"Note: Your existing API key in settings.json will not be cleared when using Qwen OAuth. You can switch back to OpenAI authentication later if needed."
|
|
417806
418020
|
) }) }),
|
|
417807
418021
|
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Text3, { children: t4("Terms of Services and Privacy Notice for Qwen Code") }) }),
|
|
@@ -422781,15 +422995,15 @@ var CODING_PLAN_ENV_KEY = "BAILIAN_CODING_PLAN_API_KEY";
|
|
|
422781
422995
|
var CODING_PLAN_TEMPLATE = [
|
|
422782
422996
|
{
|
|
422783
422997
|
id: "qwen3-coder-plus",
|
|
422784
|
-
name: "qwen3-coder-
|
|
422998
|
+
name: "qwen3-coder-plus",
|
|
422785
422999
|
baseUrl: "https://coding.dashscope.aliyuncs.com/v1",
|
|
422786
|
-
description: "
|
|
423000
|
+
description: "qwen3-coder-plus model from Bailian Coding Plan",
|
|
422787
423001
|
envKey: CODING_PLAN_ENV_KEY
|
|
422788
423002
|
},
|
|
422789
423003
|
{
|
|
422790
423004
|
id: "qwen3-max-2026-01-23",
|
|
422791
423005
|
name: "qwen3-max-2026-01-23",
|
|
422792
|
-
description: "
|
|
423006
|
+
description: "qwen3 max model from Bailian Coding Plan with thinking enabled",
|
|
422793
423007
|
baseUrl: "https://coding.dashscope.aliyuncs.com/v1",
|
|
422794
423008
|
envKey: CODING_PLAN_ENV_KEY,
|
|
422795
423009
|
generationConfig: {
|
|
@@ -434980,7 +435194,7 @@ var GeminiAgent = class {
|
|
|
434980
435194
|
name: APPROVAL_MODE_INFO[mode].name,
|
|
434981
435195
|
description: APPROVAL_MODE_INFO[mode].description
|
|
434982
435196
|
}));
|
|
434983
|
-
const version2 = "0.10.0-preview.
|
|
435197
|
+
const version2 = "0.10.0-preview.6";
|
|
434984
435198
|
return {
|
|
434985
435199
|
protocolVersion: PROTOCOL_VERSION,
|
|
434986
435200
|
agentInfo: {
|
package/locales/de.js
CHANGED
|
@@ -946,6 +946,11 @@ export default {
|
|
|
946
946
|
'Terms of Services and Privacy Notice for Qwen Code':
|
|
947
947
|
'Nutzungsbedingungen und Datenschutzhinweis für Qwen Code',
|
|
948
948
|
'Qwen OAuth': 'Qwen OAuth',
|
|
949
|
+
'Login with QwenChat account to use daily free quota.':
|
|
950
|
+
'Melden Sie sich mit Ihrem QwenChat-Konto an, um das tägliche kostenlose Kontingent zu nutzen.',
|
|
951
|
+
'API-KEY': 'API-KEY',
|
|
952
|
+
'Use coding plan credentials or your own api-keys/providers.':
|
|
953
|
+
'Verwenden Sie Coding Plan-Anmeldedaten oder Ihre eigenen API-Schlüssel/Anbieter.',
|
|
949
954
|
OpenAI: 'OpenAI',
|
|
950
955
|
'Failed to login. Message: {{message}}':
|
|
951
956
|
'Anmeldung fehlgeschlagen. Meldung: {{message}}',
|
|
@@ -1389,4 +1394,20 @@ export default {
|
|
|
1389
1394
|
'Verwenden Sie den /model-Befehl, um Ihr bevorzugtes Modell aus der konfigurierten Liste auszuwählen',
|
|
1390
1395
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.':
|
|
1391
1396
|
'Unterstützte Authentifizierungstypen: openai, anthropic, gemini, vertex-ai, usw.',
|
|
1397
|
+
|
|
1398
|
+
// ============================================================================
|
|
1399
|
+
// Auth Dialog - View Titles and Labels
|
|
1400
|
+
// ============================================================================
|
|
1401
|
+
'Coding Plan': 'Coding Plan',
|
|
1402
|
+
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1403
|
+
'Fügen Sie Ihren Bailian Coding Plan API-Schlüssel ein und Sie sind bereit!',
|
|
1404
|
+
Custom: 'Benutzerdefiniert',
|
|
1405
|
+
'More instructions about configuring `modelProviders` manually.':
|
|
1406
|
+
'Weitere Anweisungen zur manuellen Konfiguration von `modelProviders`.',
|
|
1407
|
+
'Select API-KEY configuration mode:':
|
|
1408
|
+
'API-KEY-Konfigurationsmodus auswählen:',
|
|
1409
|
+
'(Press Escape to go back)': '(Escape drücken zum Zurückgehen)',
|
|
1410
|
+
'(Press Enter to submit, Escape to cancel)':
|
|
1411
|
+
'(Enter zum Absenden, Escape zum Abbrechen)',
|
|
1412
|
+
'More instructions please check:': 'Weitere Anweisungen finden Sie unter:',
|
|
1392
1413
|
};
|
package/locales/en.js
CHANGED
|
@@ -937,6 +937,11 @@ export default {
|
|
|
937
937
|
'Terms of Services and Privacy Notice for Qwen Code':
|
|
938
938
|
'Terms of Services and Privacy Notice for Qwen Code',
|
|
939
939
|
'Qwen OAuth': 'Qwen OAuth',
|
|
940
|
+
'Login with QwenChat account to use daily free quota.':
|
|
941
|
+
'Login with QwenChat account to use daily free quota.',
|
|
942
|
+
'API-KEY': 'API-KEY',
|
|
943
|
+
'Use coding plan credentials or your own api-keys/providers.':
|
|
944
|
+
'Use coding plan credentials or your own api-keys/providers.',
|
|
940
945
|
OpenAI: 'OpenAI',
|
|
941
946
|
'Failed to login. Message: {{message}}':
|
|
942
947
|
'Failed to login. Message: {{message}}',
|
|
@@ -1388,13 +1393,17 @@ export default {
|
|
|
1388
1393
|
'Use /model command to select your preferred model from the configured list',
|
|
1389
1394
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.':
|
|
1390
1395
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.',
|
|
1396
|
+
'More instructions please check:': 'More instructions please check:',
|
|
1391
1397
|
|
|
1392
1398
|
// ============================================================================
|
|
1393
1399
|
// Auth Dialog - View Titles and Labels
|
|
1394
1400
|
// ============================================================================
|
|
1395
|
-
'API-KEY': 'API-KEY',
|
|
1396
1401
|
'Coding Plan': 'Coding Plan',
|
|
1402
|
+
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1403
|
+
"Paste your api key of Bailian Coding Plan and you're all set!",
|
|
1397
1404
|
Custom: 'Custom',
|
|
1405
|
+
'More instructions about configuring `modelProviders` manually.':
|
|
1406
|
+
'More instructions about configuring `modelProviders` manually.',
|
|
1398
1407
|
'Select API-KEY configuration mode:': 'Select API-KEY configuration mode:',
|
|
1399
1408
|
'(Press Escape to go back)': '(Press Escape to go back)',
|
|
1400
1409
|
'(Press Enter to submit, Escape to cancel)':
|
package/locales/ja.js
CHANGED
|
@@ -679,6 +679,11 @@ export default {
|
|
|
679
679
|
'Terms of Services and Privacy Notice for Qwen Code':
|
|
680
680
|
'Qwen Code の利用規約とプライバシー通知',
|
|
681
681
|
'Qwen OAuth': 'Qwen OAuth',
|
|
682
|
+
'Login with QwenChat account to use daily free quota.':
|
|
683
|
+
'QwenChatアカウントでログインして、毎日の無料クォータをご利用ください。',
|
|
684
|
+
'API-KEY': 'API-KEY',
|
|
685
|
+
'Use coding plan credentials or your own api-keys/providers.':
|
|
686
|
+
'Coding Planの認証情報またはご自身のAPIキー/プロバイダーをご利用ください。',
|
|
682
687
|
OpenAI: 'OpenAI',
|
|
683
688
|
'Failed to login. Message: {{message}}':
|
|
684
689
|
'ログインに失敗しました。メッセージ: {{message}}',
|
|
@@ -900,4 +905,19 @@ export default {
|
|
|
900
905
|
'/model コマンドを使用して、設定済みリストからお好みのモデルを選択してください',
|
|
901
906
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.':
|
|
902
907
|
'サポートされている認証タイプ:openai、anthropic、gemini、vertex-ai など',
|
|
908
|
+
|
|
909
|
+
// ============================================================================
|
|
910
|
+
// Auth Dialog - View Titles and Labels
|
|
911
|
+
// ============================================================================
|
|
912
|
+
'Coding Plan': 'Coding Plan',
|
|
913
|
+
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
914
|
+
'Bailian Coding PlanのAPIキーを貼り付けるだけで準備完了です!',
|
|
915
|
+
Custom: 'カスタム',
|
|
916
|
+
'More instructions about configuring `modelProviders` manually.':
|
|
917
|
+
'`modelProviders`を手動で設定する方法の詳細はこちら。',
|
|
918
|
+
'Select API-KEY configuration mode:': 'API-KEY設定モードを選択してください:',
|
|
919
|
+
'(Press Escape to go back)': '(Escapeキーで戻る)',
|
|
920
|
+
'(Press Enter to submit, Escape to cancel)':
|
|
921
|
+
'(Enterで送信、Escapeでキャンセル)',
|
|
922
|
+
'More instructions please check:': '詳細な手順はこちらをご確認ください:',
|
|
903
923
|
};
|
package/locales/pt.js
CHANGED
|
@@ -958,6 +958,11 @@ export default {
|
|
|
958
958
|
'Terms of Services and Privacy Notice for Qwen Code':
|
|
959
959
|
'Termos de Serviço e Aviso de Privacidade do Qwen Code',
|
|
960
960
|
'Qwen OAuth': 'Qwen OAuth',
|
|
961
|
+
'Login with QwenChat account to use daily free quota.':
|
|
962
|
+
'Faça login com sua conta QwenChat para usar a cota gratuita diária.',
|
|
963
|
+
'API-KEY': 'API-KEY',
|
|
964
|
+
'Use coding plan credentials or your own api-keys/providers.':
|
|
965
|
+
'Use credenciais do Coding Plan ou suas próprias chaves API/provedores.',
|
|
961
966
|
OpenAI: 'OpenAI',
|
|
962
967
|
'Failed to login. Message: {{message}}':
|
|
963
968
|
'Falha ao fazer login. Mensagem: {{message}}',
|
|
@@ -1403,4 +1408,20 @@ export default {
|
|
|
1403
1408
|
'Use o comando /model para selecionar seu modelo preferido da lista configurada',
|
|
1404
1409
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.':
|
|
1405
1410
|
'Tipos de autenticação suportados: openai, anthropic, gemini, vertex-ai, etc.',
|
|
1411
|
+
|
|
1412
|
+
// ============================================================================
|
|
1413
|
+
// Auth Dialog - View Titles and Labels
|
|
1414
|
+
// ============================================================================
|
|
1415
|
+
'Coding Plan': 'Coding Plan',
|
|
1416
|
+
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1417
|
+
'Cole sua chave de API do Bailian Coding Plan e pronto!',
|
|
1418
|
+
Custom: 'Personalizado',
|
|
1419
|
+
'More instructions about configuring `modelProviders` manually.':
|
|
1420
|
+
'Mais instruções sobre como configurar `modelProviders` manualmente.',
|
|
1421
|
+
'Select API-KEY configuration mode:':
|
|
1422
|
+
'Selecione o modo de configuração da API-KEY:',
|
|
1423
|
+
'(Press Escape to go back)': '(Pressione Escape para voltar)',
|
|
1424
|
+
'(Press Enter to submit, Escape to cancel)':
|
|
1425
|
+
'(Pressione Enter para enviar, Escape para cancelar)',
|
|
1426
|
+
'More instructions please check:': 'Mais instruções, consulte:',
|
|
1406
1427
|
};
|
package/locales/ru.js
CHANGED
|
@@ -952,6 +952,11 @@ export default {
|
|
|
952
952
|
'Terms of Services and Privacy Notice for Qwen Code':
|
|
953
953
|
'Условия обслуживания и уведомление о конфиденциальности для Qwen Code',
|
|
954
954
|
'Qwen OAuth': 'Qwen OAuth',
|
|
955
|
+
'Login with QwenChat account to use daily free quota.':
|
|
956
|
+
'Войдите с помощью аккаунта QwenChat, чтобы использовать ежедневную бесплатную квоту.',
|
|
957
|
+
'API-KEY': 'API-KEY',
|
|
958
|
+
'Use coding plan credentials or your own api-keys/providers.':
|
|
959
|
+
'Используйте учетные данные Coding Plan или свои собственные API-ключи/провайдеры.',
|
|
955
960
|
OpenAI: 'OpenAI',
|
|
956
961
|
'Failed to login. Message: {{message}}':
|
|
957
962
|
'Не удалось войти. Сообщение: {{message}}',
|
|
@@ -1393,4 +1398,19 @@ export default {
|
|
|
1393
1398
|
'Используйте команду /model, чтобы выбрать предпочитаемую модель из настроенного списка',
|
|
1394
1399
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.':
|
|
1395
1400
|
'Поддерживаемые типы аутентификации: openai, anthropic, gemini, vertex-ai и др.',
|
|
1401
|
+
|
|
1402
|
+
// ============================================================================
|
|
1403
|
+
// Auth Dialog - View Titles and Labels
|
|
1404
|
+
// ============================================================================
|
|
1405
|
+
'Coding Plan': 'Coding Plan',
|
|
1406
|
+
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1407
|
+
'Вставьте ваш API-ключ Bailian Coding Plan и всё готово!',
|
|
1408
|
+
Custom: 'Пользовательский',
|
|
1409
|
+
'More instructions about configuring `modelProviders` manually.':
|
|
1410
|
+
'Дополнительные инструкции по ручной настройке `modelProviders`.',
|
|
1411
|
+
'Select API-KEY configuration mode:': 'Выберите режим конфигурации API-KEY:',
|
|
1412
|
+
'(Press Escape to go back)': '(Нажмите Escape для возврата)',
|
|
1413
|
+
'(Press Enter to submit, Escape to cancel)':
|
|
1414
|
+
'(Нажмите Enter для отправки, Escape для отмены)',
|
|
1415
|
+
'More instructions please check:': 'Дополнительные инструкции см.:',
|
|
1396
1416
|
};
|
package/locales/zh.js
CHANGED
|
@@ -886,6 +886,10 @@ export default {
|
|
|
886
886
|
'Terms of Services and Privacy Notice for Qwen Code':
|
|
887
887
|
'Qwen Code 的服务条款和隐私声明',
|
|
888
888
|
'Qwen OAuth': 'Qwen OAuth (免费)',
|
|
889
|
+
'Login with QwenChat account to use daily free quota.':
|
|
890
|
+
'使用 QwenChat 账号登录,享受每日免费额度。',
|
|
891
|
+
'Use coding plan credentials or your own api-keys/providers.':
|
|
892
|
+
'使用 Coding Plan 凭证或您自己的 API 密钥/提供商。',
|
|
889
893
|
OpenAI: 'OpenAI',
|
|
890
894
|
'Failed to login. Message: {{message}}': '登录失败。消息:{{message}}',
|
|
891
895
|
'Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.':
|
|
@@ -1224,13 +1228,18 @@ export default {
|
|
|
1224
1228
|
'使用 /model 命令从配置列表中选择您偏好的模型',
|
|
1225
1229
|
'Supported auth types: openai, anthropic, gemini, vertex-ai, etc.':
|
|
1226
1230
|
'支持的认证类型:openai、anthropic、gemini、vertex-ai 等',
|
|
1231
|
+
'More instructions please check:': '更多说明请查看:',
|
|
1227
1232
|
|
|
1228
1233
|
// ============================================================================
|
|
1229
1234
|
// Auth Dialog - View Titles and Labels
|
|
1230
1235
|
// ============================================================================
|
|
1231
1236
|
'API-KEY': 'API-KEY',
|
|
1232
1237
|
'Coding Plan': 'Coding Plan',
|
|
1238
|
+
"Paste your api key of Bailian Coding Plan and you're all set!":
|
|
1239
|
+
'粘贴您的百炼 Coding Plan API Key,即可完成设置!',
|
|
1233
1240
|
Custom: '自定义',
|
|
1241
|
+
'More instructions about configuring `modelProviders` manually.':
|
|
1242
|
+
'关于手动配置 `modelProviders` 的更多说明。',
|
|
1234
1243
|
'Select API-KEY configuration mode:': '选择 API-KEY 配置模式:',
|
|
1235
1244
|
'(Press Escape to go back)': '(按 Escape 键返回)',
|
|
1236
1245
|
'(Press Enter to submit, Escape to cancel)': '(按 Enter 提交,Escape 取消)',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qwen-code/qwen-code",
|
|
3
|
-
"version": "0.10.0-preview.
|
|
3
|
+
"version": "0.10.0-preview.6",
|
|
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.0-preview.
|
|
23
|
+
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.10.0-preview.6"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {},
|
|
26
26
|
"optionalDependencies": {
|