@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 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.0-preview.0";
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 filteredAbsolutePaths = new Set(filteredPaths.map((p) => path37.resolve(this.config.getTargetDir(), p)));
194684
- const filteredEntries = allEntries.filter((entry) => filteredAbsolutePaths.has(entry.fullpath()));
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, Fragment15 = _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;
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 Fragment15:
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, Fragment15 = 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;
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 Fragment15:
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 Fragment15:
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 Fragment15 = REACT_FRAGMENT_TYPE;
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 = Fragment15;
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.0-preview.0";
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
- ).command(
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 = "6e4acfb0";
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
- }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
345178
- StatsDisplay,
345179
- {
345180
- title: t2("Agent powering down. Goodbye!"),
345181
- duration
345182
- }
345183
- ), "SessionSummaryDisplay");
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.jsxs)(Box_default, { alignItems: "center", paddingLeft: 2, children: [
351922
- corgiMode && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Text3, { children: [
351923
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.ui.symbol, children: "| " }),
351924
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text3, { color: theme.status.error, children: "\u25BC" }),
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.0-preview.0";
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.0-preview.0",
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.0-preview.0"
23
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.5.1-nightly.20251216.52faa0da"
24
24
  },
25
25
  "dependencies": {
26
26
  "tiktoken": "^1.0.21"