@qwen-code/qwen-code 0.12.0 → 0.12.1-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 +1 -1
- package/cli.js +40 -22
- package/locales/zh.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ Qwen Code is an open-source AI agent for the terminal, optimized for [Qwen3-Code
|
|
|
38
38
|
#### Linux / macOS
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen.sh
|
|
41
|
+
bash -c "$(curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen.sh)"
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
#### Windows (Run as Administrator CMD)
|
package/cli.js
CHANGED
|
@@ -157672,7 +157672,7 @@ __export(geminiContentGenerator_exports, {
|
|
|
157672
157672
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
157673
157673
|
});
|
|
157674
157674
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
157675
|
-
const version2 = "0.12.0";
|
|
157675
|
+
const version2 = "0.12.1-preview.0";
|
|
157676
157676
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
157677
157677
|
const baseHeaders = {
|
|
157678
157678
|
"User-Agent": userAgent2
|
|
@@ -219907,7 +219907,8 @@ var init_edit = __esm({
|
|
|
219907
219907
|
* It needs to calculate the diff to show the user.
|
|
219908
219908
|
*/
|
|
219909
219909
|
async shouldConfirmExecute(abortSignal) {
|
|
219910
|
-
|
|
219910
|
+
const mode = this.config.getApprovalMode();
|
|
219911
|
+
if (mode === ApprovalMode.AUTO_EDIT || mode === ApprovalMode.YOLO) {
|
|
219911
219912
|
return false;
|
|
219912
219913
|
}
|
|
219913
219914
|
let editData;
|
|
@@ -223773,6 +223774,9 @@ var init_oauth_utils = __esm({
|
|
|
223773
223774
|
const authServerMetadata2 = await this.discoverAuthorizationServerMetadata(authServerUrl);
|
|
223774
223775
|
if (authServerMetadata2) {
|
|
223775
223776
|
const config2 = this.metadataToOAuthConfig(authServerMetadata2);
|
|
223777
|
+
if (resourceMetadata.scopes_supported?.length) {
|
|
223778
|
+
config2.scopes = resourceMetadata.scopes_supported;
|
|
223779
|
+
}
|
|
223776
223780
|
if (authServerMetadata2.registration_endpoint) {
|
|
223777
223781
|
debugLogger50.debug(`Dynamic client registration is supported at: ${authServerMetadata2.registration_endpoint}`);
|
|
223778
223782
|
}
|
|
@@ -223825,7 +223829,11 @@ var init_oauth_utils = __esm({
|
|
|
223825
223829
|
const authServerUrl = resourceMetadata.authorization_servers[0];
|
|
223826
223830
|
const authServerMetadata = await this.discoverAuthorizationServerMetadata(authServerUrl);
|
|
223827
223831
|
if (authServerMetadata) {
|
|
223828
|
-
|
|
223832
|
+
const config2 = this.metadataToOAuthConfig(authServerMetadata);
|
|
223833
|
+
if (resourceMetadata.scopes_supported?.length) {
|
|
223834
|
+
config2.scopes = resourceMetadata.scopes_supported;
|
|
223835
|
+
}
|
|
223836
|
+
return config2;
|
|
223829
223837
|
}
|
|
223830
223838
|
return null;
|
|
223831
223839
|
}
|
|
@@ -231830,7 +231838,8 @@ var init_write_file = __esm({
|
|
|
231830
231838
|
return `Writing to ${shortenPath(relativePath)}`;
|
|
231831
231839
|
}
|
|
231832
231840
|
async shouldConfirmExecute(_abortSignal) {
|
|
231833
|
-
|
|
231841
|
+
const mode = this.config.getApprovalMode();
|
|
231842
|
+
if (mode === ApprovalMode.AUTO_EDIT || mode === ApprovalMode.YOLO) {
|
|
231834
231843
|
return false;
|
|
231835
231844
|
}
|
|
231836
231845
|
const correctedContentResult = await getCorrectedFileContent(this.config, this.params.file_path, this.params.content);
|
|
@@ -309532,7 +309541,7 @@ var init_zh = __esm({
|
|
|
309532
309541
|
'Theme "{{themeName}}" not found.': '\u672A\u627E\u5230\u4E3B\u9898 "{{themeName}}"\u3002',
|
|
309533
309542
|
'Theme "{{themeName}}" not found in selected scope.': '\u5728\u6240\u9009\u4F5C\u7528\u57DF\u4E2D\u672A\u627E\u5230\u4E3B\u9898 "{{themeName}}"\u3002',
|
|
309534
309543
|
"Clear conversation history and free up context": "\u6E05\u9664\u5BF9\u8BDD\u5386\u53F2\u5E76\u91CA\u653E\u4E0A\u4E0B\u6587",
|
|
309535
|
-
"Compresses the context by replacing it with a summary.": "\u901A\u8FC7\
|
|
309544
|
+
"Compresses the context by replacing it with a summary.": "\u901A\u8FC7\u6458\u8981\u66FF\u6362\u6765\u538B\u7F29\u4E0A\u4E0B\u6587",
|
|
309536
309545
|
"open full Qwen Code documentation in your browser": "\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u5B8C\u6574\u7684 Qwen Code \u6587\u6863",
|
|
309537
309546
|
"Configuration not available.": "\u914D\u7F6E\u4E0D\u53EF\u7528",
|
|
309538
309547
|
"change the auth method": "\u66F4\u6539\u8BA4\u8BC1\u65B9\u6CD5",
|
|
@@ -381722,7 +381731,8 @@ var SETTINGS_SCHEMA = {
|
|
|
381722
381731
|
requiresRestart: true,
|
|
381723
381732
|
default: void 0,
|
|
381724
381733
|
description: "A list of MCP servers to allow.",
|
|
381725
|
-
showInDialog: false
|
|
381734
|
+
showInDialog: false,
|
|
381735
|
+
mergeStrategy: "concat" /* CONCAT */
|
|
381726
381736
|
},
|
|
381727
381737
|
excluded: {
|
|
381728
381738
|
type: "array",
|
|
@@ -381731,7 +381741,8 @@ var SETTINGS_SCHEMA = {
|
|
|
381731
381741
|
requiresRestart: true,
|
|
381732
381742
|
default: void 0,
|
|
381733
381743
|
description: "A list of MCP servers to exclude.",
|
|
381734
|
-
showInDialog: false
|
|
381744
|
+
showInDialog: false,
|
|
381745
|
+
mergeStrategy: "concat" /* CONCAT */
|
|
381735
381746
|
}
|
|
381736
381747
|
}
|
|
381737
381748
|
},
|
|
@@ -390461,7 +390472,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
390461
390472
|
// packages/cli/src/utils/version.ts
|
|
390462
390473
|
async function getCliVersion() {
|
|
390463
390474
|
const pkgJson = await getPackageJson();
|
|
390464
|
-
return "0.12.0";
|
|
390475
|
+
return "0.12.1-preview.0";
|
|
390465
390476
|
}
|
|
390466
390477
|
__name(getCliVersion, "getCliVersion");
|
|
390467
390478
|
|
|
@@ -398022,7 +398033,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
398022
398033
|
|
|
398023
398034
|
// packages/cli/src/generated/git-commit.ts
|
|
398024
398035
|
init_esbuild_shims();
|
|
398025
|
-
var GIT_COMMIT_INFO = "
|
|
398036
|
+
var GIT_COMMIT_INFO = "9c3e64d2";
|
|
398026
398037
|
|
|
398027
398038
|
// packages/cli/src/utils/systemInfo.ts
|
|
398028
398039
|
async function getNpmVersion() {
|
|
@@ -428880,7 +428891,7 @@ function useTextBuffer({
|
|
|
428880
428891
|
const openInExternalEditor = (0, import_react46.useCallback)(
|
|
428881
428892
|
async (opts = {}) => {
|
|
428882
428893
|
const editor = opts.editor ?? process.env["VISUAL"] ?? process.env["EDITOR"] ?? (process.platform === "win32" ? "notepad" : "vi");
|
|
428883
|
-
const tmpDir = fs99.mkdtempSync(pathMod.join(os35.tmpdir(), "
|
|
428894
|
+
const tmpDir = fs99.mkdtempSync(pathMod.join(os35.tmpdir(), "qwen-edit-"));
|
|
428884
428895
|
const filePath = pathMod.join(tmpDir, "buffer.txt");
|
|
428885
428896
|
fs99.writeFileSync(filePath, text, "utf8");
|
|
428886
428897
|
dispatch({ type: "create_undo_snapshot" });
|
|
@@ -438854,7 +438865,7 @@ var ServerDetailStep = /* @__PURE__ */ __name(({
|
|
|
438854
438865
|
] }),
|
|
438855
438866
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Box_default, { children: [
|
|
438856
438867
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Box_default, { width: LABEL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text3, { color: theme.text.primary, children: t4("Source:") }) }),
|
|
438857
|
-
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text3, { color: theme.text.primary, children: server.
|
|
438868
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text3, { color: theme.text.primary, children: server.source === "user" ? t4("User Settings") : server.source === "project" ? t4("Workspace Settings") : t4("Extension") }) })
|
|
438858
438869
|
] }),
|
|
438859
438870
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Box_default, { children: [
|
|
438860
438871
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Box_default, { width: LABEL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text3, { color: theme.text.primary, children: t4("Command:") }) }),
|
|
@@ -439280,14 +439291,10 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
439280
439291
|
let source2 = "user";
|
|
439281
439292
|
if (serverConfig.extensionName) {
|
|
439282
439293
|
source2 = "extension";
|
|
439283
|
-
}
|
|
439284
|
-
let scope = "user";
|
|
439285
|
-
if (serverConfig.extensionName) {
|
|
439286
|
-
scope = "extension";
|
|
439287
439294
|
} else if (workspaceSettings.mcpServers?.[name3]) {
|
|
439288
|
-
|
|
439295
|
+
source2 = "project";
|
|
439289
439296
|
} else if (userSettings.mcpServers?.[name3]) {
|
|
439290
|
-
|
|
439297
|
+
source2 = "user";
|
|
439291
439298
|
}
|
|
439292
439299
|
const isDisabled = config2.isMcpServerDisabled(name3);
|
|
439293
439300
|
const invalidToolCount = serverTools.filter(
|
|
@@ -439297,7 +439304,6 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
439297
439304
|
name: name3,
|
|
439298
439305
|
status,
|
|
439299
439306
|
source: source2,
|
|
439300
|
-
scope,
|
|
439301
439307
|
config: serverConfig,
|
|
439302
439308
|
toolCount: serverTools.length,
|
|
439303
439309
|
invalidToolCount,
|
|
@@ -439463,13 +439469,13 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
439463
439469
|
const server = selectedServer;
|
|
439464
439470
|
const settings = loadSettings();
|
|
439465
439471
|
let targetScope = "user";
|
|
439466
|
-
if (server.
|
|
439472
|
+
if (server.source === "extension") {
|
|
439467
439473
|
debugLogger120.warn(
|
|
439468
439474
|
`Cannot disable extension MCP server '${server.name}'`
|
|
439469
439475
|
);
|
|
439470
439476
|
setIsLoading(false);
|
|
439471
439477
|
return;
|
|
439472
|
-
} else if (server.
|
|
439478
|
+
} else if (server.source === "project") {
|
|
439473
439479
|
targetScope = "workspace";
|
|
439474
439480
|
}
|
|
439475
439481
|
const scopeSettings = settings.forScope(
|
|
@@ -446703,7 +446709,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
446703
446709
|
const userMessageTimestamp = Date.now();
|
|
446704
446710
|
if (!options2?.isContinuation) {
|
|
446705
446711
|
setModelSwitchedFromQuotaError(false);
|
|
446706
|
-
if (pendingRetryCountdownItemRef.current) {
|
|
446712
|
+
if (pendingRetryCountdownItemRef.current || pendingRetryErrorItemRef.current) {
|
|
446707
446713
|
clearRetryCountdown();
|
|
446708
446714
|
}
|
|
446709
446715
|
}
|
|
@@ -446821,6 +446827,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
446821
446827
|
handleLoopDetectedEvent,
|
|
446822
446828
|
clearRetryCountdown,
|
|
446823
446829
|
pendingRetryCountdownItemRef,
|
|
446830
|
+
pendingRetryErrorItemRef,
|
|
446824
446831
|
setPendingRetryErrorItem
|
|
446825
446832
|
]
|
|
446826
446833
|
);
|
|
@@ -456633,7 +456640,7 @@ var QwenAgent = class {
|
|
|
456633
456640
|
async initialize(args) {
|
|
456634
456641
|
this.clientCapabilities = args.clientCapabilities;
|
|
456635
456642
|
const authMethods = buildAuthMethods();
|
|
456636
|
-
const version2 = "0.12.0";
|
|
456643
|
+
const version2 = "0.12.1-preview.0";
|
|
456637
456644
|
return {
|
|
456638
456645
|
protocolVersion: PROTOCOL_VERSION,
|
|
456639
456646
|
agentInfo: {
|
|
@@ -457321,6 +457328,17 @@ function setWindowTitle(title, settings) {
|
|
|
457321
457328
|
__name(setWindowTitle, "setWindowTitle");
|
|
457322
457329
|
|
|
457323
457330
|
// packages/cli/index.ts
|
|
457331
|
+
process.on("uncaughtException", (error40) => {
|
|
457332
|
+
if (process.platform === "win32" && error40 instanceof Error && error40.message === "Cannot resize a pty that has already exited") {
|
|
457333
|
+
return;
|
|
457334
|
+
}
|
|
457335
|
+
if (error40 instanceof Error) {
|
|
457336
|
+
writeStderrLine(error40.stack ?? error40.message);
|
|
457337
|
+
} else {
|
|
457338
|
+
writeStderrLine(String(error40));
|
|
457339
|
+
}
|
|
457340
|
+
process.exit(1);
|
|
457341
|
+
});
|
|
457324
457342
|
main().catch((error40) => {
|
|
457325
457343
|
if (error40 instanceof FatalError) {
|
|
457326
457344
|
let errorMessage = error40.message;
|
package/locales/zh.js
CHANGED
|
@@ -138,7 +138,7 @@ export default {
|
|
|
138
138
|
'在所选作用域中未找到主题 "{{themeName}}"。',
|
|
139
139
|
'Clear conversation history and free up context': '清除对话历史并释放上下文',
|
|
140
140
|
'Compresses the context by replacing it with a summary.':
|
|
141
|
-
'
|
|
141
|
+
'通过摘要替换来压缩上下文',
|
|
142
142
|
'open full Qwen Code documentation in your browser':
|
|
143
143
|
'在浏览器中打开完整的 Qwen Code 文档',
|
|
144
144
|
'Configuration not available.': '配置不可用',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qwen-code/qwen-code",
|
|
3
|
-
"version": "0.12.0",
|
|
3
|
+
"version": "0.12.1-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.12.0"
|
|
23
|
+
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.12.1-preview.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {},
|
|
26
26
|
"optionalDependencies": {
|