@qwen-code/qwen-code 0.5.0-preview.0 → 0.5.1-nightly.20251216.52faa0da
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 +106 -69
- package/locales/en.js +1 -0
- package/locales/zh.js +1 -0
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -60469,6 +60469,10 @@ ${deviceAuth.verification_uri_complete}
|
|
|
60469
60469
|
};
|
|
60470
60470
|
client.setCredentials(credentials);
|
|
60471
60471
|
await cacheQwenCredentials(credentials);
|
|
60472
|
+
try {
|
|
60473
|
+
SharedTokenManager.getInstance().clearCache();
|
|
60474
|
+
} catch {
|
|
60475
|
+
}
|
|
60472
60476
|
qwenOAuth2Events.emit(QwenOAuth2Event.AuthProgress, "success", "Authentication successful! Access token obtained.");
|
|
60473
60477
|
console.debug("Authentication successful! Access token obtained.");
|
|
60474
60478
|
return { success: true };
|
|
@@ -60576,6 +60580,11 @@ async function clearQwenCredentials() {
|
|
|
60576
60580
|
return;
|
|
60577
60581
|
}
|
|
60578
60582
|
console.warn("Warning: Failed to clear cached Qwen credentials:", error);
|
|
60583
|
+
} finally {
|
|
60584
|
+
try {
|
|
60585
|
+
SharedTokenManager.getInstance().clearCache();
|
|
60586
|
+
} catch {
|
|
60587
|
+
}
|
|
60579
60588
|
}
|
|
60580
60589
|
}
|
|
60581
60590
|
function getQwenCachedCredentialPath() {
|
|
@@ -145731,7 +145740,7 @@ function createContentGeneratorConfig(config, authType, generationConfig) {
|
|
|
145731
145740
|
};
|
|
145732
145741
|
}
|
|
145733
145742
|
async function createContentGenerator(config, gcConfig, isInitialAuth) {
|
|
145734
|
-
const version2 = "0.5.
|
|
145743
|
+
const version2 = "0.5.1-nightly.20251216.52faa0da";
|
|
145735
145744
|
const userAgent2 = `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
145736
145745
|
const baseHeaders = {
|
|
145737
145746
|
"User-Agent": userAgent2
|
|
@@ -194680,8 +194689,9 @@ var init_glob2 = __esm({
|
|
|
194680
194689
|
});
|
|
194681
194690
|
const relativePaths = allEntries.map((p) => path37.relative(this.config.getTargetDir(), p.fullpath()));
|
|
194682
194691
|
const { filteredPaths } = this.fileService.filterFilesWithReport(relativePaths, this.getFileFilteringOptions());
|
|
194683
|
-
const
|
|
194684
|
-
const
|
|
194692
|
+
const normalizePathForComparison = /* @__PURE__ */ __name((p) => process.platform === "win32" || process.platform === "darwin" ? p.toLowerCase() : p, "normalizePathForComparison");
|
|
194693
|
+
const filteredAbsolutePaths = new Set(filteredPaths.map((p) => normalizePathForComparison(path37.resolve(this.config.getTargetDir(), p))));
|
|
194694
|
+
const filteredEntries = allEntries.filter((entry) => filteredAbsolutePaths.has(normalizePathForComparison(entry.fullpath())));
|
|
194685
194695
|
if (!filteredEntries || filteredEntries.length === 0) {
|
|
194686
194696
|
return {
|
|
194687
194697
|
llmContent: `No files found matching pattern "${this.params.pattern}" ${searchLocationDescription}`,
|
|
@@ -208371,6 +208381,7 @@ var init_config3 = __esm({
|
|
|
208371
208381
|
summarizeToolOutput;
|
|
208372
208382
|
cliVersion;
|
|
208373
208383
|
experimentalZedIntegration = false;
|
|
208384
|
+
chatRecordingEnabled;
|
|
208374
208385
|
loadMemoryFromIncludeDirectories = false;
|
|
208375
208386
|
webSearch;
|
|
208376
208387
|
chatCompression;
|
|
@@ -208468,6 +208479,7 @@ var init_config3 = __esm({
|
|
|
208468
208479
|
};
|
|
208469
208480
|
this.contentGeneratorConfig = this._generationConfig;
|
|
208470
208481
|
this.cliVersion = params.cliVersion;
|
|
208482
|
+
this.chatRecordingEnabled = params.chatRecording ?? true;
|
|
208471
208483
|
this.loadMemoryFromIncludeDirectories = params.loadMemoryFromIncludeDirectories ?? false;
|
|
208472
208484
|
this.chatCompression = params.chatCompression;
|
|
208473
208485
|
this.interactive = params.interactive ?? false;
|
|
@@ -208506,7 +208518,7 @@ var init_config3 = __esm({
|
|
|
208506
208518
|
(0, import_undici3.setGlobalDispatcher)(new import_undici3.ProxyAgent(this.getProxy()));
|
|
208507
208519
|
}
|
|
208508
208520
|
this.geminiClient = new GeminiClient(this);
|
|
208509
|
-
this.chatRecordingService = new ChatRecordingService(this);
|
|
208521
|
+
this.chatRecordingService = this.chatRecordingEnabled ? new ChatRecordingService(this) : void 0;
|
|
208510
208522
|
}
|
|
208511
208523
|
/**
|
|
208512
208524
|
* Must only be called once, throws if called again.
|
|
@@ -208580,7 +208592,7 @@ var init_config3 = __esm({
|
|
|
208580
208592
|
startNewSession(sessionId) {
|
|
208581
208593
|
this.sessionId = sessionId ?? randomUUID5();
|
|
208582
208594
|
this.sessionData = void 0;
|
|
208583
|
-
this.chatRecordingService = new ChatRecordingService(this);
|
|
208595
|
+
this.chatRecordingService = this.chatRecordingEnabled ? new ChatRecordingService(this) : void 0;
|
|
208584
208596
|
if (this.initialized) {
|
|
208585
208597
|
logStartSession(this, new StartSessionEvent(this));
|
|
208586
208598
|
}
|
|
@@ -208963,6 +208975,9 @@ var init_config3 = __esm({
|
|
|
208963
208975
|
* Returns the chat recording service.
|
|
208964
208976
|
*/
|
|
208965
208977
|
getChatRecordingService() {
|
|
208978
|
+
if (!this.chatRecordingEnabled) {
|
|
208979
|
+
return void 0;
|
|
208980
|
+
}
|
|
208966
208981
|
if (!this.chatRecordingService) {
|
|
208967
208982
|
this.chatRecordingService = new ChatRecordingService(this);
|
|
208968
208983
|
}
|
|
@@ -247017,7 +247032,7 @@ var require_backend = __commonJS({
|
|
|
247017
247032
|
) : symbolOrNumber;
|
|
247018
247033
|
}
|
|
247019
247034
|
__name(getTypeSymbol, "getTypeSymbol");
|
|
247020
|
-
var _ReactTypeOfWork = ReactTypeOfWork, CacheComponent = _ReactTypeOfWork.CacheComponent, ClassComponent = _ReactTypeOfWork.ClassComponent, IncompleteClassComponent = _ReactTypeOfWork.IncompleteClassComponent, FunctionComponent = _ReactTypeOfWork.FunctionComponent, IndeterminateComponent = _ReactTypeOfWork.IndeterminateComponent, ForwardRef = _ReactTypeOfWork.ForwardRef, HostRoot = _ReactTypeOfWork.HostRoot, HostHoistable = _ReactTypeOfWork.HostHoistable, HostSingleton = _ReactTypeOfWork.HostSingleton, HostComponent = _ReactTypeOfWork.HostComponent, HostPortal = _ReactTypeOfWork.HostPortal, HostText = _ReactTypeOfWork.HostText,
|
|
247035
|
+
var _ReactTypeOfWork = ReactTypeOfWork, CacheComponent = _ReactTypeOfWork.CacheComponent, ClassComponent = _ReactTypeOfWork.ClassComponent, IncompleteClassComponent = _ReactTypeOfWork.IncompleteClassComponent, FunctionComponent = _ReactTypeOfWork.FunctionComponent, IndeterminateComponent = _ReactTypeOfWork.IndeterminateComponent, ForwardRef = _ReactTypeOfWork.ForwardRef, HostRoot = _ReactTypeOfWork.HostRoot, HostHoistable = _ReactTypeOfWork.HostHoistable, HostSingleton = _ReactTypeOfWork.HostSingleton, HostComponent = _ReactTypeOfWork.HostComponent, HostPortal = _ReactTypeOfWork.HostPortal, HostText = _ReactTypeOfWork.HostText, Fragment16 = _ReactTypeOfWork.Fragment, LazyComponent = _ReactTypeOfWork.LazyComponent, LegacyHiddenComponent = _ReactTypeOfWork.LegacyHiddenComponent, MemoComponent = _ReactTypeOfWork.MemoComponent, OffscreenComponent = _ReactTypeOfWork.OffscreenComponent, Profiler = _ReactTypeOfWork.Profiler, ScopeComponent = _ReactTypeOfWork.ScopeComponent, SimpleMemoComponent = _ReactTypeOfWork.SimpleMemoComponent, SuspenseComponent = _ReactTypeOfWork.SuspenseComponent, SuspenseListComponent = _ReactTypeOfWork.SuspenseListComponent, TracingMarkerComponent = _ReactTypeOfWork.TracingMarkerComponent;
|
|
247021
247036
|
function resolveFiberType(type) {
|
|
247022
247037
|
var typeSymbol = getTypeSymbol(type);
|
|
247023
247038
|
switch (typeSymbol) {
|
|
@@ -247063,7 +247078,7 @@ var require_backend = __commonJS({
|
|
|
247063
247078
|
case HostPortal:
|
|
247064
247079
|
case HostText:
|
|
247065
247080
|
return null;
|
|
247066
|
-
case
|
|
247081
|
+
case Fragment16:
|
|
247067
247082
|
return "Fragment";
|
|
247068
247083
|
case LazyComponent:
|
|
247069
247084
|
return "Lazy";
|
|
@@ -247129,7 +247144,7 @@ var require_backend = __commonJS({
|
|
|
247129
247144
|
function attach(hook2, rendererID, renderer2, global2) {
|
|
247130
247145
|
var version2 = renderer2.reconcilerVersion || renderer2.version;
|
|
247131
247146
|
var _getInternalReactCons = getInternalReactConstants(version2), getDisplayNameForFiber = _getInternalReactCons.getDisplayNameForFiber, getTypeSymbol = _getInternalReactCons.getTypeSymbol, ReactPriorityLevels = _getInternalReactCons.ReactPriorityLevels, ReactTypeOfWork = _getInternalReactCons.ReactTypeOfWork, StrictModeBits = _getInternalReactCons.StrictModeBits;
|
|
247132
|
-
var CacheComponent = ReactTypeOfWork.CacheComponent, ClassComponent = ReactTypeOfWork.ClassComponent, ContextConsumer = ReactTypeOfWork.ContextConsumer, DehydratedSuspenseComponent = ReactTypeOfWork.DehydratedSuspenseComponent, ForwardRef = ReactTypeOfWork.ForwardRef,
|
|
247147
|
+
var CacheComponent = ReactTypeOfWork.CacheComponent, ClassComponent = ReactTypeOfWork.ClassComponent, ContextConsumer = ReactTypeOfWork.ContextConsumer, DehydratedSuspenseComponent = ReactTypeOfWork.DehydratedSuspenseComponent, ForwardRef = ReactTypeOfWork.ForwardRef, Fragment16 = ReactTypeOfWork.Fragment, FunctionComponent = ReactTypeOfWork.FunctionComponent, HostRoot = ReactTypeOfWork.HostRoot, HostHoistable = ReactTypeOfWork.HostHoistable, HostSingleton = ReactTypeOfWork.HostSingleton, HostPortal = ReactTypeOfWork.HostPortal, HostComponent = ReactTypeOfWork.HostComponent, HostText = ReactTypeOfWork.HostText, IncompleteClassComponent = ReactTypeOfWork.IncompleteClassComponent, IndeterminateComponent = ReactTypeOfWork.IndeterminateComponent, LegacyHiddenComponent = ReactTypeOfWork.LegacyHiddenComponent, MemoComponent = ReactTypeOfWork.MemoComponent, OffscreenComponent = ReactTypeOfWork.OffscreenComponent, SimpleMemoComponent = ReactTypeOfWork.SimpleMemoComponent, SuspenseComponent = ReactTypeOfWork.SuspenseComponent, SuspenseListComponent = ReactTypeOfWork.SuspenseListComponent, TracingMarkerComponent = ReactTypeOfWork.TracingMarkerComponent;
|
|
247133
247148
|
var ImmediatePriority = ReactPriorityLevels.ImmediatePriority, UserBlockingPriority = ReactPriorityLevels.UserBlockingPriority, NormalPriority = ReactPriorityLevels.NormalPriority, LowPriority = ReactPriorityLevels.LowPriority, IdlePriority = ReactPriorityLevels.IdlePriority, NoPriority = ReactPriorityLevels.NoPriority;
|
|
247134
247149
|
var getLaneLabelMap = renderer2.getLaneLabelMap, injectProfilingHooks = renderer2.injectProfilingHooks, overrideHookState = renderer2.overrideHookState, overrideHookStateDeletePath = renderer2.overrideHookStateDeletePath, overrideHookStateRenamePath = renderer2.overrideHookStateRenamePath, overrideProps = renderer2.overrideProps, overridePropsDeletePath = renderer2.overridePropsDeletePath, overridePropsRenamePath = renderer2.overridePropsRenamePath, scheduleRefresh = renderer2.scheduleRefresh, setErrorHandler = renderer2.setErrorHandler, setSuspenseHandler = renderer2.setSuspenseHandler, scheduleUpdate = renderer2.scheduleUpdate;
|
|
247135
247150
|
var supportsTogglingError = typeof setErrorHandler === "function" && typeof scheduleUpdate === "function";
|
|
@@ -247344,7 +247359,7 @@ var require_backend = __commonJS({
|
|
|
247344
247359
|
return true;
|
|
247345
247360
|
case HostRoot:
|
|
247346
247361
|
return false;
|
|
247347
|
-
case
|
|
247362
|
+
case Fragment16:
|
|
247348
247363
|
return key === null;
|
|
247349
247364
|
default:
|
|
247350
247365
|
var typeSymbol = getTypeSymbol(type);
|
|
@@ -247419,7 +247434,7 @@ var require_backend = __commonJS({
|
|
|
247419
247434
|
return ElementTypeHostComponent;
|
|
247420
247435
|
case HostPortal:
|
|
247421
247436
|
case HostText:
|
|
247422
|
-
case
|
|
247437
|
+
case Fragment16:
|
|
247423
247438
|
return ElementTypeOtherOrUnknown;
|
|
247424
247439
|
case MemoComponent:
|
|
247425
247440
|
case SimpleMemoComponent:
|
|
@@ -271098,6 +271113,7 @@ var init_en2 = __esm({
|
|
|
271098
271113
|
// Exit Screen / Stats
|
|
271099
271114
|
// ============================================================================
|
|
271100
271115
|
"Agent powering down. Goodbye!": "Agent powering down. Goodbye!",
|
|
271116
|
+
"To continue this session, run": "To continue this session, run",
|
|
271101
271117
|
"Interaction Summary": "Interaction Summary",
|
|
271102
271118
|
"Session ID:": "Session ID:",
|
|
271103
271119
|
"Tool Calls:": "Tool Calls:",
|
|
@@ -272749,6 +272765,7 @@ var init_zh = __esm({
|
|
|
272749
272765
|
// Exit Screen / Stats
|
|
272750
272766
|
// ============================================================================
|
|
272751
272767
|
"Agent powering down. Goodbye!": "Qwen Code \u6B63\u5728\u5173\u95ED\uFF0C\u518D\u89C1\uFF01",
|
|
272768
|
+
"To continue this session, run": "\u8981\u7EE7\u7EED\u6B64\u4F1A\u8BDD\uFF0C\u8BF7\u8FD0\u884C",
|
|
272752
272769
|
"Interaction Summary": "\u4EA4\u4E92\u6458\u8981",
|
|
272753
272770
|
"Session ID:": "\u4F1A\u8BDD ID\uFF1A",
|
|
272754
272771
|
"Tool Calls:": "\u5DE5\u5177\u8C03\u7528\uFF1A",
|
|
@@ -278825,7 +278842,7 @@ var require_react_is_development = __commonJS({
|
|
|
278825
278842
|
var ContextProvider = REACT_PROVIDER_TYPE;
|
|
278826
278843
|
var Element2 = REACT_ELEMENT_TYPE;
|
|
278827
278844
|
var ForwardRef = REACT_FORWARD_REF_TYPE;
|
|
278828
|
-
var
|
|
278845
|
+
var Fragment16 = REACT_FRAGMENT_TYPE;
|
|
278829
278846
|
var Lazy = REACT_LAZY_TYPE;
|
|
278830
278847
|
var Memo = REACT_MEMO_TYPE;
|
|
278831
278848
|
var Portal = REACT_PORTAL_TYPE;
|
|
@@ -278897,7 +278914,7 @@ var require_react_is_development = __commonJS({
|
|
|
278897
278914
|
exports2.ContextProvider = ContextProvider;
|
|
278898
278915
|
exports2.Element = Element2;
|
|
278899
278916
|
exports2.ForwardRef = ForwardRef;
|
|
278900
|
-
exports2.Fragment =
|
|
278917
|
+
exports2.Fragment = Fragment16;
|
|
278901
278918
|
exports2.Lazy = Lazy;
|
|
278902
278919
|
exports2.Memo = Memo;
|
|
278903
278920
|
exports2.Portal = Portal;
|
|
@@ -296000,6 +296017,24 @@ var SETTINGS_SCHEMA = {
|
|
|
296000
296017
|
{ value: "zh", label: "\u4E2D\u6587 (Chinese)" },
|
|
296001
296018
|
{ value: "ru", label: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439 (Russian)" }
|
|
296002
296019
|
]
|
|
296020
|
+
},
|
|
296021
|
+
terminalBell: {
|
|
296022
|
+
type: "boolean",
|
|
296023
|
+
label: "Terminal Bell",
|
|
296024
|
+
category: "General",
|
|
296025
|
+
requiresRestart: false,
|
|
296026
|
+
default: true,
|
|
296027
|
+
description: "Play terminal bell sound when response completes or needs approval.",
|
|
296028
|
+
showInDialog: true
|
|
296029
|
+
},
|
|
296030
|
+
chatRecording: {
|
|
296031
|
+
type: "boolean",
|
|
296032
|
+
label: "Chat Recording",
|
|
296033
|
+
category: "General",
|
|
296034
|
+
requiresRestart: true,
|
|
296035
|
+
default: true,
|
|
296036
|
+
description: "Enable saving chat history to disk. Disabling this will also prevent --continue and --resume from working.",
|
|
296037
|
+
showInDialog: false
|
|
296003
296038
|
}
|
|
296004
296039
|
}
|
|
296005
296040
|
},
|
|
@@ -309994,7 +310029,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
309994
310029
|
// packages/cli/src/utils/version.ts
|
|
309995
310030
|
async function getCliVersion() {
|
|
309996
310031
|
const pkgJson = await getPackageJson();
|
|
309997
|
-
return "0.5.
|
|
310032
|
+
return "0.5.1-nightly.20251216.52faa0da";
|
|
309998
310033
|
}
|
|
309999
310034
|
__name(getCliVersion, "getCliVersion");
|
|
310000
310035
|
|
|
@@ -310568,7 +310603,10 @@ async function parseArguments(settings) {
|
|
|
310568
310603
|
}).deprecateOption(
|
|
310569
310604
|
"proxy",
|
|
310570
310605
|
'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.'
|
|
310571
|
-
).
|
|
310606
|
+
).option("chat-recording", {
|
|
310607
|
+
type: "boolean",
|
|
310608
|
+
description: "Enable chat recording to disk. If false, chat history is not saved and --continue/--resume will not work."
|
|
310609
|
+
}).command(
|
|
310572
310610
|
"$0 [query..]",
|
|
310573
310611
|
"Launch Qwen Code CLI",
|
|
310574
310612
|
(yargsInstance2) => yargsInstance2.positional("query", {
|
|
@@ -311093,7 +311131,11 @@ async function loadCliConfig(settings, extensions, extensionEnablementManager, a
|
|
|
311093
311131
|
output: {
|
|
311094
311132
|
format: outputSettingsFormat
|
|
311095
311133
|
},
|
|
311096
|
-
channel: argv.channel
|
|
311134
|
+
channel: argv.channel,
|
|
311135
|
+
// Precedence: explicit CLI flag > settings file > default(true).
|
|
311136
|
+
// NOTE: do NOT set a yargs default for `chat-recording`, otherwise argv will
|
|
311137
|
+
// always be true and the settings file can never disable recording.
|
|
311138
|
+
chatRecording: argv.chatRecording ?? settings.general?.chatRecording ?? true
|
|
311097
311139
|
});
|
|
311098
311140
|
}
|
|
311099
311141
|
__name(loadCliConfig, "loadCliConfig");
|
|
@@ -314071,7 +314113,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
314071
314113
|
|
|
314072
314114
|
// packages/cli/src/generated/git-commit.ts
|
|
314073
314115
|
init_esbuild_shims();
|
|
314074
|
-
var GIT_COMMIT_INFO2 = "
|
|
314116
|
+
var GIT_COMMIT_INFO2 = "3e79909b";
|
|
314075
314117
|
|
|
314076
314118
|
// packages/cli/src/utils/systemInfo.ts
|
|
314077
314119
|
async function getNpmVersion() {
|
|
@@ -314514,18 +314556,6 @@ var copyCommand = {
|
|
|
314514
314556
|
}, "action")
|
|
314515
314557
|
};
|
|
314516
314558
|
|
|
314517
|
-
// packages/cli/src/ui/commands/corgiCommand.ts
|
|
314518
|
-
init_esbuild_shims();
|
|
314519
|
-
var corgiCommand = {
|
|
314520
|
-
name: "corgi",
|
|
314521
|
-
description: "Toggles corgi mode.",
|
|
314522
|
-
hidden: true,
|
|
314523
|
-
kind: "built-in" /* BUILT_IN */,
|
|
314524
|
-
action: /* @__PURE__ */ __name((context2, _args) => {
|
|
314525
|
-
context2.ui.toggleCorgiMode();
|
|
314526
|
-
}, "action")
|
|
314527
|
-
};
|
|
314528
|
-
|
|
314529
314559
|
// packages/cli/src/ui/commands/docsCommand.ts
|
|
314530
314560
|
init_esbuild_shims();
|
|
314531
314561
|
init_open();
|
|
@@ -317484,7 +317514,6 @@ var BuiltinCommandLoader = class {
|
|
|
317484
317514
|
clearCommand,
|
|
317485
317515
|
compressCommand,
|
|
317486
317516
|
copyCommand,
|
|
317487
|
-
corgiCommand,
|
|
317488
317517
|
docsCommand,
|
|
317489
317518
|
directoryCommand,
|
|
317490
317519
|
editorCommand,
|
|
@@ -319472,8 +319501,6 @@ function createNonInteractiveUI() {
|
|
|
319472
319501
|
pendingItem: null,
|
|
319473
319502
|
setPendingItem: /* @__PURE__ */ __name((_item) => {
|
|
319474
319503
|
}, "setPendingItem"),
|
|
319475
|
-
toggleCorgiMode: /* @__PURE__ */ __name(() => {
|
|
319476
|
-
}, "toggleCorgiMode"),
|
|
319477
319504
|
toggleVimEnabled: /* @__PURE__ */ __name(async () => false, "toggleVimEnabled"),
|
|
319478
319505
|
setGeminiMdFileCount: /* @__PURE__ */ __name((_count) => {
|
|
319479
319506
|
}, "setGeminiMdFileCount"),
|
|
@@ -345174,13 +345201,29 @@ init_esbuild_shims();
|
|
|
345174
345201
|
var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
|
|
345175
345202
|
var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
345176
345203
|
duration
|
|
345177
|
-
}) =>
|
|
345178
|
-
|
|
345179
|
-
{
|
|
345180
|
-
|
|
345181
|
-
|
|
345182
|
-
|
|
345183
|
-
|
|
345204
|
+
}) => {
|
|
345205
|
+
const config = useConfig();
|
|
345206
|
+
const { stats } = useSessionStats();
|
|
345207
|
+
const hasMessages = stats.promptCount > 0;
|
|
345208
|
+
const canResume = !!config.getChatRecordingService();
|
|
345209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
345210
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
345211
|
+
StatsDisplay,
|
|
345212
|
+
{
|
|
345213
|
+
title: t2("Agent powering down. Goodbye!"),
|
|
345214
|
+
duration
|
|
345215
|
+
}
|
|
345216
|
+
),
|
|
345217
|
+
hasMessages && canResume && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text3, { color: theme.text.secondary, children: [
|
|
345218
|
+
t2("To continue this session, run"),
|
|
345219
|
+
" ",
|
|
345220
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text3, { color: theme.text.accent, children: [
|
|
345221
|
+
"qwen --resume ",
|
|
345222
|
+
stats.sessionId
|
|
345223
|
+
] })
|
|
345224
|
+
] }) })
|
|
345225
|
+
] });
|
|
345226
|
+
}, "SessionSummaryDisplay");
|
|
345184
345227
|
|
|
345185
345228
|
// packages/cli/src/ui/components/Help.tsx
|
|
345186
345229
|
init_esbuild_shims();
|
|
@@ -351821,7 +351864,6 @@ var Footer = /* @__PURE__ */ __name(() => {
|
|
|
351821
351864
|
debugMode,
|
|
351822
351865
|
branchName,
|
|
351823
351866
|
debugMessage,
|
|
351824
|
-
corgiMode,
|
|
351825
351867
|
errorCount,
|
|
351826
351868
|
showErrorDetails,
|
|
351827
351869
|
promptTokenCount,
|
|
@@ -351833,7 +351875,6 @@ var Footer = /* @__PURE__ */ __name(() => {
|
|
|
351833
351875
|
debugMode: config.getDebugMode(),
|
|
351834
351876
|
branchName: uiState.branchName,
|
|
351835
351877
|
debugMessage: uiState.debugMessage,
|
|
351836
|
-
corgiMode: uiState.corgiMode,
|
|
351837
351878
|
errorCount: uiState.errorCount,
|
|
351838
351879
|
showErrorDetails: uiState.showErrorDetails,
|
|
351839
351880
|
promptTokenCount: uiState.sessionStats.lastPromptTokenCount,
|
|
@@ -351918,20 +351959,10 @@ var Footer = /* @__PURE__ */ __name(() => {
|
|
|
351918
351959
|
] }),
|
|
351919
351960
|
showMemoryUsage && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(MemoryUsageDisplay, {})
|
|
351920
351961
|
] }),
|
|
351921
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.
|
|
351922
|
-
|
|
351923
|
-
|
|
351924
|
-
|
|
351925
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.text.primary, children: "(\xB4" }),
|
|
351926
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.status.error, children: "\u1D25" }),
|
|
351927
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.text.primary, children: "`)" }),
|
|
351928
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.status.error, children: "\u25BC " })
|
|
351929
|
-
] }),
|
|
351930
|
-
!showErrorDetails && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
351931
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.ui.symbol, children: "| " }),
|
|
351932
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ConsoleSummaryDisplay, { errorCount })
|
|
351933
|
-
] })
|
|
351934
|
-
] })
|
|
351962
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { alignItems: "center", paddingLeft: 2, children: !showErrorDetails && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
351963
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.ui.symbol, children: "| " }),
|
|
351964
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ConsoleSummaryDisplay, { errorCount })
|
|
351965
|
+
] }) })
|
|
351935
351966
|
] })
|
|
351936
351967
|
]
|
|
351937
351968
|
}
|
|
@@ -353306,7 +353337,6 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, addItem
|
|
|
353306
353337
|
setDebugMessage: actions.setDebugMessage,
|
|
353307
353338
|
pendingItem,
|
|
353308
353339
|
setPendingItem,
|
|
353309
|
-
toggleCorgiMode: actions.toggleCorgiMode,
|
|
353310
353340
|
toggleVimEnabled,
|
|
353311
353341
|
setGeminiMdFileCount,
|
|
353312
353342
|
reloadCommands,
|
|
@@ -359979,6 +360009,9 @@ init_esbuild_shims();
|
|
|
359979
360009
|
import process49 from "node:process";
|
|
359980
360010
|
var TERMINAL_BELL = "\x07";
|
|
359981
360011
|
function notifyTerminalAttention(_reason, options2 = {}) {
|
|
360012
|
+
if (options2.enabled === false) {
|
|
360013
|
+
return false;
|
|
360014
|
+
}
|
|
359982
360015
|
const stream2 = options2.stream ?? process49.stdout;
|
|
359983
360016
|
if (!stream2?.write || stream2.isTTY === false) {
|
|
359984
360017
|
return false;
|
|
@@ -359998,19 +360031,23 @@ var LONG_TASK_NOTIFICATION_THRESHOLD_SECONDS = 20;
|
|
|
359998
360031
|
var useAttentionNotifications = /* @__PURE__ */ __name(({
|
|
359999
360032
|
isFocused,
|
|
360000
360033
|
streamingState,
|
|
360001
|
-
elapsedTime
|
|
360034
|
+
elapsedTime,
|
|
360035
|
+
settings
|
|
360002
360036
|
}) => {
|
|
360037
|
+
const terminalBellEnabled = settings?.merged?.general?.terminalBell ?? true;
|
|
360003
360038
|
const awaitingNotificationSentRef = (0, import_react131.useRef)(false);
|
|
360004
360039
|
const respondingElapsedRef = (0, import_react131.useRef)(0);
|
|
360005
360040
|
(0, import_react131.useEffect)(() => {
|
|
360006
360041
|
if (streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */ && !isFocused && !awaitingNotificationSentRef.current) {
|
|
360007
|
-
notifyTerminalAttention("tool_approval" /* ToolApproval
|
|
360042
|
+
notifyTerminalAttention("tool_approval" /* ToolApproval */, {
|
|
360043
|
+
enabled: terminalBellEnabled
|
|
360044
|
+
});
|
|
360008
360045
|
awaitingNotificationSentRef.current = true;
|
|
360009
360046
|
}
|
|
360010
360047
|
if (streamingState !== "waiting_for_confirmation" /* WaitingForConfirmation */ || isFocused) {
|
|
360011
360048
|
awaitingNotificationSentRef.current = false;
|
|
360012
360049
|
}
|
|
360013
|
-
}, [isFocused, streamingState]);
|
|
360050
|
+
}, [isFocused, streamingState, terminalBellEnabled]);
|
|
360014
360051
|
(0, import_react131.useEffect)(() => {
|
|
360015
360052
|
if (streamingState === "responding" /* Responding */) {
|
|
360016
360053
|
respondingElapsedRef.current = elapsedTime;
|
|
@@ -360019,12 +360056,14 @@ var useAttentionNotifications = /* @__PURE__ */ __name(({
|
|
|
360019
360056
|
if (streamingState === "idle" /* Idle */) {
|
|
360020
360057
|
const wasLongTask = respondingElapsedRef.current >= LONG_TASK_NOTIFICATION_THRESHOLD_SECONDS;
|
|
360021
360058
|
if (wasLongTask && !isFocused) {
|
|
360022
|
-
notifyTerminalAttention("long_task_complete" /* LongTaskComplete
|
|
360059
|
+
notifyTerminalAttention("long_task_complete" /* LongTaskComplete */, {
|
|
360060
|
+
enabled: terminalBellEnabled
|
|
360061
|
+
});
|
|
360023
360062
|
}
|
|
360024
360063
|
respondingElapsedRef.current = 0;
|
|
360025
360064
|
return;
|
|
360026
360065
|
}
|
|
360027
|
-
}, [streamingState, elapsedTime, isFocused]);
|
|
360066
|
+
}, [streamingState, elapsedTime, isFocused, terminalBellEnabled]);
|
|
360028
360067
|
}, "useAttentionNotifications");
|
|
360029
360068
|
|
|
360030
360069
|
// packages/cli/src/ui/AppContainer.tsx
|
|
@@ -360047,7 +360086,6 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
360047
360086
|
const { settings, config, initializationResult } = props;
|
|
360048
360087
|
const historyManager = useHistory();
|
|
360049
360088
|
useMemoryMonitor(historyManager);
|
|
360050
|
-
const [corgiMode, setCorgiMode] = (0, import_react132.useState)(false);
|
|
360051
360089
|
const [debugMessage, setDebugMessage] = (0, import_react132.useState)("");
|
|
360052
360090
|
const [quittingMessages, setQuittingMessages] = (0, import_react132.useState)(null);
|
|
360053
360091
|
const [themeError, setThemeError] = (0, import_react132.useState)(
|
|
@@ -360308,7 +360346,6 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
360308
360346
|
}, 100);
|
|
360309
360347
|
}, "quit"),
|
|
360310
360348
|
setDebugMessage,
|
|
360311
|
-
toggleCorgiMode: /* @__PURE__ */ __name(() => setCorgiMode((prev) => !prev), "toggleCorgiMode"),
|
|
360312
360349
|
dispatchExtensionStateUpdate,
|
|
360313
360350
|
addConfirmUpdateExtensionRequest,
|
|
360314
360351
|
openSubagentCreateDialog,
|
|
@@ -360321,7 +360358,6 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
360321
360358
|
openSettingsDialog,
|
|
360322
360359
|
openModelDialog,
|
|
360323
360360
|
setDebugMessage,
|
|
360324
|
-
setCorgiMode,
|
|
360325
360361
|
dispatchExtensionStateUpdate,
|
|
360326
360362
|
openPermissionsDialog,
|
|
360327
360363
|
openApprovalModeDialog,
|
|
@@ -360671,7 +360707,8 @@ ${queuedText}` : queuedText;
|
|
|
360671
360707
|
useAttentionNotifications({
|
|
360672
360708
|
isFocused,
|
|
360673
360709
|
streamingState,
|
|
360674
|
-
elapsedTime
|
|
360710
|
+
elapsedTime,
|
|
360711
|
+
settings
|
|
360675
360712
|
});
|
|
360676
360713
|
const { closeAnyOpenDialog } = useDialogClose({
|
|
360677
360714
|
isThemeDialogOpen,
|
|
@@ -360856,7 +360893,6 @@ ${queuedText}` : queuedText;
|
|
|
360856
360893
|
qwenAuthState,
|
|
360857
360894
|
editorError,
|
|
360858
360895
|
isEditorDialogOpen,
|
|
360859
|
-
corgiMode,
|
|
360860
360896
|
debugMessage,
|
|
360861
360897
|
quittingMessages,
|
|
360862
360898
|
isSettingsDialogOpen,
|
|
@@ -360947,7 +360983,6 @@ ${queuedText}` : queuedText;
|
|
|
360947
360983
|
qwenAuthState,
|
|
360948
360984
|
editorError,
|
|
360949
360985
|
isEditorDialogOpen,
|
|
360950
|
-
corgiMode,
|
|
360951
360986
|
debugMessage,
|
|
360952
360987
|
quittingMessages,
|
|
360953
360988
|
isSettingsDialogOpen,
|
|
@@ -364626,7 +364661,7 @@ var GeminiAgent = class {
|
|
|
364626
364661
|
name: APPROVAL_MODE_INFO[mode].name,
|
|
364627
364662
|
description: APPROVAL_MODE_INFO[mode].description
|
|
364628
364663
|
}));
|
|
364629
|
-
const version2 = "0.5.
|
|
364664
|
+
const version2 = "0.5.1-nightly.20251216.52faa0da";
|
|
364630
364665
|
return {
|
|
364631
364666
|
protocolVersion: PROTOCOL_VERSION,
|
|
364632
364667
|
agentInfo: {
|
|
@@ -364783,13 +364818,15 @@ var GeminiAgent = class {
|
|
|
364783
364818
|
async ensureAuthenticated(config) {
|
|
364784
364819
|
const selectedType = this.settings.merged.security?.auth?.selectedType;
|
|
364785
364820
|
if (!selectedType) {
|
|
364786
|
-
throw RequestError.authRequired();
|
|
364821
|
+
throw RequestError.authRequired("No Selected Type");
|
|
364787
364822
|
}
|
|
364788
364823
|
try {
|
|
364789
364824
|
await config.refreshAuth(selectedType, true);
|
|
364790
364825
|
} catch (e2) {
|
|
364791
364826
|
console.error(`Authentication failed: ${e2}`);
|
|
364792
|
-
throw RequestError.authRequired(
|
|
364827
|
+
throw RequestError.authRequired(
|
|
364828
|
+
"Authentication failed: " + e2.message
|
|
364829
|
+
);
|
|
364793
364830
|
}
|
|
364794
364831
|
}
|
|
364795
364832
|
setupFileSystem(config) {
|
package/locales/en.js
CHANGED
|
@@ -867,6 +867,7 @@ export default {
|
|
|
867
867
|
// Exit Screen / Stats
|
|
868
868
|
// ============================================================================
|
|
869
869
|
'Agent powering down. Goodbye!': 'Agent powering down. Goodbye!',
|
|
870
|
+
'To continue this session, run': 'To continue this session, run',
|
|
870
871
|
'Interaction Summary': 'Interaction Summary',
|
|
871
872
|
'Session ID:': 'Session ID:',
|
|
872
873
|
'Tool Calls:': 'Tool Calls:',
|
package/locales/zh.js
CHANGED
|
@@ -820,6 +820,7 @@ export default {
|
|
|
820
820
|
// Exit Screen / Stats
|
|
821
821
|
// ============================================================================
|
|
822
822
|
'Agent powering down. Goodbye!': 'Qwen Code 正在关闭,再见!',
|
|
823
|
+
'To continue this session, run': '要继续此会话,请运行',
|
|
823
824
|
'Interaction Summary': '交互摘要',
|
|
824
825
|
'Session ID:': '会话 ID:',
|
|
825
826
|
'Tool Calls:': '工具调用:',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qwen-code/qwen-code",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1-nightly.20251216.52faa0da",
|
|
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.5.
|
|
23
|
+
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.5.1-nightly.20251216.52faa0da"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"tiktoken": "^1.0.21"
|