@google/gemini-cli 0.44.0 → 0.45.0-nightly.20260527.g41c9260ca

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.
Files changed (70) hide show
  1. package/bundle/{chunk-FOOWNGAB.js → chunk-2RAPXSOV.js} +1 -1
  2. package/bundle/{chunk-TN4WXWFM.js → chunk-5SQYZFP6.js} +3 -3
  3. package/bundle/{chunk-BOYNQXWU.js → chunk-6SMPX7UU.js} +2 -2
  4. package/bundle/{chunk-QUZ62PY7.js → chunk-6VVFXG4V.js} +2 -2
  5. package/bundle/{chunk-DALZZYPQ.js → chunk-7EPRHON5.js} +1 -1
  6. package/bundle/{chunk-XTG4JBIR.js → chunk-AAGSPORB.js} +1 -1
  7. package/bundle/{chunk-BE42OOYM.js → chunk-EVYFBIGQ.js} +377 -297
  8. package/bundle/{chunk-5CABHQOE.js → chunk-FHQHQ6DS.js} +1 -1
  9. package/bundle/{chunk-ONQVFEHS.js → chunk-GIZR3U4X.js} +1 -1
  10. package/bundle/{chunk-CBT4PN4R.js → chunk-H4PA4O33.js} +8 -8
  11. package/bundle/{chunk-M3EDSAPV.js → chunk-I6UPFWEQ.js} +1 -1
  12. package/bundle/{chunk-TW47A6FW.js → chunk-IGGUR3YU.js} +7827 -14242
  13. package/bundle/{chunk-VUERI7WB.js → chunk-K4FVPC4T.js} +8 -8
  14. package/bundle/{chunk-EKUU3KNX.js → chunk-KSJ6OVGZ.js} +1 -1
  15. package/bundle/{chunk-OLBOCZ5F.js → chunk-P4IX67II.js} +68 -55
  16. package/bundle/{chunk-6W2Z7FTE.js → chunk-P4YCK66H.js} +3 -3
  17. package/bundle/{chunk-SIXPHUVZ.js → chunk-PN5LGMOT.js} +423 -330
  18. package/bundle/{chunk-N4SGO3W6.js → chunk-RJZUBUMQ.js} +2 -2
  19. package/bundle/{chunk-3K52543M.js → chunk-SJJUCWYW.js} +56 -2
  20. package/bundle/{chunk-G2L4VCSN.js → chunk-SS6WZNE5.js} +9 -8
  21. package/bundle/{chunk-LM6XTSWQ.js → chunk-T5BJFXUT.js} +56 -2
  22. package/bundle/chunk-TKOMYARC.js +81685 -0
  23. package/bundle/{chunk-OTLI6LZ3.js → chunk-TREYQA4O.js} +1 -1
  24. package/bundle/chunk-U3JK5HRW.js +394429 -0
  25. package/bundle/chunk-UHMKT6SK.js +154 -0
  26. package/bundle/chunk-UJJ75A5I.js +398 -0
  27. package/bundle/{chunk-7KIX5G5D.js → chunk-UMBPNYQU.js} +3 -3
  28. package/bundle/{chunk-7ZH745HC.js → chunk-VC3YLUFW.js} +63 -6
  29. package/bundle/chunk-VCSWELYF.js +512 -0
  30. package/bundle/chunk-VG6I25WK.js +1571 -0
  31. package/bundle/chunk-WU3YM7M5.js +118 -0
  32. package/bundle/chunk-YHUFSS4V.js +17320 -0
  33. package/bundle/{cleanup-PDT5ATZB.js → cleanup-DAEFNP5D.js} +2 -2
  34. package/bundle/{cleanup-SF7XW2P3.js → cleanup-QLHTBBSJ.js} +2 -2
  35. package/bundle/{cleanup-UW3DZLXP.js → cleanup-SWVNBESF.js} +2 -2
  36. package/bundle/cleanup-V5HN45VV.js +32 -0
  37. package/bundle/{core-LN2S4IOX.js → core-RLNQPUYW.js} +3 -7
  38. package/bundle/{devtoolsService-64QE2V7E.js → devtoolsService-F5XNH3LW.js} +2 -2
  39. package/bundle/{devtoolsService-ZC7E4R2A.js → devtoolsService-KSXJ7ZBM.js} +4 -3
  40. package/bundle/devtoolsService-N5XYKGOS.js +856 -0
  41. package/bundle/{devtoolsService-DUEWJW52.js → devtoolsService-Y4US3JKZ.js} +2 -2
  42. package/bundle/{dist-J4RONYVV.js → dist-CMC3RCEI.js} +3 -7
  43. package/bundle/{core-GW6VAL53.js → dist-XPJBSOYP.js} +3 -7
  44. package/bundle/dist-YCN22NGW.js +2134 -0
  45. package/bundle/docs/changelogs/index.md +15 -0
  46. package/bundle/docs/changelogs/latest.md +198 -262
  47. package/bundle/docs/changelogs/preview.md +202 -181
  48. package/bundle/docs/reference/configuration.md +24 -29
  49. package/bundle/{gemini-SSQIKHR2.js → gemini-3FB3K6RR.js} +41 -30
  50. package/bundle/{gemini-CMBH5YG6.js → gemini-AAR7OIGT.js} +239 -212
  51. package/bundle/{gemini-CSPRLMWN.js → gemini-BKWLRTMK.js} +41 -30
  52. package/bundle/gemini-JVLQYJ2G.js +16406 -0
  53. package/bundle/gemini.js +15 -10
  54. package/bundle/{interactiveCli-RDMZS6KL.js → interactiveCli-7AF74ES4.js} +33 -57
  55. package/bundle/{interactiveCli-TOEU7LIO.js → interactiveCli-LEZF6KPA.js} +33 -57
  56. package/bundle/{interactiveCli-Q2A2JFLA.js → interactiveCli-PCGUDXG4.js} +339 -344
  57. package/bundle/interactiveCli-QC3CJANH.js +34726 -0
  58. package/bundle/{liteRtServerManager-ASKAVAO7.js → liteRtServerManager-2ZSZW3IA.js} +4 -4
  59. package/bundle/{liteRtServerManager-6BWTXMUI.js → liteRtServerManager-A3Z4AS3V.js} +4 -4
  60. package/bundle/{liteRtServerManager-ZS3BCW53.js → liteRtServerManager-EDFTLOS6.js} +4 -4
  61. package/bundle/liteRtServerManager-YPEZDSGQ.js +65 -0
  62. package/bundle/{oauth2-provider-SYRZDGL5.js → oauth2-provider-5ZA5OIVB.js} +1 -1
  63. package/bundle/{oauth2-provider-FGI6QDEM.js → oauth2-provider-O4BUOOYR.js} +1 -1
  64. package/bundle/{oauth2-provider-7JOVY727.js → oauth2-provider-O635QVSF.js} +38 -72
  65. package/bundle/oauth2-provider-WIBCYDQG.js +235 -0
  66. package/bundle/{start-KJCIH3GX.js → start-7TRTTGGV.js} +6 -6
  67. package/bundle/{start-TU5WNP77.js → start-A4YSRLHR.js} +6 -6
  68. package/bundle/{start-47OYCVVA.js → start-HFZVWJGC.js} +6 -6
  69. package/bundle/start-KH23TWSE.js +18 -0
  70. package/package.json +1 -1
package/bundle/gemini.js CHANGED
@@ -4,10 +4,10 @@ import {
4
4
  RELAUNCH_EXIT_CODE,
5
5
  getScriptArgs,
6
6
  getSpawnConfig
7
- } from "./chunk-N4SGO3W6.js";
8
- import "./chunk-EKUU3KNX.js";
9
- import "./chunk-DALZZYPQ.js";
10
- import "./chunk-BE42OOYM.js";
7
+ } from "./chunk-6VVFXG4V.js";
8
+ import "./chunk-SS6WZNE5.js";
9
+ import "./chunk-FHQHQ6DS.js";
10
+ import "./chunk-U3JK5HRW.js";
11
11
  import "./chunk-6HI7VNOG.js";
12
12
  import "./chunk-TUDYL3X4.js";
13
13
  import "./chunk-IUUIT4SU.js";
@@ -18,8 +18,13 @@ import { spawn } from "node:child_process";
18
18
  import os from "node:os";
19
19
  import v8 from "node:v8";
20
20
  process.on("uncaughtException", (error) => {
21
- if (process.platform === "win32" && error instanceof Error && error.message === "Cannot resize a pty that has already exited") {
22
- return;
21
+ if (error instanceof Error) {
22
+ const isPtyResizeError = error.message === "Cannot resize a pty that has already exited";
23
+ const isEbadfError = error.message.includes("EBADF");
24
+ const isFromNodePty = error.stack?.includes("node-pty") || error.stack?.includes("PtyResize");
25
+ if ((isPtyResizeError || isEbadfError) && isFromNodePty) {
26
+ return;
27
+ }
23
28
  }
24
29
  if (error instanceof Error) {
25
30
  process.stderr.write(error.stack + "\n");
@@ -95,7 +100,7 @@ async function run() {
95
100
  while (true) {
96
101
  try {
97
102
  const exitCode = await runner();
98
- if (exitCode !== RELAUNCH_EXIT_CODE) {
103
+ if (process.platform === "android" || exitCode !== RELAUNCH_EXIT_CODE) {
99
104
  process.exit(exitCode);
100
105
  }
101
106
  } catch (error) {
@@ -109,9 +114,9 @@ ${error instanceof Error ? error.stack ?? error.message : String(error)}
109
114
  }
110
115
  }
111
116
  } else {
112
- const { main } = await import("./gemini-SSQIKHR2.js");
113
- const { FatalError, writeToStderr } = await import("./dist-J4RONYVV.js");
114
- const { runExitCleanup } = await import("./cleanup-PDT5ATZB.js");
117
+ const { main } = await import("./gemini-3FB3K6RR.js");
118
+ const { FatalError, writeToStderr } = await import("./dist-CMC3RCEI.js");
119
+ const { runExitCleanup } = await import("./cleanup-QLHTBBSJ.js");
115
120
  main().catch(async (error) => {
116
121
  const cleanupTimeout = setTimeout(() => {
117
122
  writeToStderr("Cleanup timed out, forcing exit...\n");
@@ -155,13 +155,13 @@ import {
155
155
  widestLineFromStyledChars,
156
156
  wordBreakStyledChars,
157
157
  wrapStyledChars
158
- } from "./chunk-VUERI7WB.js";
158
+ } from "./chunk-P4IX67II.js";
159
159
  import {
160
160
  appEvents
161
161
  } from "./chunk-5PS3AYFU.js";
162
162
  import {
163
163
  require_source
164
- } from "./chunk-FOOWNGAB.js";
164
+ } from "./chunk-I6UPFWEQ.js";
165
165
  import {
166
166
  ACTIVE_SHELL_MAX_LINES,
167
167
  COMPACT_TOOL_SUBVIEW_MAX_LINES,
@@ -211,24 +211,24 @@ import {
211
211
  stringWidth,
212
212
  stripUnsafeCharacters,
213
213
  toCodePoints
214
- } from "./chunk-LM6XTSWQ.js";
214
+ } from "./chunk-YHUFSS4V.js";
215
215
  import {
216
216
  handleAutoUpdate,
217
217
  isDevelopment,
218
218
  relaunchApp,
219
219
  setUpdateHandler
220
- } from "./chunk-N4SGO3W6.js";
220
+ } from "./chunk-RJZUBUMQ.js";
221
221
  import {
222
222
  isTodoList,
223
223
  mapCoreStatusToDisplayStatus,
224
224
  require_react
225
- } from "./chunk-EKUU3KNX.js";
225
+ } from "./chunk-VCSWELYF.js";
226
226
  import {
227
227
  registerCleanup,
228
228
  removeCleanup,
229
229
  runExitCleanup,
230
230
  setupTtyCheck
231
- } from "./chunk-DALZZYPQ.js";
231
+ } from "./chunk-7EPRHON5.js";
232
232
  import {
233
233
  ACTIVATE_SKILL_TOOL_NAME,
234
234
  AGENT_TOOL_NAME,
@@ -281,8 +281,8 @@ import {
281
281
  OverageMenuShownEvent,
282
282
  OverageOptionSelectedEvent,
283
283
  PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
284
- PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
285
284
  PREVIEW_GEMINI_3_1_MODEL,
285
+ PREVIEW_GEMINI_FLASH_LITE_MODEL,
286
286
  PREVIEW_GEMINI_FLASH_MODEL,
287
287
  PREVIEW_GEMINI_MODEL,
288
288
  PolicyIntegrityManager,
@@ -429,7 +429,7 @@ import {
429
429
  validatePlanContent,
430
430
  validatePlanPath,
431
431
  writeToStdout
432
- } from "./chunk-BE42OOYM.js";
432
+ } from "./chunk-IGGUR3YU.js";
433
433
  import "./chunk-6HI7VNOG.js";
434
434
  import "./chunk-TUDYL3X4.js";
435
435
  import "./chunk-IUUIT4SU.js";
@@ -16643,7 +16643,6 @@ function ModelDialog({ onClose }) {
16643
16643
  const preferredModel = config?.getModel() || GEMINI_MODEL_ALIAS_AUTO;
16644
16644
  const shouldShowPreviewModels = config?.getHasAccessToPreviewModel() ?? false;
16645
16645
  const useGemini31 = config?.getGemini31LaunchedSync?.() ?? false;
16646
- const useGemini31FlashLite = config?.getGemini31FlashLiteLaunchedSync?.() ?? false;
16647
16646
  const selectedAuthType = settings.merged.security.auth.selectedType;
16648
16647
  const useCustomToolModel = useGemini31 && selectedAuthType === AuthType.USE_GEMINI;
16649
16648
  const manualModelSelected = (0, import_react55.useMemo)(() => {
@@ -16658,9 +16657,9 @@ function ModelDialog({ onClose }) {
16658
16657
  PREVIEW_GEMINI_MODEL,
16659
16658
  PREVIEW_GEMINI_3_1_MODEL,
16660
16659
  PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
16661
- PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
16660
+ PREVIEW_GEMINI_FLASH_LITE_MODEL,
16662
16661
  PREVIEW_GEMINI_FLASH_MODEL
16663
- ];
16662
+ ].filter((m) => m !== "none");
16664
16663
  if (manualModels.includes(preferredModel)) {
16665
16664
  return preferredModel;
16666
16665
  }
@@ -16688,7 +16687,6 @@ function ModelDialog({ onClose }) {
16688
16687
  if (config?.getExperimentalDynamicModelConfiguration?.() === true && config.getModelConfigService) {
16689
16688
  const allOptions = config.getModelConfigService().getAvailableModelOptions({
16690
16689
  useGemini3_1: useGemini31,
16691
- useGemini3_1FlashLite: useGemini31FlashLite,
16692
16690
  useCustomTools: useCustomToolModel,
16693
16691
  hasAccessToPreview: shouldShowPreviewModels,
16694
16692
  hasAccessToProModel
@@ -16730,7 +16728,6 @@ function ModelDialog({ onClose }) {
16730
16728
  shouldShowPreviewModels,
16731
16729
  manualModelSelected,
16732
16730
  useGemini31,
16733
- useGemini31FlashLite,
16734
16731
  useCustomToolModel,
16735
16732
  hasAccessToProModel
16736
16733
  ]);
@@ -16738,7 +16735,6 @@ function ModelDialog({ onClose }) {
16738
16735
  if (config?.getExperimentalDynamicModelConfiguration?.() === true && config.getModelConfigService) {
16739
16736
  const allOptions = config.getModelConfigService().getAvailableModelOptions({
16740
16737
  useGemini3_1: useGemini31,
16741
- useGemini3_1FlashLite: useGemini31FlashLite,
16742
16738
  useCustomTools: useCustomToolModel,
16743
16739
  hasAccessToPreview: shouldShowPreviewModels,
16744
16740
  hasAccessToProModel
@@ -16756,15 +16752,15 @@ function ModelDialog({ onClose }) {
16756
16752
  title: getDisplayString(DEFAULT_GEMINI_MODEL),
16757
16753
  key: DEFAULT_GEMINI_MODEL
16758
16754
  },
16759
- {
16760
- value: DEFAULT_GEMINI_FLASH_MODEL,
16761
- title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
16762
- key: DEFAULT_GEMINI_FLASH_MODEL
16763
- },
16764
16755
  {
16765
16756
  value: DEFAULT_GEMINI_FLASH_LITE_MODEL,
16766
16757
  title: getDisplayString(DEFAULT_GEMINI_FLASH_LITE_MODEL),
16767
16758
  key: DEFAULT_GEMINI_FLASH_LITE_MODEL
16759
+ },
16760
+ {
16761
+ value: DEFAULT_GEMINI_FLASH_MODEL,
16762
+ title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
16763
+ key: DEFAULT_GEMINI_FLASH_MODEL
16768
16764
  }
16769
16765
  ];
16770
16766
  if (showGemmaModels) {
@@ -16796,11 +16792,11 @@ function ModelDialog({ onClose }) {
16796
16792
  key: PREVIEW_GEMINI_FLASH_MODEL
16797
16793
  }
16798
16794
  ];
16799
- if (useGemini31FlashLite) {
16795
+ if (PREVIEW_GEMINI_FLASH_LITE_MODEL !== "none") {
16800
16796
  previewOptions.push({
16801
- value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
16802
- title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
16803
- key: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL
16797
+ value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
16798
+ title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL),
16799
+ key: PREVIEW_GEMINI_FLASH_LITE_MODEL
16804
16800
  });
16805
16801
  }
16806
16802
  options2.unshift(...previewOptions);
@@ -16812,12 +16808,21 @@ function ModelDialog({ onClose }) {
16812
16808
  }, [
16813
16809
  shouldShowPreviewModels,
16814
16810
  useGemini31,
16815
- useGemini31FlashLite,
16816
16811
  useCustomToolModel,
16817
16812
  hasAccessToProModel,
16818
16813
  config
16819
16814
  ]);
16820
- const options = view === "main" ? mainOptions : manualOptions;
16815
+ const options = (0, import_react55.useMemo)(() => {
16816
+ const rawOptions = view === "main" ? mainOptions : manualOptions;
16817
+ const seen = /* @__PURE__ */ new Set();
16818
+ return rawOptions.filter((option) => {
16819
+ if (seen.has(option.value)) {
16820
+ return false;
16821
+ }
16822
+ seen.add(option.value);
16823
+ return true;
16824
+ });
16825
+ }, [view, mainOptions, manualOptions]);
16821
16826
  const initialIndex = (0, import_react55.useMemo)(() => {
16822
16827
  const idx = options.findIndex((option) => option.value === preferredModel);
16823
16828
  if (idx !== -1) {
@@ -31932,8 +31937,6 @@ import process11 from "node:process";
31932
31937
  function useSuspend({
31933
31938
  handleWarning,
31934
31939
  setRawMode,
31935
- refreshStatic,
31936
- setForceRerenderKey,
31937
31940
  shouldUseAlternateScreen
31938
31941
  }) {
31939
31942
  const [ctrlZPressCount, setCtrlZPressCount] = (0, import_react117.useState)(0);
@@ -31995,10 +31998,6 @@ function useSuspend({
31995
31998
  enableMouseEvents();
31996
31999
  }
31997
32000
  process11.stdout.emit("resize");
31998
- setImmediate(() => {
31999
- refreshStatic();
32000
- setForceRerenderKey((prev) => prev + 1);
32001
- });
32002
32001
  } finally {
32003
32002
  if (onResumeHandlerRef.current === onResume) {
32004
32003
  onResumeHandlerRef.current = null;
@@ -32021,14 +32020,7 @@ function useSuspend({
32021
32020
  ctrlZTimerRef.current = null;
32022
32021
  }, WARNING_PROMPT_DURATION_MS);
32023
32022
  }
32024
- }, [
32025
- ctrlZPressCount,
32026
- handleWarning,
32027
- setRawMode,
32028
- refreshStatic,
32029
- setForceRerenderKey,
32030
- shouldUseAlternateScreen
32031
- ]);
32023
+ }, [ctrlZPressCount, handleWarning, setRawMode, shouldUseAlternateScreen]);
32032
32024
  const handleSuspend = (0, import_react117.useCallback)(() => {
32033
32025
  setCtrlZPressCount((prev) => prev + 1);
32034
32026
  }, []);
@@ -32447,7 +32439,6 @@ var AppContainer = (props) => {
32447
32439
  }
32448
32440
  }, [mouseMode, setOptions]);
32449
32441
  const [corgiMode, setCorgiMode] = (0, import_react121.useState)(false);
32450
- const [forceRerenderKey, setForceRerenderKey] = (0, import_react121.useState)(0);
32451
32442
  const [debugMessage, setDebugMessage] = (0, import_react121.useState)("");
32452
32443
  const [quittingMessages, setQuittingMessages] = (0, import_react121.useState)(null);
32453
32444
  const [showPrivacyNotice, setShowPrivacyNotice] = (0, import_react121.useState)(false);
@@ -33562,7 +33553,6 @@ ${queuedText}` : queuedText;
33562
33553
  needsRestart: ideNeedsRestart,
33563
33554
  restartReason: ideTrustRestartReason
33564
33555
  } = useIdeTrustListener();
33565
- const isInitialMount = (0, import_react121.useRef)(true);
33566
33556
  useIncludeDirsTrust(config, isTrustedFolder, historyManager, setCustomDialog);
33567
33557
  const tabFocusTimeoutRef = (0, import_react121.useRef)(null);
33568
33558
  (0, import_react121.useEffect)(() => {
@@ -33605,8 +33595,6 @@ ${queuedText}` : queuedText;
33605
33595
  const { handleSuspend } = useSuspend({
33606
33596
  handleWarning,
33607
33597
  setRawMode,
33608
- refreshStatic,
33609
- setForceRerenderKey,
33610
33598
  shouldUseAlternateScreen
33611
33599
  });
33612
33600
  (0, import_react121.useEffect)(() => {
@@ -33614,18 +33602,6 @@ ${queuedText}` : queuedText;
33614
33602
  setShowIdeRestartPrompt(true);
33615
33603
  }
33616
33604
  }, [ideNeedsRestart]);
33617
- (0, import_react121.useEffect)(() => {
33618
- if (isInitialMount.current) {
33619
- isInitialMount.current = false;
33620
- return;
33621
- }
33622
- const handler = setTimeout(() => {
33623
- refreshStatic();
33624
- }, 300);
33625
- return () => {
33626
- clearTimeout(handler);
33627
- };
33628
- }, [terminalWidth, refreshStatic]);
33629
33605
  (0, import_react121.useEffect)(() => {
33630
33606
  const unsubscribe = ideContextStore.subscribe(setIdeContextState);
33631
33607
  setIdeContextState(ideContextStore.get());
@@ -33745,7 +33721,7 @@ ${queuedText}` : queuedText;
33745
33721
  if (keyMatchers["app.showErrorDetails" /* SHOW_ERROR_DETAILS */](key)) {
33746
33722
  if (settings.merged.general.devtools) {
33747
33723
  void (async () => {
33748
- const { toggleDevToolsPanel } = await import("./devtoolsService-64QE2V7E.js");
33724
+ const { toggleDevToolsPanel } = await import("./devtoolsService-F5XNH3LW.js");
33749
33725
  await toggleDevToolsPanel(
33750
33726
  config,
33751
33727
  showErrorDetails,
@@ -34554,7 +34530,7 @@ ${queuedText}` : queuedText;
34554
34530
  isExpanded,
34555
34531
  toggleExpansion,
34556
34532
  toggleAllExpansion,
34557
- children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(MouseProvider, { mouseEventsEnabled: mouseMode, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ScrollProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(App, {}, `app-${forceRerenderKey}`) }) }) })
34533
+ children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(MouseProvider, { mouseEventsEnabled: mouseMode, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ScrollProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(App, {}) }) }) })
34558
34534
  }
34559
34535
  )
34560
34536
  }
@@ -155,13 +155,13 @@ import {
155
155
  widestLineFromStyledChars,
156
156
  wordBreakStyledChars,
157
157
  wrapStyledChars
158
- } from "./chunk-CBT4PN4R.js";
158
+ } from "./chunk-H4PA4O33.js";
159
159
  import {
160
160
  appEvents
161
161
  } from "./chunk-5PS3AYFU.js";
162
162
  import {
163
163
  require_source
164
- } from "./chunk-OTLI6LZ3.js";
164
+ } from "./chunk-VG6I25WK.js";
165
165
  import {
166
166
  ACTIVE_SHELL_MAX_LINES,
167
167
  COMPACT_TOOL_SUBVIEW_MAX_LINES,
@@ -211,24 +211,24 @@ import {
211
211
  stringWidth,
212
212
  stripUnsafeCharacters,
213
213
  toCodePoints
214
- } from "./chunk-3K52543M.js";
214
+ } from "./chunk-SJJUCWYW.js";
215
215
  import {
216
216
  handleAutoUpdate,
217
217
  isDevelopment,
218
218
  relaunchApp,
219
219
  setUpdateHandler
220
- } from "./chunk-QUZ62PY7.js";
220
+ } from "./chunk-UJJ75A5I.js";
221
221
  import {
222
222
  isTodoList,
223
223
  mapCoreStatusToDisplayStatus,
224
224
  require_react
225
- } from "./chunk-XTG4JBIR.js";
225
+ } from "./chunk-AAGSPORB.js";
226
226
  import {
227
227
  registerCleanup,
228
228
  removeCleanup,
229
229
  runExitCleanup,
230
230
  setupTtyCheck
231
- } from "./chunk-ONQVFEHS.js";
231
+ } from "./chunk-UHMKT6SK.js";
232
232
  import {
233
233
  ACTIVATE_SKILL_TOOL_NAME,
234
234
  AGENT_TOOL_NAME,
@@ -270,8 +270,8 @@ import {
270
270
  OverageMenuShownEvent,
271
271
  OverageOptionSelectedEvent,
272
272
  PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
273
- PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
274
273
  PREVIEW_GEMINI_3_1_MODEL,
274
+ PREVIEW_GEMINI_FLASH_LITE_MODEL,
275
275
  PREVIEW_GEMINI_FLASH_MODEL,
276
276
  PREVIEW_GEMINI_MODEL,
277
277
  PolicyIntegrityManager,
@@ -410,7 +410,7 @@ import {
410
410
  validatePlanContent,
411
411
  validatePlanPath,
412
412
  writeToStdout
413
- } from "./chunk-SIXPHUVZ.js";
413
+ } from "./chunk-PN5LGMOT.js";
414
414
  import "./chunk-6HI7VNOG.js";
415
415
  import "./chunk-TUDYL3X4.js";
416
416
  import "./chunk-IUUIT4SU.js";
@@ -16624,7 +16624,6 @@ function ModelDialog({ onClose }) {
16624
16624
  const preferredModel = config?.getModel() || GEMINI_MODEL_ALIAS_AUTO;
16625
16625
  const shouldShowPreviewModels = config?.getHasAccessToPreviewModel() ?? false;
16626
16626
  const useGemini31 = config?.getGemini31LaunchedSync?.() ?? false;
16627
- const useGemini31FlashLite = config?.getGemini31FlashLiteLaunchedSync?.() ?? false;
16628
16627
  const selectedAuthType = settings.merged.security.auth.selectedType;
16629
16628
  const useCustomToolModel = useGemini31 && selectedAuthType === "gemini-api-key" /* USE_GEMINI */;
16630
16629
  const manualModelSelected = (0, import_react55.useMemo)(() => {
@@ -16639,9 +16638,9 @@ function ModelDialog({ onClose }) {
16639
16638
  PREVIEW_GEMINI_MODEL,
16640
16639
  PREVIEW_GEMINI_3_1_MODEL,
16641
16640
  PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
16642
- PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
16641
+ PREVIEW_GEMINI_FLASH_LITE_MODEL,
16643
16642
  PREVIEW_GEMINI_FLASH_MODEL
16644
- ];
16643
+ ].filter((m) => m !== "none");
16645
16644
  if (manualModels.includes(preferredModel)) {
16646
16645
  return preferredModel;
16647
16646
  }
@@ -16669,7 +16668,6 @@ function ModelDialog({ onClose }) {
16669
16668
  if (config?.getExperimentalDynamicModelConfiguration?.() === true && config.getModelConfigService) {
16670
16669
  const allOptions = config.getModelConfigService().getAvailableModelOptions({
16671
16670
  useGemini3_1: useGemini31,
16672
- useGemini3_1FlashLite: useGemini31FlashLite,
16673
16671
  useCustomTools: useCustomToolModel,
16674
16672
  hasAccessToPreview: shouldShowPreviewModels,
16675
16673
  hasAccessToProModel
@@ -16711,7 +16709,6 @@ function ModelDialog({ onClose }) {
16711
16709
  shouldShowPreviewModels,
16712
16710
  manualModelSelected,
16713
16711
  useGemini31,
16714
- useGemini31FlashLite,
16715
16712
  useCustomToolModel,
16716
16713
  hasAccessToProModel
16717
16714
  ]);
@@ -16719,7 +16716,6 @@ function ModelDialog({ onClose }) {
16719
16716
  if (config?.getExperimentalDynamicModelConfiguration?.() === true && config.getModelConfigService) {
16720
16717
  const allOptions = config.getModelConfigService().getAvailableModelOptions({
16721
16718
  useGemini3_1: useGemini31,
16722
- useGemini3_1FlashLite: useGemini31FlashLite,
16723
16719
  useCustomTools: useCustomToolModel,
16724
16720
  hasAccessToPreview: shouldShowPreviewModels,
16725
16721
  hasAccessToProModel
@@ -16737,15 +16733,15 @@ function ModelDialog({ onClose }) {
16737
16733
  title: getDisplayString(DEFAULT_GEMINI_MODEL),
16738
16734
  key: DEFAULT_GEMINI_MODEL
16739
16735
  },
16740
- {
16741
- value: DEFAULT_GEMINI_FLASH_MODEL,
16742
- title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
16743
- key: DEFAULT_GEMINI_FLASH_MODEL
16744
- },
16745
16736
  {
16746
16737
  value: DEFAULT_GEMINI_FLASH_LITE_MODEL,
16747
16738
  title: getDisplayString(DEFAULT_GEMINI_FLASH_LITE_MODEL),
16748
16739
  key: DEFAULT_GEMINI_FLASH_LITE_MODEL
16740
+ },
16741
+ {
16742
+ value: DEFAULT_GEMINI_FLASH_MODEL,
16743
+ title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
16744
+ key: DEFAULT_GEMINI_FLASH_MODEL
16749
16745
  }
16750
16746
  ];
16751
16747
  if (showGemmaModels) {
@@ -16777,11 +16773,11 @@ function ModelDialog({ onClose }) {
16777
16773
  key: PREVIEW_GEMINI_FLASH_MODEL
16778
16774
  }
16779
16775
  ];
16780
- if (useGemini31FlashLite) {
16776
+ if (PREVIEW_GEMINI_FLASH_LITE_MODEL !== "none") {
16781
16777
  previewOptions.push({
16782
- value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
16783
- title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
16784
- key: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL
16778
+ value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
16779
+ title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL),
16780
+ key: PREVIEW_GEMINI_FLASH_LITE_MODEL
16785
16781
  });
16786
16782
  }
16787
16783
  options2.unshift(...previewOptions);
@@ -16793,12 +16789,21 @@ function ModelDialog({ onClose }) {
16793
16789
  }, [
16794
16790
  shouldShowPreviewModels,
16795
16791
  useGemini31,
16796
- useGemini31FlashLite,
16797
16792
  useCustomToolModel,
16798
16793
  hasAccessToProModel,
16799
16794
  config
16800
16795
  ]);
16801
- const options = view === "main" ? mainOptions : manualOptions;
16796
+ const options = (0, import_react55.useMemo)(() => {
16797
+ const rawOptions = view === "main" ? mainOptions : manualOptions;
16798
+ const seen = /* @__PURE__ */ new Set();
16799
+ return rawOptions.filter((option) => {
16800
+ if (seen.has(option.value)) {
16801
+ return false;
16802
+ }
16803
+ seen.add(option.value);
16804
+ return true;
16805
+ });
16806
+ }, [view, mainOptions, manualOptions]);
16802
16807
  const initialIndex = (0, import_react55.useMemo)(() => {
16803
16808
  const idx = options.findIndex((option) => option.value === preferredModel);
16804
16809
  if (idx !== -1) {
@@ -31913,8 +31918,6 @@ import process11 from "node:process";
31913
31918
  function useSuspend({
31914
31919
  handleWarning,
31915
31920
  setRawMode,
31916
- refreshStatic,
31917
- setForceRerenderKey,
31918
31921
  shouldUseAlternateScreen
31919
31922
  }) {
31920
31923
  const [ctrlZPressCount, setCtrlZPressCount] = (0, import_react117.useState)(0);
@@ -31976,10 +31979,6 @@ function useSuspend({
31976
31979
  enableMouseEvents();
31977
31980
  }
31978
31981
  process11.stdout.emit("resize");
31979
- setImmediate(() => {
31980
- refreshStatic();
31981
- setForceRerenderKey((prev) => prev + 1);
31982
- });
31983
31982
  } finally {
31984
31983
  if (onResumeHandlerRef.current === onResume) {
31985
31984
  onResumeHandlerRef.current = null;
@@ -32002,14 +32001,7 @@ function useSuspend({
32002
32001
  ctrlZTimerRef.current = null;
32003
32002
  }, WARNING_PROMPT_DURATION_MS);
32004
32003
  }
32005
- }, [
32006
- ctrlZPressCount,
32007
- handleWarning,
32008
- setRawMode,
32009
- refreshStatic,
32010
- setForceRerenderKey,
32011
- shouldUseAlternateScreen
32012
- ]);
32004
+ }, [ctrlZPressCount, handleWarning, setRawMode, shouldUseAlternateScreen]);
32013
32005
  const handleSuspend = (0, import_react117.useCallback)(() => {
32014
32006
  setCtrlZPressCount((prev) => prev + 1);
32015
32007
  }, []);
@@ -32428,7 +32420,6 @@ var AppContainer = (props) => {
32428
32420
  }
32429
32421
  }, [mouseMode, setOptions]);
32430
32422
  const [corgiMode, setCorgiMode] = (0, import_react121.useState)(false);
32431
- const [forceRerenderKey, setForceRerenderKey] = (0, import_react121.useState)(0);
32432
32423
  const [debugMessage, setDebugMessage] = (0, import_react121.useState)("");
32433
32424
  const [quittingMessages, setQuittingMessages] = (0, import_react121.useState)(null);
32434
32425
  const [showPrivacyNotice, setShowPrivacyNotice] = (0, import_react121.useState)(false);
@@ -33543,7 +33534,6 @@ ${queuedText}` : queuedText;
33543
33534
  needsRestart: ideNeedsRestart,
33544
33535
  restartReason: ideTrustRestartReason
33545
33536
  } = useIdeTrustListener();
33546
- const isInitialMount = (0, import_react121.useRef)(true);
33547
33537
  useIncludeDirsTrust(config, isTrustedFolder, historyManager, setCustomDialog);
33548
33538
  const tabFocusTimeoutRef = (0, import_react121.useRef)(null);
33549
33539
  (0, import_react121.useEffect)(() => {
@@ -33586,8 +33576,6 @@ ${queuedText}` : queuedText;
33586
33576
  const { handleSuspend } = useSuspend({
33587
33577
  handleWarning,
33588
33578
  setRawMode,
33589
- refreshStatic,
33590
- setForceRerenderKey,
33591
33579
  shouldUseAlternateScreen
33592
33580
  });
33593
33581
  (0, import_react121.useEffect)(() => {
@@ -33595,18 +33583,6 @@ ${queuedText}` : queuedText;
33595
33583
  setShowIdeRestartPrompt(true);
33596
33584
  }
33597
33585
  }, [ideNeedsRestart]);
33598
- (0, import_react121.useEffect)(() => {
33599
- if (isInitialMount.current) {
33600
- isInitialMount.current = false;
33601
- return;
33602
- }
33603
- const handler = setTimeout(() => {
33604
- refreshStatic();
33605
- }, 300);
33606
- return () => {
33607
- clearTimeout(handler);
33608
- };
33609
- }, [terminalWidth, refreshStatic]);
33610
33586
  (0, import_react121.useEffect)(() => {
33611
33587
  const unsubscribe = ideContextStore.subscribe(setIdeContextState);
33612
33588
  setIdeContextState(ideContextStore.get());
@@ -33726,7 +33702,7 @@ ${queuedText}` : queuedText;
33726
33702
  if (keyMatchers["app.showErrorDetails" /* SHOW_ERROR_DETAILS */](key)) {
33727
33703
  if (settings.merged.general.devtools) {
33728
33704
  void (async () => {
33729
- const { toggleDevToolsPanel } = await import("./devtoolsService-DUEWJW52.js");
33705
+ const { toggleDevToolsPanel } = await import("./devtoolsService-Y4US3JKZ.js");
33730
33706
  await toggleDevToolsPanel(
33731
33707
  config,
33732
33708
  showErrorDetails,
@@ -34535,7 +34511,7 @@ ${queuedText}` : queuedText;
34535
34511
  isExpanded,
34536
34512
  toggleExpansion,
34537
34513
  toggleAllExpansion,
34538
- children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(MouseProvider, { mouseEventsEnabled: mouseMode, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ScrollProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(App, {}, `app-${forceRerenderKey}`) }) }) })
34514
+ children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(MouseProvider, { mouseEventsEnabled: mouseMode, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(ScrollProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(App, {}) }) }) })
34539
34515
  }
34540
34516
  )
34541
34517
  }