@google/gemini-cli 0.44.0 → 0.45.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/bundle/{chunk-BOYNQXWU.js → chunk-2O7YSVPU.js} +2 -2
  2. package/bundle/{chunk-CBT4PN4R.js → chunk-2RRZM3IR.js} +8 -8
  3. package/bundle/{chunk-BE42OOYM.js → chunk-4FNXKOEB.js} +377 -297
  4. package/bundle/{chunk-FOOWNGAB.js → chunk-4M3TG6ZU.js} +1 -1
  5. package/bundle/{chunk-XTG4JBIR.js → chunk-APSDEHHA.js} +1 -1
  6. package/bundle/{chunk-SIXPHUVZ.js → chunk-CWAXEILN.js} +423 -330
  7. package/bundle/{chunk-LM6XTSWQ.js → chunk-DMCSPKNM.js} +56 -2
  8. package/bundle/{chunk-M3EDSAPV.js → chunk-EZCW6IDX.js} +1 -1
  9. package/bundle/{chunk-3K52543M.js → chunk-GIXFMPPJ.js} +56 -2
  10. package/bundle/{chunk-TN4WXWFM.js → chunk-I7UI7NB6.js} +3 -3
  11. package/bundle/{chunk-OTLI6LZ3.js → chunk-IPQLMJS5.js} +1 -1
  12. package/bundle/{chunk-VUERI7WB.js → chunk-J4QUIOHJ.js} +8 -8
  13. package/bundle/{chunk-TW47A6FW.js → chunk-J7SEBVDD.js} +423 -330
  14. package/bundle/{chunk-QUZ62PY7.js → chunk-LUQGJPIY.js} +2 -2
  15. package/bundle/{chunk-N4SGO3W6.js → chunk-N4X4WHSW.js} +2 -2
  16. package/bundle/{chunk-EKUU3KNX.js → chunk-NOJPXYUJ.js} +1 -1
  17. package/bundle/{chunk-DALZZYPQ.js → chunk-OY6QYVTR.js} +1 -1
  18. package/bundle/{chunk-6W2Z7FTE.js → chunk-Q3UZDZZV.js} +3 -3
  19. package/bundle/{chunk-5CABHQOE.js → chunk-R5OZKB4U.js} +1 -1
  20. package/bundle/{chunk-7KIX5G5D.js → chunk-S4CJ6KAO.js} +3 -3
  21. package/bundle/{chunk-OLBOCZ5F.js → chunk-TH3OOWK4.js} +8 -8
  22. package/bundle/{chunk-7ZH745HC.js → chunk-VS2OY6HJ.js} +56 -2
  23. package/bundle/{chunk-G2L4VCSN.js → chunk-WPCNMQ6J.js} +1 -1
  24. package/bundle/{chunk-ONQVFEHS.js → chunk-Y5REX36P.js} +1 -1
  25. package/bundle/{cleanup-PDT5ATZB.js → cleanup-2WCUS5XU.js} +2 -2
  26. package/bundle/{cleanup-SF7XW2P3.js → cleanup-7FHLTEXT.js} +2 -2
  27. package/bundle/{cleanup-UW3DZLXP.js → cleanup-WGOZFAQJ.js} +2 -2
  28. package/bundle/{core-LN2S4IOX.js → core-LD6MHGD6.js} +3 -7
  29. package/bundle/{dist-J4RONYVV.js → core-SIRU2VWJ.js} +3 -7
  30. package/bundle/{devtoolsService-DUEWJW52.js → devtoolsService-4Y2RGEUE.js} +2 -2
  31. package/bundle/{devtoolsService-ZC7E4R2A.js → devtoolsService-F5XFL4BF.js} +2 -2
  32. package/bundle/{devtoolsService-64QE2V7E.js → devtoolsService-IANYOK3R.js} +2 -2
  33. package/bundle/{core-GW6VAL53.js → dist-67ZORME5.js} +3 -7
  34. package/bundle/docs/changelogs/index.md +15 -0
  35. package/bundle/docs/changelogs/latest.md +198 -262
  36. package/bundle/docs/changelogs/preview.md +202 -181
  37. package/bundle/docs/reference/configuration.md +24 -29
  38. package/bundle/{gemini-SSQIKHR2.js → gemini-24ENZ343.js} +41 -30
  39. package/bundle/{gemini-CMBH5YG6.js → gemini-5ZI322FJ.js} +41 -30
  40. package/bundle/{gemini-CSPRLMWN.js → gemini-74UML3PJ.js} +41 -30
  41. package/bundle/gemini.js +15 -10
  42. package/bundle/{interactiveCli-RDMZS6KL.js → interactiveCli-7GM3U7SA.js} +34 -58
  43. package/bundle/{interactiveCli-TOEU7LIO.js → interactiveCli-BVZLMTVC.js} +34 -58
  44. package/bundle/{interactiveCli-Q2A2JFLA.js → interactiveCli-XM5HDVD7.js} +34 -58
  45. package/bundle/{liteRtServerManager-ASKAVAO7.js → liteRtServerManager-3HS3VUPU.js} +4 -4
  46. package/bundle/{liteRtServerManager-6BWTXMUI.js → liteRtServerManager-6N5DYDEQ.js} +4 -4
  47. package/bundle/{liteRtServerManager-ZS3BCW53.js → liteRtServerManager-JVMDH3TN.js} +4 -4
  48. package/bundle/{oauth2-provider-SYRZDGL5.js → oauth2-provider-RUFABDNL.js} +1 -1
  49. package/bundle/{oauth2-provider-FGI6QDEM.js → oauth2-provider-U72EWZHQ.js} +1 -1
  50. package/bundle/{oauth2-provider-7JOVY727.js → oauth2-provider-WS7LUQ5V.js} +1 -1
  51. package/bundle/{start-KJCIH3GX.js → start-DJ6EBFEA.js} +6 -6
  52. package/bundle/{start-TU5WNP77.js → start-KOAGXRA2.js} +6 -6
  53. package/bundle/{start-47OYCVVA.js → start-XLIGOOW3.js} +6 -6
  54. package/package.json +1 -1
@@ -41,18 +41,18 @@ import {
41
41
  updateAllUpdatableExtensions,
42
42
  updateExtension,
43
43
  validateAuthMethod
44
- } from "./chunk-CBT4PN4R.js";
44
+ } from "./chunk-TH3OOWK4.js";
45
45
  import {
46
46
  appEvents
47
47
  } from "./chunk-5PS3AYFU.js";
48
48
  import {
49
49
  startCommand,
50
50
  startServer
51
- } from "./chunk-TN4WXWFM.js";
51
+ } from "./chunk-I7UI7NB6.js";
52
52
  import {
53
53
  exitCli,
54
54
  require_source
55
- } from "./chunk-OTLI6LZ3.js";
55
+ } from "./chunk-IPQLMJS5.js";
56
56
  import {
57
57
  DEFAULT_PORT,
58
58
  GEMMA_MODEL_NAME,
@@ -86,11 +86,11 @@ import {
86
86
  readServerProcessInfo,
87
87
  resolveGemmaConfig,
88
88
  saveModelChange
89
- } from "./chunk-3K52543M.js";
89
+ } from "./chunk-VS2OY6HJ.js";
90
90
  import {
91
91
  RELAUNCH_EXIT_CODE
92
- } from "./chunk-QUZ62PY7.js";
93
- import "./chunk-XTG4JBIR.js";
92
+ } from "./chunk-N4X4WHSW.js";
93
+ import "./chunk-APSDEHHA.js";
94
94
  import {
95
95
  cleanupCheckpoints,
96
96
  registerCleanup,
@@ -99,7 +99,7 @@ import {
99
99
  runExitCleanup,
100
100
  runSyncCleanup,
101
101
  setupSignalHandlers
102
- } from "./chunk-ONQVFEHS.js";
102
+ } from "./chunk-Y5REX36P.js";
103
103
  import {
104
104
  ASK_USER_TOOL_NAME,
105
105
  AuthType,
@@ -133,8 +133,8 @@ import {
133
133
  Logger,
134
134
  MCPServerConfig,
135
135
  PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
136
- PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
137
136
  PREVIEW_GEMINI_3_1_MODEL,
137
+ PREVIEW_GEMINI_FLASH_LITE_MODEL,
138
138
  PREVIEW_GEMINI_FLASH_MODEL,
139
139
  PREVIEW_GEMINI_MODEL,
140
140
  PolicyIntegrityManager,
@@ -231,7 +231,7 @@ import {
231
231
  updatePolicy,
232
232
  writeToStderr,
233
233
  writeToStdout
234
- } from "./chunk-SIXPHUVZ.js";
234
+ } from "./chunk-J7SEBVDD.js";
235
235
  import "./chunk-6HI7VNOG.js";
236
236
  import "./chunk-TUDYL3X4.js";
237
237
  import "./chunk-IUUIT4SU.js";
@@ -5417,12 +5417,12 @@ async function testMCPConnection(serverName, config, isTrusted, activeSettings)
5417
5417
  return "disconnected" /* DISCONNECTED */;
5418
5418
  }
5419
5419
  }
5420
- async function getServerStatus(serverName, server, isTrusted, activeSettings) {
5420
+ async function getServerStatus(serverName, server, isTrusted, activeSettings, consolidatedExcluded, consolidatedAllowed) {
5421
5421
  const mcpEnablementManager = McpServerEnablementManager.getInstance();
5422
5422
  const loadResult = await canLoadServer(serverName, {
5423
5423
  adminMcpEnabled: activeSettings.admin?.mcp?.enabled ?? true,
5424
- allowedList: activeSettings.mcp?.allowed,
5425
- excludedList: activeSettings.mcp?.excluded,
5424
+ allowedList: consolidatedAllowed,
5425
+ excludedList: consolidatedExcluded.length > 0 ? consolidatedExcluded : void 0,
5426
5426
  enablement: mcpEnablementManager.getEnablementCallbacks()
5427
5427
  });
5428
5428
  if (!loadResult.allowed) {
@@ -5462,6 +5462,8 @@ async function listMcpServers(loadedSettingsArg) {
5462
5462
  )
5463
5463
  );
5464
5464
  }
5465
+ const consolidatedExcluded = loadedSettings.getConsolidatedExcludedMcpServers();
5466
+ const consolidatedAllowed = loadedSettings.getConsolidatedAllowedMcpServers();
5465
5467
  debugLogger.log("Configured MCP servers:\n");
5466
5468
  for (const serverName of serverNames) {
5467
5469
  const server = mcpServers[serverName];
@@ -5469,7 +5471,9 @@ async function listMcpServers(loadedSettingsArg) {
5469
5471
  serverName,
5470
5472
  server,
5471
5473
  loadedSettings.isTrusted,
5472
- activeSettings
5474
+ activeSettings,
5475
+ consolidatedExcluded,
5476
+ consolidatedAllowed
5473
5477
  );
5474
5478
  let statusIndicator = "";
5475
5479
  let statusText = "";
@@ -7821,7 +7825,7 @@ async function loadSandboxConfig(settings, argv) {
7821
7825
  }
7822
7826
  const command2 = getSandboxCommand(sandboxValue);
7823
7827
  const packageJson = await getPackageJson(__dirname3);
7824
- const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.44.0-preview.0" ?? customImage ?? packageJson?.config?.sandboxImageUri;
7828
+ const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.45.0-preview.0" ?? customImage ?? packageJson?.config?.sandboxImageUri;
7825
7829
  const isNative = command2 === "windows-native" || command2 === "sandbox-exec" || command2 === "lxc";
7826
7830
  return command2 && (image || isNative) ? { enabled: true, allowedPaths, networkAccess, command: command2, image } : void 0;
7827
7831
  }
@@ -8236,7 +8240,12 @@ function isDebugMode(argv) {
8236
8240
  );
8237
8241
  }
8238
8242
  async function loadCliConfig(settings, sessionId, argv, options = {}) {
8239
- const { cwd = process3.cwd(), projectHooks, skipExtensions = false } = options;
8243
+ const {
8244
+ cwd = process3.cwd(),
8245
+ projectHooks,
8246
+ skipExtensions = false,
8247
+ loadedSettings
8248
+ } = options;
8240
8249
  const debugMode = isDebugMode(argv);
8241
8250
  const worktreeSettings = options.worktreeSettings ?? await resolveWorktreeSettings(cwd);
8242
8251
  if (argv.sandbox) {
@@ -8483,6 +8492,8 @@ async function loadCliConfig(settings, sessionId, argv, options = {}) {
8483
8492
  let profileSelector = void 0;
8484
8493
  if (settings.experimental?.stressTestProfile) {
8485
8494
  profileSelector = "stressTestProfile";
8495
+ } else if (settings.experimental?.powerUserProfile) {
8496
+ profileSelector = "powerUserProfile";
8486
8497
  } else if (settings.experimental?.generalistProfile || settings.experimental?.contextManagement) {
8487
8498
  profileSelector = "generalistProfile";
8488
8499
  }
@@ -8522,8 +8533,8 @@ async function loadCliConfig(settings, sessionId, argv, options = {}) {
8522
8533
  extensionsEnabled,
8523
8534
  agents: settings.agents,
8524
8535
  adminSkillsEnabled,
8525
- allowedMcpServers: mcpEnabled ? argv.allowedMcpServerNames ?? settings.mcp?.allowed : void 0,
8526
- blockedMcpServers: mcpEnabled ? argv.allowedMcpServerNames ? void 0 : settings.mcp?.excluded : void 0,
8536
+ allowedMcpServers: mcpEnabled ? argv.allowedMcpServerNames ?? (loadedSettings ? loadedSettings.getConsolidatedAllowedMcpServers() : settings.mcp?.allowed) : void 0,
8537
+ blockedMcpServers: mcpEnabled ? argv.allowedMcpServerNames ? void 0 : loadedSettings ? loadedSettings.getConsolidatedExcludedMcpServers() : settings.mcp?.excluded : void 0,
8527
8538
  blockedEnvironmentVariables: settings.security?.environmentVariableRedaction?.blocked,
8528
8539
  allowedEnvironmentVariables: settings.security?.environmentVariableRedaction?.allowed,
8529
8540
  enableEnvironmentVariableRedaction: settings.security?.environmentVariableRedaction?.enabled,
@@ -10222,7 +10233,7 @@ async function runNonInteractive({
10222
10233
  }
10223
10234
  });
10224
10235
  if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
10225
- const { setupInitialActivityLogger } = await import("./devtoolsService-DUEWJW52.js");
10236
+ const { setupInitialActivityLogger } = await import("./devtoolsService-F5XFL4BF.js");
10226
10237
  setupInitialActivityLogger(config);
10227
10238
  }
10228
10239
  const { stdout: workingStdout } = createWorkingStdio();
@@ -10693,7 +10704,7 @@ async function runNonInteractive2(params) {
10693
10704
  }
10694
10705
  });
10695
10706
  if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
10696
- const { setupInitialActivityLogger } = await import("./devtoolsService-DUEWJW52.js");
10707
+ const { setupInitialActivityLogger } = await import("./devtoolsService-F5XFL4BF.js");
10697
10708
  setupInitialActivityLogger(config);
10698
10709
  }
10699
10710
  const { stdout: workingStdout } = createWorkingStdio();
@@ -13637,13 +13648,11 @@ function buildAvailableModels(config, settings) {
13637
13648
  const preferredModel = config.getModel() || GEMINI_MODEL_ALIAS_AUTO;
13638
13649
  const shouldShowPreviewModels = config.getHasAccessToPreviewModel();
13639
13650
  const useGemini31 = config.getGemini31LaunchedSync?.() ?? false;
13640
- const useGemini31FlashLite = config.getGemini31FlashLiteLaunchedSync?.() ?? false;
13641
13651
  const selectedAuthType = settings.merged.security.auth.selectedType;
13642
13652
  const useCustomToolModel = useGemini31 && selectedAuthType === "gemini-api-key" /* USE_GEMINI */;
13643
13653
  if (config.getExperimentalDynamicModelConfiguration?.() === true && config.getModelConfigService) {
13644
13654
  const options = config.getModelConfigService().getAvailableModelOptions({
13645
13655
  useGemini3_1: useGemini31,
13646
- useGemini3_1FlashLite: useGemini31FlashLite,
13647
13656
  useCustomTools: useCustomToolModel,
13648
13657
  hasAccessToPreview: shouldShowPreviewModels
13649
13658
  });
@@ -13689,10 +13698,10 @@ function buildAvailableModels(config, settings) {
13689
13698
  title: getDisplayString(PREVIEW_GEMINI_FLASH_MODEL)
13690
13699
  }
13691
13700
  ];
13692
- if (useGemini31FlashLite) {
13701
+ if (PREVIEW_GEMINI_FLASH_LITE_MODEL !== "none") {
13693
13702
  previewOptions.push({
13694
- value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
13695
- title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL)
13703
+ value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
13704
+ title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL)
13696
13705
  });
13697
13706
  }
13698
13707
  manualOptions.unshift(...previewOptions);
@@ -15423,7 +15432,7 @@ async function relaunchOnExitCode(runner) {
15423
15432
  while (true) {
15424
15433
  try {
15425
15434
  const exitCode = await runner();
15426
- if (exitCode !== RELAUNCH_EXIT_CODE) {
15435
+ if (process.platform === "android" || exitCode !== RELAUNCH_EXIT_CODE) {
15427
15436
  process.exit(exitCode);
15428
15437
  }
15429
15438
  } catch (error) {
@@ -15883,7 +15892,7 @@ async function resolveSessionId(resumeArg, sessionIdArg, sessionFileArg) {
15883
15892
  }
15884
15893
  }
15885
15894
  async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), resumedSessionData, initializationResult) {
15886
- const { startInteractiveUI: doStartUI } = await import("./interactiveCli-TOEU7LIO.js");
15895
+ const { startInteractiveUI: doStartUI } = await import("./interactiveCli-BVZLMTVC.js");
15887
15896
  await doStartUI(
15888
15897
  config,
15889
15898
  settings,
@@ -15997,7 +16006,8 @@ async function main() {
15997
16006
  }
15998
16007
  const partialConfig = await loadCliConfig(settings.merged, sessionId, argv, {
15999
16008
  projectHooks: settings.workspace.settings.hooks,
16000
- skipExtensions: true
16009
+ skipExtensions: true,
16010
+ loadedSettings: settings
16001
16011
  });
16002
16012
  adminControlsListner.setConfig(partialConfig);
16003
16013
  let initialAuthFailed = false;
@@ -16084,13 +16094,14 @@ ${finalArgs[promptIndex + 1]}`;
16084
16094
  const loadConfigHandle = startupProfiler.start("load_cli_config");
16085
16095
  config = await loadCliConfig(settings.merged, sessionId, argv, {
16086
16096
  projectHooks: settings.workspace.settings.hooks,
16087
- worktreeSettings: worktreeInfo
16097
+ worktreeSettings: worktreeInfo,
16098
+ loadedSettings: settings
16088
16099
  });
16089
16100
  loadConfigHandle?.end();
16090
16101
  await config.storage.initialize();
16091
16102
  adminControlsListner.setConfig(config);
16092
16103
  if (config.isInteractive() && settings.merged.general.devtools) {
16093
- const { setupInitialActivityLogger } = await import("./devtoolsService-DUEWJW52.js");
16104
+ const { setupInitialActivityLogger } = await import("./devtoolsService-F5XFL4BF.js");
16094
16105
  setupInitialActivityLogger(config);
16095
16106
  }
16096
16107
  registerTelemetryConfig(config);
@@ -16149,7 +16160,7 @@ ${finalArgs[promptIndex + 1]}`;
16149
16160
  const initAppHandle = startupProfiler.start("initialize_app");
16150
16161
  const initializationResult = await initializeApp(config, settings);
16151
16162
  initAppHandle?.end();
16152
- import("./liteRtServerManager-ASKAVAO7.js").then(({ LiteRtServerManager }) => {
16163
+ import("./liteRtServerManager-3HS3VUPU.js").then(({ LiteRtServerManager }) => {
16153
16164
  const mergedGemma = settings.merged.experimental?.gemmaModelRouter;
16154
16165
  if (!mergedGemma) return;
16155
16166
  const userGemma = settings.forScope("User" /* User */).settings.experimental?.gemmaModelRouter;
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-2O7YSVPU.js";
8
+ import "./chunk-NOJPXYUJ.js";
9
+ import "./chunk-R5OZKB4U.js";
10
+ import "./chunk-4FNXKOEB.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-24ENZ343.js");
118
+ const { FatalError, writeToStderr } = await import("./dist-67ZORME5.js");
119
+ const { runExitCleanup } = await import("./cleanup-2WCUS5XU.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-J4QUIOHJ.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-EZCW6IDX.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-DMCSPKNM.js";
215
215
  import {
216
216
  handleAutoUpdate,
217
217
  isDevelopment,
218
218
  relaunchApp,
219
219
  setUpdateHandler
220
- } from "./chunk-N4SGO3W6.js";
220
+ } from "./chunk-2O7YSVPU.js";
221
221
  import {
222
222
  isTodoList,
223
223
  mapCoreStatusToDisplayStatus,
224
224
  require_react
225
- } from "./chunk-EKUU3KNX.js";
225
+ } from "./chunk-NOJPXYUJ.js";
226
226
  import {
227
227
  registerCleanup,
228
228
  removeCleanup,
229
229
  runExitCleanup,
230
230
  setupTtyCheck
231
- } from "./chunk-DALZZYPQ.js";
231
+ } from "./chunk-R5OZKB4U.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-4FNXKOEB.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) {
@@ -30014,7 +30019,7 @@ function useVim(buffer, onSubmit) {
30014
30019
  return true;
30015
30020
  }
30016
30021
  dispatch({ type: "CLEAR_PENDING_STATES" });
30017
- if (normalizedKey.insertable) {
30022
+ if (normalizedKey.insertable && !normalizedKey.ctrl && !normalizedKey.alt && !normalizedKey.cmd) {
30018
30023
  return true;
30019
30024
  }
30020
30025
  return false;
@@ -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-IANYOK3R.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
  }