@google/gemini-cli 0.47.0-nightly.20260609.g0567b25a2 → 0.47.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 (67) hide show
  1. package/bundle/builtin/antigravity-support/SKILL.md +58 -0
  2. package/bundle/{chunk-2CIX5Q6A.js → chunk-2KWNCPLL.js} +2 -2
  3. package/bundle/{chunk-EMUTS6IK.js → chunk-2Q4476DN.js} +1 -1
  4. package/bundle/{chunk-WKBFPVMG.js → chunk-4GCG36AT.js} +1 -1
  5. package/bundle/{chunk-DCTGU54Z.js → chunk-6KE4CNFS.js} +1 -1
  6. package/bundle/{chunk-GCIN3SBW.js → chunk-6LT65VVT.js} +1 -1
  7. package/bundle/{chunk-2QJY5FON.js → chunk-BBNWCBRR.js} +1 -1
  8. package/bundle/{chunk-EHNTNNG7.js → chunk-CNIL75JT.js} +2 -2
  9. package/bundle/{chunk-UWRWOGGE.js → chunk-DXBHZ3TN.js} +8 -9
  10. package/bundle/{chunk-PL643LQI.js → chunk-FBADLP6O.js} +1 -1
  11. package/bundle/{chunk-AAUTETSH.js → chunk-FXI4U6PC.js} +2 -2
  12. package/bundle/{chunk-HP476PBA.js → chunk-HQ3WN6AK.js} +2 -2
  13. package/bundle/{chunk-I5A5X2DX.js → chunk-HR72IGHE.js} +165 -114
  14. package/bundle/{chunk-C6JF7KUM.js → chunk-JW7ZLS43.js} +474 -369
  15. package/bundle/{chunk-LUEQKTRO.js → chunk-L2MPIDNJ.js} +1 -1
  16. package/bundle/{chunk-LRU4AG5Z.js → chunk-LYEXSPQM.js} +6 -9
  17. package/bundle/{chunk-IZHHDHX6.js → chunk-M6POVUEU.js} +2 -2
  18. package/bundle/{chunk-BN4LGSIP.js → chunk-OF4FXFRD.js} +165 -114
  19. package/bundle/{chunk-QRLOGZOF.js → chunk-QIXRZAM6.js} +14529 -7889
  20. package/bundle/{chunk-AEYK5HWH.js → chunk-SBG6CUNK.js} +453 -355
  21. package/bundle/{chunk-4HDJHI5R.js → chunk-TG7JXYWL.js} +3 -3
  22. package/bundle/{chunk-IZ2I7Q2U.js → chunk-VIAOQQWI.js} +3 -3
  23. package/bundle/{chunk-2T3UO3GD.js → chunk-WSPZQ6DG.js} +212 -174
  24. package/bundle/{chunk-J3HLXOXQ.js → chunk-YYVEOJOI.js} +1 -1
  25. package/bundle/{chunk-BQBAQ2Q3.js → chunk-ZH37ZXAY.js} +3 -3
  26. package/bundle/{cleanup-FLYMRJHN.js → cleanup-3B3REU73.js} +2 -2
  27. package/bundle/{cleanup-MGYBYNJH.js → cleanup-GEKT3TY7.js} +2 -2
  28. package/bundle/{cleanup-Q3IUYRFR.js → cleanup-YLDEE5FO.js} +2 -2
  29. package/bundle/{core-HEUZ5HF5.js → core-HFORMEVY.js} +9 -1
  30. package/bundle/{dist-CE4H7NUW.js → core-ZX62TRQZ.js} +9 -1
  31. package/bundle/{devtoolsService-2HWL5NFR.js → devtoolsService-PHAD4RFS.js} +2 -2
  32. package/bundle/{devtoolsService-G6QHDK2R.js → devtoolsService-VQNGMCMU.js} +2 -2
  33. package/bundle/{devtoolsService-6L5OLG5H.js → devtoolsService-XFCKGUDN.js} +3 -4
  34. package/bundle/{dist-I7YW7PD5.js → dist-UINE5I5P.js} +9 -1
  35. package/bundle/{gemini-HILUTGAC.js → gemini-FOEJAXHE.js} +14 -14
  36. package/bundle/{gemini-COTZTFOT.js → gemini-PDNY7O5B.js} +14 -14
  37. package/bundle/{gemini-JJPFCGRS.js → gemini-VTIJURKH.js} +196 -212
  38. package/bundle/gemini.js +7 -7
  39. package/bundle/{interactiveCli-LZI7JXIK.js → interactiveCli-5LZR6JYR.js} +44 -20
  40. package/bundle/{interactiveCli-ZLNOSGX5.js → interactiveCli-EEVGQBIN.js} +44 -20
  41. package/bundle/{interactiveCli-4HTU7R6H.js → interactiveCli-ZHNRZVK3.js} +331 -326
  42. package/bundle/{liteRtServerManager-3E5GRFLO.js → liteRtServerManager-CCZNRFEE.js} +4 -4
  43. package/bundle/{liteRtServerManager-76QFKETH.js → liteRtServerManager-L63JEWQK.js} +4 -4
  44. package/bundle/{liteRtServerManager-OJD3HSWN.js → liteRtServerManager-QEGKNHBK.js} +4 -4
  45. package/bundle/{oauth2-provider-XWGCFTD2.js → oauth2-provider-7VJY4VWP.js} +1 -1
  46. package/bundle/{oauth2-provider-HPJFIAG6.js → oauth2-provider-D3K72R73.js} +1 -1
  47. package/bundle/{oauth2-provider-HWRKMSF7.js → oauth2-provider-NJB6EG2W.js} +72 -38
  48. package/bundle/{start-3DT6X44L.js → start-EDWM2AMD.js} +6 -6
  49. package/bundle/{start-BX2QHAEC.js → start-RGSZYXG3.js} +6 -6
  50. package/bundle/{start-Q4WEY7Z6.js → start-TZSG66O4.js} +6 -6
  51. package/package.json +1 -1
  52. package/bundle/chunk-3JPECJG6.js +0 -398
  53. package/bundle/chunk-DCUISZSY.js +0 -118
  54. package/bundle/chunk-H6BD5ZKD.js +0 -512
  55. package/bundle/chunk-MSM65VWS.js +0 -17320
  56. package/bundle/chunk-OT53DK2V.js +0 -154
  57. package/bundle/chunk-SO6BWWGF.js +0 -81685
  58. package/bundle/chunk-WVAJOJDO.js +0 -1571
  59. package/bundle/chunk-ZZMWIUE5.js +0 -394571
  60. package/bundle/cleanup-UN4WQ3DJ.js +0 -32
  61. package/bundle/devtoolsService-LPQTHDXY.js +0 -856
  62. package/bundle/dist-SYYTVWDP.js +0 -2140
  63. package/bundle/gemini-NQMNY7AW.js +0 -16409
  64. package/bundle/interactiveCli-6NPEXVAG.js +0 -34742
  65. package/bundle/liteRtServerManager-OXYRVBA4.js +0 -65
  66. package/bundle/oauth2-provider-WJGZJ73D.js +0 -235
  67. package/bundle/start-Z54XBIIY.js +0 -18
package/bundle/gemini.js CHANGED
@@ -4,10 +4,10 @@ import {
4
4
  RELAUNCH_EXIT_CODE,
5
5
  getScriptArgs,
6
6
  getSpawnConfig
7
- } from "./chunk-EHNTNNG7.js";
8
- import "./chunk-H6BD5ZKD.js";
9
- import "./chunk-EMUTS6IK.js";
10
- import "./chunk-QRLOGZOF.js";
7
+ } from "./chunk-CNIL75JT.js";
8
+ import "./chunk-FBADLP6O.js";
9
+ import "./chunk-YYVEOJOI.js";
10
+ import "./chunk-SBG6CUNK.js";
11
11
  import "./chunk-6HI7VNOG.js";
12
12
  import "./chunk-TUDYL3X4.js";
13
13
  import "./chunk-IUUIT4SU.js";
@@ -115,9 +115,9 @@ ${error instanceof Error ? error.stack ?? error.message : String(error)}
115
115
  }
116
116
  }
117
117
  } else {
118
- const { main } = await import("./gemini-NQMNY7AW.js");
119
- const { FatalError, writeToStderr } = await import("./dist-SYYTVWDP.js");
120
- const { runExitCleanup } = await import("./cleanup-FLYMRJHN.js");
118
+ const { main } = await import("./gemini-PDNY7O5B.js");
119
+ const { FatalError, writeToStderr } = await import("./dist-UINE5I5P.js");
120
+ const { runExitCleanup } = await import("./cleanup-3B3REU73.js");
121
121
  main().catch(async (error) => {
122
122
  const cleanupTimeout = setTimeout(() => {
123
123
  writeToStderr("Cleanup timed out, forcing exit...\n");
@@ -72,6 +72,7 @@ import {
72
72
  formatCommand,
73
73
  formatDuration,
74
74
  formatResetTime,
75
+ getAntigravityInstallInfo,
75
76
  getDialogRestartRequiredSettings,
76
77
  getDialogSettingKeys,
77
78
  getDisplayValue,
@@ -155,13 +156,13 @@ import {
155
156
  widestLineFromStyledChars,
156
157
  wordBreakStyledChars,
157
158
  wrapStyledChars
158
- } from "./chunk-BN4LGSIP.js";
159
+ } from "./chunk-WSPZQ6DG.js";
159
160
  import {
160
161
  appEvents
161
162
  } from "./chunk-5PS3AYFU.js";
162
163
  import {
163
164
  require_source
164
- } from "./chunk-DCTGU54Z.js";
165
+ } from "./chunk-6LT65VVT.js";
165
166
  import {
166
167
  ACTIVE_SHELL_MAX_LINES,
167
168
  COMPACT_TOOL_SUBVIEW_MAX_LINES,
@@ -211,24 +212,24 @@ import {
211
212
  stringWidth,
212
213
  stripUnsafeCharacters,
213
214
  toCodePoints
214
- } from "./chunk-AAUTETSH.js";
215
+ } from "./chunk-FXI4U6PC.js";
215
216
  import {
216
217
  handleAutoUpdate,
217
218
  isDevelopment,
218
219
  relaunchApp,
219
220
  setUpdateHandler
220
- } from "./chunk-IZHHDHX6.js";
221
+ } from "./chunk-M6POVUEU.js";
221
222
  import {
222
223
  isTodoList,
223
224
  mapCoreStatusToDisplayStatus,
224
225
  require_react
225
- } from "./chunk-WKBFPVMG.js";
226
+ } from "./chunk-DXBHZ3TN.js";
226
227
  import {
227
228
  registerCleanup,
228
229
  removeCleanup,
229
230
  runExitCleanup,
230
231
  setupTtyCheck
231
- } from "./chunk-2QJY5FON.js";
232
+ } from "./chunk-BBNWCBRR.js";
232
233
  import {
233
234
  ACTIVATE_SKILL_TOOL_NAME,
234
235
  AGENT_TOOL_NAME,
@@ -410,7 +411,7 @@ import {
410
411
  validatePlanContent,
411
412
  validatePlanPath,
412
413
  writeToStdout
413
- } from "./chunk-C6JF7KUM.js";
414
+ } from "./chunk-QIXRZAM6.js";
414
415
  import "./chunk-6HI7VNOG.js";
415
416
  import "./chunk-TUDYL3X4.js";
416
417
  import "./chunk-IUUIT4SU.js";
@@ -505,7 +506,7 @@ var require_prop_types = __commonJS({
505
506
  var require_gradient_string = __commonJS({
506
507
  "node_modules/gradient-string/index.js"(exports, module) {
507
508
  "use strict";
508
- var chalk4 = require_source();
509
+ var chalk5 = require_source();
509
510
  var tinygradient2 = require_tinygradient();
510
511
  var forbiddenChars = /\s/g;
511
512
  function InitGradient(...args) {
@@ -521,7 +522,7 @@ var require_gradient_string = __commonJS({
521
522
  const colors = getColors(gradient, options, colorsCount);
522
523
  let result = "";
523
524
  for (const s of str) {
524
- result += s.match(forbiddenChars) ? s : chalk4.hex(colors.shift().toHex())(s);
525
+ result += s.match(forbiddenChars) ? s : chalk5.hex(colors.shift().toHex())(s);
525
526
  }
526
527
  return result;
527
528
  }
@@ -535,7 +536,7 @@ var require_gradient_string = __commonJS({
535
536
  const lineColors = colors.slice(0);
536
537
  let lineResult = "";
537
538
  for (const l of line) {
538
- lineResult += chalk4.hex(lineColors.shift().toHex())(l);
539
+ lineResult += chalk5.hex(lineColors.shift().toHex())(l);
539
540
  }
540
541
  results.push(lineResult);
541
542
  }
@@ -10222,6 +10223,7 @@ var Banner = ({ bannerText, isWarning, width }) => {
10222
10223
 
10223
10224
  // packages/cli/src/ui/hooks/useBanner.ts
10224
10225
  var import_react30 = __toESM(require_react(), 1);
10226
+ var import_chalk2 = __toESM(require_source(), 1);
10225
10227
  import crypto from "node:crypto";
10226
10228
  var DEFAULT_MAX_BANNER_SHOWN_COUNT = 5;
10227
10229
  var sessionIncrementedBanners = /* @__PURE__ */ new Set();
@@ -10235,7 +10237,15 @@ function useBanner(bannerData) {
10235
10237
  const currentBannerCount = bannerCounts[hashedText] || 0;
10236
10238
  const showBanner = activeText !== "" && (currentBannerCount < DEFAULT_MAX_BANNER_SHOWN_COUNT || activeText.includes("Antigravity"));
10237
10239
  const rawBannerText = showBanner ? activeText : "";
10238
- const bannerText = rawBannerText.replace(/\\n/g, "\n");
10240
+ let bannerText = rawBannerText.replace(/\\n/g, "\n");
10241
+ if (showBanner && activeText.includes("Antigravity")) {
10242
+ const info = getAntigravityInstallInfo();
10243
+ if (info) {
10244
+ bannerText += `
10245
+
10246
+ To install run "${import_chalk2.default.bold(info.installCmd)}"`;
10247
+ }
10248
+ }
10239
10249
  (0, import_react30.useEffect)(() => {
10240
10250
  if (showBanner && activeText) {
10241
10251
  if (!sessionIncrementedBanners.has(activeText)) {
@@ -13556,7 +13566,7 @@ var import_react44 = __toESM(require_react(), 1);
13556
13566
 
13557
13567
  // packages/cli/src/ui/components/shared/BaseSettingsDialog.tsx
13558
13568
  var import_react43 = __toESM(require_react(), 1);
13559
- var import_chalk2 = __toESM(require_source(), 1);
13569
+ var import_chalk3 = __toESM(require_source(), 1);
13560
13570
 
13561
13571
  // packages/cli/src/ui/hooks/useSettingsNavigation.ts
13562
13572
  var import_react41 = __toESM(require_react(), 1);
@@ -14024,9 +14034,9 @@ function BaseSettingsDialog({
14024
14034
  editCursorPos + 1
14025
14035
  );
14026
14036
  const afterCursor = cpSlice(editBuffer, editCursorPos + 1);
14027
- displayValue = beforeCursor + import_chalk2.default.inverse(atCursor) + afterCursor;
14037
+ displayValue = beforeCursor + import_chalk3.default.inverse(atCursor) + afterCursor;
14028
14038
  } else if (editCursorPos >= cpLen(editBuffer)) {
14029
- displayValue = editBuffer + (cursorVisible ? import_chalk2.default.inverse(" ") : " ");
14039
+ displayValue = editBuffer + (cursorVisible ? import_chalk3.default.inverse(" ") : " ");
14030
14040
  } else {
14031
14041
  displayValue = editBuffer;
14032
14042
  }
@@ -18439,7 +18449,7 @@ var ListeningIndicator = ({
18439
18449
  };
18440
18450
 
18441
18451
  // packages/cli/src/ui/components/InputPrompt.tsx
18442
- var import_chalk3 = __toESM(require_source(), 1);
18452
+ var import_chalk4 = __toESM(require_source(), 1);
18443
18453
 
18444
18454
  // packages/cli/src/ui/hooks/useShellHistory.ts
18445
18455
  var import_react63 = __toESM(require_react(), 1);
@@ -22096,7 +22106,7 @@ var InputPrompt = ({
22096
22106
  relCol - segStart,
22097
22107
  relCol - segStart + 1
22098
22108
  );
22099
- const highlighted = showCursor ? import_chalk3.default.inverse(charToHighlight) : charToHighlight;
22109
+ const highlighted = showCursor ? import_chalk4.default.inverse(charToHighlight) : charToHighlight;
22100
22110
  display = cpSlice(display, 0, relCol - segStart) + highlighted + cpSlice(display, relCol - segStart + 1);
22101
22111
  }
22102
22112
  charCount = segEnd;
@@ -22111,7 +22121,7 @@ var InputPrompt = ({
22111
22121
  const currentLineGhost = isOnCursorLine ? inlineGhost : "";
22112
22122
  if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText) && !currentLineGhost) {
22113
22123
  renderedLine.push(
22114
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { children: showCursor ? import_chalk3.default.inverse(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
22124
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { children: showCursor ? import_chalk4.default.inverse(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
22115
22125
  );
22116
22126
  }
22117
22127
  const showCursorBeforeGhost = focus && isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText) && currentLineGhost;
@@ -22125,7 +22135,7 @@ var InputPrompt = ({
22125
22135
  ),
22126
22136
  children: [
22127
22137
  renderedLine,
22128
- showCursorBeforeGhost && (showCursor ? import_chalk3.default.inverse(" ") : " "),
22138
+ showCursorBeforeGhost && (showCursor ? import_chalk4.default.inverse(" ") : " "),
22129
22139
  currentLineGhost && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.text.secondary, children: currentLineGhost })
22130
22140
  ]
22131
22141
  }
@@ -22260,7 +22270,7 @@ var InputPrompt = ({
22260
22270
  terminalCursorFocus: showCursor,
22261
22271
  terminalCursorPosition: 0,
22262
22272
  children: [
22263
- import_chalk3.default.inverse(effectivePlaceholder.slice(0, 1)),
22273
+ import_chalk4.default.inverse(effectivePlaceholder.slice(0, 1)),
22264
22274
  /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.text.secondary, children: effectivePlaceholder.slice(1) })
22265
22275
  ]
22266
22276
  }
@@ -33718,7 +33728,7 @@ ${queuedText}` : queuedText;
33718
33728
  if (keyMatchers["app.showErrorDetails" /* SHOW_ERROR_DETAILS */](key)) {
33719
33729
  if (settings.merged.general.devtools) {
33720
33730
  void (async () => {
33721
- const { toggleDevToolsPanel } = await import("./devtoolsService-G6QHDK2R.js");
33731
+ const { toggleDevToolsPanel } = await import("./devtoolsService-XFCKGUDN.js");
33722
33732
  await toggleDevToolsPanel(
33723
33733
  config,
33724
33734
  showErrorDetails,
@@ -34623,6 +34633,14 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
34623
34633
  }
34624
34634
  });
34625
34635
  const cleanupUnmount = () => instance.unmount();
34636
+ const cleanupNonResumableCurrentSession = async () => {
34637
+ try {
34638
+ await config.getGeminiClient()?.getChatRecordingService()?.deleteCurrentSessionIfNotResumableAsync();
34639
+ } catch (e) {
34640
+ debugLogger.error("Error cleaning up non-resumable session:", e);
34641
+ }
34642
+ };
34643
+ registerCleanup(cleanupNonResumableCurrentSession);
34626
34644
  registerCleanup(cleanupUnmount);
34627
34645
  const cleanupTtyCheck = setupTtyCheck();
34628
34646
  registerCleanup(cleanupTtyCheck);
@@ -34637,6 +34655,12 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
34637
34655
  } catch (e) {
34638
34656
  debugLogger.error("Error cleaning up console patcher:", e);
34639
34657
  }
34658
+ try {
34659
+ removeCleanup(cleanupNonResumableCurrentSession);
34660
+ await cleanupNonResumableCurrentSession();
34661
+ } catch (e) {
34662
+ debugLogger.error("Error removing non-resumable session cleanup:", e);
34663
+ }
34640
34664
  try {
34641
34665
  removeCleanup(cleanupUnmount);
34642
34666
  instance.unmount();
@@ -72,6 +72,7 @@ import {
72
72
  formatCommand,
73
73
  formatDuration,
74
74
  formatResetTime,
75
+ getAntigravityInstallInfo,
75
76
  getDialogRestartRequiredSettings,
76
77
  getDialogSettingKeys,
77
78
  getDisplayValue,
@@ -155,13 +156,13 @@ import {
155
156
  widestLineFromStyledChars,
156
157
  wordBreakStyledChars,
157
158
  wrapStyledChars
158
- } from "./chunk-2T3UO3GD.js";
159
+ } from "./chunk-HR72IGHE.js";
159
160
  import {
160
161
  appEvents
161
162
  } from "./chunk-5PS3AYFU.js";
162
163
  import {
163
164
  require_source
164
- } from "./chunk-LUEQKTRO.js";
165
+ } from "./chunk-6KE4CNFS.js";
165
166
  import {
166
167
  ACTIVE_SHELL_MAX_LINES,
167
168
  COMPACT_TOOL_SUBVIEW_MAX_LINES,
@@ -211,24 +212,24 @@ import {
211
212
  stringWidth,
212
213
  stripUnsafeCharacters,
213
214
  toCodePoints
214
- } from "./chunk-MSM65VWS.js";
215
+ } from "./chunk-HQ3WN6AK.js";
215
216
  import {
216
217
  handleAutoUpdate,
217
218
  isDevelopment,
218
219
  relaunchApp,
219
220
  setUpdateHandler
220
- } from "./chunk-EHNTNNG7.js";
221
+ } from "./chunk-CNIL75JT.js";
221
222
  import {
222
223
  isTodoList,
223
224
  mapCoreStatusToDisplayStatus,
224
225
  require_react
225
- } from "./chunk-H6BD5ZKD.js";
226
+ } from "./chunk-FBADLP6O.js";
226
227
  import {
227
228
  registerCleanup,
228
229
  removeCleanup,
229
230
  runExitCleanup,
230
231
  setupTtyCheck
231
- } from "./chunk-EMUTS6IK.js";
232
+ } from "./chunk-YYVEOJOI.js";
232
233
  import {
233
234
  ACTIVATE_SKILL_TOOL_NAME,
234
235
  AGENT_TOOL_NAME,
@@ -429,7 +430,7 @@ import {
429
430
  validatePlanContent,
430
431
  validatePlanPath,
431
432
  writeToStdout
432
- } from "./chunk-QRLOGZOF.js";
433
+ } from "./chunk-SBG6CUNK.js";
433
434
  import "./chunk-6HI7VNOG.js";
434
435
  import "./chunk-TUDYL3X4.js";
435
436
  import "./chunk-IUUIT4SU.js";
@@ -524,7 +525,7 @@ var require_prop_types = __commonJS({
524
525
  var require_gradient_string = __commonJS({
525
526
  "node_modules/gradient-string/index.js"(exports, module) {
526
527
  "use strict";
527
- var chalk4 = require_source();
528
+ var chalk5 = require_source();
528
529
  var tinygradient2 = require_tinygradient();
529
530
  var forbiddenChars = /\s/g;
530
531
  function InitGradient(...args) {
@@ -540,7 +541,7 @@ var require_gradient_string = __commonJS({
540
541
  const colors = getColors(gradient, options, colorsCount);
541
542
  let result = "";
542
543
  for (const s of str) {
543
- result += s.match(forbiddenChars) ? s : chalk4.hex(colors.shift().toHex())(s);
544
+ result += s.match(forbiddenChars) ? s : chalk5.hex(colors.shift().toHex())(s);
544
545
  }
545
546
  return result;
546
547
  }
@@ -554,7 +555,7 @@ var require_gradient_string = __commonJS({
554
555
  const lineColors = colors.slice(0);
555
556
  let lineResult = "";
556
557
  for (const l of line) {
557
- lineResult += chalk4.hex(lineColors.shift().toHex())(l);
558
+ lineResult += chalk5.hex(lineColors.shift().toHex())(l);
558
559
  }
559
560
  results.push(lineResult);
560
561
  }
@@ -10241,6 +10242,7 @@ var Banner = ({ bannerText, isWarning, width }) => {
10241
10242
 
10242
10243
  // packages/cli/src/ui/hooks/useBanner.ts
10243
10244
  var import_react30 = __toESM(require_react(), 1);
10245
+ var import_chalk2 = __toESM(require_source(), 1);
10244
10246
  import crypto from "node:crypto";
10245
10247
  var DEFAULT_MAX_BANNER_SHOWN_COUNT = 5;
10246
10248
  var sessionIncrementedBanners = /* @__PURE__ */ new Set();
@@ -10254,7 +10256,15 @@ function useBanner(bannerData) {
10254
10256
  const currentBannerCount = bannerCounts[hashedText] || 0;
10255
10257
  const showBanner = activeText !== "" && (currentBannerCount < DEFAULT_MAX_BANNER_SHOWN_COUNT || activeText.includes("Antigravity"));
10256
10258
  const rawBannerText = showBanner ? activeText : "";
10257
- const bannerText = rawBannerText.replace(/\\n/g, "\n");
10259
+ let bannerText = rawBannerText.replace(/\\n/g, "\n");
10260
+ if (showBanner && activeText.includes("Antigravity")) {
10261
+ const info = getAntigravityInstallInfo();
10262
+ if (info) {
10263
+ bannerText += `
10264
+
10265
+ To install run "${import_chalk2.default.bold(info.installCmd)}"`;
10266
+ }
10267
+ }
10258
10268
  (0, import_react30.useEffect)(() => {
10259
10269
  if (showBanner && activeText) {
10260
10270
  if (!sessionIncrementedBanners.has(activeText)) {
@@ -13575,7 +13585,7 @@ var import_react44 = __toESM(require_react(), 1);
13575
13585
 
13576
13586
  // packages/cli/src/ui/components/shared/BaseSettingsDialog.tsx
13577
13587
  var import_react43 = __toESM(require_react(), 1);
13578
- var import_chalk2 = __toESM(require_source(), 1);
13588
+ var import_chalk3 = __toESM(require_source(), 1);
13579
13589
 
13580
13590
  // packages/cli/src/ui/hooks/useSettingsNavigation.ts
13581
13591
  var import_react41 = __toESM(require_react(), 1);
@@ -14043,9 +14053,9 @@ function BaseSettingsDialog({
14043
14053
  editCursorPos + 1
14044
14054
  );
14045
14055
  const afterCursor = cpSlice(editBuffer, editCursorPos + 1);
14046
- displayValue = beforeCursor + import_chalk2.default.inverse(atCursor) + afterCursor;
14056
+ displayValue = beforeCursor + import_chalk3.default.inverse(atCursor) + afterCursor;
14047
14057
  } else if (editCursorPos >= cpLen(editBuffer)) {
14048
- displayValue = editBuffer + (cursorVisible ? import_chalk2.default.inverse(" ") : " ");
14058
+ displayValue = editBuffer + (cursorVisible ? import_chalk3.default.inverse(" ") : " ");
14049
14059
  } else {
14050
14060
  displayValue = editBuffer;
14051
14061
  }
@@ -18458,7 +18468,7 @@ var ListeningIndicator = ({
18458
18468
  };
18459
18469
 
18460
18470
  // packages/cli/src/ui/components/InputPrompt.tsx
18461
- var import_chalk3 = __toESM(require_source(), 1);
18471
+ var import_chalk4 = __toESM(require_source(), 1);
18462
18472
 
18463
18473
  // packages/cli/src/ui/hooks/useShellHistory.ts
18464
18474
  var import_react63 = __toESM(require_react(), 1);
@@ -22115,7 +22125,7 @@ var InputPrompt = ({
22115
22125
  relCol - segStart,
22116
22126
  relCol - segStart + 1
22117
22127
  );
22118
- const highlighted = showCursor ? import_chalk3.default.inverse(charToHighlight) : charToHighlight;
22128
+ const highlighted = showCursor ? import_chalk4.default.inverse(charToHighlight) : charToHighlight;
22119
22129
  display = cpSlice(display, 0, relCol - segStart) + highlighted + cpSlice(display, relCol - segStart + 1);
22120
22130
  }
22121
22131
  charCount = segEnd;
@@ -22130,7 +22140,7 @@ var InputPrompt = ({
22130
22140
  const currentLineGhost = isOnCursorLine ? inlineGhost : "";
22131
22141
  if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText) && !currentLineGhost) {
22132
22142
  renderedLine.push(
22133
- /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { children: showCursor ? import_chalk3.default.inverse(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
22143
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { children: showCursor ? import_chalk4.default.inverse(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
22134
22144
  );
22135
22145
  }
22136
22146
  const showCursorBeforeGhost = focus && isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText) && currentLineGhost;
@@ -22144,7 +22154,7 @@ var InputPrompt = ({
22144
22154
  ),
22145
22155
  children: [
22146
22156
  renderedLine,
22147
- showCursorBeforeGhost && (showCursor ? import_chalk3.default.inverse(" ") : " "),
22157
+ showCursorBeforeGhost && (showCursor ? import_chalk4.default.inverse(" ") : " "),
22148
22158
  currentLineGhost && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.text.secondary, children: currentLineGhost })
22149
22159
  ]
22150
22160
  }
@@ -22279,7 +22289,7 @@ var InputPrompt = ({
22279
22289
  terminalCursorFocus: showCursor,
22280
22290
  terminalCursorPosition: 0,
22281
22291
  children: [
22282
- import_chalk3.default.inverse(effectivePlaceholder.slice(0, 1)),
22292
+ import_chalk4.default.inverse(effectivePlaceholder.slice(0, 1)),
22283
22293
  /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.text.secondary, children: effectivePlaceholder.slice(1) })
22284
22294
  ]
22285
22295
  }
@@ -33737,7 +33747,7 @@ ${queuedText}` : queuedText;
33737
33747
  if (keyMatchers["app.showErrorDetails" /* SHOW_ERROR_DETAILS */](key)) {
33738
33748
  if (settings.merged.general.devtools) {
33739
33749
  void (async () => {
33740
- const { toggleDevToolsPanel } = await import("./devtoolsService-2HWL5NFR.js");
33750
+ const { toggleDevToolsPanel } = await import("./devtoolsService-PHAD4RFS.js");
33741
33751
  await toggleDevToolsPanel(
33742
33752
  config,
33743
33753
  showErrorDetails,
@@ -34642,6 +34652,14 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
34642
34652
  }
34643
34653
  });
34644
34654
  const cleanupUnmount = () => instance.unmount();
34655
+ const cleanupNonResumableCurrentSession = async () => {
34656
+ try {
34657
+ await config.getGeminiClient()?.getChatRecordingService()?.deleteCurrentSessionIfNotResumableAsync();
34658
+ } catch (e) {
34659
+ debugLogger.error("Error cleaning up non-resumable session:", e);
34660
+ }
34661
+ };
34662
+ registerCleanup(cleanupNonResumableCurrentSession);
34645
34663
  registerCleanup(cleanupUnmount);
34646
34664
  const cleanupTtyCheck = setupTtyCheck();
34647
34665
  registerCleanup(cleanupTtyCheck);
@@ -34656,6 +34674,12 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
34656
34674
  } catch (e) {
34657
34675
  debugLogger.error("Error cleaning up console patcher:", e);
34658
34676
  }
34677
+ try {
34678
+ removeCleanup(cleanupNonResumableCurrentSession);
34679
+ await cleanupNonResumableCurrentSession();
34680
+ } catch (e) {
34681
+ debugLogger.error("Error removing non-resumable session cleanup:", e);
34682
+ }
34659
34683
  try {
34660
34684
  removeCleanup(cleanupUnmount);
34661
34685
  instance.unmount();